; LLVM IR from aws/s2n-tls :: tests/unit (s2n_certificate_extensions_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_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_stuffer_reservation = type { ptr, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_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_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [90 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 [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@public_key = external dso_local global %struct.s2n_pkey, align 8
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@__const.main.data = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [76 x i8], align 1
@EMPTY_PARSED_EXTENSIONS = external constant [21 x %struct.s2n_parsed_extension], align 16
@.str.27 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = 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 ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca [15 x i8], align 1
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_parsed_extensions_list, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_parsed_extensions_list, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca %struct.s2n_stuffer, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca %struct.s2n_parsed_extensions_list, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca %struct.s2n_stuffer, align 8
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_stuffer, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca %struct.s2n_stuffer, align 8
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_stuffer_reservation, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca ptr, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca %struct.s2n_stuffer_reservation, align 8
  %99 = alloca ptr, align 8
  %100 = alloca %struct.s2n_stuffer, align 8
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca ptr, align 8
  %113 = alloca %struct.s2n_stuffer, align 8
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = 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 %129

129:                                              ; preds = %2
  br label %130

130:                                              ; preds = %129
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %131 = load ptr, ptr @stdout, align 8, !tbaa !9
  %132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %131, ptr noundef @.str, ptr noundef @.str.1) #10
  %133 = load ptr, ptr @stdout, align 8, !tbaa !9
  %134 = call i32 @fflush(ptr noundef %133)
  br label %135

135:                                              ; preds = %130
  %136 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %137 = icmp eq i32 %136, -1
  br i1 %137, label %138, label %189

138:                                              ; preds = %135
  br label %139

139:                                              ; preds = %138
  br label %140

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

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

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

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

186:                                              ; preds = %169, %152
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %187

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

188:                                              ; No predecessors!
  br label %189

189:                                              ; preds = %188, %135
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  %192 = load i32, ptr @test_count, align 4, !tbaa !5
  %193 = add nsw i32 %192, 1
  store i32 %193, ptr @test_count, align 4, !tbaa !5
  %194 = call i32 @s2n_enable_atexit()
  %195 = icmp eq i32 %194, -1
  br i1 %195, label %196, label %247

196:                                              ; preds = %191
  br label %197

197:                                              ; preds = %196
  br label %198

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

205:                                              ; preds = %198
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = call i32 @fileno(ptr noundef %206) #10
  %208 = call i32 @isatty(i32 noundef %207) #10
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %210, label %227

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

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

244:                                              ; preds = %227, %210
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %245

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

246:                                              ; No predecessors!
  br label %247

247:                                              ; preds = %246, %191
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  %251 = call i32 @s2n_init()
  %252 = icmp eq i32 %251, -1
  br i1 %252, label %253, label %304

253:                                              ; preds = %250
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %256 = call ptr @__errno_location() #11
  %257 = load i32, ptr %256, align 4, !tbaa !5
  store i32 %257, ptr %8, 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) #10
  %265 = call i32 @isatty(i32 noundef %264) #10
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %284

267:                                              ; preds = %262
  %268 = load i32, ptr %8, align 4, !tbaa !5
  %269 = call ptr @__errno_location() #11
  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() #11
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @strerror(i32 noundef %279) #10
  %281 = call ptr @__errno_location() #11
  %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.7, ptr noundef @.str.1, i32 noundef 94, ptr noundef %274, ptr noundef %277, ptr noundef %280, i32 noundef %282) #10
  br label %301

284:                                              ; preds = %262, %255
  %285 = load i32, ptr %8, align 4, !tbaa !5
  %286 = call ptr @__errno_location() #11
  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() #11
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #10
  %298 = call ptr @__errno_location() #11
  %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.7, ptr noundef @.str.1, i32 noundef 94, ptr noundef %291, ptr noundef %294, ptr noundef %297, i32 noundef %299) #10
  br label %301

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

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

303:                                              ; No predecessors!
  br label %304

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

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = call i32 (...) @s2n_enable_tls13_in_test()
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %363

312:                                              ; preds = %307
  br label %313

313:                                              ; preds = %312
  br label %314

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

321:                                              ; preds = %314
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @fileno(ptr noundef %322) #10
  %324 = call i32 @isatty(i32 noundef %323) #10
  %325 = icmp ne i32 %324, 0
  br i1 %325, label %326, label %343

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

343:                                              ; preds = %321, %314
  %344 = load i32, ptr %9, align 4, !tbaa !5
  %345 = call ptr @__errno_location() #11
  store i32 %344, ptr %345, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror(i32 noundef %349, ptr noundef @.str.4)
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror_debug(i32 noundef %352, ptr noundef @.str.4)
  %354 = call ptr @__errno_location() #11
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @strerror(i32 noundef %355) #10
  %357 = call ptr @__errno_location() #11
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %346, ptr noundef @.str.5, i32 noundef %347, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 96, ptr noundef %350, ptr noundef %353, ptr noundef %356, i32 noundef %358) #10
  br label %360

360:                                              ; preds = %343, %326
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %361

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

362:                                              ; No predecessors!
  br label %363

363:                                              ; preds = %362, %307
  br label %364

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

365:                                              ; preds = %364
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = add nsw i32 %366, 1
  store i32 %367, ptr @test_count, align 4, !tbaa !5
  %368 = call ptr @s2n_config_new()
  store ptr %368, ptr %10, align 8, !tbaa !9
  %369 = icmp eq ptr %368, null
  br i1 %369, label %370, label %423

370:                                              ; preds = %365
  br label %371

371:                                              ; preds = %370
  br label %372

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

379:                                              ; preds = %372
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = call i32 @fileno(ptr noundef %380) #10
  %382 = call i32 @isatty(i32 noundef %381) #10
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %401

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

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

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

419:                                              ; preds = %418
  br label %420

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

421:                                              ; No predecessors!
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422, %365
  br label %424

424:                                              ; preds = %423
  br label %425

425:                                              ; preds = %424
  br label %426

426:                                              ; preds = %425
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr @test_count, align 4, !tbaa !5
  %429 = call i32 @s2n_pkey_zero_init(ptr noundef @public_key)
  %430 = icmp eq i32 %429, -1
  br i1 %430, label %431, label %484

431:                                              ; preds = %426
  br label %432

432:                                              ; preds = %431
  br label %433

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

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

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

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

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

480:                                              ; preds = %479
  br label %481

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

482:                                              ; No predecessors!
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483, %426
  br label %485

485:                                              ; preds = %484
  br label %486

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

487:                                              ; preds = %486
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = add nsw i32 %488, 1
  store i32 %489, ptr @test_count, align 4, !tbaa !5
  %490 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %13, ptr noundef @.str.11, ptr noundef @.str.12)
  %491 = icmp eq i32 %490, -1
  br i1 %491, label %492, label %545

492:                                              ; preds = %487
  br label %493

493:                                              ; preds = %492
  br label %494

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

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

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

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

540:                                              ; preds = %523, %506
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %541

541:                                              ; preds = %540
  br label %542

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

543:                                              ; No predecessors!
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544, %487
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546
  br label %548

548:                                              ; preds = %547
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = add nsw i32 %549, 1
  store i32 %550, ptr @test_count, align 4, !tbaa !5
  %551 = load ptr, ptr %10, align 8, !tbaa !9
  %552 = load ptr, ptr %13, align 8, !tbaa !9
  %553 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %551, ptr noundef %552)
  %554 = icmp eq i32 %553, -1
  br i1 %554, label %555, label %608

555:                                              ; preds = %548
  br label %556

556:                                              ; preds = %555
  br label %557

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

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

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

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

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

604:                                              ; preds = %603
  br label %605

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

606:                                              ; No predecessors!
  br label %607

607:                                              ; preds = %606
  br label %608

608:                                              ; preds = %607, %548
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 15, ptr %16) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %16, ptr align 1 @__const.main.data, i64 15, i1 false)
  br label %611

611:                                              ; preds = %610
  %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 = load ptr, ptr %13, align 8, !tbaa !9
  %615 = getelementptr inbounds [15 x i8], ptr %16, i64 0, i64 0
  %616 = call i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef %614, ptr noundef %615, i32 noundef 15)
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %618, label %671

618:                                              ; preds = %611
  br label %619

619:                                              ; preds = %618
  br label %620

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

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #10
  %630 = call i32 @isatty(i32 noundef %629) #10
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %649

632:                                              ; preds = %627
  %633 = load i32, ptr %17, align 4, !tbaa !5
  %634 = call ptr @__errno_location() #11
  store i32 %633, ptr %634, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef @.str.4)
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef @.str.4)
  %643 = call ptr @__errno_location() #11
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #10
  %646 = call ptr @__errno_location() #11
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef @.str.2, i32 noundef %636, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 111, ptr noundef %639, ptr noundef %642, ptr noundef %645, i32 noundef %647) #10
  br label %666

649:                                              ; preds = %627, %620
  %650 = load i32, ptr %17, align 4, !tbaa !5
  %651 = call ptr @__errno_location() #11
  store i32 %650, ptr %651, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef @.str.4)
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef @.str.4)
  %660 = call ptr @__errno_location() #11
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #10
  %663 = call ptr @__errno_location() #11
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef @.str.5, i32 noundef %653, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 111, ptr noundef %656, ptr noundef %659, ptr noundef %662, i32 noundef %664) #10
  br label %666

666:                                              ; preds = %649, %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %667

667:                                              ; preds = %666
  br label %668

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

669:                                              ; No predecessors!
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670, %611
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = load ptr, ptr %13, align 8, !tbaa !9
  %678 = getelementptr inbounds [15 x i8], ptr %16, i64 0, i64 0
  %679 = call i32 @s2n_cert_chain_and_key_set_sct_list(ptr noundef %677, ptr noundef %678, i32 noundef 15)
  %680 = icmp eq i32 %679, -1
  br i1 %680, label %681, label %734

681:                                              ; preds = %674
  br label %682

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %684 = call ptr @__errno_location() #11
  %685 = load i32, ptr %684, align 4, !tbaa !5
  store i32 %685, ptr %18, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = call i32 @s2n_print_stacktrace(ptr noundef %686)
  %688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %689 = trunc i8 %688 to i1
  br i1 %689, label %690, label %712

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

695:                                              ; preds = %690
  %696 = load i32, ptr %18, align 4, !tbaa !5
  %697 = call ptr @__errno_location() #11
  store i32 %696, ptr %697, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror(i32 noundef %701, ptr noundef @.str.4)
  %703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror_debug(i32 noundef %704, ptr noundef @.str.4)
  %706 = call ptr @__errno_location() #11
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #10
  %709 = call ptr @__errno_location() #11
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %698, ptr noundef @.str.2, i32 noundef %699, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 112, ptr noundef %702, ptr noundef %705, ptr noundef %708, i32 noundef %710) #10
  br label %729

712:                                              ; preds = %690, %683
  %713 = load i32, ptr %18, align 4, !tbaa !5
  %714 = call ptr @__errno_location() #11
  store i32 %713, ptr %714, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror(i32 noundef %718, ptr noundef @.str.4)
  %720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror_debug(i32 noundef %721, ptr noundef @.str.4)
  %723 = call ptr @__errno_location() #11
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call ptr @strerror(i32 noundef %724) #10
  %726 = call ptr @__errno_location() #11
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %715, ptr noundef @.str.5, i32 noundef %716, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 112, ptr noundef %719, ptr noundef %722, ptr noundef %725, i32 noundef %727) #10
  br label %729

729:                                              ; preds = %712, %695
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %730

730:                                              ; preds = %729
  br label %731

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

732:                                              ; No predecessors!
  br label %733

733:                                              ; preds = %732
  br label %734

734:                                              ; preds = %733, %674
  br label %735

735:                                              ; preds = %734
  br label %736

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

737:                                              ; preds = %736
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %740, ptr %19, align 8, !tbaa !9
  %741 = icmp eq ptr %740, null
  br i1 %741, label %742, label %795

742:                                              ; preds = %737
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %745 = call ptr @__errno_location() #11
  %746 = load i32, ptr %745, align 4, !tbaa !5
  store i32 %746, ptr %20, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @s2n_print_stacktrace(ptr noundef %747)
  %749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %750 = trunc i8 %749 to i1
  br i1 %750, label %751, label %773

751:                                              ; preds = %744
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @fileno(ptr noundef %752) #10
  %754 = call i32 @isatty(i32 noundef %753) #10
  %755 = icmp ne i32 %754, 0
  br i1 %755, label %756, label %773

756:                                              ; preds = %751
  %757 = load i32, ptr %20, align 4, !tbaa !5
  %758 = call ptr @__errno_location() #11
  store i32 %757, ptr %758, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror(i32 noundef %762, ptr noundef @.str.4)
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror_debug(i32 noundef %765, ptr noundef @.str.4)
  %767 = call ptr @__errno_location() #11
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #10
  %770 = call ptr @__errno_location() #11
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef @.str.2, i32 noundef %760, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 119, ptr noundef %763, ptr noundef %766, ptr noundef %769, i32 noundef %771) #10
  br label %790

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

790:                                              ; preds = %773, %756
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %791

791:                                              ; preds = %790
  br label %792

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

793:                                              ; No predecessors!
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794, %737
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  %798 = load ptr, ptr %13, align 8, !tbaa !9
  %799 = load ptr, ptr %19, align 8, !tbaa !9
  %800 = getelementptr inbounds %struct.s2n_connection, ptr %799, i32 0, i32 32
  %801 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %800, i32 0, i32 7
  store ptr %798, ptr %801, align 8, !tbaa !15
  br label %802

802:                                              ; preds = %797
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = add nsw i32 %803, 1
  store i32 %804, ptr @test_count, align 4, !tbaa !5
  %805 = load ptr, ptr %19, align 8, !tbaa !9
  %806 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %805)
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %808, label %861

808:                                              ; preds = %802
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %811 = call ptr @__errno_location() #11
  %812 = load i32, ptr %811, align 4, !tbaa !5
  store i32 %812, ptr %21, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @s2n_print_stacktrace(ptr noundef %813)
  %815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %816 = trunc i8 %815 to i1
  br i1 %816, label %817, label %839

817:                                              ; preds = %810
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = call i32 @fileno(ptr noundef %818) #10
  %820 = call i32 @isatty(i32 noundef %819) #10
  %821 = icmp ne i32 %820, 0
  br i1 %821, label %822, label %839

822:                                              ; preds = %817
  %823 = load i32, ptr %21, align 4, !tbaa !5
  %824 = call ptr @__errno_location() #11
  store i32 %823, ptr %824, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror(i32 noundef %828, ptr noundef @.str.4)
  %830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror_debug(i32 noundef %831, ptr noundef @.str.4)
  %833 = call ptr @__errno_location() #11
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @strerror(i32 noundef %834) #10
  %836 = call ptr @__errno_location() #11
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %825, ptr noundef @.str.2, i32 noundef %826, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 122, ptr noundef %829, ptr noundef %832, ptr noundef %835, i32 noundef %837) #10
  br label %856

839:                                              ; preds = %817, %810
  %840 = load i32, ptr %21, align 4, !tbaa !5
  %841 = call ptr @__errno_location() #11
  store i32 %840, ptr %841, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef @.str.4)
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror_debug(i32 noundef %848, ptr noundef @.str.4)
  %850 = call ptr @__errno_location() #11
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #10
  %853 = call ptr @__errno_location() #11
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef @.str.5, i32 noundef %843, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 122, ptr noundef %846, ptr noundef %849, ptr noundef %852, i32 noundef %854) #10
  br label %856

856:                                              ; preds = %839, %822
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %857

857:                                              ; preds = %856
  br label %858

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

859:                                              ; No predecessors!
  br label %860

860:                                              ; preds = %859
  br label %861

861:                                              ; preds = %860, %802
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862
  %864 = load ptr, ptr %19, align 8, !tbaa !9
  %865 = getelementptr inbounds %struct.s2n_connection, ptr %864, i32 0, i32 65
  store i32 1, ptr %865, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #10
  br label %866

866:                                              ; preds = %863
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %22, i32 noundef 0)
  %870 = icmp eq i32 %869, -1
  br i1 %870, label %871, label %924

871:                                              ; preds = %866
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %874 = call ptr @__errno_location() #11
  %875 = load i32, ptr %874, align 4, !tbaa !5
  store i32 %875, ptr %23, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @s2n_print_stacktrace(ptr noundef %876)
  %878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %879 = trunc i8 %878 to i1
  br i1 %879, label %880, label %902

880:                                              ; preds = %873
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = call i32 @fileno(ptr noundef %881) #10
  %883 = call i32 @isatty(i32 noundef %882) #10
  %884 = icmp ne i32 %883, 0
  br i1 %884, label %885, label %902

885:                                              ; preds = %880
  %886 = load i32, ptr %23, align 4, !tbaa !5
  %887 = call ptr @__errno_location() #11
  store i32 %886, ptr %887, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror(i32 noundef %891, ptr noundef @.str.4)
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror_debug(i32 noundef %894, ptr noundef @.str.4)
  %896 = call ptr @__errno_location() #11
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @strerror(i32 noundef %897) #10
  %899 = call ptr @__errno_location() #11
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %888, ptr noundef @.str.2, i32 noundef %889, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 128, ptr noundef %892, ptr noundef %895, ptr noundef %898, i32 noundef %900) #10
  br label %919

902:                                              ; preds = %880, %873
  %903 = load i32, ptr %23, align 4, !tbaa !5
  %904 = call ptr @__errno_location() #11
  store i32 %903, ptr %904, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef @.str.4)
  %910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror_debug(i32 noundef %911, ptr noundef @.str.4)
  %913 = call ptr @__errno_location() #11
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #10
  %916 = call ptr @__errno_location() #11
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef @.str.5, i32 noundef %906, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 128, ptr noundef %909, ptr noundef %912, ptr noundef %915, i32 noundef %917) #10
  br label %919

919:                                              ; preds = %902, %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %920

920:                                              ; preds = %919
  br label %921

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

922:                                              ; No predecessors!
  br label %923

923:                                              ; preds = %922
  br label %924

924:                                              ; preds = %923, %866
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  %927 = load ptr, ptr %19, align 8, !tbaa !9
  %928 = getelementptr inbounds %struct.s2n_connection, ptr %927, i32 0, i32 23
  store i8 33, ptr %928, align 4, !tbaa !43
  br label %929

929:                                              ; preds = %926
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr @test_count, align 4, !tbaa !5
  %932 = load ptr, ptr %19, align 8, !tbaa !9
  %933 = load ptr, ptr %13, align 8, !tbaa !9
  %934 = call i32 @s2n_send_cert_chain(ptr noundef %932, ptr noundef %22, ptr noundef %933)
  %935 = icmp eq i32 %934, -1
  br i1 %935, label %936, label %989

936:                                              ; preds = %929
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %939 = call ptr @__errno_location() #11
  %940 = load i32, ptr %939, align 4, !tbaa !5
  store i32 %940, ptr %24, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = call i32 @s2n_print_stacktrace(ptr noundef %941)
  %943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %944 = trunc i8 %943 to i1
  br i1 %944, label %945, label %967

945:                                              ; preds = %938
  %946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %947 = call i32 @fileno(ptr noundef %946) #10
  %948 = call i32 @isatty(i32 noundef %947) #10
  %949 = icmp ne i32 %948, 0
  br i1 %949, label %950, label %967

950:                                              ; preds = %945
  %951 = load i32, ptr %24, align 4, !tbaa !5
  %952 = call ptr @__errno_location() #11
  store i32 %951, ptr %952, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call ptr @s2n_strerror(i32 noundef %956, ptr noundef @.str.4)
  %958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %959 = load i32, ptr %958, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror_debug(i32 noundef %959, ptr noundef @.str.4)
  %961 = call ptr @__errno_location() #11
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call ptr @strerror(i32 noundef %962) #10
  %964 = call ptr @__errno_location() #11
  %965 = load i32, ptr %964, align 4, !tbaa !5
  %966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef @.str.2, i32 noundef %954, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 131, ptr noundef %957, ptr noundef %960, ptr noundef %963, i32 noundef %965) #10
  br label %984

967:                                              ; preds = %945, %938
  %968 = load i32, ptr %24, align 4, !tbaa !5
  %969 = call ptr @__errno_location() #11
  store i32 %968, ptr %969, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror(i32 noundef %973, ptr noundef @.str.4)
  %975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror_debug(i32 noundef %976, ptr noundef @.str.4)
  %978 = call ptr @__errno_location() #11
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @strerror(i32 noundef %979) #10
  %981 = call ptr @__errno_location() #11
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef @.str.5, i32 noundef %971, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 131, ptr noundef %974, ptr noundef %977, ptr noundef %980, i32 noundef %982) #10
  br label %984

984:                                              ; preds = %967, %950
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %985

985:                                              ; preds = %984
  br label %986

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

987:                                              ; No predecessors!
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988, %929
  br label %990

990:                                              ; preds = %989
  br label %991

991:                                              ; preds = %990
  call void @llvm.lifetime.start.p0(i64 704, ptr %25) #10
  br label %992

992:                                              ; preds = %991
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = add nsw i32 %993, 1
  store i32 %994, ptr @test_count, align 4, !tbaa !5
  %995 = call i32 @s2n_skip_cert_chain_size(ptr noundef %22)
  %996 = icmp eq i32 %995, -1
  br i1 %996, label %997, label %1050

997:                                              ; preds = %992
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %1000 = call ptr @__errno_location() #11
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  store i32 %1001, ptr %26, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = call i32 @s2n_print_stacktrace(ptr noundef %1002)
  %1004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1005 = trunc i8 %1004 to i1
  br i1 %1005, label %1006, label %1028

1006:                                             ; preds = %999
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @fileno(ptr noundef %1007) #10
  %1009 = call i32 @isatty(i32 noundef %1008) #10
  %1010 = icmp ne i32 %1009, 0
  br i1 %1010, label %1011, label %1028

1011:                                             ; preds = %1006
  %1012 = load i32, ptr %26, align 4, !tbaa !5
  %1013 = call ptr @__errno_location() #11
  store i32 %1012, ptr %1013, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror(i32 noundef %1017, ptr noundef @.str.4)
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef @.str.4)
  %1022 = call ptr @__errno_location() #11
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @strerror(i32 noundef %1023) #10
  %1025 = call ptr @__errno_location() #11
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1014, ptr noundef @.str.2, i32 noundef %1015, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1018, ptr noundef %1021, ptr noundef %1024, i32 noundef %1026) #10
  br label %1045

1028:                                             ; preds = %1006, %999
  %1029 = load i32, ptr %26, align 4, !tbaa !5
  %1030 = call ptr @__errno_location() #11
  store i32 %1029, ptr %1030, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef @.str.4)
  %1036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror_debug(i32 noundef %1037, ptr noundef @.str.4)
  %1039 = call ptr @__errno_location() #11
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @strerror(i32 noundef %1040) #10
  %1042 = call ptr @__errno_location() #11
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef @.str.5, i32 noundef %1032, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1035, ptr noundef %1038, ptr noundef %1041, i32 noundef %1043) #10
  br label %1045

1045:                                             ; preds = %1028, %1011
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

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

1048:                                             ; No predecessors!
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049, %992
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

1053:                                             ; preds = %1052
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = add nsw i32 %1054, 1
  store i32 %1055, ptr @test_count, align 4, !tbaa !5
  %1056 = call i32 @s2n_skip_cert(ptr noundef %22)
  %1057 = icmp eq i32 %1056, -1
  br i1 %1057, label %1058, label %1111

1058:                                             ; preds = %1053
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

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

1067:                                             ; preds = %1060
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @fileno(ptr noundef %1068) #10
  %1070 = call i32 @isatty(i32 noundef %1069) #10
  %1071 = icmp ne i32 %1070, 0
  br i1 %1071, label %1072, label %1089

1072:                                             ; preds = %1067
  %1073 = load i32, ptr %27, align 4, !tbaa !5
  %1074 = call ptr @__errno_location() #11
  store i32 %1073, ptr %1074, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef @.str.4)
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call ptr @__errno_location() #11
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #10
  %1086 = call ptr @__errno_location() #11
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef @.str.2, i32 noundef %1076, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1079, ptr noundef %1082, ptr noundef %1085, i32 noundef %1087) #10
  br label %1106

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

1106:                                             ; preds = %1089, %1072
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

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

1109:                                             ; No predecessors!
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

1111:                                             ; preds = %1110, %1053
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

1116:                                             ; preds = %1115
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @s2n_extension_list_parse(ptr noundef %22, ptr noundef %25)
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1174, label %1121

1121:                                             ; preds = %1116
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

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

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

1135:                                             ; preds = %1130
  %1136 = load i32, ptr %28, align 4, !tbaa !5
  %1137 = call ptr @__errno_location() #11
  store i32 %1136, ptr %1137, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef @.str.4)
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call ptr @__errno_location() #11
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #10
  %1149 = call ptr @__errno_location() #11
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef @.str.2, i32 noundef %1139, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1142, ptr noundef %1145, ptr noundef %1148, i32 noundef %1150) #10
  br label %1169

1152:                                             ; preds = %1130, %1123
  %1153 = load i32, ptr %28, align 4, !tbaa !5
  %1154 = call ptr @__errno_location() #11
  store i32 %1153, ptr %1154, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror(i32 noundef %1158, ptr noundef @.str.4)
  %1160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror_debug(i32 noundef %1161, ptr noundef @.str.4)
  %1163 = call ptr @__errno_location() #11
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @strerror(i32 noundef %1164) #10
  %1166 = call ptr @__errno_location() #11
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1155, ptr noundef @.str.5, i32 noundef %1156, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 138, ptr noundef %1159, ptr noundef %1162, ptr noundef %1165, i32 noundef %1167) #10
  br label %1169

1169:                                             ; preds = %1152, %1135
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

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

1172:                                             ; No predecessors!
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173, %1116
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  %1178 = load i32, ptr @test_count, align 4, !tbaa !5
  %1179 = add nsw i32 %1178, 1
  store i32 %1179, ptr @test_count, align 4, !tbaa !5
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = icmp eq i32 %1181, 335544322
  br i1 %1182, label %1236, label %1183

1183:                                             ; preds = %1177
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

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

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

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

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

1231:                                             ; preds = %1214, %1197
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

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

1234:                                             ; No predecessors!
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235, %1177
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr @test_count, align 4, !tbaa !5
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = icmp eq ptr %1244, null
  br i1 %1245, label %1246, label %1299

1246:                                             ; preds = %1239
  br label %1247

1247:                                             ; preds = %1246
  br label %1248

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

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

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

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

1294:                                             ; preds = %1277, %1260
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

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

1297:                                             ; No predecessors!
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

1299:                                             ; preds = %1298, %1239
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1305, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1306 = call ptr @__errno_location() #11
  store i32 0, ptr %1306, align 4, !tbaa !5
  br label %1307

1307:                                             ; preds = %1304
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  call void @llvm.lifetime.end.p0(i64 704, ptr %25) #10
  %1311 = call i32 @s2n_stuffer_free(ptr noundef %22)
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #10
  br label %1312

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

1317:                                             ; preds = %1312
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

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

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

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

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

1365:                                             ; preds = %1348, %1331
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

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

1368:                                             ; No predecessors!
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369, %1312
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  %1373 = load ptr, ptr %19, align 8, !tbaa !9
  %1374 = getelementptr inbounds %struct.s2n_connection, ptr %1373, i32 0, i32 23
  store i8 34, ptr %1374, align 4, !tbaa !43
  br label %1375

1375:                                             ; preds = %1372
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = add nsw i32 %1376, 1
  store i32 %1377, ptr @test_count, align 4, !tbaa !5
  %1378 = load ptr, ptr %19, align 8, !tbaa !9
  %1379 = load ptr, ptr %13, align 8, !tbaa !9
  %1380 = call i32 @s2n_send_cert_chain(ptr noundef %1378, ptr noundef %31, ptr noundef %1379)
  %1381 = icmp eq i32 %1380, -1
  br i1 %1381, label %1382, label %1435

1382:                                             ; preds = %1375
  br label %1383

1383:                                             ; preds = %1382
  br label %1384

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

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

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

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

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

1431:                                             ; preds = %1430
  br label %1432

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

1433:                                             ; No predecessors!
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

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

1436:                                             ; preds = %1435
  br label %1437

1437:                                             ; preds = %1436
  call void @llvm.lifetime.start.p0(i64 704, ptr %34) #10
  br label %1438

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

1443:                                             ; preds = %1438
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

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

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

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

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

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

1492:                                             ; preds = %1491
  br label %1493

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

1494:                                             ; No predecessors!
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

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

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr @test_count, align 4, !tbaa !5
  %1502 = call i32 @s2n_skip_cert(ptr noundef %31)
  %1503 = icmp eq i32 %1502, -1
  br i1 %1503, label %1504, label %1557

1504:                                             ; preds = %1499
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

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

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

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

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

1552:                                             ; preds = %1535, %1518
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

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

1555:                                             ; No predecessors!
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556, %1499
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

1560:                                             ; preds = %1559
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = add nsw i32 %1561, 1
  store i32 %1562, ptr @test_count, align 4, !tbaa !5
  %1563 = call i32 @s2n_extension_list_parse(ptr noundef %31, ptr noundef %34)
  %1564 = icmp eq i32 %1563, -1
  br i1 %1564, label %1565, label %1618

1565:                                             ; preds = %1560
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1568 = call ptr @__errno_location() #11
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  store i32 %1569, ptr %37, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = call i32 @s2n_print_stacktrace(ptr noundef %1570)
  %1572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1573 = trunc i8 %1572 to i1
  br i1 %1573, label %1574, label %1596

1574:                                             ; preds = %1567
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = call i32 @fileno(ptr noundef %1575) #10
  %1577 = call i32 @isatty(i32 noundef %1576) #10
  %1578 = icmp ne i32 %1577, 0
  br i1 %1578, label %1579, label %1596

1579:                                             ; preds = %1574
  %1580 = load i32, ptr %37, align 4, !tbaa !5
  %1581 = call ptr @__errno_location() #11
  store i32 %1580, ptr %1581, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = load i32, ptr @test_count, align 4, !tbaa !5
  %1584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @s2n_strerror(i32 noundef %1585, ptr noundef @.str.4)
  %1587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = call ptr @s2n_strerror_debug(i32 noundef %1588, ptr noundef @.str.4)
  %1590 = call ptr @__errno_location() #11
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = call ptr @strerror(i32 noundef %1591) #10
  %1593 = call ptr @__errno_location() #11
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1582, ptr noundef @.str.2, i32 noundef %1583, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1586, ptr noundef %1589, ptr noundef %1592, i32 noundef %1594) #10
  br label %1613

1596:                                             ; preds = %1574, %1567
  %1597 = load i32, ptr %37, align 4, !tbaa !5
  %1598 = call ptr @__errno_location() #11
  store i32 %1597, ptr %1598, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror(i32 noundef %1602, ptr noundef @.str.4)
  %1604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror_debug(i32 noundef %1605, ptr noundef @.str.4)
  %1607 = call ptr @__errno_location() #11
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @strerror(i32 noundef %1608) #10
  %1610 = call ptr @__errno_location() #11
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef @.str.5, i32 noundef %1600, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1603, ptr noundef %1606, ptr noundef %1609, i32 noundef %1611) #10
  br label %1613

1613:                                             ; preds = %1596, %1579
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1614

1614:                                             ; preds = %1613
  br label %1615

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

1616:                                             ; No predecessors!
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617, %1560
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = add nsw i32 %1622, 1
  store i32 %1623, ptr @test_count, align 4, !tbaa !5
  %1624 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %34, i32 0, i32 0
  %1625 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %1624, i64 0, i64 0
  %1626 = call i32 @memcmp(ptr noundef %1625, ptr noundef @EMPTY_PARSED_EXTENSIONS, i64 noundef 672) #13
  %1627 = icmp eq i32 %1626, 0
  br i1 %1627, label %1628, label %1681

1628:                                             ; preds = %1621
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1631 = call ptr @__errno_location() #11
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  store i32 %1632, ptr %38, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633)
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc i8 %1635 to i1
  br i1 %1636, label %1637, label %1659

1637:                                             ; preds = %1630
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #10
  %1640 = call i32 @isatty(i32 noundef %1639) #10
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1659

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %38, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #11
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #11
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #10
  %1656 = call ptr @__errno_location() #11
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.2, i32 noundef %1646, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 154, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #10
  br label %1676

1659:                                             ; preds = %1637, %1630
  %1660 = load i32, ptr %38, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #11
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #11
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #10
  %1673 = call ptr @__errno_location() #11
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.5, i32 noundef %1663, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 154, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #10
  br label %1676

1676:                                             ; preds = %1659, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

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

1679:                                             ; No predecessors!
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680, %1621
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.end.p0(i64 704, ptr %34) #10
  %1684 = call i32 @s2n_stuffer_free(ptr noundef %31)
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #10
  br label %1685

1685:                                             ; preds = %1683
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = add nsw i32 %1686, 1
  store i32 %1687, ptr @test_count, align 4, !tbaa !5
  %1688 = load ptr, ptr %19, align 8, !tbaa !9
  %1689 = call i32 @s2n_connection_free(ptr noundef %1688)
  %1690 = icmp eq i32 %1689, -1
  br i1 %1690, label %1691, label %1744

1691:                                             ; preds = %1685
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1694 = call ptr @__errno_location() #11
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  store i32 %1695, ptr %39, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696)
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc i8 %1698 to i1
  br i1 %1699, label %1700, label %1722

1700:                                             ; preds = %1693
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #10
  %1703 = call i32 @isatty(i32 noundef %1702) #10
  %1704 = icmp ne i32 %1703, 0
  br i1 %1704, label %1705, label %1722

1705:                                             ; preds = %1700
  %1706 = load i32, ptr %39, align 4, !tbaa !5
  %1707 = call ptr @__errno_location() #11
  store i32 %1706, ptr %1707, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef @.str.4)
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror_debug(i32 noundef %1714, ptr noundef @.str.4)
  %1716 = call ptr @__errno_location() #11
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @strerror(i32 noundef %1717) #10
  %1719 = call ptr @__errno_location() #11
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1708, ptr noundef @.str.2, i32 noundef %1709, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 157, ptr noundef %1712, ptr noundef %1715, ptr noundef %1718, i32 noundef %1720) #10
  br label %1739

1722:                                             ; preds = %1700, %1693
  %1723 = load i32, ptr %39, align 4, !tbaa !5
  %1724 = call ptr @__errno_location() #11
  store i32 %1723, ptr %1724, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = load i32, ptr @test_count, align 4, !tbaa !5
  %1727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @s2n_strerror(i32 noundef %1728, ptr noundef @.str.4)
  %1730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror_debug(i32 noundef %1731, ptr noundef @.str.4)
  %1733 = call ptr @__errno_location() #11
  %1734 = load i32, ptr %1733, align 4, !tbaa !5
  %1735 = call ptr @strerror(i32 noundef %1734) #10
  %1736 = call ptr @__errno_location() #11
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1725, ptr noundef @.str.5, i32 noundef %1726, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 157, ptr noundef %1729, ptr noundef %1732, ptr noundef %1735, i32 noundef %1737) #10
  br label %1739

1739:                                             ; preds = %1722, %1705
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

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

1742:                                             ; No predecessors!
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743, %1685
  br label %1745

1745:                                             ; preds = %1744
  br label %1746

1746:                                             ; preds = %1745
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  store ptr null, ptr %40, align 8, !tbaa !9
  br label %1747

1747:                                             ; preds = %1746
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1750, ptr %40, align 8, !tbaa !9
  %1751 = icmp eq ptr %1750, null
  br i1 %1751, label %1752, label %1805

1752:                                             ; preds = %1747
  br label %1753

1753:                                             ; preds = %1752
  br label %1754

1754:                                             ; preds = %1753
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1755 = call ptr @__errno_location() #11
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  store i32 %1756, ptr %41, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = call i32 @s2n_print_stacktrace(ptr noundef %1757)
  %1759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1760 = trunc i8 %1759 to i1
  br i1 %1760, label %1761, label %1783

1761:                                             ; preds = %1754
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = call i32 @fileno(ptr noundef %1762) #10
  %1764 = call i32 @isatty(i32 noundef %1763) #10
  %1765 = icmp ne i32 %1764, 0
  br i1 %1765, label %1766, label %1783

1766:                                             ; preds = %1761
  %1767 = load i32, ptr %41, align 4, !tbaa !5
  %1768 = call ptr @__errno_location() #11
  store i32 %1767, ptr %1768, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call ptr @__errno_location() #11
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #10
  %1780 = call ptr @__errno_location() #11
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef @.str.2, i32 noundef %1770, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1773, ptr noundef %1776, ptr noundef %1779, i32 noundef %1781) #10
  br label %1800

1783:                                             ; preds = %1761, %1754
  %1784 = load i32, ptr %41, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #11
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #11
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #10
  %1797 = call ptr @__errno_location() #11
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.5, i32 noundef %1787, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #10
  br label %1800

1800:                                             ; preds = %1783, %1766
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

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

1803:                                             ; No predecessors!
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804, %1747
  br label %1806

1806:                                             ; preds = %1805
  br label %1807

1807:                                             ; preds = %1806
  %1808 = load ptr, ptr %13, align 8, !tbaa !9
  %1809 = load ptr, ptr %40, align 8, !tbaa !9
  %1810 = getelementptr inbounds %struct.s2n_connection, ptr %1809, i32 0, i32 32
  %1811 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1810, i32 0, i32 7
  store ptr %1808, ptr %1811, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %42) #10
  br label %1812

1812:                                             ; preds = %1807
  %1813 = load i32, ptr @test_count, align 4, !tbaa !5
  %1814 = add nsw i32 %1813, 1
  store i32 %1814, ptr @test_count, align 4, !tbaa !5
  %1815 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %42, i32 noundef 0)
  %1816 = icmp eq i32 %1815, -1
  br i1 %1816, label %1817, label %1870

1817:                                             ; preds = %1812
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

1819:                                             ; preds = %1818
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1820 = call ptr @__errno_location() #11
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  store i32 %1821, ptr %43, align 4, !tbaa !5
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = call i32 @s2n_print_stacktrace(ptr noundef %1822)
  %1824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1825 = trunc i8 %1824 to i1
  br i1 %1825, label %1826, label %1848

1826:                                             ; preds = %1819
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = call i32 @fileno(ptr noundef %1827) #10
  %1829 = call i32 @isatty(i32 noundef %1828) #10
  %1830 = icmp ne i32 %1829, 0
  br i1 %1830, label %1831, label %1848

1831:                                             ; preds = %1826
  %1832 = load i32, ptr %43, align 4, !tbaa !5
  %1833 = call ptr @__errno_location() #11
  store i32 %1832, ptr %1833, align 4, !tbaa !5
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = load i32, ptr @test_count, align 4, !tbaa !5
  %1836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror(i32 noundef %1837, ptr noundef @.str.4)
  %1839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @s2n_strerror_debug(i32 noundef %1840, ptr noundef @.str.4)
  %1842 = call ptr @__errno_location() #11
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @strerror(i32 noundef %1843) #10
  %1845 = call ptr @__errno_location() #11
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1834, ptr noundef @.str.2, i32 noundef %1835, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 167, ptr noundef %1838, ptr noundef %1841, ptr noundef %1844, i32 noundef %1846) #10
  br label %1865

1848:                                             ; preds = %1826, %1819
  %1849 = load i32, ptr %43, align 4, !tbaa !5
  %1850 = call ptr @__errno_location() #11
  store i32 %1849, ptr %1850, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef @.str.4)
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror_debug(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call ptr @__errno_location() #11
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @strerror(i32 noundef %1860) #10
  %1862 = call ptr @__errno_location() #11
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef @.str.5, i32 noundef %1852, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 167, ptr noundef %1855, ptr noundef %1858, ptr noundef %1861, i32 noundef %1863) #10
  br label %1865

1865:                                             ; preds = %1848, %1831
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

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

1868:                                             ; No predecessors!
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869, %1812
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871
  br label %1873

1873:                                             ; preds = %1872
  %1874 = load i32, ptr @test_count, align 4, !tbaa !5
  %1875 = add nsw i32 %1874, 1
  store i32 %1875, ptr @test_count, align 4, !tbaa !5
  %1876 = load ptr, ptr %40, align 8, !tbaa !9
  %1877 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %1876)
  %1878 = icmp eq i32 %1877, -1
  br i1 %1878, label %1879, label %1932

1879:                                             ; preds = %1873
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1882 = call ptr @__errno_location() #11
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  store i32 %1883, ptr %44, align 4, !tbaa !5
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @s2n_print_stacktrace(ptr noundef %1884)
  %1886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1887 = trunc i8 %1886 to i1
  br i1 %1887, label %1888, label %1910

1888:                                             ; preds = %1881
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = call i32 @fileno(ptr noundef %1889) #10
  %1891 = call i32 @isatty(i32 noundef %1890) #10
  %1892 = icmp ne i32 %1891, 0
  br i1 %1892, label %1893, label %1910

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

1910:                                             ; preds = %1888, %1881
  %1911 = load i32, ptr %44, align 4, !tbaa !5
  %1912 = call ptr @__errno_location() #11
  store i32 %1911, ptr %1912, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror(i32 noundef %1916, ptr noundef @.str.4)
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror_debug(i32 noundef %1919, ptr noundef @.str.4)
  %1921 = call ptr @__errno_location() #11
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @strerror(i32 noundef %1922) #10
  %1924 = call ptr @__errno_location() #11
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1913, ptr noundef @.str.5, i32 noundef %1914, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 169, ptr noundef %1917, ptr noundef %1920, ptr noundef %1923, i32 noundef %1925) #10
  br label %1927

1927:                                             ; preds = %1910, %1893
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1928

1928:                                             ; preds = %1927
  br label %1929

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

1930:                                             ; No predecessors!
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931, %1873
  br label %1933

1933:                                             ; preds = %1932
  br label %1934

1934:                                             ; preds = %1933
  %1935 = load ptr, ptr %40, align 8, !tbaa !9
  %1936 = getelementptr inbounds %struct.s2n_connection, ptr %1935, i32 0, i32 65
  store i32 1, ptr %1936, align 8, !tbaa !42
  %1937 = load ptr, ptr %40, align 8, !tbaa !9
  %1938 = getelementptr inbounds %struct.s2n_connection, ptr %1937, i32 0, i32 23
  store i8 34, ptr %1938, align 4, !tbaa !43
  br label %1939

1939:                                             ; preds = %1934
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = add nsw i32 %1940, 1
  store i32 %1941, ptr @test_count, align 4, !tbaa !5
  %1942 = load ptr, ptr %40, align 8, !tbaa !9
  %1943 = load ptr, ptr %13, align 8, !tbaa !9
  %1944 = call i32 @s2n_send_cert_chain(ptr noundef %1942, ptr noundef %42, ptr noundef %1943)
  %1945 = icmp eq i32 %1944, -1
  br i1 %1945, label %1946, label %1999

1946:                                             ; preds = %1939
  br label %1947

1947:                                             ; preds = %1946
  br label %1948

1948:                                             ; preds = %1947
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %1949 = call ptr @__errno_location() #11
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  store i32 %1950, ptr %45, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @s2n_print_stacktrace(ptr noundef %1951)
  %1953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1954 = trunc i8 %1953 to i1
  br i1 %1954, label %1955, label %1977

1955:                                             ; preds = %1948
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @fileno(ptr noundef %1956) #10
  %1958 = call i32 @isatty(i32 noundef %1957) #10
  %1959 = icmp ne i32 %1958, 0
  br i1 %1959, label %1960, label %1977

1960:                                             ; preds = %1955
  %1961 = load i32, ptr %45, align 4, !tbaa !5
  %1962 = call ptr @__errno_location() #11
  store i32 %1961, ptr %1962, align 4, !tbaa !5
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror(i32 noundef %1966, ptr noundef @.str.4)
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror_debug(i32 noundef %1969, ptr noundef @.str.4)
  %1971 = call ptr @__errno_location() #11
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @strerror(i32 noundef %1972) #10
  %1974 = call ptr @__errno_location() #11
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1963, ptr noundef @.str.2, i32 noundef %1964, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1967, ptr noundef %1970, ptr noundef %1973, i32 noundef %1975) #10
  br label %1994

1977:                                             ; preds = %1955, %1948
  %1978 = load i32, ptr %45, align 4, !tbaa !5
  %1979 = call ptr @__errno_location() #11
  store i32 %1978, ptr %1979, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef @.str.4)
  %1985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror_debug(i32 noundef %1986, ptr noundef @.str.4)
  %1988 = call ptr @__errno_location() #11
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @strerror(i32 noundef %1989) #10
  %1991 = call ptr @__errno_location() #11
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef @.str.5, i32 noundef %1981, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 173, ptr noundef %1984, ptr noundef %1987, ptr noundef %1990, i32 noundef %1992) #10
  br label %1994

1994:                                             ; preds = %1977, %1960
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1995

1995:                                             ; preds = %1994
  br label %1996

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

1997:                                             ; No predecessors!
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

1999:                                             ; preds = %1998, %1939
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  call void @llvm.lifetime.start.p0(i64 704, ptr %46) #10
  br label %2002

2002:                                             ; preds = %2001
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = call i32 @s2n_skip_cert_chain_size(ptr noundef %42)
  %2006 = icmp eq i32 %2005, -1
  br i1 %2006, label %2007, label %2060

2007:                                             ; preds = %2002
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

2009:                                             ; preds = %2008
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %2010 = call ptr @__errno_location() #11
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  store i32 %2011, ptr %47, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @s2n_print_stacktrace(ptr noundef %2012)
  %2014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2015 = trunc i8 %2014 to i1
  br i1 %2015, label %2016, label %2038

2016:                                             ; preds = %2009
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @fileno(ptr noundef %2017) #10
  %2019 = call i32 @isatty(i32 noundef %2018) #10
  %2020 = icmp ne i32 %2019, 0
  br i1 %2020, label %2021, label %2038

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

2038:                                             ; preds = %2016, %2009
  %2039 = load i32, ptr %47, align 4, !tbaa !5
  %2040 = call ptr @__errno_location() #11
  store i32 %2039, ptr %2040, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call ptr @__errno_location() #11
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @strerror(i32 noundef %2050) #10
  %2052 = call ptr @__errno_location() #11
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef @.str.5, i32 noundef %2042, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 176, ptr noundef %2045, ptr noundef %2048, ptr noundef %2051, i32 noundef %2053) #10
  br label %2055

2055:                                             ; preds = %2038, %2021
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

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

2058:                                             ; No predecessors!
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059, %2002
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = call i32 @s2n_skip_cert(ptr noundef %42)
  %2067 = icmp eq i32 %2066, -1
  br i1 %2067, label %2068, label %2121

2068:                                             ; preds = %2063
  br label %2069

2069:                                             ; preds = %2068
  br label %2070

2070:                                             ; preds = %2069
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %2071 = call ptr @__errno_location() #11
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  store i32 %2072, ptr %48, align 4, !tbaa !5
  %2073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2074 = call i32 @s2n_print_stacktrace(ptr noundef %2073)
  %2075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2076 = trunc i8 %2075 to i1
  br i1 %2076, label %2077, label %2099

2077:                                             ; preds = %2070
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = call i32 @fileno(ptr noundef %2078) #10
  %2080 = call i32 @isatty(i32 noundef %2079) #10
  %2081 = icmp ne i32 %2080, 0
  br i1 %2081, label %2082, label %2099

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

2099:                                             ; preds = %2077, %2070
  %2100 = load i32, ptr %48, align 4, !tbaa !5
  %2101 = call ptr @__errno_location() #11
  store i32 %2100, ptr %2101, align 4, !tbaa !5
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror(i32 noundef %2105, ptr noundef @.str.4)
  %2107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call ptr @s2n_strerror_debug(i32 noundef %2108, ptr noundef @.str.4)
  %2110 = call ptr @__errno_location() #11
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call ptr @strerror(i32 noundef %2111) #10
  %2113 = call ptr @__errno_location() #11
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2102, ptr noundef @.str.5, i32 noundef %2103, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 179, ptr noundef %2106, ptr noundef %2109, ptr noundef %2112, i32 noundef %2114) #10
  br label %2116

2116:                                             ; preds = %2099, %2082
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

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

2119:                                             ; No predecessors!
  br label %2120

2120:                                             ; preds = %2119
  br label %2121

2121:                                             ; preds = %2120, %2063
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

2124:                                             ; preds = %2123
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = add nsw i32 %2125, 1
  store i32 %2126, ptr @test_count, align 4, !tbaa !5
  %2127 = call i32 @s2n_extension_list_parse(ptr noundef %42, ptr noundef %46)
  %2128 = icmp eq i32 %2127, -1
  br i1 %2128, label %2129, label %2182

2129:                                             ; preds = %2124
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2132 = call ptr @__errno_location() #11
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  store i32 %2133, ptr %49, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @s2n_print_stacktrace(ptr noundef %2134)
  %2136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2137 = trunc i8 %2136 to i1
  br i1 %2137, label %2138, label %2160

2138:                                             ; preds = %2131
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @fileno(ptr noundef %2139) #10
  %2141 = call i32 @isatty(i32 noundef %2140) #10
  %2142 = icmp ne i32 %2141, 0
  br i1 %2142, label %2143, label %2160

2143:                                             ; preds = %2138
  %2144 = load i32, ptr %49, align 4, !tbaa !5
  %2145 = call ptr @__errno_location() #11
  store i32 %2144, ptr %2145, align 4, !tbaa !5
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = load i32, ptr @test_count, align 4, !tbaa !5
  %2148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call ptr @s2n_strerror(i32 noundef %2149, ptr noundef @.str.4)
  %2151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror_debug(i32 noundef %2152, ptr noundef @.str.4)
  %2154 = call ptr @__errno_location() #11
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @strerror(i32 noundef %2155) #10
  %2157 = call ptr @__errno_location() #11
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2146, ptr noundef @.str.2, i32 noundef %2147, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2150, ptr noundef %2153, ptr noundef %2156, i32 noundef %2158) #10
  br label %2177

2160:                                             ; preds = %2138, %2131
  %2161 = load i32, ptr %49, align 4, !tbaa !5
  %2162 = call ptr @__errno_location() #11
  store i32 %2161, ptr %2162, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror_debug(i32 noundef %2169, ptr noundef @.str.4)
  %2171 = call ptr @__errno_location() #11
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @strerror(i32 noundef %2172) #10
  %2174 = call ptr @__errno_location() #11
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2163, ptr noundef @.str.5, i32 noundef %2164, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2167, ptr noundef %2170, ptr noundef %2173, i32 noundef %2175) #10
  br label %2177

2177:                                             ; preds = %2160, %2143
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

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

2180:                                             ; No predecessors!
  br label %2181

2181:                                             ; preds = %2180
  br label %2182

2182:                                             ; preds = %2181, %2124
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  %2186 = load i32, ptr @test_count, align 4, !tbaa !5
  %2187 = add nsw i32 %2186, 1
  store i32 %2187, ptr @test_count, align 4, !tbaa !5
  %2188 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %46, i32 0, i32 0
  %2189 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2188, i64 0, i64 0
  %2190 = call i32 @memcmp(ptr noundef %2189, ptr noundef @EMPTY_PARSED_EXTENSIONS, i64 noundef 672) #13
  %2191 = icmp eq i32 %2190, 0
  br i1 %2191, label %2192, label %2245

2192:                                             ; preds = %2185
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

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

2201:                                             ; preds = %2194
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = call i32 @fileno(ptr noundef %2202) #10
  %2204 = call i32 @isatty(i32 noundef %2203) #10
  %2205 = icmp ne i32 %2204, 0
  br i1 %2205, label %2206, label %2223

2206:                                             ; preds = %2201
  %2207 = load i32, ptr %50, align 4, !tbaa !5
  %2208 = call ptr @__errno_location() #11
  store i32 %2207, ptr %2208, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror(i32 noundef %2212, ptr noundef @.str.4)
  %2214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror_debug(i32 noundef %2215, ptr noundef @.str.4)
  %2217 = call ptr @__errno_location() #11
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @strerror(i32 noundef %2218) #10
  %2220 = call ptr @__errno_location() #11
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef @.str.2, i32 noundef %2210, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2213, ptr noundef %2216, ptr noundef %2219, i32 noundef %2221) #10
  br label %2240

2223:                                             ; preds = %2201, %2194
  %2224 = load i32, ptr %50, align 4, !tbaa !5
  %2225 = call ptr @__errno_location() #11
  store i32 %2224, ptr %2225, align 4, !tbaa !5
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = load i32, ptr @test_count, align 4, !tbaa !5
  %2228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror(i32 noundef %2229, ptr noundef @.str.4)
  %2231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror_debug(i32 noundef %2232, ptr noundef @.str.4)
  %2234 = call ptr @__errno_location() #11
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @strerror(i32 noundef %2235) #10
  %2237 = call ptr @__errno_location() #11
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2226, ptr noundef @.str.5, i32 noundef %2227, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 181, ptr noundef %2230, ptr noundef %2233, ptr noundef %2236, i32 noundef %2238) #10
  br label %2240

2240:                                             ; preds = %2223, %2206
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2241

2241:                                             ; preds = %2240
  br label %2242

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

2243:                                             ; No predecessors!
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

2245:                                             ; preds = %2244, %2185
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2437, %2247
  br label %2249

2249:                                             ; preds = %2248
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = call i32 @s2n_skip_cert(ptr noundef %42)
  %2253 = icmp eq i32 %2252, -1
  br i1 %2253, label %2254, label %2307

2254:                                             ; preds = %2249
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2257 = call ptr @__errno_location() #11
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  store i32 %2258, ptr %51, align 4, !tbaa !5
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = call i32 @s2n_print_stacktrace(ptr noundef %2259)
  %2261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2262 = trunc i8 %2261 to i1
  br i1 %2262, label %2263, label %2285

2263:                                             ; preds = %2256
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = call i32 @fileno(ptr noundef %2264) #10
  %2266 = call i32 @isatty(i32 noundef %2265) #10
  %2267 = icmp ne i32 %2266, 0
  br i1 %2267, label %2268, label %2285

2268:                                             ; preds = %2263
  %2269 = load i32, ptr %51, align 4, !tbaa !5
  %2270 = call ptr @__errno_location() #11
  store i32 %2269, ptr %2270, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror(i32 noundef %2274, ptr noundef @.str.4)
  %2276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror_debug(i32 noundef %2277, ptr noundef @.str.4)
  %2279 = call ptr @__errno_location() #11
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @strerror(i32 noundef %2280) #10
  %2282 = call ptr @__errno_location() #11
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2271, ptr noundef @.str.2, i32 noundef %2272, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2275, ptr noundef %2278, ptr noundef %2281, i32 noundef %2283) #10
  br label %2302

2285:                                             ; preds = %2263, %2256
  %2286 = load i32, ptr %51, align 4, !tbaa !5
  %2287 = call ptr @__errno_location() #11
  store i32 %2286, ptr %2287, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef @.str.4)
  %2296 = call ptr @__errno_location() #11
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #10
  %2299 = call ptr @__errno_location() #11
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef @.str.5, i32 noundef %2289, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 185, ptr noundef %2292, ptr noundef %2295, ptr noundef %2298, i32 noundef %2300) #10
  br label %2302

2302:                                             ; preds = %2285, %2268
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

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

2305:                                             ; No predecessors!
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306, %2249
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = add nsw i32 %2311, 1
  store i32 %2312, ptr @test_count, align 4, !tbaa !5
  %2313 = call i32 @s2n_extension_list_parse(ptr noundef %42, ptr noundef %46)
  %2314 = icmp eq i32 %2313, -1
  br i1 %2314, label %2315, label %2368

2315:                                             ; preds = %2310
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

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

2324:                                             ; preds = %2317
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = call i32 @fileno(ptr noundef %2325) #10
  %2327 = call i32 @isatty(i32 noundef %2326) #10
  %2328 = icmp ne i32 %2327, 0
  br i1 %2328, label %2329, label %2346

2329:                                             ; preds = %2324
  %2330 = load i32, ptr %52, align 4, !tbaa !5
  %2331 = call ptr @__errno_location() #11
  store i32 %2330, ptr %2331, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror_debug(i32 noundef %2338, ptr noundef @.str.4)
  %2340 = call ptr @__errno_location() #11
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @strerror(i32 noundef %2341) #10
  %2343 = call ptr @__errno_location() #11
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef @.str.2, i32 noundef %2333, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2336, ptr noundef %2339, ptr noundef %2342, i32 noundef %2344) #10
  br label %2363

2346:                                             ; preds = %2324, %2317
  %2347 = load i32, ptr %52, align 4, !tbaa !5
  %2348 = call ptr @__errno_location() #11
  store i32 %2347, ptr %2348, align 4, !tbaa !5
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = load i32, ptr @test_count, align 4, !tbaa !5
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror_debug(i32 noundef %2355, ptr noundef @.str.4)
  %2357 = call ptr @__errno_location() #11
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call ptr @strerror(i32 noundef %2358) #10
  %2360 = call ptr @__errno_location() #11
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2349, ptr noundef @.str.5, i32 noundef %2350, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 186, ptr noundef %2353, ptr noundef %2356, ptr noundef %2359, i32 noundef %2361) #10
  br label %2363

2363:                                             ; preds = %2346, %2329
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

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

2366:                                             ; No predecessors!
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

2368:                                             ; preds = %2367, %2310
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  %2373 = load i32, ptr @test_count, align 4, !tbaa !5
  %2374 = add nsw i32 %2373, 1
  store i32 %2374, ptr @test_count, align 4, !tbaa !5
  %2375 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %46, i32 0, i32 0
  %2376 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2375, i64 0, i64 0
  %2377 = call i32 @memcmp(ptr noundef %2376, ptr noundef @EMPTY_PARSED_EXTENSIONS, i64 noundef 672) #13
  %2378 = icmp eq i32 %2377, 0
  br i1 %2378, label %2432, label %2379

2379:                                             ; preds = %2372
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

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

2388:                                             ; preds = %2381
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @fileno(ptr noundef %2389) #10
  %2391 = call i32 @isatty(i32 noundef %2390) #10
  %2392 = icmp ne i32 %2391, 0
  br i1 %2392, label %2393, label %2410

2393:                                             ; preds = %2388
  %2394 = load i32, ptr %53, align 4, !tbaa !5
  %2395 = call ptr @__errno_location() #11
  store i32 %2394, ptr %2395, align 4, !tbaa !5
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror_debug(i32 noundef %2402, ptr noundef @.str.4)
  %2404 = call ptr @__errno_location() #11
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @strerror(i32 noundef %2405) #10
  %2407 = call ptr @__errno_location() #11
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2396, ptr noundef @.str.2, i32 noundef %2397, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2400, ptr noundef %2403, ptr noundef %2406, i32 noundef %2408) #10
  br label %2427

2410:                                             ; preds = %2388, %2381
  %2411 = load i32, ptr %53, align 4, !tbaa !5
  %2412 = call ptr @__errno_location() #11
  store i32 %2411, ptr %2412, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call ptr @__errno_location() #11
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @strerror(i32 noundef %2422) #10
  %2424 = call ptr @__errno_location() #11
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2413, ptr noundef @.str.5, i32 noundef %2414, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 187, ptr noundef %2417, ptr noundef %2420, ptr noundef %2423, i32 noundef %2425) #10
  br label %2427

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

2428:                                             ; preds = %2427
  br label %2429

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

2430:                                             ; No predecessors!
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431, %2372
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  %2438 = getelementptr inbounds %struct.s2n_stuffer, ptr %42, i32 0, i32 2
  %2439 = load i32, ptr %2438, align 4, !tbaa !44
  %2440 = getelementptr inbounds %struct.s2n_stuffer, ptr %42, i32 0, i32 1
  %2441 = load i32, ptr %2440, align 8, !tbaa !45
  %2442 = sub i32 %2439, %2441
  %2443 = icmp ne i32 %2442, 0
  br i1 %2443, label %2248, label %2444, !llvm.loop !46

2444:                                             ; preds = %2437
  br label %2445

2445:                                             ; preds = %2444
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = add nsw i32 %2446, 1
  store i32 %2447, ptr @test_count, align 4, !tbaa !5
  %2448 = load ptr, ptr %40, align 8, !tbaa !9
  %2449 = call i32 @s2n_connection_free(ptr noundef %2448)
  %2450 = icmp eq i32 %2449, -1
  br i1 %2450, label %2451, label %2504

2451:                                             ; preds = %2445
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

2453:                                             ; preds = %2452
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2454 = call ptr @__errno_location() #11
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  store i32 %2455, ptr %54, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @s2n_print_stacktrace(ptr noundef %2456)
  %2458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2459 = trunc i8 %2458 to i1
  br i1 %2459, label %2460, label %2482

2460:                                             ; preds = %2453
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @fileno(ptr noundef %2461) #10
  %2463 = call i32 @isatty(i32 noundef %2462) #10
  %2464 = icmp ne i32 %2463, 0
  br i1 %2464, label %2465, label %2482

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

2482:                                             ; preds = %2460, %2453
  %2483 = load i32, ptr %54, align 4, !tbaa !5
  %2484 = call ptr @__errno_location() #11
  store i32 %2483, ptr %2484, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror(i32 noundef %2488, ptr noundef @.str.4)
  %2490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror_debug(i32 noundef %2491, ptr noundef @.str.4)
  %2493 = call ptr @__errno_location() #11
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @strerror(i32 noundef %2494) #10
  %2496 = call ptr @__errno_location() #11
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef @.str.5, i32 noundef %2486, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 190, ptr noundef %2489, ptr noundef %2492, ptr noundef %2495, i32 noundef %2497) #10
  br label %2499

2499:                                             ; preds = %2482, %2465
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

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

2502:                                             ; No predecessors!
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503, %2445
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  call void @llvm.lifetime.end.p0(i64 704, ptr %46) #10
  %2507 = call i32 @s2n_stuffer_free(ptr noundef %42)
  call void @llvm.lifetime.end.p0(i64 40, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  store ptr null, ptr %55, align 8, !tbaa !9
  br label %2508

2508:                                             ; preds = %2506
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = add nsw i32 %2509, 1
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2511, ptr %55, align 8, !tbaa !9
  %2512 = icmp eq ptr %2511, null
  br i1 %2512, label %2513, label %2566

2513:                                             ; preds = %2508
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2516 = call ptr @__errno_location() #11
  %2517 = load i32, ptr %2516, align 4, !tbaa !5
  store i32 %2517, ptr %56, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @s2n_print_stacktrace(ptr noundef %2518)
  %2520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2521 = trunc i8 %2520 to i1
  br i1 %2521, label %2522, label %2544

2522:                                             ; preds = %2515
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @fileno(ptr noundef %2523) #10
  %2525 = call i32 @isatty(i32 noundef %2524) #10
  %2526 = icmp ne i32 %2525, 0
  br i1 %2526, label %2527, label %2544

2527:                                             ; preds = %2522
  %2528 = load i32, ptr %56, align 4, !tbaa !5
  %2529 = call ptr @__errno_location() #11
  store i32 %2528, ptr %2529, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = load i32, ptr @test_count, align 4, !tbaa !5
  %2532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef @.str.4)
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef @.str.4)
  %2538 = call ptr @__errno_location() #11
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #10
  %2541 = call ptr @__errno_location() #11
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2530, ptr noundef @.str.2, i32 noundef %2531, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2534, ptr noundef %2537, ptr noundef %2540, i32 noundef %2542) #10
  br label %2561

2544:                                             ; preds = %2522, %2515
  %2545 = load i32, ptr %56, align 4, !tbaa !5
  %2546 = call ptr @__errno_location() #11
  store i32 %2545, ptr %2546, align 4, !tbaa !5
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = load i32, ptr @test_count, align 4, !tbaa !5
  %2549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror(i32 noundef %2550, ptr noundef @.str.4)
  %2552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call ptr @s2n_strerror_debug(i32 noundef %2553, ptr noundef @.str.4)
  %2555 = call ptr @__errno_location() #11
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @strerror(i32 noundef %2556) #10
  %2558 = call ptr @__errno_location() #11
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2547, ptr noundef @.str.5, i32 noundef %2548, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 199, ptr noundef %2551, ptr noundef %2554, ptr noundef %2557, i32 noundef %2559) #10
  br label %2561

2561:                                             ; preds = %2544, %2527
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

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

2564:                                             ; No predecessors!
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565, %2508
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

2568:                                             ; preds = %2567
  %2569 = load ptr, ptr %55, align 8, !tbaa !9
  %2570 = getelementptr inbounds %struct.s2n_connection, ptr %2569, i32 0, i32 23
  store i8 34, ptr %2570, align 4, !tbaa !43
  %2571 = load ptr, ptr %13, align 8, !tbaa !9
  %2572 = load ptr, ptr %55, align 8, !tbaa !9
  %2573 = getelementptr inbounds %struct.s2n_connection, ptr %2572, i32 0, i32 32
  %2574 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %2573, i32 0, i32 7
  store ptr %2571, ptr %2574, align 8, !tbaa !15
  %2575 = load ptr, ptr %55, align 8, !tbaa !9
  %2576 = getelementptr inbounds %struct.s2n_connection, ptr %2575, i32 0, i32 72
  %2577 = getelementptr inbounds %struct.s2n_x509_validator, ptr %2576, i32 0, i32 2
  store i8 1, ptr %2577, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr %57) #10
  br label %2578

2578:                                             ; preds = %2568
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = add nsw i32 %2579, 1
  store i32 %2580, ptr @test_count, align 4, !tbaa !5
  %2581 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %57, i32 noundef 0)
  %2582 = icmp eq i32 %2581, -1
  br i1 %2582, label %2583, label %2636

2583:                                             ; preds = %2578
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

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

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

2597:                                             ; preds = %2592
  %2598 = load i32, ptr %58, align 4, !tbaa !5
  %2599 = call ptr @__errno_location() #11
  store i32 %2598, ptr %2599, align 4, !tbaa !5
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror(i32 noundef %2603, ptr noundef @.str.4)
  %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_debug(i32 noundef %2606, ptr noundef @.str.4)
  %2608 = call ptr @__errno_location() #11
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @strerror(i32 noundef %2609) #10
  %2611 = call ptr @__errno_location() #11
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2600, ptr noundef @.str.2, i32 noundef %2601, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2604, ptr noundef %2607, ptr noundef %2610, i32 noundef %2612) #10
  br label %2631

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

2631:                                             ; preds = %2614, %2597
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

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

2634:                                             ; No predecessors!
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635, %2578
  br label %2637

2637:                                             ; preds = %2636
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = add nsw i32 %2640, 1
  store i32 %2641, ptr @test_count, align 4, !tbaa !5
  %2642 = load ptr, ptr %55, align 8, !tbaa !9
  %2643 = load ptr, ptr %13, align 8, !tbaa !9
  %2644 = call i32 @s2n_send_cert_chain(ptr noundef %2642, ptr noundef %57, ptr noundef %2643)
  %2645 = icmp eq i32 %2644, -1
  br i1 %2645, label %2646, label %2699

2646:                                             ; preds = %2639
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2649 = call ptr @__errno_location() #11
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  store i32 %2650, ptr %59, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = call i32 @s2n_print_stacktrace(ptr noundef %2651)
  %2653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2654 = trunc i8 %2653 to i1
  br i1 %2654, label %2655, label %2677

2655:                                             ; preds = %2648
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @fileno(ptr noundef %2656) #10
  %2658 = call i32 @isatty(i32 noundef %2657) #10
  %2659 = icmp ne i32 %2658, 0
  br i1 %2659, label %2660, label %2677

2660:                                             ; preds = %2655
  %2661 = load i32, ptr %59, align 4, !tbaa !5
  %2662 = call ptr @__errno_location() #11
  store i32 %2661, ptr %2662, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror(i32 noundef %2666, ptr noundef @.str.4)
  %2668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror_debug(i32 noundef %2669, ptr noundef @.str.4)
  %2671 = call ptr @__errno_location() #11
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call ptr @strerror(i32 noundef %2672) #10
  %2674 = call ptr @__errno_location() #11
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2663, ptr noundef @.str.2, i32 noundef %2664, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 207, ptr noundef %2667, ptr noundef %2670, ptr noundef %2673, i32 noundef %2675) #10
  br label %2694

2677:                                             ; preds = %2655, %2648
  %2678 = load i32, ptr %59, align 4, !tbaa !5
  %2679 = call ptr @__errno_location() #11
  store i32 %2678, ptr %2679, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror_debug(i32 noundef %2686, ptr noundef @.str.4)
  %2688 = call ptr @__errno_location() #11
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @strerror(i32 noundef %2689) #10
  %2691 = call ptr @__errno_location() #11
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef @.str.5, i32 noundef %2681, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 207, ptr noundef %2684, ptr noundef %2687, ptr noundef %2690, i32 noundef %2692) #10
  br label %2694

2694:                                             ; preds = %2677, %2660
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

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

2697:                                             ; No predecessors!
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698, %2639
  br label %2700

2700:                                             ; preds = %2699
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = add nsw i32 %2703, 1
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = load ptr, ptr %55, align 8, !tbaa !9
  %2706 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %2705, ptr noundef %57)
  %2707 = icmp eq i32 %2706, -1
  br i1 %2707, label %2708, label %2761

2708:                                             ; preds = %2702
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

2710:                                             ; preds = %2709
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2711 = call ptr @__errno_location() #11
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  store i32 %2712, ptr %60, align 4, !tbaa !5
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = call i32 @s2n_print_stacktrace(ptr noundef %2713)
  %2715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2716 = trunc i8 %2715 to i1
  br i1 %2716, label %2717, label %2739

2717:                                             ; preds = %2710
  %2718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2719 = call i32 @fileno(ptr noundef %2718) #10
  %2720 = call i32 @isatty(i32 noundef %2719) #10
  %2721 = icmp ne i32 %2720, 0
  br i1 %2721, label %2722, label %2739

2722:                                             ; preds = %2717
  %2723 = load i32, ptr %60, align 4, !tbaa !5
  %2724 = call ptr @__errno_location() #11
  store i32 %2723, ptr %2724, align 4, !tbaa !5
  %2725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2726 = load i32, ptr @test_count, align 4, !tbaa !5
  %2727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror(i32 noundef %2728, ptr noundef @.str.4)
  %2730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef @.str.4)
  %2733 = call ptr @__errno_location() #11
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @strerror(i32 noundef %2734) #10
  %2736 = call ptr @__errno_location() #11
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2725, ptr noundef @.str.2, i32 noundef %2726, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 208, ptr noundef %2729, ptr noundef %2732, ptr noundef %2735, i32 noundef %2737) #10
  br label %2756

2739:                                             ; preds = %2717, %2710
  %2740 = load i32, ptr %60, align 4, !tbaa !5
  %2741 = call ptr @__errno_location() #11
  store i32 %2740, ptr %2741, align 4, !tbaa !5
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = load i32, ptr @test_count, align 4, !tbaa !5
  %2744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror(i32 noundef %2745, ptr noundef @.str.4)
  %2747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror_debug(i32 noundef %2748, ptr noundef @.str.4)
  %2750 = call ptr @__errno_location() #11
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @strerror(i32 noundef %2751) #10
  %2753 = call ptr @__errno_location() #11
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2742, ptr noundef @.str.5, i32 noundef %2743, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 208, ptr noundef %2746, ptr noundef %2749, ptr noundef %2752, i32 noundef %2754) #10
  br label %2756

2756:                                             ; preds = %2739, %2722
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

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

2759:                                             ; No predecessors!
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760, %2702
  br label %2762

2762:                                             ; preds = %2761
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

2764:                                             ; preds = %2763
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = load ptr, ptr %55, align 8, !tbaa !9
  %2768 = call i32 @s2n_connection_free(ptr noundef %2767)
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2823

2770:                                             ; preds = %2764
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2773 = call ptr @__errno_location() #11
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  store i32 %2774, ptr %61, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @s2n_print_stacktrace(ptr noundef %2775)
  %2777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2778 = trunc i8 %2777 to i1
  br i1 %2778, label %2779, label %2801

2779:                                             ; preds = %2772
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #10
  %2782 = call i32 @isatty(i32 noundef %2781) #10
  %2783 = icmp ne i32 %2782, 0
  br i1 %2783, label %2784, label %2801

2784:                                             ; preds = %2779
  %2785 = load i32, ptr %61, align 4, !tbaa !5
  %2786 = call ptr @__errno_location() #11
  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() #11
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #10
  %2798 = call ptr @__errno_location() #11
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef @.str.2, i32 noundef %2788, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2791, ptr noundef %2794, ptr noundef %2797, i32 noundef %2799) #10
  br label %2818

2801:                                             ; preds = %2779, %2772
  %2802 = load i32, ptr %61, align 4, !tbaa !5
  %2803 = call ptr @__errno_location() #11
  store i32 %2802, ptr %2803, align 4, !tbaa !5
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = load i32, ptr @test_count, align 4, !tbaa !5
  %2806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror(i32 noundef %2807, ptr noundef @.str.4)
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror_debug(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call ptr @__errno_location() #11
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @strerror(i32 noundef %2813) #10
  %2815 = call ptr @__errno_location() #11
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2804, ptr noundef @.str.5, i32 noundef %2805, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 210, ptr noundef %2808, ptr noundef %2811, ptr noundef %2814, i32 noundef %2816) #10
  br label %2818

2818:                                             ; preds = %2801, %2784
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

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

2821:                                             ; No predecessors!
  br label %2822

2822:                                             ; preds = %2821
  br label %2823

2823:                                             ; preds = %2822, %2764
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824
  %2826 = call i32 @s2n_stuffer_free(ptr noundef %57)
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  store ptr null, ptr %62, align 8, !tbaa !9
  br label %2827

2827:                                             ; preds = %2825
  %2828 = load i32, ptr @test_count, align 4, !tbaa !5
  %2829 = add nsw i32 %2828, 1
  store i32 %2829, ptr @test_count, align 4, !tbaa !5
  %2830 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2830, ptr %62, align 8, !tbaa !9
  %2831 = icmp eq ptr %2830, null
  br i1 %2831, label %2832, label %2885

2832:                                             ; preds = %2827
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

2834:                                             ; preds = %2833
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2835 = call ptr @__errno_location() #11
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  store i32 %2836, ptr %63, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = call i32 @s2n_print_stacktrace(ptr noundef %2837)
  %2839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2840 = trunc i8 %2839 to i1
  br i1 %2840, label %2841, label %2863

2841:                                             ; preds = %2834
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = call i32 @fileno(ptr noundef %2842) #10
  %2844 = call i32 @isatty(i32 noundef %2843) #10
  %2845 = icmp ne i32 %2844, 0
  br i1 %2845, label %2846, label %2863

2846:                                             ; preds = %2841
  %2847 = load i32, ptr %63, align 4, !tbaa !5
  %2848 = call ptr @__errno_location() #11
  store i32 %2847, ptr %2848, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = load i32, ptr @test_count, align 4, !tbaa !5
  %2851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call ptr @s2n_strerror(i32 noundef %2852, ptr noundef @.str.4)
  %2854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror_debug(i32 noundef %2855, ptr noundef @.str.4)
  %2857 = call ptr @__errno_location() #11
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @strerror(i32 noundef %2858) #10
  %2860 = call ptr @__errno_location() #11
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2849, ptr noundef @.str.2, i32 noundef %2850, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2853, ptr noundef %2856, ptr noundef %2859, i32 noundef %2861) #10
  br label %2880

2863:                                             ; preds = %2841, %2834
  %2864 = load i32, ptr %63, align 4, !tbaa !5
  %2865 = call ptr @__errno_location() #11
  store i32 %2864, ptr %2865, align 4, !tbaa !5
  %2866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2867 = load i32, ptr @test_count, align 4, !tbaa !5
  %2868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror(i32 noundef %2869, ptr noundef @.str.4)
  %2871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @s2n_strerror_debug(i32 noundef %2872, ptr noundef @.str.4)
  %2874 = call ptr @__errno_location() #11
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @strerror(i32 noundef %2875) #10
  %2877 = call ptr @__errno_location() #11
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2866, ptr noundef @.str.5, i32 noundef %2867, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2870, ptr noundef %2873, ptr noundef %2876, i32 noundef %2878) #10
  br label %2880

2880:                                             ; preds = %2863, %2846
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2881

2881:                                             ; preds = %2880
  br label %2882

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

2883:                                             ; No predecessors!
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884, %2827
  br label %2886

2886:                                             ; preds = %2885
  br label %2887

2887:                                             ; preds = %2886
  %2888 = load ptr, ptr %62, align 8, !tbaa !9
  %2889 = getelementptr inbounds %struct.s2n_connection, ptr %2888, i32 0, i32 23
  store i8 34, ptr %2889, align 4, !tbaa !43
  %2890 = load ptr, ptr %13, align 8, !tbaa !9
  %2891 = load ptr, ptr %62, align 8, !tbaa !9
  %2892 = getelementptr inbounds %struct.s2n_connection, ptr %2891, i32 0, i32 32
  %2893 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %2892, i32 0, i32 7
  store ptr %2890, ptr %2893, align 8, !tbaa !15
  %2894 = load ptr, ptr %62, align 8, !tbaa !9
  %2895 = getelementptr inbounds %struct.s2n_connection, ptr %2894, i32 0, i32 72
  %2896 = getelementptr inbounds %struct.s2n_x509_validator, ptr %2895, i32 0, i32 2
  store i8 1, ptr %2896, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr %64) #10
  br label %2897

2897:                                             ; preds = %2887
  %2898 = load i32, ptr @test_count, align 4, !tbaa !5
  %2899 = add nsw i32 %2898, 1
  store i32 %2899, ptr @test_count, align 4, !tbaa !5
  %2900 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %64, i32 noundef 0)
  %2901 = icmp eq i32 %2900, -1
  br i1 %2901, label %2902, label %2955

2902:                                             ; preds = %2897
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2905 = call ptr @__errno_location() #11
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  store i32 %2906, ptr %65, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = call i32 @s2n_print_stacktrace(ptr noundef %2907)
  %2909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2910 = trunc i8 %2909 to i1
  br i1 %2910, label %2911, label %2933

2911:                                             ; preds = %2904
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = call i32 @fileno(ptr noundef %2912) #10
  %2914 = call i32 @isatty(i32 noundef %2913) #10
  %2915 = icmp ne i32 %2914, 0
  br i1 %2915, label %2916, label %2933

2916:                                             ; preds = %2911
  %2917 = load i32, ptr %65, align 4, !tbaa !5
  %2918 = call ptr @__errno_location() #11
  store i32 %2917, ptr %2918, align 4, !tbaa !5
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = load i32, ptr @test_count, align 4, !tbaa !5
  %2921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror(i32 noundef %2922, ptr noundef @.str.4)
  %2924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror_debug(i32 noundef %2925, ptr noundef @.str.4)
  %2927 = call ptr @__errno_location() #11
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @strerror(i32 noundef %2928) #10
  %2930 = call ptr @__errno_location() #11
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2919, ptr noundef @.str.2, i32 noundef %2920, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 222, ptr noundef %2923, ptr noundef %2926, ptr noundef %2929, i32 noundef %2931) #10
  br label %2950

2933:                                             ; preds = %2911, %2904
  %2934 = load i32, ptr %65, align 4, !tbaa !5
  %2935 = call ptr @__errno_location() #11
  store i32 %2934, ptr %2935, align 4, !tbaa !5
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = load i32, ptr @test_count, align 4, !tbaa !5
  %2938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call ptr @s2n_strerror(i32 noundef %2939, ptr noundef @.str.4)
  %2941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @s2n_strerror_debug(i32 noundef %2942, ptr noundef @.str.4)
  %2944 = call ptr @__errno_location() #11
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call ptr @strerror(i32 noundef %2945) #10
  %2947 = call ptr @__errno_location() #11
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2936, ptr noundef @.str.5, i32 noundef %2937, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 222, ptr noundef %2940, ptr noundef %2943, ptr noundef %2946, i32 noundef %2948) #10
  br label %2950

2950:                                             ; preds = %2933, %2916
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2951

2951:                                             ; preds = %2950
  br label %2952

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

2953:                                             ; No predecessors!
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954, %2897
  br label %2956

2956:                                             ; preds = %2955
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  %2959 = load i32, ptr @test_count, align 4, !tbaa !5
  %2960 = add nsw i32 %2959, 1
  store i32 %2960, ptr @test_count, align 4, !tbaa !5
  %2961 = load ptr, ptr %62, align 8, !tbaa !9
  %2962 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %2961)
  %2963 = icmp eq i32 %2962, -1
  br i1 %2963, label %2964, label %3017

2964:                                             ; preds = %2958
  br label %2965

2965:                                             ; preds = %2964
  br label %2966

2966:                                             ; preds = %2965
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %2967 = call ptr @__errno_location() #11
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  store i32 %2968, ptr %66, align 4, !tbaa !5
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2970 = call i32 @s2n_print_stacktrace(ptr noundef %2969)
  %2971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2972 = trunc i8 %2971 to i1
  br i1 %2972, label %2973, label %2995

2973:                                             ; preds = %2966
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = call i32 @fileno(ptr noundef %2974) #10
  %2976 = call i32 @isatty(i32 noundef %2975) #10
  %2977 = icmp ne i32 %2976, 0
  br i1 %2977, label %2978, label %2995

2978:                                             ; preds = %2973
  %2979 = load i32, ptr %66, align 4, !tbaa !5
  %2980 = call ptr @__errno_location() #11
  store i32 %2979, ptr %2980, align 4, !tbaa !5
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = load i32, ptr @test_count, align 4, !tbaa !5
  %2983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror(i32 noundef %2984, ptr noundef @.str.4)
  %2986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror_debug(i32 noundef %2987, ptr noundef @.str.4)
  %2989 = call ptr @__errno_location() #11
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @strerror(i32 noundef %2990) #10
  %2992 = call ptr @__errno_location() #11
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2981, ptr noundef @.str.2, i32 noundef %2982, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 224, ptr noundef %2985, ptr noundef %2988, ptr noundef %2991, i32 noundef %2993) #10
  br label %3012

2995:                                             ; preds = %2973, %2966
  %2996 = load i32, ptr %66, align 4, !tbaa !5
  %2997 = call ptr @__errno_location() #11
  store i32 %2996, ptr %2997, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror(i32 noundef %3001, ptr noundef @.str.4)
  %3003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror_debug(i32 noundef %3004, ptr noundef @.str.4)
  %3006 = call ptr @__errno_location() #11
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @strerror(i32 noundef %3007) #10
  %3009 = call ptr @__errno_location() #11
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2998, ptr noundef @.str.5, i32 noundef %2999, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3002, ptr noundef %3005, ptr noundef %3008, i32 noundef %3010) #10
  br label %3012

3012:                                             ; preds = %2995, %2978
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

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

3015:                                             ; No predecessors!
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016, %2958
  br label %3018

3018:                                             ; preds = %3017
  br label %3019

3019:                                             ; preds = %3018
  %3020 = load ptr, ptr %62, align 8, !tbaa !9
  %3021 = getelementptr inbounds %struct.s2n_connection, ptr %3020, i32 0, i32 65
  store i32 1, ptr %3021, align 8, !tbaa !42
  %3022 = load ptr, ptr %62, align 8, !tbaa !9
  %3023 = getelementptr inbounds %struct.s2n_connection, ptr %3022, i32 0, i32 67
  store i32 1, ptr %3023, align 8, !tbaa !49
  br label %3024

3024:                                             ; preds = %3019
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = add nsw i32 %3025, 1
  store i32 %3026, ptr @test_count, align 4, !tbaa !5
  %3027 = load ptr, ptr %62, align 8, !tbaa !9
  %3028 = load ptr, ptr %13, align 8, !tbaa !9
  %3029 = call i32 @s2n_send_cert_chain(ptr noundef %3027, ptr noundef %64, ptr noundef %3028)
  %3030 = icmp eq i32 %3029, -1
  br i1 %3030, label %3031, label %3084

3031:                                             ; preds = %3024
  br label %3032

3032:                                             ; preds = %3031
  br label %3033

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

3040:                                             ; preds = %3033
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @fileno(ptr noundef %3041) #10
  %3043 = call i32 @isatty(i32 noundef %3042) #10
  %3044 = icmp ne i32 %3043, 0
  br i1 %3044, label %3045, label %3062

3045:                                             ; preds = %3040
  %3046 = load i32, ptr %67, align 4, !tbaa !5
  %3047 = call ptr @__errno_location() #11
  store i32 %3046, ptr %3047, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror(i32 noundef %3051, ptr noundef @.str.4)
  %3053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror_debug(i32 noundef %3054, ptr noundef @.str.4)
  %3056 = call ptr @__errno_location() #11
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #10
  %3059 = call ptr @__errno_location() #11
  %3060 = load i32, ptr %3059, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3048, ptr noundef @.str.2, i32 noundef %3049, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3052, ptr noundef %3055, ptr noundef %3058, i32 noundef %3060) #10
  br label %3079

3062:                                             ; preds = %3040, %3033
  %3063 = load i32, ptr %67, align 4, !tbaa !5
  %3064 = call ptr @__errno_location() #11
  store i32 %3063, ptr %3064, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror(i32 noundef %3068, ptr noundef @.str.4)
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror_debug(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call ptr @__errno_location() #11
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @strerror(i32 noundef %3074) #10
  %3076 = call ptr @__errno_location() #11
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef @.str.5, i32 noundef %3066, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3069, ptr noundef %3072, ptr noundef %3075, i32 noundef %3077) #10
  br label %3079

3079:                                             ; preds = %3062, %3045
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

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

3082:                                             ; No predecessors!
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083, %3024
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

3087:                                             ; preds = %3086
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = add nsw i32 %3088, 1
  store i32 %3089, ptr @test_count, align 4, !tbaa !5
  %3090 = load ptr, ptr %62, align 8, !tbaa !9
  %3091 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %3090, ptr noundef %64)
  %3092 = icmp eq i32 %3091, -1
  br i1 %3092, label %3093, label %3146

3093:                                             ; preds = %3087
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

3095:                                             ; preds = %3094
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %3096 = call ptr @__errno_location() #11
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  store i32 %3097, ptr %68, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @s2n_print_stacktrace(ptr noundef %3098)
  %3100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3101 = trunc i8 %3100 to i1
  br i1 %3101, label %3102, label %3124

3102:                                             ; preds = %3095
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @fileno(ptr noundef %3103) #10
  %3105 = call i32 @isatty(i32 noundef %3104) #10
  %3106 = icmp ne i32 %3105, 0
  br i1 %3106, label %3107, label %3124

3107:                                             ; preds = %3102
  %3108 = load i32, ptr %68, align 4, !tbaa !5
  %3109 = call ptr @__errno_location() #11
  store i32 %3108, ptr %3109, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = load i32, ptr @test_count, align 4, !tbaa !5
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror(i32 noundef %3113, ptr noundef @.str.4)
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror_debug(i32 noundef %3116, ptr noundef @.str.4)
  %3118 = call ptr @__errno_location() #11
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @strerror(i32 noundef %3119) #10
  %3121 = call ptr @__errno_location() #11
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3110, ptr noundef @.str.2, i32 noundef %3111, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3114, ptr noundef %3117, ptr noundef %3120, i32 noundef %3122) #10
  br label %3141

3124:                                             ; preds = %3102, %3095
  %3125 = load i32, ptr %68, align 4, !tbaa !5
  %3126 = call ptr @__errno_location() #11
  store i32 %3125, ptr %3126, align 4, !tbaa !5
  %3127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3128 = load i32, ptr @test_count, align 4, !tbaa !5
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror(i32 noundef %3130, ptr noundef @.str.4)
  %3132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror_debug(i32 noundef %3133, ptr noundef @.str.4)
  %3135 = call ptr @__errno_location() #11
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @strerror(i32 noundef %3136) #10
  %3138 = call ptr @__errno_location() #11
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3127, ptr noundef @.str.5, i32 noundef %3128, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 229, ptr noundef %3131, ptr noundef %3134, ptr noundef %3137, i32 noundef %3139) #10
  br label %3141

3141:                                             ; preds = %3124, %3107
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

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

3144:                                             ; No predecessors!
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

3146:                                             ; preds = %3145, %3087
  br label %3147

3147:                                             ; preds = %3146
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = add nsw i32 %3150, 1
  store i32 %3151, ptr @test_count, align 4, !tbaa !5
  %3152 = load ptr, ptr %62, align 8, !tbaa !9
  %3153 = getelementptr inbounds %struct.s2n_connection, ptr %3152, i32 0, i32 66
  %3154 = getelementptr inbounds %struct.s2n_blob, ptr %3153, i32 0, i32 1
  %3155 = load i32, ptr %3154, align 8, !tbaa !50
  %3156 = zext i32 %3155 to i64
  %3157 = icmp eq i64 %3156, 15
  br i1 %3157, label %3211, label %3158

3158:                                             ; preds = %3149
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3161 = call ptr @__errno_location() #11
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  store i32 %3162, ptr %69, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @s2n_print_stacktrace(ptr noundef %3163)
  %3165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3166 = trunc i8 %3165 to i1
  br i1 %3166, label %3167, label %3189

3167:                                             ; preds = %3160
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = call i32 @fileno(ptr noundef %3168) #10
  %3170 = call i32 @isatty(i32 noundef %3169) #10
  %3171 = icmp ne i32 %3170, 0
  br i1 %3171, label %3172, label %3189

3172:                                             ; preds = %3167
  %3173 = load i32, ptr %69, align 4, !tbaa !5
  %3174 = call ptr @__errno_location() #11
  store i32 %3173, ptr %3174, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = load i32, ptr @test_count, align 4, !tbaa !5
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @s2n_strerror(i32 noundef %3178, ptr noundef @.str.4)
  %3180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror_debug(i32 noundef %3181, ptr noundef @.str.4)
  %3183 = call ptr @__errno_location() #11
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call ptr @strerror(i32 noundef %3184) #10
  %3186 = call ptr @__errno_location() #11
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3175, ptr noundef @.str.2, i32 noundef %3176, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 232, ptr noundef %3179, ptr noundef %3182, ptr noundef %3185, i32 noundef %3187) #10
  br label %3206

3189:                                             ; preds = %3167, %3160
  %3190 = load i32, ptr %69, align 4, !tbaa !5
  %3191 = call ptr @__errno_location() #11
  store i32 %3190, ptr %3191, align 4, !tbaa !5
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @s2n_strerror(i32 noundef %3195, ptr noundef @.str.4)
  %3197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @s2n_strerror_debug(i32 noundef %3198, ptr noundef @.str.4)
  %3200 = call ptr @__errno_location() #11
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = call ptr @strerror(i32 noundef %3201) #10
  %3203 = call ptr @__errno_location() #11
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3192, ptr noundef @.str.5, i32 noundef %3193, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 232, ptr noundef %3196, ptr noundef %3199, ptr noundef %3202, i32 noundef %3204) #10
  br label %3206

3206:                                             ; preds = %3189, %3172
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

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

3209:                                             ; No predecessors!
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210, %3149
  br label %3212

3212:                                             ; preds = %3211
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

3215:                                             ; preds = %3214
  %3216 = load i32, ptr @test_count, align 4, !tbaa !5
  %3217 = add nsw i32 %3216, 1
  store i32 %3217, ptr @test_count, align 4, !tbaa !5
  %3218 = load ptr, ptr %62, align 8, !tbaa !9
  %3219 = getelementptr inbounds %struct.s2n_connection, ptr %3218, i32 0, i32 66
  %3220 = getelementptr inbounds %struct.s2n_blob, ptr %3219, i32 0, i32 0
  %3221 = load ptr, ptr %3220, align 8, !tbaa !51
  %3222 = getelementptr inbounds [15 x i8], ptr %16, i64 0, i64 0
  %3223 = call i32 @memcmp(ptr noundef %3221, ptr noundef %3222, i64 noundef 15) #13
  %3224 = icmp eq i32 %3223, 0
  br i1 %3224, label %3278, label %3225

3225:                                             ; preds = %3215
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %3228 = call ptr @__errno_location() #11
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  store i32 %3229, ptr %70, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @s2n_print_stacktrace(ptr noundef %3230)
  %3232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3233 = trunc i8 %3232 to i1
  br i1 %3233, label %3234, label %3256

3234:                                             ; preds = %3227
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @fileno(ptr noundef %3235) #10
  %3237 = call i32 @isatty(i32 noundef %3236) #10
  %3238 = icmp ne i32 %3237, 0
  br i1 %3238, label %3239, label %3256

3239:                                             ; preds = %3234
  %3240 = load i32, ptr %70, align 4, !tbaa !5
  %3241 = call ptr @__errno_location() #11
  store i32 %3240, ptr %3241, align 4, !tbaa !5
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = load i32, ptr @test_count, align 4, !tbaa !5
  %3244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror(i32 noundef %3245, ptr noundef @.str.4)
  %3247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = call ptr @s2n_strerror_debug(i32 noundef %3248, ptr noundef @.str.4)
  %3250 = call ptr @__errno_location() #11
  %3251 = load i32, ptr %3250, align 4, !tbaa !5
  %3252 = call ptr @strerror(i32 noundef %3251) #10
  %3253 = call ptr @__errno_location() #11
  %3254 = load i32, ptr %3253, align 4, !tbaa !5
  %3255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3242, ptr noundef @.str.2, i32 noundef %3243, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3246, ptr noundef %3249, ptr noundef %3252, i32 noundef %3254) #10
  br label %3273

3256:                                             ; preds = %3234, %3227
  %3257 = load i32, ptr %70, align 4, !tbaa !5
  %3258 = call ptr @__errno_location() #11
  store i32 %3257, ptr %3258, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror(i32 noundef %3262, ptr noundef @.str.4)
  %3264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror_debug(i32 noundef %3265, ptr noundef @.str.4)
  %3267 = call ptr @__errno_location() #11
  %3268 = load i32, ptr %3267, align 4, !tbaa !5
  %3269 = call ptr @strerror(i32 noundef %3268) #10
  %3270 = call ptr @__errno_location() #11
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3259, ptr noundef @.str.5, i32 noundef %3260, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3263, ptr noundef %3266, ptr noundef %3269, i32 noundef %3271) #10
  br label %3273

3273:                                             ; preds = %3256, %3239
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3274

3274:                                             ; preds = %3273
  br label %3275

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

3276:                                             ; No predecessors!
  br label %3277

3277:                                             ; preds = %3276
  br label %3278

3278:                                             ; preds = %3277, %3215
  br label %3279

3279:                                             ; preds = %3278
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

3282:                                             ; preds = %3281
  br label %3283

3283:                                             ; preds = %3282
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = add nsw i32 %3284, 1
  store i32 %3285, ptr @test_count, align 4, !tbaa !5
  %3286 = load ptr, ptr %62, align 8, !tbaa !9
  %3287 = getelementptr inbounds %struct.s2n_connection, ptr %3286, i32 0, i32 68
  %3288 = getelementptr inbounds %struct.s2n_blob, ptr %3287, i32 0, i32 1
  %3289 = load i32, ptr %3288, align 8, !tbaa !52
  %3290 = zext i32 %3289 to i64
  %3291 = icmp eq i64 %3290, 15
  br i1 %3291, label %3345, label %3292

3292:                                             ; preds = %3283
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3295 = call ptr @__errno_location() #11
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  store i32 %3296, ptr %71, align 4, !tbaa !5
  %3297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3298 = call i32 @s2n_print_stacktrace(ptr noundef %3297)
  %3299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3300 = trunc i8 %3299 to i1
  br i1 %3300, label %3301, label %3323

3301:                                             ; preds = %3294
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = call i32 @fileno(ptr noundef %3302) #10
  %3304 = call i32 @isatty(i32 noundef %3303) #10
  %3305 = icmp ne i32 %3304, 0
  br i1 %3305, label %3306, label %3323

3306:                                             ; preds = %3301
  %3307 = load i32, ptr %71, align 4, !tbaa !5
  %3308 = call ptr @__errno_location() #11
  store i32 %3307, ptr %3308, align 4, !tbaa !5
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror(i32 noundef %3312, ptr noundef @.str.4)
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror_debug(i32 noundef %3315, ptr noundef @.str.4)
  %3317 = call ptr @__errno_location() #11
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call ptr @strerror(i32 noundef %3318) #10
  %3320 = call ptr @__errno_location() #11
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3309, ptr noundef @.str.2, i32 noundef %3310, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3313, ptr noundef %3316, ptr noundef %3319, i32 noundef %3321) #10
  br label %3340

3323:                                             ; preds = %3301, %3294
  %3324 = load i32, ptr %71, align 4, !tbaa !5
  %3325 = call ptr @__errno_location() #11
  store i32 %3324, ptr %3325, align 4, !tbaa !5
  %3326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3327 = load i32, ptr @test_count, align 4, !tbaa !5
  %3328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror(i32 noundef %3329, ptr noundef @.str.4)
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror_debug(i32 noundef %3332, ptr noundef @.str.4)
  %3334 = call ptr @__errno_location() #11
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @strerror(i32 noundef %3335) #10
  %3337 = call ptr @__errno_location() #11
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3326, ptr noundef @.str.5, i32 noundef %3327, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3330, ptr noundef %3333, ptr noundef %3336, i32 noundef %3338) #10
  br label %3340

3340:                                             ; preds = %3323, %3306
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

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

3343:                                             ; No predecessors!
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

3345:                                             ; preds = %3344, %3283
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = add nsw i32 %3350, 1
  store i32 %3351, ptr @test_count, align 4, !tbaa !5
  %3352 = load ptr, ptr %62, align 8, !tbaa !9
  %3353 = getelementptr inbounds %struct.s2n_connection, ptr %3352, i32 0, i32 68
  %3354 = getelementptr inbounds %struct.s2n_blob, ptr %3353, i32 0, i32 0
  %3355 = load ptr, ptr %3354, align 8, !tbaa !53
  %3356 = getelementptr inbounds [15 x i8], ptr %16, i64 0, i64 0
  %3357 = call i32 @memcmp(ptr noundef %3355, ptr noundef %3356, i64 noundef 15) #13
  %3358 = icmp eq i32 %3357, 0
  br i1 %3358, label %3412, label %3359

3359:                                             ; preds = %3349
  br label %3360

3360:                                             ; preds = %3359
  br label %3361

3361:                                             ; preds = %3360
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3362 = call ptr @__errno_location() #11
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  store i32 %3363, ptr %72, align 4, !tbaa !5
  %3364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3365 = call i32 @s2n_print_stacktrace(ptr noundef %3364)
  %3366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3367 = trunc i8 %3366 to i1
  br i1 %3367, label %3368, label %3390

3368:                                             ; preds = %3361
  %3369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3370 = call i32 @fileno(ptr noundef %3369) #10
  %3371 = call i32 @isatty(i32 noundef %3370) #10
  %3372 = icmp ne i32 %3371, 0
  br i1 %3372, label %3373, label %3390

3373:                                             ; preds = %3368
  %3374 = load i32, ptr %72, align 4, !tbaa !5
  %3375 = call ptr @__errno_location() #11
  store i32 %3374, ptr %3375, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3379 = load i32, ptr %3378, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror(i32 noundef %3379, ptr noundef @.str.4)
  %3381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3382 = load i32, ptr %3381, align 4, !tbaa !5
  %3383 = call ptr @s2n_strerror_debug(i32 noundef %3382, ptr noundef @.str.4)
  %3384 = call ptr @__errno_location() #11
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @strerror(i32 noundef %3385) #10
  %3387 = call ptr @__errno_location() #11
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef @.str.2, i32 noundef %3377, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3380, ptr noundef %3383, ptr noundef %3386, i32 noundef %3388) #10
  br label %3407

3390:                                             ; preds = %3368, %3361
  %3391 = load i32, ptr %72, align 4, !tbaa !5
  %3392 = call ptr @__errno_location() #11
  store i32 %3391, ptr %3392, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = call ptr @s2n_strerror(i32 noundef %3396, ptr noundef @.str.4)
  %3398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3399 = load i32, ptr %3398, align 4, !tbaa !5
  %3400 = call ptr @s2n_strerror_debug(i32 noundef %3399, ptr noundef @.str.4)
  %3401 = call ptr @__errno_location() #11
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @strerror(i32 noundef %3402) #10
  %3404 = call ptr @__errno_location() #11
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3393, ptr noundef @.str.5, i32 noundef %3394, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 237, ptr noundef %3397, ptr noundef %3400, ptr noundef %3403, i32 noundef %3405) #10
  br label %3407

3407:                                             ; preds = %3390, %3373
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

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

3410:                                             ; No predecessors!
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411, %3349
  br label %3413

3413:                                             ; preds = %3412
  br label %3414

3414:                                             ; preds = %3413
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415
  br label %3417

3417:                                             ; preds = %3416
  %3418 = load i32, ptr @test_count, align 4, !tbaa !5
  %3419 = add nsw i32 %3418, 1
  store i32 %3419, ptr @test_count, align 4, !tbaa !5
  %3420 = load ptr, ptr %62, align 8, !tbaa !9
  %3421 = call i32 @s2n_connection_free(ptr noundef %3420)
  %3422 = icmp eq i32 %3421, -1
  br i1 %3422, label %3423, label %3476

3423:                                             ; preds = %3417
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

3425:                                             ; preds = %3424
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %3426 = call ptr @__errno_location() #11
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  store i32 %3427, ptr %73, align 4, !tbaa !5
  %3428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3429 = call i32 @s2n_print_stacktrace(ptr noundef %3428)
  %3430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3431 = trunc i8 %3430 to i1
  br i1 %3431, label %3432, label %3454

3432:                                             ; preds = %3425
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = call i32 @fileno(ptr noundef %3433) #10
  %3435 = call i32 @isatty(i32 noundef %3434) #10
  %3436 = icmp ne i32 %3435, 0
  br i1 %3436, label %3437, label %3454

3437:                                             ; preds = %3432
  %3438 = load i32, ptr %73, align 4, !tbaa !5
  %3439 = call ptr @__errno_location() #11
  store i32 %3438, ptr %3439, align 4, !tbaa !5
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror(i32 noundef %3443, ptr noundef @.str.4)
  %3445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror_debug(i32 noundef %3446, ptr noundef @.str.4)
  %3448 = call ptr @__errno_location() #11
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call ptr @strerror(i32 noundef %3449) #10
  %3451 = call ptr @__errno_location() #11
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  %3453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3440, ptr noundef @.str.2, i32 noundef %3441, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 239, ptr noundef %3444, ptr noundef %3447, ptr noundef %3450, i32 noundef %3452) #10
  br label %3471

3454:                                             ; preds = %3432, %3425
  %3455 = load i32, ptr %73, align 4, !tbaa !5
  %3456 = call ptr @__errno_location() #11
  store i32 %3455, ptr %3456, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @s2n_strerror(i32 noundef %3460, ptr noundef @.str.4)
  %3462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call ptr @s2n_strerror_debug(i32 noundef %3463, ptr noundef @.str.4)
  %3465 = call ptr @__errno_location() #11
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @strerror(i32 noundef %3466) #10
  %3468 = call ptr @__errno_location() #11
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef @.str.5, i32 noundef %3458, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 239, ptr noundef %3461, ptr noundef %3464, ptr noundef %3467, i32 noundef %3469) #10
  br label %3471

3471:                                             ; preds = %3454, %3437
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

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

3474:                                             ; No predecessors!
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475, %3417
  br label %3477

3477:                                             ; preds = %3476
  br label %3478

3478:                                             ; preds = %3477
  %3479 = call i32 @s2n_stuffer_free(ptr noundef %64)
  call void @llvm.lifetime.end.p0(i64 40, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  store ptr null, ptr %74, align 8, !tbaa !9
  br label %3480

3480:                                             ; preds = %3478
  %3481 = load ptr, ptr %13, align 8, !tbaa !9
  %3482 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef %74, ptr noundef %3481)
  %3483 = icmp sgt i32 %3482, -1
  br i1 %3483, label %3485, label %3484

3484:                                             ; preds = %3480
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %4650

3485:                                             ; preds = %3480
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486
  call void @llvm.lifetime.start.p0(i64 40, ptr %76) #10
  br label %3488

3488:                                             ; preds = %3487
  %3489 = load i32, ptr @test_count, align 4, !tbaa !5
  %3490 = add nsw i32 %3489, 1
  store i32 %3490, ptr @test_count, align 4, !tbaa !5
  %3491 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %76, i32 noundef 0)
  %3492 = icmp eq i32 %3491, -1
  br i1 %3492, label %3493, label %3546

3493:                                             ; preds = %3488
  br label %3494

3494:                                             ; preds = %3493
  br label %3495

3495:                                             ; preds = %3494
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3496 = call ptr @__errno_location() #11
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  store i32 %3497, ptr %77, align 4, !tbaa !5
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = call i32 @s2n_print_stacktrace(ptr noundef %3498)
  %3500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3501 = trunc i8 %3500 to i1
  br i1 %3501, label %3502, label %3524

3502:                                             ; preds = %3495
  %3503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3504 = call i32 @fileno(ptr noundef %3503) #10
  %3505 = call i32 @isatty(i32 noundef %3504) #10
  %3506 = icmp ne i32 %3505, 0
  br i1 %3506, label %3507, label %3524

3507:                                             ; preds = %3502
  %3508 = load i32, ptr %77, align 4, !tbaa !5
  %3509 = call ptr @__errno_location() #11
  store i32 %3508, ptr %3509, align 4, !tbaa !5
  %3510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3511 = load i32, ptr @test_count, align 4, !tbaa !5
  %3512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror(i32 noundef %3513, ptr noundef @.str.4)
  %3515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror_debug(i32 noundef %3516, ptr noundef @.str.4)
  %3518 = call ptr @__errno_location() #11
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call ptr @strerror(i32 noundef %3519) #10
  %3521 = call ptr @__errno_location() #11
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3510, ptr noundef @.str.2, i32 noundef %3511, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3514, ptr noundef %3517, ptr noundef %3520, i32 noundef %3522) #10
  br label %3541

3524:                                             ; preds = %3502, %3495
  %3525 = load i32, ptr %77, align 4, !tbaa !5
  %3526 = call ptr @__errno_location() #11
  store i32 %3525, ptr %3526, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = load i32, ptr @test_count, align 4, !tbaa !5
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror(i32 noundef %3530, ptr noundef @.str.4)
  %3532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror_debug(i32 noundef %3533, ptr noundef @.str.4)
  %3535 = call ptr @__errno_location() #11
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @strerror(i32 noundef %3536) #10
  %3538 = call ptr @__errno_location() #11
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3527, ptr noundef @.str.5, i32 noundef %3528, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 251, ptr noundef %3531, ptr noundef %3534, ptr noundef %3537, i32 noundef %3539) #10
  br label %3541

3541:                                             ; preds = %3524, %3507
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

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

3544:                                             ; No predecessors!
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

3546:                                             ; preds = %3545, %3488
  br label %3547

3547:                                             ; preds = %3546
  br label %3548

3548:                                             ; preds = %3547
  call void @llvm.lifetime.start.p0(i64 16, ptr %78) #10
  call void @llvm.memset.p0.i64(ptr align 8 %78, i8 0, i64 16, i1 false)
  br label %3549

3549:                                             ; preds = %3548
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = add nsw i32 %3550, 1
  store i32 %3551, ptr @test_count, align 4, !tbaa !5
  %3552 = call i32 @s2n_stuffer_reserve_uint24(ptr noundef %76, ptr noundef %78)
  %3553 = icmp eq i32 %3552, -1
  br i1 %3553, label %3554, label %3607

3554:                                             ; preds = %3549
  br label %3555

3555:                                             ; preds = %3554
  br label %3556

3556:                                             ; preds = %3555
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3557 = call ptr @__errno_location() #11
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  store i32 %3558, ptr %79, align 4, !tbaa !5
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = call i32 @s2n_print_stacktrace(ptr noundef %3559)
  %3561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3562 = trunc i8 %3561 to i1
  br i1 %3562, label %3563, label %3585

3563:                                             ; preds = %3556
  %3564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3565 = call i32 @fileno(ptr noundef %3564) #10
  %3566 = call i32 @isatty(i32 noundef %3565) #10
  %3567 = icmp ne i32 %3566, 0
  br i1 %3567, label %3568, label %3585

3568:                                             ; preds = %3563
  %3569 = load i32, ptr %79, align 4, !tbaa !5
  %3570 = call ptr @__errno_location() #11
  store i32 %3569, ptr %3570, align 4, !tbaa !5
  %3571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3572 = load i32, ptr @test_count, align 4, !tbaa !5
  %3573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call ptr @s2n_strerror(i32 noundef %3574, ptr noundef @.str.4)
  %3576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call ptr @s2n_strerror_debug(i32 noundef %3577, ptr noundef @.str.4)
  %3579 = call ptr @__errno_location() #11
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call ptr @strerror(i32 noundef %3580) #10
  %3582 = call ptr @__errno_location() #11
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3571, ptr noundef @.str.2, i32 noundef %3572, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 254, ptr noundef %3575, ptr noundef %3578, ptr noundef %3581, i32 noundef %3583) #10
  br label %3602

3585:                                             ; preds = %3563, %3556
  %3586 = load i32, ptr %79, align 4, !tbaa !5
  %3587 = call ptr @__errno_location() #11
  store i32 %3586, ptr %3587, align 4, !tbaa !5
  %3588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror(i32 noundef %3591, ptr noundef @.str.4)
  %3593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror_debug(i32 noundef %3594, ptr noundef @.str.4)
  %3596 = call ptr @__errno_location() #11
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @strerror(i32 noundef %3597) #10
  %3599 = call ptr @__errno_location() #11
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3588, ptr noundef @.str.5, i32 noundef %3589, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 254, ptr noundef %3592, ptr noundef %3595, ptr noundef %3598, i32 noundef %3600) #10
  br label %3602

3602:                                             ; preds = %3585, %3568
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

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

3605:                                             ; No predecessors!
  br label %3606

3606:                                             ; preds = %3605
  br label %3607

3607:                                             ; preds = %3606, %3549
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

3610:                                             ; preds = %3609
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = add nsw i32 %3611, 1
  store i32 %3612, ptr @test_count, align 4, !tbaa !5
  %3613 = load ptr, ptr %13, align 8, !tbaa !9
  %3614 = call i32 @s2n_write_test_cert(ptr noundef %76, ptr noundef %3613)
  %3615 = icmp eq i32 %3614, -1
  br i1 %3615, label %3616, label %3669

3616:                                             ; preds = %3610
  br label %3617

3617:                                             ; preds = %3616
  br label %3618

3618:                                             ; preds = %3617
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3619 = call ptr @__errno_location() #11
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  store i32 %3620, ptr %80, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = call i32 @s2n_print_stacktrace(ptr noundef %3621)
  %3623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3624 = trunc i8 %3623 to i1
  br i1 %3624, label %3625, label %3647

3625:                                             ; preds = %3618
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = call i32 @fileno(ptr noundef %3626) #10
  %3628 = call i32 @isatty(i32 noundef %3627) #10
  %3629 = icmp ne i32 %3628, 0
  br i1 %3629, label %3630, label %3647

3630:                                             ; preds = %3625
  %3631 = load i32, ptr %80, align 4, !tbaa !5
  %3632 = call ptr @__errno_location() #11
  store i32 %3631, ptr %3632, align 4, !tbaa !5
  %3633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3634 = load i32, ptr @test_count, align 4, !tbaa !5
  %3635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call ptr @s2n_strerror(i32 noundef %3636, ptr noundef @.str.4)
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror_debug(i32 noundef %3639, ptr noundef @.str.4)
  %3641 = call ptr @__errno_location() #11
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @strerror(i32 noundef %3642) #10
  %3644 = call ptr @__errno_location() #11
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3633, ptr noundef @.str.2, i32 noundef %3634, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 255, ptr noundef %3637, ptr noundef %3640, ptr noundef %3643, i32 noundef %3645) #10
  br label %3664

3647:                                             ; preds = %3625, %3618
  %3648 = load i32, ptr %80, align 4, !tbaa !5
  %3649 = call ptr @__errno_location() #11
  store i32 %3648, ptr %3649, align 4, !tbaa !5
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror(i32 noundef %3653, ptr noundef @.str.4)
  %3655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror_debug(i32 noundef %3656, ptr noundef @.str.4)
  %3658 = call ptr @__errno_location() #11
  %3659 = load i32, ptr %3658, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #10
  %3661 = call ptr @__errno_location() #11
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3650, ptr noundef @.str.5, i32 noundef %3651, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 255, ptr noundef %3654, ptr noundef %3657, ptr noundef %3660, i32 noundef %3662) #10
  br label %3664

3664:                                             ; preds = %3647, %3630
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

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

3667:                                             ; No predecessors!
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668, %3610
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671
  %3673 = load i32, ptr @test_count, align 4, !tbaa !5
  %3674 = add nsw i32 %3673, 1
  store i32 %3674, ptr @test_count, align 4, !tbaa !5
  %3675 = load ptr, ptr %74, align 8, !tbaa !9
  %3676 = call i32 @s2n_extension_list_send(i32 noundef 6, ptr noundef %3675, ptr noundef %76)
  %3677 = icmp eq i32 %3676, -1
  br i1 %3677, label %3678, label %3731

3678:                                             ; preds = %3672
  br label %3679

3679:                                             ; preds = %3678
  br label %3680

3680:                                             ; preds = %3679
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3681 = call ptr @__errno_location() #11
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  store i32 %3682, ptr %81, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = call i32 @s2n_print_stacktrace(ptr noundef %3683)
  %3685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3686 = trunc i8 %3685 to i1
  br i1 %3686, label %3687, label %3709

3687:                                             ; preds = %3680
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @fileno(ptr noundef %3688) #10
  %3690 = call i32 @isatty(i32 noundef %3689) #10
  %3691 = icmp ne i32 %3690, 0
  br i1 %3691, label %3692, label %3709

3692:                                             ; preds = %3687
  %3693 = load i32, ptr %81, align 4, !tbaa !5
  %3694 = call ptr @__errno_location() #11
  store i32 %3693, ptr %3694, align 4, !tbaa !5
  %3695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3696 = load i32, ptr @test_count, align 4, !tbaa !5
  %3697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror(i32 noundef %3698, ptr noundef @.str.4)
  %3700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror_debug(i32 noundef %3701, ptr noundef @.str.4)
  %3703 = call ptr @__errno_location() #11
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @strerror(i32 noundef %3704) #10
  %3706 = call ptr @__errno_location() #11
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3695, ptr noundef @.str.2, i32 noundef %3696, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 256, ptr noundef %3699, ptr noundef %3702, ptr noundef %3705, i32 noundef %3707) #10
  br label %3726

3709:                                             ; preds = %3687, %3680
  %3710 = load i32, ptr %81, align 4, !tbaa !5
  %3711 = call ptr @__errno_location() #11
  store i32 %3710, ptr %3711, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call ptr @s2n_strerror(i32 noundef %3715, ptr noundef @.str.4)
  %3717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @s2n_strerror_debug(i32 noundef %3718, ptr noundef @.str.4)
  %3720 = call ptr @__errno_location() #11
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @strerror(i32 noundef %3721) #10
  %3723 = call ptr @__errno_location() #11
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3712, ptr noundef @.str.5, i32 noundef %3713, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 256, ptr noundef %3716, ptr noundef %3719, ptr noundef %3722, i32 noundef %3724) #10
  br label %3726

3726:                                             ; preds = %3709, %3692
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

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

3729:                                             ; No predecessors!
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

3731:                                             ; preds = %3730, %3672
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

3734:                                             ; preds = %3733
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = add nsw i32 %3735, 1
  store i32 %3736, ptr @test_count, align 4, !tbaa !5
  %3737 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %78)
  %3738 = icmp eq i32 %3737, -1
  br i1 %3738, label %3739, label %3792

3739:                                             ; preds = %3734
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

3741:                                             ; preds = %3740
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3742 = call ptr @__errno_location() #11
  %3743 = load i32, ptr %3742, align 4, !tbaa !5
  store i32 %3743, ptr %82, align 4, !tbaa !5
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = call i32 @s2n_print_stacktrace(ptr noundef %3744)
  %3746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3747 = trunc i8 %3746 to i1
  br i1 %3747, label %3748, label %3770

3748:                                             ; preds = %3741
  %3749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3750 = call i32 @fileno(ptr noundef %3749) #10
  %3751 = call i32 @isatty(i32 noundef %3750) #10
  %3752 = icmp ne i32 %3751, 0
  br i1 %3752, label %3753, label %3770

3753:                                             ; preds = %3748
  %3754 = load i32, ptr %82, align 4, !tbaa !5
  %3755 = call ptr @__errno_location() #11
  store i32 %3754, ptr %3755, align 4, !tbaa !5
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror(i32 noundef %3759, ptr noundef @.str.4)
  %3761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3762 = load i32, ptr %3761, align 4, !tbaa !5
  %3763 = call ptr @s2n_strerror_debug(i32 noundef %3762, ptr noundef @.str.4)
  %3764 = call ptr @__errno_location() #11
  %3765 = load i32, ptr %3764, align 4, !tbaa !5
  %3766 = call ptr @strerror(i32 noundef %3765) #10
  %3767 = call ptr @__errno_location() #11
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  %3769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3756, ptr noundef @.str.2, i32 noundef %3757, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3760, ptr noundef %3763, ptr noundef %3766, i32 noundef %3768) #10
  br label %3787

3770:                                             ; preds = %3748, %3741
  %3771 = load i32, ptr %82, align 4, !tbaa !5
  %3772 = call ptr @__errno_location() #11
  store i32 %3771, ptr %3772, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = load i32, ptr @test_count, align 4, !tbaa !5
  %3775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  %3777 = call ptr @s2n_strerror(i32 noundef %3776, ptr noundef @.str.4)
  %3778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3779 = load i32, ptr %3778, align 4, !tbaa !5
  %3780 = call ptr @s2n_strerror_debug(i32 noundef %3779, ptr noundef @.str.4)
  %3781 = call ptr @__errno_location() #11
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @strerror(i32 noundef %3782) #10
  %3784 = call ptr @__errno_location() #11
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3773, ptr noundef @.str.5, i32 noundef %3774, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3777, ptr noundef %3780, ptr noundef %3783, i32 noundef %3785) #10
  br label %3787

3787:                                             ; preds = %3770, %3753
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3788

3788:                                             ; preds = %3787
  br label %3789

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

3790:                                             ; No predecessors!
  br label %3791

3791:                                             ; preds = %3790
  br label %3792

3792:                                             ; preds = %3791, %3734
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

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

3795:                                             ; preds = %3794
  %3796 = load ptr, ptr %13, align 8, !tbaa !9
  %3797 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef %83, ptr noundef %3796)
  %3798 = icmp sgt i32 %3797, -1
  br i1 %3798, label %3800, label %3799

3799:                                             ; preds = %3795
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %4251

3800:                                             ; preds = %3795
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802
  %3804 = load i32, ptr @test_count, align 4, !tbaa !5
  %3805 = add nsw i32 %3804, 1
  store i32 %3805, ptr @test_count, align 4, !tbaa !5
  %3806 = call i32 @s2n_stuffer_reread(ptr noundef %76)
  %3807 = icmp eq i32 %3806, -1
  br i1 %3807, label %3808, label %3861

3808:                                             ; preds = %3803
  br label %3809

3809:                                             ; preds = %3808
  br label %3810

3810:                                             ; preds = %3809
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3811 = call ptr @__errno_location() #11
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  store i32 %3812, ptr %84, align 4, !tbaa !5
  %3813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3814 = call i32 @s2n_print_stacktrace(ptr noundef %3813)
  %3815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3816 = trunc i8 %3815 to i1
  br i1 %3816, label %3817, label %3839

3817:                                             ; preds = %3810
  %3818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3819 = call i32 @fileno(ptr noundef %3818) #10
  %3820 = call i32 @isatty(i32 noundef %3819) #10
  %3821 = icmp ne i32 %3820, 0
  br i1 %3821, label %3822, label %3839

3822:                                             ; preds = %3817
  %3823 = load i32, ptr %84, align 4, !tbaa !5
  %3824 = call ptr @__errno_location() #11
  store i32 %3823, ptr %3824, align 4, !tbaa !5
  %3825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3828 = load i32, ptr %3827, align 4, !tbaa !5
  %3829 = call ptr @s2n_strerror(i32 noundef %3828, ptr noundef @.str.4)
  %3830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3831 = load i32, ptr %3830, align 4, !tbaa !5
  %3832 = call ptr @s2n_strerror_debug(i32 noundef %3831, ptr noundef @.str.4)
  %3833 = call ptr @__errno_location() #11
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @strerror(i32 noundef %3834) #10
  %3836 = call ptr @__errno_location() #11
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3825, ptr noundef @.str.2, i32 noundef %3826, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 264, ptr noundef %3829, ptr noundef %3832, ptr noundef %3835, i32 noundef %3837) #10
  br label %3856

3839:                                             ; preds = %3817, %3810
  %3840 = load i32, ptr %84, align 4, !tbaa !5
  %3841 = call ptr @__errno_location() #11
  store i32 %3840, ptr %3841, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = load i32, ptr @test_count, align 4, !tbaa !5
  %3844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror(i32 noundef %3845, ptr noundef @.str.4)
  %3847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call ptr @s2n_strerror_debug(i32 noundef %3848, ptr noundef @.str.4)
  %3850 = call ptr @__errno_location() #11
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @strerror(i32 noundef %3851) #10
  %3853 = call ptr @__errno_location() #11
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3842, ptr noundef @.str.5, i32 noundef %3843, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 264, ptr noundef %3846, ptr noundef %3849, ptr noundef %3852, i32 noundef %3854) #10
  br label %3856

3856:                                             ; preds = %3839, %3822
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

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

3859:                                             ; No predecessors!
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860, %3803
  br label %3862

3862:                                             ; preds = %3861
  br label %3863

3863:                                             ; preds = %3862
  %3864 = load ptr, ptr %83, align 8, !tbaa !9
  %3865 = getelementptr inbounds %struct.s2n_connection, ptr %3864, i32 0, i32 23
  store i8 33, ptr %3865, align 4, !tbaa !43
  br label %3866

3866:                                             ; preds = %3863
  br label %3867

3867:                                             ; preds = %3866
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = add nsw i32 %3868, 1
  store i32 %3869, ptr @test_count, align 4, !tbaa !5
  %3870 = load ptr, ptr %83, align 8, !tbaa !9
  %3871 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %3870, ptr noundef %76)
  %3872 = icmp eq i32 %3871, -1
  br i1 %3872, label %3926, label %3873

3873:                                             ; preds = %3867
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %3876 = call ptr @__errno_location() #11
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  store i32 %3877, ptr %85, align 4, !tbaa !5
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @s2n_print_stacktrace(ptr noundef %3878)
  %3880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3881 = trunc i8 %3880 to i1
  br i1 %3881, label %3882, label %3904

3882:                                             ; preds = %3875
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = call i32 @fileno(ptr noundef %3883) #10
  %3885 = call i32 @isatty(i32 noundef %3884) #10
  %3886 = icmp ne i32 %3885, 0
  br i1 %3886, label %3887, label %3904

3887:                                             ; preds = %3882
  %3888 = load i32, ptr %85, align 4, !tbaa !5
  %3889 = call ptr @__errno_location() #11
  store i32 %3888, ptr %3889, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror(i32 noundef %3893, ptr noundef @.str.4)
  %3895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror_debug(i32 noundef %3896, ptr noundef @.str.4)
  %3898 = call ptr @__errno_location() #11
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @strerror(i32 noundef %3899) #10
  %3901 = call ptr @__errno_location() #11
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef @.str.2, i32 noundef %3891, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 267, ptr noundef %3894, ptr noundef %3897, ptr noundef %3900, i32 noundef %3902) #10
  br label %3921

3904:                                             ; preds = %3882, %3875
  %3905 = load i32, ptr %85, align 4, !tbaa !5
  %3906 = call ptr @__errno_location() #11
  store i32 %3905, ptr %3906, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = load i32, ptr @test_count, align 4, !tbaa !5
  %3909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror(i32 noundef %3910, ptr noundef @.str.4)
  %3912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @s2n_strerror_debug(i32 noundef %3913, ptr noundef @.str.4)
  %3915 = call ptr @__errno_location() #11
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @strerror(i32 noundef %3916) #10
  %3918 = call ptr @__errno_location() #11
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3907, ptr noundef @.str.5, i32 noundef %3908, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 267, ptr noundef %3911, ptr noundef %3914, ptr noundef %3917, i32 noundef %3919) #10
  br label %3921

3921:                                             ; preds = %3904, %3887
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

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

3924:                                             ; No predecessors!
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925, %3867
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = add nsw i32 %3930, 1
  store i32 %3931, ptr @test_count, align 4, !tbaa !5
  %3932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3933 = load i32, ptr %3932, align 4, !tbaa !5
  %3934 = icmp eq i32 %3933, 0
  br i1 %3934, label %3935, label %3988

3935:                                             ; preds = %3929
  br label %3936

3936:                                             ; preds = %3935
  br label %3937

3937:                                             ; preds = %3936
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %3938 = call ptr @__errno_location() #11
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  store i32 %3939, ptr %86, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @s2n_print_stacktrace(ptr noundef %3940)
  %3942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3943 = trunc i8 %3942 to i1
  br i1 %3943, label %3944, label %3966

3944:                                             ; preds = %3937
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = call i32 @fileno(ptr noundef %3945) #10
  %3947 = call i32 @isatty(i32 noundef %3946) #10
  %3948 = icmp ne i32 %3947, 0
  br i1 %3948, label %3949, label %3966

3949:                                             ; preds = %3944
  %3950 = load i32, ptr %86, align 4, !tbaa !5
  %3951 = call ptr @__errno_location() #11
  store i32 %3950, ptr %3951, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror_debug(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call ptr @__errno_location() #11
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #10
  %3963 = call ptr @__errno_location() #11
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef @.str.2, i32 noundef %3953, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 267, ptr noundef %3956, ptr noundef %3959, ptr noundef %3962, i32 noundef %3964) #10
  br label %3983

3966:                                             ; preds = %3944, %3937
  %3967 = load i32, ptr %86, align 4, !tbaa !5
  %3968 = call ptr @__errno_location() #11
  store i32 %3967, ptr %3968, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = load i32, ptr @test_count, align 4, !tbaa !5
  %3971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror(i32 noundef %3972, ptr noundef @.str.4)
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror_debug(i32 noundef %3975, ptr noundef @.str.4)
  %3977 = call ptr @__errno_location() #11
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #10
  %3980 = call ptr @__errno_location() #11
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3969, ptr noundef @.str.5, i32 noundef %3970, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 267, ptr noundef %3973, ptr noundef %3976, ptr noundef %3979, i32 noundef %3981) #10
  br label %3983

3983:                                             ; preds = %3966, %3949
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

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

3986:                                             ; No predecessors!
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987, %3929
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

3991:                                             ; preds = %3990
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3995 = load i32, ptr %3994, align 4, !tbaa !5
  %3996 = call ptr @s2n_strerror_debug(i32 noundef %3995, ptr noundef @.str.4)
  %3997 = icmp eq ptr %3996, null
  br i1 %3997, label %3998, label %4051

3998:                                             ; preds = %3991
  br label %3999

3999:                                             ; preds = %3998
  br label %4000

4000:                                             ; preds = %3999
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %4001 = call ptr @__errno_location() #11
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  store i32 %4002, ptr %87, align 4, !tbaa !5
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = call i32 @s2n_print_stacktrace(ptr noundef %4003)
  %4005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4006 = trunc i8 %4005 to i1
  br i1 %4006, label %4007, label %4029

4007:                                             ; preds = %4000
  %4008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4009 = call i32 @fileno(ptr noundef %4008) #10
  %4010 = call i32 @isatty(i32 noundef %4009) #10
  %4011 = icmp ne i32 %4010, 0
  br i1 %4011, label %4012, label %4029

4012:                                             ; preds = %4007
  %4013 = load i32, ptr %87, align 4, !tbaa !5
  %4014 = call ptr @__errno_location() #11
  store i32 %4013, ptr %4014, align 4, !tbaa !5
  %4015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4016 = load i32, ptr @test_count, align 4, !tbaa !5
  %4017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4018 = load i32, ptr %4017, align 4, !tbaa !5
  %4019 = call ptr @s2n_strerror(i32 noundef %4018, ptr noundef @.str.4)
  %4020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call ptr @s2n_strerror_debug(i32 noundef %4021, ptr noundef @.str.4)
  %4023 = call ptr @__errno_location() #11
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @strerror(i32 noundef %4024) #10
  %4026 = call ptr @__errno_location() #11
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4015, ptr noundef @.str.2, i32 noundef %4016, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 267, ptr noundef %4019, ptr noundef %4022, ptr noundef %4025, i32 noundef %4027) #10
  br label %4046

4029:                                             ; preds = %4007, %4000
  %4030 = load i32, ptr %87, align 4, !tbaa !5
  %4031 = call ptr @__errno_location() #11
  store i32 %4030, ptr %4031, align 4, !tbaa !5
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = load i32, ptr @test_count, align 4, !tbaa !5
  %4034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4035 = load i32, ptr %4034, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror(i32 noundef %4035, ptr noundef @.str.4)
  %4037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror_debug(i32 noundef %4038, ptr noundef @.str.4)
  %4040 = call ptr @__errno_location() #11
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @strerror(i32 noundef %4041) #10
  %4043 = call ptr @__errno_location() #11
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4032, ptr noundef @.str.5, i32 noundef %4033, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 267, ptr noundef %4036, ptr noundef %4039, ptr noundef %4042, i32 noundef %4044) #10
  br label %4046

4046:                                             ; preds = %4029, %4012
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %4047

4047:                                             ; preds = %4046
  br label %4048

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

4049:                                             ; No predecessors!
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

4051:                                             ; preds = %4050, %3991
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

4053:                                             ; preds = %4052
  br label %4054

4054:                                             ; preds = %4053
  %4055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4055, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4056 = call ptr @__errno_location() #11
  store i32 0, ptr %4056, align 4, !tbaa !5
  br label %4057

4057:                                             ; preds = %4054
  br label %4058

4058:                                             ; preds = %4057
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  br label %4061

4061:                                             ; preds = %4060
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = add nsw i32 %4062, 1
  store i32 %4063, ptr @test_count, align 4, !tbaa !5
  %4064 = load ptr, ptr %83, align 8, !tbaa !9
  %4065 = getelementptr inbounds %struct.s2n_connection, ptr %4064, i32 0, i32 66
  %4066 = getelementptr inbounds %struct.s2n_blob, ptr %4065, i32 0, i32 1
  %4067 = load i32, ptr %4066, align 8, !tbaa !50
  %4068 = icmp eq i32 %4067, 0
  br i1 %4068, label %4122, label %4069

4069:                                             ; preds = %4061
  br label %4070

4070:                                             ; preds = %4069
  br label %4071

4071:                                             ; preds = %4070
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %4072 = call ptr @__errno_location() #11
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  store i32 %4073, ptr %88, align 4, !tbaa !5
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = call i32 @s2n_print_stacktrace(ptr noundef %4074)
  %4076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4077 = trunc i8 %4076 to i1
  br i1 %4077, label %4078, label %4100

4078:                                             ; preds = %4071
  %4079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4080 = call i32 @fileno(ptr noundef %4079) #10
  %4081 = call i32 @isatty(i32 noundef %4080) #10
  %4082 = icmp ne i32 %4081, 0
  br i1 %4082, label %4083, label %4100

4083:                                             ; preds = %4078
  %4084 = load i32, ptr %88, align 4, !tbaa !5
  %4085 = call ptr @__errno_location() #11
  store i32 %4084, ptr %4085, align 4, !tbaa !5
  %4086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4087 = load i32, ptr @test_count, align 4, !tbaa !5
  %4088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror(i32 noundef %4089, ptr noundef @.str.4)
  %4091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4092 = load i32, ptr %4091, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror_debug(i32 noundef %4092, ptr noundef @.str.4)
  %4094 = call ptr @__errno_location() #11
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call ptr @strerror(i32 noundef %4095) #10
  %4097 = call ptr @__errno_location() #11
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4086, ptr noundef @.str.2, i32 noundef %4087, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 269, ptr noundef %4090, ptr noundef %4093, ptr noundef %4096, i32 noundef %4098) #10
  br label %4117

4100:                                             ; preds = %4078, %4071
  %4101 = load i32, ptr %88, align 4, !tbaa !5
  %4102 = call ptr @__errno_location() #11
  store i32 %4101, ptr %4102, align 4, !tbaa !5
  %4103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4104 = load i32, ptr @test_count, align 4, !tbaa !5
  %4105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror(i32 noundef %4106, ptr noundef @.str.4)
  %4108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @s2n_strerror_debug(i32 noundef %4109, ptr noundef @.str.4)
  %4111 = call ptr @__errno_location() #11
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call ptr @strerror(i32 noundef %4112) #10
  %4114 = call ptr @__errno_location() #11
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4103, ptr noundef @.str.5, i32 noundef %4104, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 269, ptr noundef %4107, ptr noundef %4110, ptr noundef %4113, i32 noundef %4115) #10
  br label %4117

4117:                                             ; preds = %4100, %4083
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

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

4120:                                             ; No predecessors!
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121, %4061
  br label %4123

4123:                                             ; preds = %4122
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

4125:                                             ; preds = %4124
  %4126 = load i32, ptr @test_count, align 4, !tbaa !5
  %4127 = add nsw i32 %4126, 1
  store i32 %4127, ptr @test_count, align 4, !tbaa !5
  %4128 = load ptr, ptr %83, align 8, !tbaa !9
  %4129 = getelementptr inbounds %struct.s2n_connection, ptr %4128, i32 0, i32 66
  %4130 = getelementptr inbounds %struct.s2n_blob, ptr %4129, i32 0, i32 0
  %4131 = load ptr, ptr %4130, align 8, !tbaa !51
  %4132 = icmp eq ptr %4131, null
  br i1 %4132, label %4186, label %4133

4133:                                             ; preds = %4125
  br label %4134

4134:                                             ; preds = %4133
  br label %4135

4135:                                             ; preds = %4134
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %4136 = call ptr @__errno_location() #11
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  store i32 %4137, ptr %89, align 4, !tbaa !5
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @s2n_print_stacktrace(ptr noundef %4138)
  %4140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4141 = trunc i8 %4140 to i1
  br i1 %4141, label %4142, label %4164

4142:                                             ; preds = %4135
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @fileno(ptr noundef %4143) #10
  %4145 = call i32 @isatty(i32 noundef %4144) #10
  %4146 = icmp ne i32 %4145, 0
  br i1 %4146, label %4147, label %4164

4147:                                             ; preds = %4142
  %4148 = load i32, ptr %89, align 4, !tbaa !5
  %4149 = call ptr @__errno_location() #11
  store i32 %4148, ptr %4149, align 4, !tbaa !5
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = load i32, ptr @test_count, align 4, !tbaa !5
  %4152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4153 = load i32, ptr %4152, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror(i32 noundef %4153, ptr noundef @.str.4)
  %4155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4156 = load i32, ptr %4155, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror_debug(i32 noundef %4156, ptr noundef @.str.4)
  %4158 = call ptr @__errno_location() #11
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @strerror(i32 noundef %4159) #10
  %4161 = call ptr @__errno_location() #11
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4150, ptr noundef @.str.2, i32 noundef %4151, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4154, ptr noundef %4157, ptr noundef %4160, i32 noundef %4162) #10
  br label %4181

4164:                                             ; preds = %4142, %4135
  %4165 = load i32, ptr %89, align 4, !tbaa !5
  %4166 = call ptr @__errno_location() #11
  store i32 %4165, ptr %4166, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = load i32, ptr @test_count, align 4, !tbaa !5
  %4169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @s2n_strerror(i32 noundef %4170, ptr noundef @.str.4)
  %4172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror_debug(i32 noundef %4173, ptr noundef @.str.4)
  %4175 = call ptr @__errno_location() #11
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call ptr @strerror(i32 noundef %4176) #10
  %4178 = call ptr @__errno_location() #11
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4167, ptr noundef @.str.5, i32 noundef %4168, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4171, ptr noundef %4174, ptr noundef %4177, i32 noundef %4179) #10
  br label %4181

4181:                                             ; preds = %4164, %4147
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %4182

4182:                                             ; preds = %4181
  br label %4183

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

4184:                                             ; No predecessors!
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

4186:                                             ; preds = %4185, %4125
  br label %4187

4187:                                             ; preds = %4186
  br label %4188

4188:                                             ; preds = %4187
  br label %4189

4189:                                             ; preds = %4188
  %4190 = load i32, ptr @test_count, align 4, !tbaa !5
  %4191 = add nsw i32 %4190, 1
  store i32 %4191, ptr @test_count, align 4, !tbaa !5
  %4192 = load ptr, ptr %83, align 8, !tbaa !9
  %4193 = call i32 @s2n_connection_free(ptr noundef %4192)
  %4194 = icmp eq i32 %4193, -1
  br i1 %4194, label %4195, label %4248

4195:                                             ; preds = %4189
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %4198 = call ptr @__errno_location() #11
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  store i32 %4199, ptr %90, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @s2n_print_stacktrace(ptr noundef %4200)
  %4202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4203 = trunc i8 %4202 to i1
  br i1 %4203, label %4204, label %4226

4204:                                             ; preds = %4197
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = call i32 @fileno(ptr noundef %4205) #10
  %4207 = call i32 @isatty(i32 noundef %4206) #10
  %4208 = icmp ne i32 %4207, 0
  br i1 %4208, label %4209, label %4226

4209:                                             ; preds = %4204
  %4210 = load i32, ptr %90, align 4, !tbaa !5
  %4211 = call ptr @__errno_location() #11
  store i32 %4210, ptr %4211, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror(i32 noundef %4215, ptr noundef @.str.4)
  %4217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @s2n_strerror_debug(i32 noundef %4218, ptr noundef @.str.4)
  %4220 = call ptr @__errno_location() #11
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @strerror(i32 noundef %4221) #10
  %4223 = call ptr @__errno_location() #11
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4212, ptr noundef @.str.2, i32 noundef %4213, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4216, ptr noundef %4219, ptr noundef %4222, i32 noundef %4224) #10
  br label %4243

4226:                                             ; preds = %4204, %4197
  %4227 = load i32, ptr %90, align 4, !tbaa !5
  %4228 = call ptr @__errno_location() #11
  store i32 %4227, ptr %4228, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror(i32 noundef %4232, ptr noundef @.str.4)
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror_debug(i32 noundef %4235, ptr noundef @.str.4)
  %4237 = call ptr @__errno_location() #11
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @strerror(i32 noundef %4238) #10
  %4240 = call ptr @__errno_location() #11
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef @.str.5, i32 noundef %4230, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4233, ptr noundef %4236, ptr noundef %4239, i32 noundef %4241) #10
  br label %4243

4243:                                             ; preds = %4226, %4209
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

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

4246:                                             ; No predecessors!
  br label %4247

4247:                                             ; preds = %4246
  br label %4248

4248:                                             ; preds = %4247, %4189
  br label %4249

4249:                                             ; preds = %4248
  br label %4250

4250:                                             ; preds = %4249
  store i32 0, ptr %75, align 4
  br label %4251

4251:                                             ; preds = %4250, %3799
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  %4252 = load i32, ptr %75, align 4
  switch i32 %4252, label %4648 [
    i32 0, label %4253
  ]

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

4254:                                             ; preds = %4253
  %4255 = load ptr, ptr %13, align 8, !tbaa !9
  %4256 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef %91, ptr noundef %4255)
  %4257 = icmp sgt i32 %4256, -1
  br i1 %4257, label %4259, label %4258

4258:                                             ; preds = %4254
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %4583

4259:                                             ; preds = %4254
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

4261:                                             ; preds = %4260
  br label %4262

4262:                                             ; preds = %4261
  %4263 = load i32, ptr @test_count, align 4, !tbaa !5
  %4264 = add nsw i32 %4263, 1
  store i32 %4264, ptr @test_count, align 4, !tbaa !5
  %4265 = call i32 @s2n_stuffer_reread(ptr noundef %76)
  %4266 = icmp eq i32 %4265, -1
  br i1 %4266, label %4267, label %4320

4267:                                             ; preds = %4262
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

4269:                                             ; preds = %4268
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %4270 = call ptr @__errno_location() #11
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  store i32 %4271, ptr %92, align 4, !tbaa !5
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = call i32 @s2n_print_stacktrace(ptr noundef %4272)
  %4274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4275 = trunc i8 %4274 to i1
  br i1 %4275, label %4276, label %4298

4276:                                             ; preds = %4269
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = call i32 @fileno(ptr noundef %4277) #10
  %4279 = call i32 @isatty(i32 noundef %4278) #10
  %4280 = icmp ne i32 %4279, 0
  br i1 %4280, label %4281, label %4298

4281:                                             ; preds = %4276
  %4282 = load i32, ptr %92, align 4, !tbaa !5
  %4283 = call ptr @__errno_location() #11
  store i32 %4282, ptr %4283, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = load i32, ptr @test_count, align 4, !tbaa !5
  %4286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @s2n_strerror(i32 noundef %4287, ptr noundef @.str.4)
  %4289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror_debug(i32 noundef %4290, ptr noundef @.str.4)
  %4292 = call ptr @__errno_location() #11
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @strerror(i32 noundef %4293) #10
  %4295 = call ptr @__errno_location() #11
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4284, ptr noundef @.str.2, i32 noundef %4285, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 280, ptr noundef %4288, ptr noundef %4291, ptr noundef %4294, i32 noundef %4296) #10
  br label %4315

4298:                                             ; preds = %4276, %4269
  %4299 = load i32, ptr %92, align 4, !tbaa !5
  %4300 = call ptr @__errno_location() #11
  store i32 %4299, ptr %4300, align 4, !tbaa !5
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = load i32, ptr @test_count, align 4, !tbaa !5
  %4303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call ptr @s2n_strerror(i32 noundef %4304, ptr noundef @.str.4)
  %4306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call ptr @s2n_strerror_debug(i32 noundef %4307, ptr noundef @.str.4)
  %4309 = call ptr @__errno_location() #11
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @strerror(i32 noundef %4310) #10
  %4312 = call ptr @__errno_location() #11
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4301, ptr noundef @.str.5, i32 noundef %4302, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 280, ptr noundef %4305, ptr noundef %4308, ptr noundef %4311, i32 noundef %4313) #10
  br label %4315

4315:                                             ; preds = %4298, %4281
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4316

4316:                                             ; preds = %4315
  br label %4317

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

4318:                                             ; No predecessors!
  br label %4319

4319:                                             ; preds = %4318
  br label %4320

4320:                                             ; preds = %4319, %4262
  br label %4321

4321:                                             ; preds = %4320
  br label %4322

4322:                                             ; preds = %4321
  %4323 = load ptr, ptr %91, align 8, !tbaa !9
  %4324 = getelementptr inbounds %struct.s2n_connection, ptr %4323, i32 0, i32 23
  store i8 34, ptr %4324, align 4, !tbaa !43
  br label %4325

4325:                                             ; preds = %4322
  %4326 = load i32, ptr @test_count, align 4, !tbaa !5
  %4327 = add nsw i32 %4326, 1
  store i32 %4327, ptr @test_count, align 4, !tbaa !5
  %4328 = load ptr, ptr %91, align 8, !tbaa !9
  %4329 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %4328, ptr noundef %76)
  %4330 = icmp eq i32 %4329, -1
  br i1 %4330, label %4331, label %4384

4331:                                             ; preds = %4325
  br label %4332

4332:                                             ; preds = %4331
  br label %4333

4333:                                             ; preds = %4332
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %4334 = call ptr @__errno_location() #11
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  store i32 %4335, ptr %93, align 4, !tbaa !5
  %4336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4337 = call i32 @s2n_print_stacktrace(ptr noundef %4336)
  %4338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4339 = trunc i8 %4338 to i1
  br i1 %4339, label %4340, label %4362

4340:                                             ; preds = %4333
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = call i32 @fileno(ptr noundef %4341) #10
  %4343 = call i32 @isatty(i32 noundef %4342) #10
  %4344 = icmp ne i32 %4343, 0
  br i1 %4344, label %4345, label %4362

4345:                                             ; preds = %4340
  %4346 = load i32, ptr %93, align 4, !tbaa !5
  %4347 = call ptr @__errno_location() #11
  store i32 %4346, ptr %4347, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = load i32, ptr @test_count, align 4, !tbaa !5
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror_debug(i32 noundef %4354, ptr noundef @.str.4)
  %4356 = call ptr @__errno_location() #11
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @strerror(i32 noundef %4357) #10
  %4359 = call ptr @__errno_location() #11
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4348, ptr noundef @.str.2, i32 noundef %4349, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 283, ptr noundef %4352, ptr noundef %4355, ptr noundef %4358, i32 noundef %4360) #10
  br label %4379

4362:                                             ; preds = %4340, %4333
  %4363 = load i32, ptr %93, align 4, !tbaa !5
  %4364 = call ptr @__errno_location() #11
  store i32 %4363, ptr %4364, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = load i32, ptr @test_count, align 4, !tbaa !5
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror(i32 noundef %4368, ptr noundef @.str.4)
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror_debug(i32 noundef %4371, ptr noundef @.str.4)
  %4373 = call ptr @__errno_location() #11
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @strerror(i32 noundef %4374) #10
  %4376 = call ptr @__errno_location() #11
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4365, ptr noundef @.str.5, i32 noundef %4366, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 283, ptr noundef %4369, ptr noundef %4372, ptr noundef %4375, i32 noundef %4377) #10
  br label %4379

4379:                                             ; preds = %4362, %4345
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

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

4382:                                             ; No predecessors!
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383, %4325
  br label %4385

4385:                                             ; preds = %4384
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = add nsw i32 %4388, 1
  store i32 %4389, ptr @test_count, align 4, !tbaa !5
  %4390 = load ptr, ptr %91, align 8, !tbaa !9
  %4391 = getelementptr inbounds %struct.s2n_connection, ptr %4390, i32 0, i32 66
  %4392 = getelementptr inbounds %struct.s2n_blob, ptr %4391, i32 0, i32 1
  %4393 = load i32, ptr %4392, align 8, !tbaa !50
  %4394 = zext i32 %4393 to i64
  %4395 = icmp eq i64 %4394, 15
  br i1 %4395, label %4449, label %4396

4396:                                             ; preds = %4387
  br label %4397

4397:                                             ; preds = %4396
  br label %4398

4398:                                             ; preds = %4397
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %4399 = call ptr @__errno_location() #11
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  store i32 %4400, ptr %94, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @s2n_print_stacktrace(ptr noundef %4401)
  %4403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4404 = trunc i8 %4403 to i1
  br i1 %4404, label %4405, label %4427

4405:                                             ; preds = %4398
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = call i32 @fileno(ptr noundef %4406) #10
  %4408 = call i32 @isatty(i32 noundef %4407) #10
  %4409 = icmp ne i32 %4408, 0
  br i1 %4409, label %4410, label %4427

4410:                                             ; preds = %4405
  %4411 = load i32, ptr %94, align 4, !tbaa !5
  %4412 = call ptr @__errno_location() #11
  store i32 %4411, ptr %4412, align 4, !tbaa !5
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %4415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror(i32 noundef %4416, ptr noundef @.str.4)
  %4418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @s2n_strerror_debug(i32 noundef %4419, ptr noundef @.str.4)
  %4421 = call ptr @__errno_location() #11
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @strerror(i32 noundef %4422) #10
  %4424 = call ptr @__errno_location() #11
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4413, ptr noundef @.str.2, i32 noundef %4414, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4417, ptr noundef %4420, ptr noundef %4423, i32 noundef %4425) #10
  br label %4444

4427:                                             ; preds = %4405, %4398
  %4428 = load i32, ptr %94, align 4, !tbaa !5
  %4429 = call ptr @__errno_location() #11
  store i32 %4428, ptr %4429, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %4432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror(i32 noundef %4433, ptr noundef @.str.4)
  %4435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror_debug(i32 noundef %4436, ptr noundef @.str.4)
  %4438 = call ptr @__errno_location() #11
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @strerror(i32 noundef %4439) #10
  %4441 = call ptr @__errno_location() #11
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4430, ptr noundef @.str.5, i32 noundef %4431, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4434, ptr noundef %4437, ptr noundef %4440, i32 noundef %4442) #10
  br label %4444

4444:                                             ; preds = %4427, %4410
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

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

4447:                                             ; No predecessors!
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

4449:                                             ; preds = %4448, %4387
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

4453:                                             ; preds = %4452
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %4455 = add nsw i32 %4454, 1
  store i32 %4455, ptr @test_count, align 4, !tbaa !5
  %4456 = load ptr, ptr %91, align 8, !tbaa !9
  %4457 = getelementptr inbounds %struct.s2n_connection, ptr %4456, i32 0, i32 66
  %4458 = getelementptr inbounds %struct.s2n_blob, ptr %4457, i32 0, i32 0
  %4459 = load ptr, ptr %4458, align 8, !tbaa !51
  %4460 = getelementptr inbounds [15 x i8], ptr %16, i64 0, i64 0
  %4461 = call i32 @memcmp(ptr noundef %4459, ptr noundef %4460, i64 noundef 15) #13
  %4462 = icmp eq i32 %4461, 0
  br i1 %4462, label %4516, label %4463

4463:                                             ; preds = %4453
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

4465:                                             ; preds = %4464
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %4466 = call ptr @__errno_location() #11
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  store i32 %4467, ptr %95, align 4, !tbaa !5
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = call i32 @s2n_print_stacktrace(ptr noundef %4468)
  %4470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4471 = trunc i8 %4470 to i1
  br i1 %4471, label %4472, label %4494

4472:                                             ; preds = %4465
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @fileno(ptr noundef %4473) #10
  %4475 = call i32 @isatty(i32 noundef %4474) #10
  %4476 = icmp ne i32 %4475, 0
  br i1 %4476, label %4477, label %4494

4477:                                             ; preds = %4472
  %4478 = load i32, ptr %95, align 4, !tbaa !5
  %4479 = call ptr @__errno_location() #11
  store i32 %4478, ptr %4479, align 4, !tbaa !5
  %4480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4481 = load i32, ptr @test_count, align 4, !tbaa !5
  %4482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call ptr @s2n_strerror(i32 noundef %4483, ptr noundef @.str.4)
  %4485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4486 = load i32, ptr %4485, align 4, !tbaa !5
  %4487 = call ptr @s2n_strerror_debug(i32 noundef %4486, ptr noundef @.str.4)
  %4488 = call ptr @__errno_location() #11
  %4489 = load i32, ptr %4488, align 4, !tbaa !5
  %4490 = call ptr @strerror(i32 noundef %4489) #10
  %4491 = call ptr @__errno_location() #11
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  %4493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4480, ptr noundef @.str.2, i32 noundef %4481, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4484, ptr noundef %4487, ptr noundef %4490, i32 noundef %4492) #10
  br label %4511

4494:                                             ; preds = %4472, %4465
  %4495 = load i32, ptr %95, align 4, !tbaa !5
  %4496 = call ptr @__errno_location() #11
  store i32 %4495, ptr %4496, align 4, !tbaa !5
  %4497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4498 = load i32, ptr @test_count, align 4, !tbaa !5
  %4499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror(i32 noundef %4500, ptr noundef @.str.4)
  %4502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror_debug(i32 noundef %4503, ptr noundef @.str.4)
  %4505 = call ptr @__errno_location() #11
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call ptr @strerror(i32 noundef %4506) #10
  %4508 = call ptr @__errno_location() #11
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4497, ptr noundef @.str.5, i32 noundef %4498, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4501, ptr noundef %4504, ptr noundef %4507, i32 noundef %4509) #10
  br label %4511

4511:                                             ; preds = %4494, %4477
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

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

4514:                                             ; No predecessors!
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515, %4453
  br label %4517

4517:                                             ; preds = %4516
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

4521:                                             ; preds = %4520
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = add nsw i32 %4522, 1
  store i32 %4523, ptr @test_count, align 4, !tbaa !5
  %4524 = load ptr, ptr %91, align 8, !tbaa !9
  %4525 = call i32 @s2n_connection_free(ptr noundef %4524)
  %4526 = icmp eq i32 %4525, -1
  br i1 %4526, label %4527, label %4580

4527:                                             ; preds = %4521
  br label %4528

4528:                                             ; preds = %4527
  br label %4529

4529:                                             ; preds = %4528
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %4530 = call ptr @__errno_location() #11
  %4531 = load i32, ptr %4530, align 4, !tbaa !5
  store i32 %4531, ptr %96, align 4, !tbaa !5
  %4532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4533 = call i32 @s2n_print_stacktrace(ptr noundef %4532)
  %4534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4535 = trunc i8 %4534 to i1
  br i1 %4535, label %4536, label %4558

4536:                                             ; preds = %4529
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @fileno(ptr noundef %4537) #10
  %4539 = call i32 @isatty(i32 noundef %4538) #10
  %4540 = icmp ne i32 %4539, 0
  br i1 %4540, label %4541, label %4558

4541:                                             ; preds = %4536
  %4542 = load i32, ptr %96, align 4, !tbaa !5
  %4543 = call ptr @__errno_location() #11
  store i32 %4542, ptr %4543, align 4, !tbaa !5
  %4544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4547 = load i32, ptr %4546, align 4, !tbaa !5
  %4548 = call ptr @s2n_strerror(i32 noundef %4547, ptr noundef @.str.4)
  %4549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror_debug(i32 noundef %4550, ptr noundef @.str.4)
  %4552 = call ptr @__errno_location() #11
  %4553 = load i32, ptr %4552, align 4, !tbaa !5
  %4554 = call ptr @strerror(i32 noundef %4553) #10
  %4555 = call ptr @__errno_location() #11
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  %4557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4544, ptr noundef @.str.2, i32 noundef %4545, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 288, ptr noundef %4548, ptr noundef %4551, ptr noundef %4554, i32 noundef %4556) #10
  br label %4575

4558:                                             ; preds = %4536, %4529
  %4559 = load i32, ptr %96, align 4, !tbaa !5
  %4560 = call ptr @__errno_location() #11
  store i32 %4559, ptr %4560, align 4, !tbaa !5
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = load i32, ptr @test_count, align 4, !tbaa !5
  %4563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  %4565 = call ptr @s2n_strerror(i32 noundef %4564, ptr noundef @.str.4)
  %4566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror_debug(i32 noundef %4567, ptr noundef @.str.4)
  %4569 = call ptr @__errno_location() #11
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call ptr @strerror(i32 noundef %4570) #10
  %4572 = call ptr @__errno_location() #11
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4561, ptr noundef @.str.5, i32 noundef %4562, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 288, ptr noundef %4565, ptr noundef %4568, ptr noundef %4571, i32 noundef %4573) #10
  br label %4575

4575:                                             ; preds = %4558, %4541
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4576

4576:                                             ; preds = %4575
  br label %4577

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

4578:                                             ; No predecessors!
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

4580:                                             ; preds = %4579, %4521
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  store i32 0, ptr %75, align 4
  br label %4583

4583:                                             ; preds = %4582, %4258
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  %4584 = load i32, ptr %75, align 4
  switch i32 %4584, label %4648 [
    i32 0, label %4585
  ]

4585:                                             ; preds = %4583
  br label %4586

4586:                                             ; preds = %4585
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = add nsw i32 %4587, 1
  store i32 %4588, ptr @test_count, align 4, !tbaa !5
  %4589 = load ptr, ptr %74, align 8, !tbaa !9
  %4590 = call i32 @s2n_connection_free(ptr noundef %4589)
  %4591 = icmp eq i32 %4590, -1
  br i1 %4591, label %4592, label %4645

4592:                                             ; preds = %4586
  br label %4593

4593:                                             ; preds = %4592
  br label %4594

4594:                                             ; preds = %4593
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4595 = call ptr @__errno_location() #11
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  store i32 %4596, ptr %97, align 4, !tbaa !5
  %4597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4598 = call i32 @s2n_print_stacktrace(ptr noundef %4597)
  %4599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4600 = trunc i8 %4599 to i1
  br i1 %4600, label %4601, label %4623

4601:                                             ; preds = %4594
  %4602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4603 = call i32 @fileno(ptr noundef %4602) #10
  %4604 = call i32 @isatty(i32 noundef %4603) #10
  %4605 = icmp ne i32 %4604, 0
  br i1 %4605, label %4606, label %4623

4606:                                             ; preds = %4601
  %4607 = load i32, ptr %97, align 4, !tbaa !5
  %4608 = call ptr @__errno_location() #11
  store i32 %4607, ptr %4608, align 4, !tbaa !5
  %4609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4610 = load i32, ptr @test_count, align 4, !tbaa !5
  %4611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call ptr @s2n_strerror(i32 noundef %4612, ptr noundef @.str.4)
  %4614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4615 = load i32, ptr %4614, align 4, !tbaa !5
  %4616 = call ptr @s2n_strerror_debug(i32 noundef %4615, ptr noundef @.str.4)
  %4617 = call ptr @__errno_location() #11
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  %4619 = call ptr @strerror(i32 noundef %4618) #10
  %4620 = call ptr @__errno_location() #11
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4609, ptr noundef @.str.2, i32 noundef %4610, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 291, ptr noundef %4613, ptr noundef %4616, ptr noundef %4619, i32 noundef %4621) #10
  br label %4640

4623:                                             ; preds = %4601, %4594
  %4624 = load i32, ptr %97, align 4, !tbaa !5
  %4625 = call ptr @__errno_location() #11
  store i32 %4624, ptr %4625, align 4, !tbaa !5
  %4626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4627 = load i32, ptr @test_count, align 4, !tbaa !5
  %4628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror(i32 noundef %4629, ptr noundef @.str.4)
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror_debug(i32 noundef %4632, ptr noundef @.str.4)
  %4634 = call ptr @__errno_location() #11
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @strerror(i32 noundef %4635) #10
  %4637 = call ptr @__errno_location() #11
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4626, ptr noundef @.str.5, i32 noundef %4627, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 291, ptr noundef %4630, ptr noundef %4633, ptr noundef %4636, i32 noundef %4638) #10
  br label %4640

4640:                                             ; preds = %4623, %4606
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4641

4641:                                             ; preds = %4640
  br label %4642

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

4643:                                             ; No predecessors!
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

4645:                                             ; preds = %4644, %4586
  br label %4646

4646:                                             ; preds = %4645
  br label %4647

4647:                                             ; preds = %4646
  store i32 0, ptr %75, align 4
  br label %4648

4648:                                             ; preds = %4647, %4583, %4251
  call void @llvm.lifetime.end.p0(i64 16, ptr %78) #10
  %4649 = call i32 @s2n_stuffer_free(ptr noundef %76)
  call void @llvm.lifetime.end.p0(i64 40, ptr %76) #10
  br label %4650

4650:                                             ; preds = %4648, %3484
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  %4651 = load i32, ptr %75, align 4
  switch i32 %4651, label %6330 [
    i32 0, label %4652
  ]

4652:                                             ; preds = %4650
  call void @llvm.lifetime.start.p0(i64 16, ptr %98) #10
  call void @llvm.memset.p0.i64(ptr align 8 %98, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  store ptr null, ptr %99, align 8, !tbaa !9
  br label %4653

4653:                                             ; preds = %4652
  %4654 = load ptr, ptr %13, align 8, !tbaa !9
  %4655 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef %99, ptr noundef %4654)
  %4656 = icmp sgt i32 %4655, -1
  br i1 %4656, label %4658, label %4657

4657:                                             ; preds = %4653
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %5345

4658:                                             ; preds = %4653
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

4660:                                             ; preds = %4659
  call void @llvm.lifetime.start.p0(i64 40, ptr %100) #10
  br label %4661

4661:                                             ; preds = %4660
  %4662 = load i32, ptr @test_count, align 4, !tbaa !5
  %4663 = add nsw i32 %4662, 1
  store i32 %4663, ptr @test_count, align 4, !tbaa !5
  %4664 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %100, i32 noundef 0)
  %4665 = icmp eq i32 %4664, -1
  br i1 %4665, label %4666, label %4719

4666:                                             ; preds = %4661
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %4669 = call ptr @__errno_location() #11
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  store i32 %4670, ptr %101, align 4, !tbaa !5
  %4671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4672 = call i32 @s2n_print_stacktrace(ptr noundef %4671)
  %4673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4674 = trunc i8 %4673 to i1
  br i1 %4674, label %4675, label %4697

4675:                                             ; preds = %4668
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = call i32 @fileno(ptr noundef %4676) #10
  %4678 = call i32 @isatty(i32 noundef %4677) #10
  %4679 = icmp ne i32 %4678, 0
  br i1 %4679, label %4680, label %4697

4680:                                             ; preds = %4675
  %4681 = load i32, ptr %101, align 4, !tbaa !5
  %4682 = call ptr @__errno_location() #11
  store i32 %4681, ptr %4682, align 4, !tbaa !5
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = load i32, ptr @test_count, align 4, !tbaa !5
  %4685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @s2n_strerror(i32 noundef %4686, ptr noundef @.str.4)
  %4688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror_debug(i32 noundef %4689, ptr noundef @.str.4)
  %4691 = call ptr @__errno_location() #11
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = call ptr @strerror(i32 noundef %4692) #10
  %4694 = call ptr @__errno_location() #11
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4683, ptr noundef @.str.2, i32 noundef %4684, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 304, ptr noundef %4687, ptr noundef %4690, ptr noundef %4693, i32 noundef %4695) #10
  br label %4714

4697:                                             ; preds = %4675, %4668
  %4698 = load i32, ptr %101, align 4, !tbaa !5
  %4699 = call ptr @__errno_location() #11
  store i32 %4698, ptr %4699, align 4, !tbaa !5
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = load i32, ptr @test_count, align 4, !tbaa !5
  %4702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror(i32 noundef %4703, ptr noundef @.str.4)
  %4705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror_debug(i32 noundef %4706, ptr noundef @.str.4)
  %4708 = call ptr @__errno_location() #11
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call ptr @strerror(i32 noundef %4709) #10
  %4711 = call ptr @__errno_location() #11
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4700, ptr noundef @.str.5, i32 noundef %4701, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 304, ptr noundef %4704, ptr noundef %4707, ptr noundef %4710, i32 noundef %4712) #10
  br label %4714

4714:                                             ; preds = %4697, %4680
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

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

4717:                                             ; No predecessors!
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718, %4661
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  br label %4722

4722:                                             ; preds = %4721
  %4723 = load i32, ptr @test_count, align 4, !tbaa !5
  %4724 = add nsw i32 %4723, 1
  store i32 %4724, ptr @test_count, align 4, !tbaa !5
  %4725 = call i32 @s2n_stuffer_reserve_uint24(ptr noundef %100, ptr noundef %98)
  %4726 = icmp eq i32 %4725, -1
  br i1 %4726, label %4727, label %4780

4727:                                             ; preds = %4722
  br label %4728

4728:                                             ; preds = %4727
  br label %4729

4729:                                             ; preds = %4728
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4730 = call ptr @__errno_location() #11
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  store i32 %4731, ptr %102, align 4, !tbaa !5
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @s2n_print_stacktrace(ptr noundef %4732)
  %4734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4735 = trunc i8 %4734 to i1
  br i1 %4735, label %4736, label %4758

4736:                                             ; preds = %4729
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @fileno(ptr noundef %4737) #10
  %4739 = call i32 @isatty(i32 noundef %4738) #10
  %4740 = icmp ne i32 %4739, 0
  br i1 %4740, label %4741, label %4758

4741:                                             ; preds = %4736
  %4742 = load i32, ptr %102, align 4, !tbaa !5
  %4743 = call ptr @__errno_location() #11
  store i32 %4742, ptr %4743, align 4, !tbaa !5
  %4744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4745 = load i32, ptr @test_count, align 4, !tbaa !5
  %4746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4747 = load i32, ptr %4746, align 4, !tbaa !5
  %4748 = call ptr @s2n_strerror(i32 noundef %4747, ptr noundef @.str.4)
  %4749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  %4751 = call ptr @s2n_strerror_debug(i32 noundef %4750, ptr noundef @.str.4)
  %4752 = call ptr @__errno_location() #11
  %4753 = load i32, ptr %4752, align 4, !tbaa !5
  %4754 = call ptr @strerror(i32 noundef %4753) #10
  %4755 = call ptr @__errno_location() #11
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4744, ptr noundef @.str.2, i32 noundef %4745, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4748, ptr noundef %4751, ptr noundef %4754, i32 noundef %4756) #10
  br label %4775

4758:                                             ; preds = %4736, %4729
  %4759 = load i32, ptr %102, align 4, !tbaa !5
  %4760 = call ptr @__errno_location() #11
  store i32 %4759, ptr %4760, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = load i32, ptr @test_count, align 4, !tbaa !5
  %4763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @s2n_strerror(i32 noundef %4764, ptr noundef @.str.4)
  %4766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @s2n_strerror_debug(i32 noundef %4767, ptr noundef @.str.4)
  %4769 = call ptr @__errno_location() #11
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @strerror(i32 noundef %4770) #10
  %4772 = call ptr @__errno_location() #11
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4761, ptr noundef @.str.5, i32 noundef %4762, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4765, ptr noundef %4768, ptr noundef %4771, i32 noundef %4773) #10
  br label %4775

4775:                                             ; preds = %4758, %4741
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4776

4776:                                             ; preds = %4775
  br label %4777

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

4778:                                             ; No predecessors!
  br label %4779

4779:                                             ; preds = %4778
  br label %4780

4780:                                             ; preds = %4779, %4722
  br label %4781

4781:                                             ; preds = %4780
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782
  %4784 = load i32, ptr @test_count, align 4, !tbaa !5
  %4785 = add nsw i32 %4784, 1
  store i32 %4785, ptr @test_count, align 4, !tbaa !5
  %4786 = load ptr, ptr %13, align 8, !tbaa !9
  %4787 = call i32 @s2n_write_test_cert(ptr noundef %100, ptr noundef %4786)
  %4788 = icmp eq i32 %4787, -1
  br i1 %4788, label %4789, label %4842

4789:                                             ; preds = %4783
  br label %4790

4790:                                             ; preds = %4789
  br label %4791

4791:                                             ; preds = %4790
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %4792 = call ptr @__errno_location() #11
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  store i32 %4793, ptr %103, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = call i32 @s2n_print_stacktrace(ptr noundef %4794)
  %4796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4797 = trunc i8 %4796 to i1
  br i1 %4797, label %4798, label %4820

4798:                                             ; preds = %4791
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @fileno(ptr noundef %4799) #10
  %4801 = call i32 @isatty(i32 noundef %4800) #10
  %4802 = icmp ne i32 %4801, 0
  br i1 %4802, label %4803, label %4820

4803:                                             ; preds = %4798
  %4804 = load i32, ptr %103, align 4, !tbaa !5
  %4805 = call ptr @__errno_location() #11
  store i32 %4804, ptr %4805, align 4, !tbaa !5
  %4806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4807 = load i32, ptr @test_count, align 4, !tbaa !5
  %4808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4809 = load i32, ptr %4808, align 4, !tbaa !5
  %4810 = call ptr @s2n_strerror(i32 noundef %4809, ptr noundef @.str.4)
  %4811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  %4813 = call ptr @s2n_strerror_debug(i32 noundef %4812, ptr noundef @.str.4)
  %4814 = call ptr @__errno_location() #11
  %4815 = load i32, ptr %4814, align 4, !tbaa !5
  %4816 = call ptr @strerror(i32 noundef %4815) #10
  %4817 = call ptr @__errno_location() #11
  %4818 = load i32, ptr %4817, align 4, !tbaa !5
  %4819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4806, ptr noundef @.str.2, i32 noundef %4807, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 307, ptr noundef %4810, ptr noundef %4813, ptr noundef %4816, i32 noundef %4818) #10
  br label %4837

4820:                                             ; preds = %4798, %4791
  %4821 = load i32, ptr %103, align 4, !tbaa !5
  %4822 = call ptr @__errno_location() #11
  store i32 %4821, ptr %4822, align 4, !tbaa !5
  %4823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4824 = load i32, ptr @test_count, align 4, !tbaa !5
  %4825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror(i32 noundef %4826, ptr noundef @.str.4)
  %4828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call ptr @s2n_strerror_debug(i32 noundef %4829, ptr noundef @.str.4)
  %4831 = call ptr @__errno_location() #11
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @strerror(i32 noundef %4832) #10
  %4834 = call ptr @__errno_location() #11
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4823, ptr noundef @.str.5, i32 noundef %4824, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 307, ptr noundef %4827, ptr noundef %4830, ptr noundef %4833, i32 noundef %4835) #10
  br label %4837

4837:                                             ; preds = %4820, %4803
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4838

4838:                                             ; preds = %4837
  br label %4839

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

4840:                                             ; No predecessors!
  br label %4841

4841:                                             ; preds = %4840
  br label %4842

4842:                                             ; preds = %4841, %4783
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  br label %4845

4845:                                             ; preds = %4844
  %4846 = load i32, ptr @test_count, align 4, !tbaa !5
  %4847 = add nsw i32 %4846, 1
  store i32 %4847, ptr @test_count, align 4, !tbaa !5
  %4848 = load ptr, ptr %99, align 8, !tbaa !9
  %4849 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef %4848, ptr noundef %100)
  %4850 = icmp eq i32 %4849, -1
  br i1 %4850, label %4851, label %4904

4851:                                             ; preds = %4845
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4854 = call ptr @__errno_location() #11
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  store i32 %4855, ptr %104, align 4, !tbaa !5
  %4856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4857 = call i32 @s2n_print_stacktrace(ptr noundef %4856)
  %4858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4859 = trunc i8 %4858 to i1
  br i1 %4859, label %4860, label %4882

4860:                                             ; preds = %4853
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = call i32 @fileno(ptr noundef %4861) #10
  %4863 = call i32 @isatty(i32 noundef %4862) #10
  %4864 = icmp ne i32 %4863, 0
  br i1 %4864, label %4865, label %4882

4865:                                             ; preds = %4860
  %4866 = load i32, ptr %104, align 4, !tbaa !5
  %4867 = call ptr @__errno_location() #11
  store i32 %4866, ptr %4867, align 4, !tbaa !5
  %4868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4869 = load i32, ptr @test_count, align 4, !tbaa !5
  %4870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4871 = load i32, ptr %4870, align 4, !tbaa !5
  %4872 = call ptr @s2n_strerror(i32 noundef %4871, ptr noundef @.str.4)
  %4873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4874 = load i32, ptr %4873, align 4, !tbaa !5
  %4875 = call ptr @s2n_strerror_debug(i32 noundef %4874, ptr noundef @.str.4)
  %4876 = call ptr @__errno_location() #11
  %4877 = load i32, ptr %4876, align 4, !tbaa !5
  %4878 = call ptr @strerror(i32 noundef %4877) #10
  %4879 = call ptr @__errno_location() #11
  %4880 = load i32, ptr %4879, align 4, !tbaa !5
  %4881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4868, ptr noundef @.str.2, i32 noundef %4869, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 308, ptr noundef %4872, ptr noundef %4875, ptr noundef %4878, i32 noundef %4880) #10
  br label %4899

4882:                                             ; preds = %4860, %4853
  %4883 = load i32, ptr %104, align 4, !tbaa !5
  %4884 = call ptr @__errno_location() #11
  store i32 %4883, ptr %4884, align 4, !tbaa !5
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = load i32, ptr @test_count, align 4, !tbaa !5
  %4887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call ptr @s2n_strerror(i32 noundef %4888, ptr noundef @.str.4)
  %4890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call ptr @s2n_strerror_debug(i32 noundef %4891, ptr noundef @.str.4)
  %4893 = call ptr @__errno_location() #11
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @strerror(i32 noundef %4894) #10
  %4896 = call ptr @__errno_location() #11
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4885, ptr noundef @.str.5, i32 noundef %4886, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 308, ptr noundef %4889, ptr noundef %4892, ptr noundef %4895, i32 noundef %4897) #10
  br label %4899

4899:                                             ; preds = %4882, %4865
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4900

4900:                                             ; preds = %4899
  br label %4901

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

4902:                                             ; No predecessors!
  br label %4903

4903:                                             ; preds = %4902
  br label %4904

4904:                                             ; preds = %4903, %4845
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

4906:                                             ; preds = %4905
  br label %4907

4907:                                             ; preds = %4906
  %4908 = load i32, ptr @test_count, align 4, !tbaa !5
  %4909 = add nsw i32 %4908, 1
  store i32 %4909, ptr @test_count, align 4, !tbaa !5
  %4910 = load ptr, ptr %13, align 8, !tbaa !9
  %4911 = call i32 @s2n_write_test_cert(ptr noundef %100, ptr noundef %4910)
  %4912 = icmp eq i32 %4911, -1
  br i1 %4912, label %4913, label %4966

4913:                                             ; preds = %4907
  br label %4914

4914:                                             ; preds = %4913
  br label %4915

4915:                                             ; preds = %4914
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #10
  %4916 = call ptr @__errno_location() #11
  %4917 = load i32, ptr %4916, align 4, !tbaa !5
  store i32 %4917, ptr %105, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = call i32 @s2n_print_stacktrace(ptr noundef %4918)
  %4920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4921 = trunc i8 %4920 to i1
  br i1 %4921, label %4922, label %4944

4922:                                             ; preds = %4915
  %4923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4924 = call i32 @fileno(ptr noundef %4923) #10
  %4925 = call i32 @isatty(i32 noundef %4924) #10
  %4926 = icmp ne i32 %4925, 0
  br i1 %4926, label %4927, label %4944

4927:                                             ; preds = %4922
  %4928 = load i32, ptr %105, align 4, !tbaa !5
  %4929 = call ptr @__errno_location() #11
  store i32 %4928, ptr %4929, align 4, !tbaa !5
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = load i32, ptr @test_count, align 4, !tbaa !5
  %4932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call ptr @s2n_strerror(i32 noundef %4933, ptr noundef @.str.4)
  %4935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4936 = load i32, ptr %4935, align 4, !tbaa !5
  %4937 = call ptr @s2n_strerror_debug(i32 noundef %4936, ptr noundef @.str.4)
  %4938 = call ptr @__errno_location() #11
  %4939 = load i32, ptr %4938, align 4, !tbaa !5
  %4940 = call ptr @strerror(i32 noundef %4939) #10
  %4941 = call ptr @__errno_location() #11
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  %4943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4930, ptr noundef @.str.2, i32 noundef %4931, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 309, ptr noundef %4934, ptr noundef %4937, ptr noundef %4940, i32 noundef %4942) #10
  br label %4961

4944:                                             ; preds = %4922, %4915
  %4945 = load i32, ptr %105, align 4, !tbaa !5
  %4946 = call ptr @__errno_location() #11
  store i32 %4945, ptr %4946, align 4, !tbaa !5
  %4947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4948 = load i32, ptr @test_count, align 4, !tbaa !5
  %4949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4950 = load i32, ptr %4949, align 4, !tbaa !5
  %4951 = call ptr @s2n_strerror(i32 noundef %4950, ptr noundef @.str.4)
  %4952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4953 = load i32, ptr %4952, align 4, !tbaa !5
  %4954 = call ptr @s2n_strerror_debug(i32 noundef %4953, ptr noundef @.str.4)
  %4955 = call ptr @__errno_location() #11
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  %4957 = call ptr @strerror(i32 noundef %4956) #10
  %4958 = call ptr @__errno_location() #11
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4947, ptr noundef @.str.5, i32 noundef %4948, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 309, ptr noundef %4951, ptr noundef %4954, ptr noundef %4957, i32 noundef %4959) #10
  br label %4961

4961:                                             ; preds = %4944, %4927
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4962

4962:                                             ; preds = %4961
  br label %4963

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

4964:                                             ; No predecessors!
  br label %4965

4965:                                             ; preds = %4964
  br label %4966

4966:                                             ; preds = %4965, %4907
  br label %4967

4967:                                             ; preds = %4966
  br label %4968

4968:                                             ; preds = %4967
  br label %4969

4969:                                             ; preds = %4968
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = add nsw i32 %4970, 1
  store i32 %4971, ptr @test_count, align 4, !tbaa !5
  %4972 = load ptr, ptr %99, align 8, !tbaa !9
  %4973 = call i32 @s2n_extension_list_send(i32 noundef 6, ptr noundef %4972, ptr noundef %100)
  %4974 = icmp eq i32 %4973, -1
  br i1 %4974, label %4975, label %5028

4975:                                             ; preds = %4969
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4978 = call ptr @__errno_location() #11
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  store i32 %4979, ptr %106, align 4, !tbaa !5
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = call i32 @s2n_print_stacktrace(ptr noundef %4980)
  %4982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4983 = trunc i8 %4982 to i1
  br i1 %4983, label %4984, label %5006

4984:                                             ; preds = %4977
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = call i32 @fileno(ptr noundef %4985) #10
  %4987 = call i32 @isatty(i32 noundef %4986) #10
  %4988 = icmp ne i32 %4987, 0
  br i1 %4988, label %4989, label %5006

4989:                                             ; preds = %4984
  %4990 = load i32, ptr %106, align 4, !tbaa !5
  %4991 = call ptr @__errno_location() #11
  store i32 %4990, ptr %4991, align 4, !tbaa !5
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = load i32, ptr @test_count, align 4, !tbaa !5
  %4994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call ptr @s2n_strerror(i32 noundef %4995, ptr noundef @.str.4)
  %4997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call ptr @s2n_strerror_debug(i32 noundef %4998, ptr noundef @.str.4)
  %5000 = call ptr @__errno_location() #11
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  %5002 = call ptr @strerror(i32 noundef %5001) #10
  %5003 = call ptr @__errno_location() #11
  %5004 = load i32, ptr %5003, align 4, !tbaa !5
  %5005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4992, ptr noundef @.str.2, i32 noundef %4993, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 310, ptr noundef %4996, ptr noundef %4999, ptr noundef %5002, i32 noundef %5004) #10
  br label %5023

5006:                                             ; preds = %4984, %4977
  %5007 = load i32, ptr %106, align 4, !tbaa !5
  %5008 = call ptr @__errno_location() #11
  store i32 %5007, ptr %5008, align 4, !tbaa !5
  %5009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5010 = load i32, ptr @test_count, align 4, !tbaa !5
  %5011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @s2n_strerror(i32 noundef %5012, ptr noundef @.str.4)
  %5014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror_debug(i32 noundef %5015, ptr noundef @.str.4)
  %5017 = call ptr @__errno_location() #11
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @strerror(i32 noundef %5018) #10
  %5020 = call ptr @__errno_location() #11
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5009, ptr noundef @.str.5, i32 noundef %5010, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 310, ptr noundef %5013, ptr noundef %5016, ptr noundef %5019, i32 noundef %5021) #10
  br label %5023

5023:                                             ; preds = %5006, %4989
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %5024

5024:                                             ; preds = %5023
  br label %5025

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

5026:                                             ; No predecessors!
  br label %5027

5027:                                             ; preds = %5026
  br label %5028

5028:                                             ; preds = %5027, %4969
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

5030:                                             ; preds = %5029
  br label %5031

5031:                                             ; preds = %5030
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = add nsw i32 %5032, 1
  store i32 %5033, ptr @test_count, align 4, !tbaa !5
  %5034 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %98)
  %5035 = icmp eq i32 %5034, -1
  br i1 %5035, label %5036, label %5089

5036:                                             ; preds = %5031
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

5038:                                             ; preds = %5037
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %5039 = call ptr @__errno_location() #11
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  store i32 %5040, ptr %107, align 4, !tbaa !5
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = call i32 @s2n_print_stacktrace(ptr noundef %5041)
  %5043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5044 = trunc i8 %5043 to i1
  br i1 %5044, label %5045, label %5067

5045:                                             ; preds = %5038
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = call i32 @fileno(ptr noundef %5046) #10
  %5048 = call i32 @isatty(i32 noundef %5047) #10
  %5049 = icmp ne i32 %5048, 0
  br i1 %5049, label %5050, label %5067

5050:                                             ; preds = %5045
  %5051 = load i32, ptr %107, align 4, !tbaa !5
  %5052 = call ptr @__errno_location() #11
  store i32 %5051, ptr %5052, align 4, !tbaa !5
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5056 = load i32, ptr %5055, align 4, !tbaa !5
  %5057 = call ptr @s2n_strerror(i32 noundef %5056, ptr noundef @.str.4)
  %5058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5059 = load i32, ptr %5058, align 4, !tbaa !5
  %5060 = call ptr @s2n_strerror_debug(i32 noundef %5059, ptr noundef @.str.4)
  %5061 = call ptr @__errno_location() #11
  %5062 = load i32, ptr %5061, align 4, !tbaa !5
  %5063 = call ptr @strerror(i32 noundef %5062) #10
  %5064 = call ptr @__errno_location() #11
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5053, ptr noundef @.str.2, i32 noundef %5054, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5057, ptr noundef %5060, ptr noundef %5063, i32 noundef %5065) #10
  br label %5084

5067:                                             ; preds = %5045, %5038
  %5068 = load i32, ptr %107, align 4, !tbaa !5
  %5069 = call ptr @__errno_location() #11
  store i32 %5068, ptr %5069, align 4, !tbaa !5
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call ptr @s2n_strerror(i32 noundef %5073, ptr noundef @.str.4)
  %5075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  %5077 = call ptr @s2n_strerror_debug(i32 noundef %5076, ptr noundef @.str.4)
  %5078 = call ptr @__errno_location() #11
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @strerror(i32 noundef %5079) #10
  %5081 = call ptr @__errno_location() #11
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5070, ptr noundef @.str.5, i32 noundef %5071, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5074, ptr noundef %5077, ptr noundef %5080, i32 noundef %5082) #10
  br label %5084

5084:                                             ; preds = %5067, %5050
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %5085

5085:                                             ; preds = %5084
  br label %5086

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

5087:                                             ; No predecessors!
  br label %5088

5088:                                             ; preds = %5087
  br label %5089

5089:                                             ; preds = %5088, %5031
  br label %5090

5090:                                             ; preds = %5089
  br label %5091

5091:                                             ; preds = %5090
  br label %5092

5092:                                             ; preds = %5091
  %5093 = load i32, ptr @test_count, align 4, !tbaa !5
  %5094 = add nsw i32 %5093, 1
  store i32 %5094, ptr @test_count, align 4, !tbaa !5
  %5095 = load ptr, ptr %99, align 8, !tbaa !9
  %5096 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %5095, ptr noundef %100)
  %5097 = icmp eq i32 %5096, -1
  br i1 %5097, label %5098, label %5151

5098:                                             ; preds = %5092
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

5100:                                             ; preds = %5099
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %5101 = call ptr @__errno_location() #11
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  store i32 %5102, ptr %108, align 4, !tbaa !5
  %5103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5104 = call i32 @s2n_print_stacktrace(ptr noundef %5103)
  %5105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5106 = trunc i8 %5105 to i1
  br i1 %5106, label %5107, label %5129

5107:                                             ; preds = %5100
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = call i32 @fileno(ptr noundef %5108) #10
  %5110 = call i32 @isatty(i32 noundef %5109) #10
  %5111 = icmp ne i32 %5110, 0
  br i1 %5111, label %5112, label %5129

5112:                                             ; preds = %5107
  %5113 = load i32, ptr %108, align 4, !tbaa !5
  %5114 = call ptr @__errno_location() #11
  store i32 %5113, ptr %5114, align 4, !tbaa !5
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = load i32, ptr @test_count, align 4, !tbaa !5
  %5117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5118 = load i32, ptr %5117, align 4, !tbaa !5
  %5119 = call ptr @s2n_strerror(i32 noundef %5118, ptr noundef @.str.4)
  %5120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5121 = load i32, ptr %5120, align 4, !tbaa !5
  %5122 = call ptr @s2n_strerror_debug(i32 noundef %5121, ptr noundef @.str.4)
  %5123 = call ptr @__errno_location() #11
  %5124 = load i32, ptr %5123, align 4, !tbaa !5
  %5125 = call ptr @strerror(i32 noundef %5124) #10
  %5126 = call ptr @__errno_location() #11
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5115, ptr noundef @.str.2, i32 noundef %5116, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5119, ptr noundef %5122, ptr noundef %5125, i32 noundef %5127) #10
  br label %5146

5129:                                             ; preds = %5107, %5100
  %5130 = load i32, ptr %108, align 4, !tbaa !5
  %5131 = call ptr @__errno_location() #11
  store i32 %5130, ptr %5131, align 4, !tbaa !5
  %5132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5133 = load i32, ptr @test_count, align 4, !tbaa !5
  %5134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5135 = load i32, ptr %5134, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror(i32 noundef %5135, ptr noundef @.str.4)
  %5137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  %5139 = call ptr @s2n_strerror_debug(i32 noundef %5138, ptr noundef @.str.4)
  %5140 = call ptr @__errno_location() #11
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @strerror(i32 noundef %5141) #10
  %5143 = call ptr @__errno_location() #11
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5132, ptr noundef @.str.5, i32 noundef %5133, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5136, ptr noundef %5139, ptr noundef %5142, i32 noundef %5144) #10
  br label %5146

5146:                                             ; preds = %5129, %5112
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %5147

5147:                                             ; preds = %5146
  br label %5148

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

5149:                                             ; No predecessors!
  br label %5150

5150:                                             ; preds = %5149
  br label %5151

5151:                                             ; preds = %5150, %5092
  br label %5152

5152:                                             ; preds = %5151
  br label %5153

5153:                                             ; preds = %5152
  br label %5154

5154:                                             ; preds = %5153
  %5155 = load i32, ptr @test_count, align 4, !tbaa !5
  %5156 = add nsw i32 %5155, 1
  store i32 %5156, ptr @test_count, align 4, !tbaa !5
  %5157 = load ptr, ptr %99, align 8, !tbaa !9
  %5158 = getelementptr inbounds %struct.s2n_connection, ptr %5157, i32 0, i32 66
  %5159 = getelementptr inbounds %struct.s2n_blob, ptr %5158, i32 0, i32 1
  %5160 = load i32, ptr %5159, align 8, !tbaa !50
  %5161 = icmp eq i32 %5160, 0
  br i1 %5161, label %5215, label %5162

5162:                                             ; preds = %5154
  br label %5163

5163:                                             ; preds = %5162
  br label %5164

5164:                                             ; preds = %5163
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %5165 = call ptr @__errno_location() #11
  %5166 = load i32, ptr %5165, align 4, !tbaa !5
  store i32 %5166, ptr %109, align 4, !tbaa !5
  %5167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5168 = call i32 @s2n_print_stacktrace(ptr noundef %5167)
  %5169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5170 = trunc i8 %5169 to i1
  br i1 %5170, label %5171, label %5193

5171:                                             ; preds = %5164
  %5172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5173 = call i32 @fileno(ptr noundef %5172) #10
  %5174 = call i32 @isatty(i32 noundef %5173) #10
  %5175 = icmp ne i32 %5174, 0
  br i1 %5175, label %5176, label %5193

5176:                                             ; preds = %5171
  %5177 = load i32, ptr %109, align 4, !tbaa !5
  %5178 = call ptr @__errno_location() #11
  store i32 %5177, ptr %5178, align 4, !tbaa !5
  %5179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5180 = load i32, ptr @test_count, align 4, !tbaa !5
  %5181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  %5183 = call ptr @s2n_strerror(i32 noundef %5182, ptr noundef @.str.4)
  %5184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call ptr @s2n_strerror_debug(i32 noundef %5185, ptr noundef @.str.4)
  %5187 = call ptr @__errno_location() #11
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call ptr @strerror(i32 noundef %5188) #10
  %5190 = call ptr @__errno_location() #11
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5179, ptr noundef @.str.2, i32 noundef %5180, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 315, ptr noundef %5183, ptr noundef %5186, ptr noundef %5189, i32 noundef %5191) #10
  br label %5210

5193:                                             ; preds = %5171, %5164
  %5194 = load i32, ptr %109, align 4, !tbaa !5
  %5195 = call ptr @__errno_location() #11
  store i32 %5194, ptr %5195, align 4, !tbaa !5
  %5196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5197 = load i32, ptr @test_count, align 4, !tbaa !5
  %5198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5199 = load i32, ptr %5198, align 4, !tbaa !5
  %5200 = call ptr @s2n_strerror(i32 noundef %5199, ptr noundef @.str.4)
  %5201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5202 = load i32, ptr %5201, align 4, !tbaa !5
  %5203 = call ptr @s2n_strerror_debug(i32 noundef %5202, ptr noundef @.str.4)
  %5204 = call ptr @__errno_location() #11
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call ptr @strerror(i32 noundef %5205) #10
  %5207 = call ptr @__errno_location() #11
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5196, ptr noundef @.str.5, i32 noundef %5197, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 315, ptr noundef %5200, ptr noundef %5203, ptr noundef %5206, i32 noundef %5208) #10
  br label %5210

5210:                                             ; preds = %5193, %5176
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %5211

5211:                                             ; preds = %5210
  br label %5212

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

5213:                                             ; No predecessors!
  br label %5214

5214:                                             ; preds = %5213
  br label %5215

5215:                                             ; preds = %5214, %5154
  br label %5216

5216:                                             ; preds = %5215
  br label %5217

5217:                                             ; preds = %5216
  br label %5218

5218:                                             ; preds = %5217
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = add nsw i32 %5219, 1
  store i32 %5220, ptr @test_count, align 4, !tbaa !5
  %5221 = load ptr, ptr %99, align 8, !tbaa !9
  %5222 = getelementptr inbounds %struct.s2n_connection, ptr %5221, i32 0, i32 66
  %5223 = getelementptr inbounds %struct.s2n_blob, ptr %5222, i32 0, i32 0
  %5224 = load ptr, ptr %5223, align 8, !tbaa !51
  %5225 = icmp eq ptr %5224, null
  br i1 %5225, label %5279, label %5226

5226:                                             ; preds = %5218
  br label %5227

5227:                                             ; preds = %5226
  br label %5228

5228:                                             ; preds = %5227
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %5229 = call ptr @__errno_location() #11
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  store i32 %5230, ptr %110, align 4, !tbaa !5
  %5231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5232 = call i32 @s2n_print_stacktrace(ptr noundef %5231)
  %5233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5234 = trunc i8 %5233 to i1
  br i1 %5234, label %5235, label %5257

5235:                                             ; preds = %5228
  %5236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5237 = call i32 @fileno(ptr noundef %5236) #10
  %5238 = call i32 @isatty(i32 noundef %5237) #10
  %5239 = icmp ne i32 %5238, 0
  br i1 %5239, label %5240, label %5257

5240:                                             ; preds = %5235
  %5241 = load i32, ptr %110, align 4, !tbaa !5
  %5242 = call ptr @__errno_location() #11
  store i32 %5241, ptr %5242, align 4, !tbaa !5
  %5243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5244 = load i32, ptr @test_count, align 4, !tbaa !5
  %5245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5246 = load i32, ptr %5245, align 4, !tbaa !5
  %5247 = call ptr @s2n_strerror(i32 noundef %5246, ptr noundef @.str.4)
  %5248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5249 = load i32, ptr %5248, align 4, !tbaa !5
  %5250 = call ptr @s2n_strerror_debug(i32 noundef %5249, ptr noundef @.str.4)
  %5251 = call ptr @__errno_location() #11
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @strerror(i32 noundef %5252) #10
  %5254 = call ptr @__errno_location() #11
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5243, ptr noundef @.str.2, i32 noundef %5244, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 316, ptr noundef %5247, ptr noundef %5250, ptr noundef %5253, i32 noundef %5255) #10
  br label %5274

5257:                                             ; preds = %5235, %5228
  %5258 = load i32, ptr %110, align 4, !tbaa !5
  %5259 = call ptr @__errno_location() #11
  store i32 %5258, ptr %5259, align 4, !tbaa !5
  %5260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5261 = load i32, ptr @test_count, align 4, !tbaa !5
  %5262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call ptr @s2n_strerror(i32 noundef %5263, ptr noundef @.str.4)
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror_debug(i32 noundef %5266, ptr noundef @.str.4)
  %5268 = call ptr @__errno_location() #11
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @strerror(i32 noundef %5269) #10
  %5271 = call ptr @__errno_location() #11
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5260, ptr noundef @.str.5, i32 noundef %5261, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 316, ptr noundef %5264, ptr noundef %5267, ptr noundef %5270, i32 noundef %5272) #10
  br label %5274

5274:                                             ; preds = %5257, %5240
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %5275

5275:                                             ; preds = %5274
  br label %5276

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

5277:                                             ; No predecessors!
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

5279:                                             ; preds = %5278, %5218
  br label %5280

5280:                                             ; preds = %5279
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

5282:                                             ; preds = %5281
  %5283 = load i32, ptr @test_count, align 4, !tbaa !5
  %5284 = add nsw i32 %5283, 1
  store i32 %5284, ptr @test_count, align 4, !tbaa !5
  %5285 = load ptr, ptr %99, align 8, !tbaa !9
  %5286 = call i32 @s2n_connection_free(ptr noundef %5285)
  %5287 = icmp eq i32 %5286, -1
  br i1 %5287, label %5288, label %5341

5288:                                             ; preds = %5282
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

5290:                                             ; preds = %5289
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %5291 = call ptr @__errno_location() #11
  %5292 = load i32, ptr %5291, align 4, !tbaa !5
  store i32 %5292, ptr %111, align 4, !tbaa !5
  %5293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5294 = call i32 @s2n_print_stacktrace(ptr noundef %5293)
  %5295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5296 = trunc i8 %5295 to i1
  br i1 %5296, label %5297, label %5319

5297:                                             ; preds = %5290
  %5298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5299 = call i32 @fileno(ptr noundef %5298) #10
  %5300 = call i32 @isatty(i32 noundef %5299) #10
  %5301 = icmp ne i32 %5300, 0
  br i1 %5301, label %5302, label %5319

5302:                                             ; preds = %5297
  %5303 = load i32, ptr %111, align 4, !tbaa !5
  %5304 = call ptr @__errno_location() #11
  store i32 %5303, ptr %5304, align 4, !tbaa !5
  %5305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5306 = load i32, ptr @test_count, align 4, !tbaa !5
  %5307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call ptr @s2n_strerror(i32 noundef %5308, ptr noundef @.str.4)
  %5310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  %5312 = call ptr @s2n_strerror_debug(i32 noundef %5311, ptr noundef @.str.4)
  %5313 = call ptr @__errno_location() #11
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call ptr @strerror(i32 noundef %5314) #10
  %5316 = call ptr @__errno_location() #11
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  %5318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5305, ptr noundef @.str.2, i32 noundef %5306, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5309, ptr noundef %5312, ptr noundef %5315, i32 noundef %5317) #10
  br label %5336

5319:                                             ; preds = %5297, %5290
  %5320 = load i32, ptr %111, align 4, !tbaa !5
  %5321 = call ptr @__errno_location() #11
  store i32 %5320, ptr %5321, align 4, !tbaa !5
  %5322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5323 = load i32, ptr @test_count, align 4, !tbaa !5
  %5324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call ptr @s2n_strerror(i32 noundef %5325, ptr noundef @.str.4)
  %5327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror_debug(i32 noundef %5328, ptr noundef @.str.4)
  %5330 = call ptr @__errno_location() #11
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @strerror(i32 noundef %5331) #10
  %5333 = call ptr @__errno_location() #11
  %5334 = load i32, ptr %5333, align 4, !tbaa !5
  %5335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5322, ptr noundef @.str.5, i32 noundef %5323, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5326, ptr noundef %5329, ptr noundef %5332, i32 noundef %5334) #10
  br label %5336

5336:                                             ; preds = %5319, %5302
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %5337

5337:                                             ; preds = %5336
  br label %5338

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

5339:                                             ; No predecessors!
  br label %5340

5340:                                             ; preds = %5339
  br label %5341

5341:                                             ; preds = %5340, %5282
  br label %5342

5342:                                             ; preds = %5341
  br label %5343

5343:                                             ; preds = %5342
  %5344 = call i32 @s2n_stuffer_free(ptr noundef %100)
  call void @llvm.lifetime.end.p0(i64 40, ptr %100) #10
  store i32 0, ptr %75, align 4
  br label %5345

5345:                                             ; preds = %5343, %4657
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  %5346 = load i32, ptr %75, align 4
  switch i32 %5346, label %6049 [
    i32 0, label %5347
  ]

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

5348:                                             ; preds = %5347
  %5349 = load ptr, ptr %13, align 8, !tbaa !9
  %5350 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef %112, ptr noundef %5349)
  %5351 = icmp sgt i32 %5350, -1
  br i1 %5351, label %5353, label %5352

5352:                                             ; preds = %5348
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %6046

5353:                                             ; preds = %5348
  br label %5354

5354:                                             ; preds = %5353
  br label %5355

5355:                                             ; preds = %5354
  call void @llvm.lifetime.start.p0(i64 40, ptr %113) #10
  br label %5356

5356:                                             ; preds = %5355
  %5357 = load i32, ptr @test_count, align 4, !tbaa !5
  %5358 = add nsw i32 %5357, 1
  store i32 %5358, ptr @test_count, align 4, !tbaa !5
  %5359 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %113, i32 noundef 0)
  %5360 = icmp eq i32 %5359, -1
  br i1 %5360, label %5361, label %5414

5361:                                             ; preds = %5356
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %5364 = call ptr @__errno_location() #11
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  store i32 %5365, ptr %114, align 4, !tbaa !5
  %5366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5367 = call i32 @s2n_print_stacktrace(ptr noundef %5366)
  %5368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5369 = trunc i8 %5368 to i1
  br i1 %5369, label %5370, label %5392

5370:                                             ; preds = %5363
  %5371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5372 = call i32 @fileno(ptr noundef %5371) #10
  %5373 = call i32 @isatty(i32 noundef %5372) #10
  %5374 = icmp ne i32 %5373, 0
  br i1 %5374, label %5375, label %5392

5375:                                             ; preds = %5370
  %5376 = load i32, ptr %114, align 4, !tbaa !5
  %5377 = call ptr @__errno_location() #11
  store i32 %5376, ptr %5377, align 4, !tbaa !5
  %5378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5379 = load i32, ptr @test_count, align 4, !tbaa !5
  %5380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5381 = load i32, ptr %5380, align 4, !tbaa !5
  %5382 = call ptr @s2n_strerror(i32 noundef %5381, ptr noundef @.str.4)
  %5383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  %5385 = call ptr @s2n_strerror_debug(i32 noundef %5384, ptr noundef @.str.4)
  %5386 = call ptr @__errno_location() #11
  %5387 = load i32, ptr %5386, align 4, !tbaa !5
  %5388 = call ptr @strerror(i32 noundef %5387) #10
  %5389 = call ptr @__errno_location() #11
  %5390 = load i32, ptr %5389, align 4, !tbaa !5
  %5391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5378, ptr noundef @.str.2, i32 noundef %5379, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 327, ptr noundef %5382, ptr noundef %5385, ptr noundef %5388, i32 noundef %5390) #10
  br label %5409

5392:                                             ; preds = %5370, %5363
  %5393 = load i32, ptr %114, align 4, !tbaa !5
  %5394 = call ptr @__errno_location() #11
  store i32 %5393, ptr %5394, align 4, !tbaa !5
  %5395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5396 = load i32, ptr @test_count, align 4, !tbaa !5
  %5397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @s2n_strerror(i32 noundef %5398, ptr noundef @.str.4)
  %5400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @s2n_strerror_debug(i32 noundef %5401, ptr noundef @.str.4)
  %5403 = call ptr @__errno_location() #11
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call ptr @strerror(i32 noundef %5404) #10
  %5406 = call ptr @__errno_location() #11
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  %5408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5395, ptr noundef @.str.5, i32 noundef %5396, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 327, ptr noundef %5399, ptr noundef %5402, ptr noundef %5405, i32 noundef %5407) #10
  br label %5409

5409:                                             ; preds = %5392, %5375
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

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

5412:                                             ; No predecessors!
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

5414:                                             ; preds = %5413, %5356
  br label %5415

5415:                                             ; preds = %5414
  br label %5416

5416:                                             ; preds = %5415
  br label %5417

5417:                                             ; preds = %5416
  %5418 = load i32, ptr @test_count, align 4, !tbaa !5
  %5419 = add nsw i32 %5418, 1
  store i32 %5419, ptr @test_count, align 4, !tbaa !5
  %5420 = call i32 @s2n_stuffer_reserve_uint24(ptr noundef %113, ptr noundef %98)
  %5421 = icmp eq i32 %5420, -1
  br i1 %5421, label %5422, label %5475

5422:                                             ; preds = %5417
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %5425 = call ptr @__errno_location() #11
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  store i32 %5426, ptr %115, align 4, !tbaa !5
  %5427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5428 = call i32 @s2n_print_stacktrace(ptr noundef %5427)
  %5429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5430 = trunc i8 %5429 to i1
  br i1 %5430, label %5431, label %5453

5431:                                             ; preds = %5424
  %5432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5433 = call i32 @fileno(ptr noundef %5432) #10
  %5434 = call i32 @isatty(i32 noundef %5433) #10
  %5435 = icmp ne i32 %5434, 0
  br i1 %5435, label %5436, label %5453

5436:                                             ; preds = %5431
  %5437 = load i32, ptr %115, align 4, !tbaa !5
  %5438 = call ptr @__errno_location() #11
  store i32 %5437, ptr %5438, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  %5443 = call ptr @s2n_strerror(i32 noundef %5442, ptr noundef @.str.4)
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror_debug(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call ptr @__errno_location() #11
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @strerror(i32 noundef %5448) #10
  %5450 = call ptr @__errno_location() #11
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef @.str.2, i32 noundef %5440, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 329, ptr noundef %5443, ptr noundef %5446, ptr noundef %5449, i32 noundef %5451) #10
  br label %5470

5453:                                             ; preds = %5431, %5424
  %5454 = load i32, ptr %115, align 4, !tbaa !5
  %5455 = call ptr @__errno_location() #11
  store i32 %5454, ptr %5455, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = load i32, ptr @test_count, align 4, !tbaa !5
  %5458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call ptr @s2n_strerror(i32 noundef %5459, ptr noundef @.str.4)
  %5461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call ptr @s2n_strerror_debug(i32 noundef %5462, ptr noundef @.str.4)
  %5464 = call ptr @__errno_location() #11
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @strerror(i32 noundef %5465) #10
  %5467 = call ptr @__errno_location() #11
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5456, ptr noundef @.str.5, i32 noundef %5457, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 329, ptr noundef %5460, ptr noundef %5463, ptr noundef %5466, i32 noundef %5468) #10
  br label %5470

5470:                                             ; preds = %5453, %5436
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %5471

5471:                                             ; preds = %5470
  br label %5472

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

5473:                                             ; No predecessors!
  br label %5474

5474:                                             ; preds = %5473
  br label %5475

5475:                                             ; preds = %5474, %5417
  br label %5476

5476:                                             ; preds = %5475
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477
  %5479 = load i32, ptr @test_count, align 4, !tbaa !5
  %5480 = add nsw i32 %5479, 1
  store i32 %5480, ptr @test_count, align 4, !tbaa !5
  %5481 = load ptr, ptr %13, align 8, !tbaa !9
  %5482 = call i32 @s2n_write_test_cert(ptr noundef %113, ptr noundef %5481)
  %5483 = icmp eq i32 %5482, -1
  br i1 %5483, label %5484, label %5537

5484:                                             ; preds = %5478
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %5487 = call ptr @__errno_location() #11
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  store i32 %5488, ptr %116, align 4, !tbaa !5
  %5489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5490 = call i32 @s2n_print_stacktrace(ptr noundef %5489)
  %5491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5492 = trunc i8 %5491 to i1
  br i1 %5492, label %5493, label %5515

5493:                                             ; preds = %5486
  %5494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5495 = call i32 @fileno(ptr noundef %5494) #10
  %5496 = call i32 @isatty(i32 noundef %5495) #10
  %5497 = icmp ne i32 %5496, 0
  br i1 %5497, label %5498, label %5515

5498:                                             ; preds = %5493
  %5499 = load i32, ptr %116, align 4, !tbaa !5
  %5500 = call ptr @__errno_location() #11
  store i32 %5499, ptr %5500, align 4, !tbaa !5
  %5501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5502 = load i32, ptr @test_count, align 4, !tbaa !5
  %5503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror(i32 noundef %5504, ptr noundef @.str.4)
  %5506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @s2n_strerror_debug(i32 noundef %5507, ptr noundef @.str.4)
  %5509 = call ptr @__errno_location() #11
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call ptr @strerror(i32 noundef %5510) #10
  %5512 = call ptr @__errno_location() #11
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  %5514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5501, ptr noundef @.str.2, i32 noundef %5502, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5505, ptr noundef %5508, ptr noundef %5511, i32 noundef %5513) #10
  br label %5532

5515:                                             ; preds = %5493, %5486
  %5516 = load i32, ptr %116, align 4, !tbaa !5
  %5517 = call ptr @__errno_location() #11
  store i32 %5516, ptr %5517, align 4, !tbaa !5
  %5518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5519 = load i32, ptr @test_count, align 4, !tbaa !5
  %5520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call ptr @s2n_strerror(i32 noundef %5521, ptr noundef @.str.4)
  %5523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  %5525 = call ptr @s2n_strerror_debug(i32 noundef %5524, ptr noundef @.str.4)
  %5526 = call ptr @__errno_location() #11
  %5527 = load i32, ptr %5526, align 4, !tbaa !5
  %5528 = call ptr @strerror(i32 noundef %5527) #10
  %5529 = call ptr @__errno_location() #11
  %5530 = load i32, ptr %5529, align 4, !tbaa !5
  %5531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5518, ptr noundef @.str.5, i32 noundef %5519, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 330, ptr noundef %5522, ptr noundef %5525, ptr noundef %5528, i32 noundef %5530) #10
  br label %5532

5532:                                             ; preds = %5515, %5498
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %5533

5533:                                             ; preds = %5532
  br label %5534

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

5535:                                             ; No predecessors!
  br label %5536

5536:                                             ; preds = %5535
  br label %5537

5537:                                             ; preds = %5536, %5478
  br label %5538

5538:                                             ; preds = %5537
  br label %5539

5539:                                             ; preds = %5538
  br label %5540

5540:                                             ; preds = %5539
  %5541 = load i32, ptr @test_count, align 4, !tbaa !5
  %5542 = add nsw i32 %5541, 1
  store i32 %5542, ptr @test_count, align 4, !tbaa !5
  %5543 = load ptr, ptr %112, align 8, !tbaa !9
  %5544 = call i32 @s2n_extension_list_send(i32 noundef 6, ptr noundef %5543, ptr noundef %113)
  %5545 = icmp eq i32 %5544, -1
  br i1 %5545, label %5546, label %5599

5546:                                             ; preds = %5540
  br label %5547

5547:                                             ; preds = %5546
  br label %5548

5548:                                             ; preds = %5547
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %5549 = call ptr @__errno_location() #11
  %5550 = load i32, ptr %5549, align 4, !tbaa !5
  store i32 %5550, ptr %117, align 4, !tbaa !5
  %5551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5552 = call i32 @s2n_print_stacktrace(ptr noundef %5551)
  %5553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5554 = trunc i8 %5553 to i1
  br i1 %5554, label %5555, label %5577

5555:                                             ; preds = %5548
  %5556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5557 = call i32 @fileno(ptr noundef %5556) #10
  %5558 = call i32 @isatty(i32 noundef %5557) #10
  %5559 = icmp ne i32 %5558, 0
  br i1 %5559, label %5560, label %5577

5560:                                             ; preds = %5555
  %5561 = load i32, ptr %117, align 4, !tbaa !5
  %5562 = call ptr @__errno_location() #11
  store i32 %5561, ptr %5562, align 4, !tbaa !5
  %5563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5564 = load i32, ptr @test_count, align 4, !tbaa !5
  %5565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call ptr @s2n_strerror(i32 noundef %5566, ptr noundef @.str.4)
  %5568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5569 = load i32, ptr %5568, align 4, !tbaa !5
  %5570 = call ptr @s2n_strerror_debug(i32 noundef %5569, ptr noundef @.str.4)
  %5571 = call ptr @__errno_location() #11
  %5572 = load i32, ptr %5571, align 4, !tbaa !5
  %5573 = call ptr @strerror(i32 noundef %5572) #10
  %5574 = call ptr @__errno_location() #11
  %5575 = load i32, ptr %5574, align 4, !tbaa !5
  %5576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5563, ptr noundef @.str.2, i32 noundef %5564, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5567, ptr noundef %5570, ptr noundef %5573, i32 noundef %5575) #10
  br label %5594

5577:                                             ; preds = %5555, %5548
  %5578 = load i32, ptr %117, align 4, !tbaa !5
  %5579 = call ptr @__errno_location() #11
  store i32 %5578, ptr %5579, align 4, !tbaa !5
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = load i32, ptr @test_count, align 4, !tbaa !5
  %5582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call ptr @s2n_strerror(i32 noundef %5583, ptr noundef @.str.4)
  %5585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call ptr @s2n_strerror_debug(i32 noundef %5586, ptr noundef @.str.4)
  %5588 = call ptr @__errno_location() #11
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call ptr @strerror(i32 noundef %5589) #10
  %5591 = call ptr @__errno_location() #11
  %5592 = load i32, ptr %5591, align 4, !tbaa !5
  %5593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5580, ptr noundef @.str.5, i32 noundef %5581, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5584, ptr noundef %5587, ptr noundef %5590, i32 noundef %5592) #10
  br label %5594

5594:                                             ; preds = %5577, %5560
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5595

5595:                                             ; preds = %5594
  br label %5596

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

5597:                                             ; No predecessors!
  br label %5598

5598:                                             ; preds = %5597
  br label %5599

5599:                                             ; preds = %5598, %5540
  br label %5600

5600:                                             ; preds = %5599
  br label %5601

5601:                                             ; preds = %5600
  br label %5602

5602:                                             ; preds = %5601
  %5603 = load i32, ptr @test_count, align 4, !tbaa !5
  %5604 = add nsw i32 %5603, 1
  store i32 %5604, ptr @test_count, align 4, !tbaa !5
  %5605 = load ptr, ptr %13, align 8, !tbaa !9
  %5606 = call i32 @s2n_write_test_cert(ptr noundef %113, ptr noundef %5605)
  %5607 = icmp eq i32 %5606, -1
  br i1 %5607, label %5608, label %5661

5608:                                             ; preds = %5602
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

5610:                                             ; preds = %5609
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %5611 = call ptr @__errno_location() #11
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  store i32 %5612, ptr %118, align 4, !tbaa !5
  %5613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5614 = call i32 @s2n_print_stacktrace(ptr noundef %5613)
  %5615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5616 = trunc i8 %5615 to i1
  br i1 %5616, label %5617, label %5639

5617:                                             ; preds = %5610
  %5618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5619 = call i32 @fileno(ptr noundef %5618) #10
  %5620 = call i32 @isatty(i32 noundef %5619) #10
  %5621 = icmp ne i32 %5620, 0
  br i1 %5621, label %5622, label %5639

5622:                                             ; preds = %5617
  %5623 = load i32, ptr %118, align 4, !tbaa !5
  %5624 = call ptr @__errno_location() #11
  store i32 %5623, ptr %5624, align 4, !tbaa !5
  %5625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5626 = load i32, ptr @test_count, align 4, !tbaa !5
  %5627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  %5629 = call ptr @s2n_strerror(i32 noundef %5628, ptr noundef @.str.4)
  %5630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5631 = load i32, ptr %5630, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror_debug(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call ptr @__errno_location() #11
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @strerror(i32 noundef %5634) #10
  %5636 = call ptr @__errno_location() #11
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5625, ptr noundef @.str.2, i32 noundef %5626, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 332, ptr noundef %5629, ptr noundef %5632, ptr noundef %5635, i32 noundef %5637) #10
  br label %5656

5639:                                             ; preds = %5617, %5610
  %5640 = load i32, ptr %118, align 4, !tbaa !5
  %5641 = call ptr @__errno_location() #11
  store i32 %5640, ptr %5641, align 4, !tbaa !5
  %5642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5643 = load i32, ptr @test_count, align 4, !tbaa !5
  %5644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call ptr @s2n_strerror(i32 noundef %5645, ptr noundef @.str.4)
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror_debug(i32 noundef %5648, ptr noundef @.str.4)
  %5650 = call ptr @__errno_location() #11
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @strerror(i32 noundef %5651) #10
  %5653 = call ptr @__errno_location() #11
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5642, ptr noundef @.str.5, i32 noundef %5643, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 332, ptr noundef %5646, ptr noundef %5649, ptr noundef %5652, i32 noundef %5654) #10
  br label %5656

5656:                                             ; preds = %5639, %5622
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %5657

5657:                                             ; preds = %5656
  br label %5658

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

5659:                                             ; No predecessors!
  br label %5660

5660:                                             ; preds = %5659
  br label %5661

5661:                                             ; preds = %5660, %5602
  br label %5662

5662:                                             ; preds = %5661
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

5664:                                             ; preds = %5663
  %5665 = load i32, ptr @test_count, align 4, !tbaa !5
  %5666 = add nsw i32 %5665, 1
  store i32 %5666, ptr @test_count, align 4, !tbaa !5
  %5667 = load ptr, ptr %112, align 8, !tbaa !9
  %5668 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef %5667, ptr noundef %113)
  %5669 = icmp eq i32 %5668, -1
  br i1 %5669, label %5670, label %5723

5670:                                             ; preds = %5664
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %5673 = call ptr @__errno_location() #11
  %5674 = load i32, ptr %5673, align 4, !tbaa !5
  store i32 %5674, ptr %119, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = call i32 @s2n_print_stacktrace(ptr noundef %5675)
  %5677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5678 = trunc i8 %5677 to i1
  br i1 %5678, label %5679, label %5701

5679:                                             ; preds = %5672
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = call i32 @fileno(ptr noundef %5680) #10
  %5682 = call i32 @isatty(i32 noundef %5681) #10
  %5683 = icmp ne i32 %5682, 0
  br i1 %5683, label %5684, label %5701

5684:                                             ; preds = %5679
  %5685 = load i32, ptr %119, align 4, !tbaa !5
  %5686 = call ptr @__errno_location() #11
  store i32 %5685, ptr %5686, align 4, !tbaa !5
  %5687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5688 = load i32, ptr @test_count, align 4, !tbaa !5
  %5689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5690 = load i32, ptr %5689, align 4, !tbaa !5
  %5691 = call ptr @s2n_strerror(i32 noundef %5690, ptr noundef @.str.4)
  %5692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5693 = load i32, ptr %5692, align 4, !tbaa !5
  %5694 = call ptr @s2n_strerror_debug(i32 noundef %5693, ptr noundef @.str.4)
  %5695 = call ptr @__errno_location() #11
  %5696 = load i32, ptr %5695, align 4, !tbaa !5
  %5697 = call ptr @strerror(i32 noundef %5696) #10
  %5698 = call ptr @__errno_location() #11
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5687, ptr noundef @.str.2, i32 noundef %5688, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5691, ptr noundef %5694, ptr noundef %5697, i32 noundef %5699) #10
  br label %5718

5701:                                             ; preds = %5679, %5672
  %5702 = load i32, ptr %119, align 4, !tbaa !5
  %5703 = call ptr @__errno_location() #11
  store i32 %5702, ptr %5703, align 4, !tbaa !5
  %5704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5705 = load i32, ptr @test_count, align 4, !tbaa !5
  %5706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5707 = load i32, ptr %5706, align 4, !tbaa !5
  %5708 = call ptr @s2n_strerror(i32 noundef %5707, ptr noundef @.str.4)
  %5709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5710 = load i32, ptr %5709, align 4, !tbaa !5
  %5711 = call ptr @s2n_strerror_debug(i32 noundef %5710, ptr noundef @.str.4)
  %5712 = call ptr @__errno_location() #11
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @strerror(i32 noundef %5713) #10
  %5715 = call ptr @__errno_location() #11
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5704, ptr noundef @.str.5, i32 noundef %5705, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 333, ptr noundef %5708, ptr noundef %5711, ptr noundef %5714, i32 noundef %5716) #10
  br label %5718

5718:                                             ; preds = %5701, %5684
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %5719

5719:                                             ; preds = %5718
  br label %5720

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

5721:                                             ; No predecessors!
  br label %5722

5722:                                             ; preds = %5721
  br label %5723

5723:                                             ; preds = %5722, %5664
  br label %5724

5724:                                             ; preds = %5723
  br label %5725

5725:                                             ; preds = %5724
  br label %5726

5726:                                             ; preds = %5725
  %5727 = load i32, ptr @test_count, align 4, !tbaa !5
  %5728 = add nsw i32 %5727, 1
  store i32 %5728, ptr @test_count, align 4, !tbaa !5
  %5729 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %98)
  %5730 = icmp eq i32 %5729, -1
  br i1 %5730, label %5731, label %5784

5731:                                             ; preds = %5726
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

5733:                                             ; preds = %5732
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %5734 = call ptr @__errno_location() #11
  %5735 = load i32, ptr %5734, align 4, !tbaa !5
  store i32 %5735, ptr %120, align 4, !tbaa !5
  %5736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5737 = call i32 @s2n_print_stacktrace(ptr noundef %5736)
  %5738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5739 = trunc i8 %5738 to i1
  br i1 %5739, label %5740, label %5762

5740:                                             ; preds = %5733
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = call i32 @fileno(ptr noundef %5741) #10
  %5743 = call i32 @isatty(i32 noundef %5742) #10
  %5744 = icmp ne i32 %5743, 0
  br i1 %5744, label %5745, label %5762

5745:                                             ; preds = %5740
  %5746 = load i32, ptr %120, align 4, !tbaa !5
  %5747 = call ptr @__errno_location() #11
  store i32 %5746, ptr %5747, align 4, !tbaa !5
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = load i32, ptr @test_count, align 4, !tbaa !5
  %5750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5751 = load i32, ptr %5750, align 4, !tbaa !5
  %5752 = call ptr @s2n_strerror(i32 noundef %5751, ptr noundef @.str.4)
  %5753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5754 = load i32, ptr %5753, align 4, !tbaa !5
  %5755 = call ptr @s2n_strerror_debug(i32 noundef %5754, ptr noundef @.str.4)
  %5756 = call ptr @__errno_location() #11
  %5757 = load i32, ptr %5756, align 4, !tbaa !5
  %5758 = call ptr @strerror(i32 noundef %5757) #10
  %5759 = call ptr @__errno_location() #11
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5748, ptr noundef @.str.2, i32 noundef %5749, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5752, ptr noundef %5755, ptr noundef %5758, i32 noundef %5760) #10
  br label %5779

5762:                                             ; preds = %5740, %5733
  %5763 = load i32, ptr %120, align 4, !tbaa !5
  %5764 = call ptr @__errno_location() #11
  store i32 %5763, ptr %5764, align 4, !tbaa !5
  %5765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5766 = load i32, ptr @test_count, align 4, !tbaa !5
  %5767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  %5769 = call ptr @s2n_strerror(i32 noundef %5768, ptr noundef @.str.4)
  %5770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5771 = load i32, ptr %5770, align 4, !tbaa !5
  %5772 = call ptr @s2n_strerror_debug(i32 noundef %5771, ptr noundef @.str.4)
  %5773 = call ptr @__errno_location() #11
  %5774 = load i32, ptr %5773, align 4, !tbaa !5
  %5775 = call ptr @strerror(i32 noundef %5774) #10
  %5776 = call ptr @__errno_location() #11
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5765, ptr noundef @.str.5, i32 noundef %5766, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 334, ptr noundef %5769, ptr noundef %5772, ptr noundef %5775, i32 noundef %5777) #10
  br label %5779

5779:                                             ; preds = %5762, %5745
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5780

5780:                                             ; preds = %5779
  br label %5781

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

5782:                                             ; No predecessors!
  br label %5783

5783:                                             ; preds = %5782
  br label %5784

5784:                                             ; preds = %5783, %5726
  br label %5785

5785:                                             ; preds = %5784
  br label %5786

5786:                                             ; preds = %5785
  br label %5787

5787:                                             ; preds = %5786
  %5788 = load i32, ptr @test_count, align 4, !tbaa !5
  %5789 = add nsw i32 %5788, 1
  store i32 %5789, ptr @test_count, align 4, !tbaa !5
  %5790 = load ptr, ptr %112, align 8, !tbaa !9
  %5791 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %5790, ptr noundef %113)
  %5792 = icmp eq i32 %5791, -1
  br i1 %5792, label %5793, label %5846

5793:                                             ; preds = %5787
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %5796 = call ptr @__errno_location() #11
  %5797 = load i32, ptr %5796, align 4, !tbaa !5
  store i32 %5797, ptr %121, align 4, !tbaa !5
  %5798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5799 = call i32 @s2n_print_stacktrace(ptr noundef %5798)
  %5800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5801 = trunc i8 %5800 to i1
  br i1 %5801, label %5802, label %5824

5802:                                             ; preds = %5795
  %5803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5804 = call i32 @fileno(ptr noundef %5803) #10
  %5805 = call i32 @isatty(i32 noundef %5804) #10
  %5806 = icmp ne i32 %5805, 0
  br i1 %5806, label %5807, label %5824

5807:                                             ; preds = %5802
  %5808 = load i32, ptr %121, align 4, !tbaa !5
  %5809 = call ptr @__errno_location() #11
  store i32 %5808, ptr %5809, align 4, !tbaa !5
  %5810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5811 = load i32, ptr @test_count, align 4, !tbaa !5
  %5812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5813 = load i32, ptr %5812, align 4, !tbaa !5
  %5814 = call ptr @s2n_strerror(i32 noundef %5813, ptr noundef @.str.4)
  %5815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5816 = load i32, ptr %5815, align 4, !tbaa !5
  %5817 = call ptr @s2n_strerror_debug(i32 noundef %5816, ptr noundef @.str.4)
  %5818 = call ptr @__errno_location() #11
  %5819 = load i32, ptr %5818, align 4, !tbaa !5
  %5820 = call ptr @strerror(i32 noundef %5819) #10
  %5821 = call ptr @__errno_location() #11
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  %5823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5810, ptr noundef @.str.2, i32 noundef %5811, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 336, ptr noundef %5814, ptr noundef %5817, ptr noundef %5820, i32 noundef %5822) #10
  br label %5841

5824:                                             ; preds = %5802, %5795
  %5825 = load i32, ptr %121, align 4, !tbaa !5
  %5826 = call ptr @__errno_location() #11
  store i32 %5825, ptr %5826, align 4, !tbaa !5
  %5827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5828 = load i32, ptr @test_count, align 4, !tbaa !5
  %5829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call ptr @s2n_strerror(i32 noundef %5830, ptr noundef @.str.4)
  %5832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5833 = load i32, ptr %5832, align 4, !tbaa !5
  %5834 = call ptr @s2n_strerror_debug(i32 noundef %5833, ptr noundef @.str.4)
  %5835 = call ptr @__errno_location() #11
  %5836 = load i32, ptr %5835, align 4, !tbaa !5
  %5837 = call ptr @strerror(i32 noundef %5836) #10
  %5838 = call ptr @__errno_location() #11
  %5839 = load i32, ptr %5838, align 4, !tbaa !5
  %5840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5827, ptr noundef @.str.5, i32 noundef %5828, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 336, ptr noundef %5831, ptr noundef %5834, ptr noundef %5837, i32 noundef %5839) #10
  br label %5841

5841:                                             ; preds = %5824, %5807
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5842

5842:                                             ; preds = %5841
  br label %5843

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

5844:                                             ; No predecessors!
  br label %5845

5845:                                             ; preds = %5844
  br label %5846

5846:                                             ; preds = %5845, %5787
  br label %5847

5847:                                             ; preds = %5846
  br label %5848

5848:                                             ; preds = %5847
  br label %5849

5849:                                             ; preds = %5848
  %5850 = load i32, ptr @test_count, align 4, !tbaa !5
  %5851 = add nsw i32 %5850, 1
  store i32 %5851, ptr @test_count, align 4, !tbaa !5
  %5852 = load ptr, ptr %112, align 8, !tbaa !9
  %5853 = getelementptr inbounds %struct.s2n_connection, ptr %5852, i32 0, i32 66
  %5854 = getelementptr inbounds %struct.s2n_blob, ptr %5853, i32 0, i32 1
  %5855 = load i32, ptr %5854, align 8, !tbaa !50
  %5856 = zext i32 %5855 to i64
  %5857 = icmp eq i64 %5856, 15
  br i1 %5857, label %5911, label %5858

5858:                                             ; preds = %5849
  br label %5859

5859:                                             ; preds = %5858
  br label %5860

5860:                                             ; preds = %5859
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %5861 = call ptr @__errno_location() #11
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  store i32 %5862, ptr %122, align 4, !tbaa !5
  %5863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5864 = call i32 @s2n_print_stacktrace(ptr noundef %5863)
  %5865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5866 = trunc i8 %5865 to i1
  br i1 %5866, label %5867, label %5889

5867:                                             ; preds = %5860
  %5868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5869 = call i32 @fileno(ptr noundef %5868) #10
  %5870 = call i32 @isatty(i32 noundef %5869) #10
  %5871 = icmp ne i32 %5870, 0
  br i1 %5871, label %5872, label %5889

5872:                                             ; preds = %5867
  %5873 = load i32, ptr %122, align 4, !tbaa !5
  %5874 = call ptr @__errno_location() #11
  store i32 %5873, ptr %5874, align 4, !tbaa !5
  %5875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5876 = load i32, ptr @test_count, align 4, !tbaa !5
  %5877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5878 = load i32, ptr %5877, align 4, !tbaa !5
  %5879 = call ptr @s2n_strerror(i32 noundef %5878, ptr noundef @.str.4)
  %5880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5881 = load i32, ptr %5880, align 4, !tbaa !5
  %5882 = call ptr @s2n_strerror_debug(i32 noundef %5881, ptr noundef @.str.4)
  %5883 = call ptr @__errno_location() #11
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  %5885 = call ptr @strerror(i32 noundef %5884) #10
  %5886 = call ptr @__errno_location() #11
  %5887 = load i32, ptr %5886, align 4, !tbaa !5
  %5888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5875, ptr noundef @.str.2, i32 noundef %5876, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 338, ptr noundef %5879, ptr noundef %5882, ptr noundef %5885, i32 noundef %5887) #10
  br label %5906

5889:                                             ; preds = %5867, %5860
  %5890 = load i32, ptr %122, align 4, !tbaa !5
  %5891 = call ptr @__errno_location() #11
  store i32 %5890, ptr %5891, align 4, !tbaa !5
  %5892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5893 = load i32, ptr @test_count, align 4, !tbaa !5
  %5894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5895 = load i32, ptr %5894, align 4, !tbaa !5
  %5896 = call ptr @s2n_strerror(i32 noundef %5895, ptr noundef @.str.4)
  %5897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5898 = load i32, ptr %5897, align 4, !tbaa !5
  %5899 = call ptr @s2n_strerror_debug(i32 noundef %5898, ptr noundef @.str.4)
  %5900 = call ptr @__errno_location() #11
  %5901 = load i32, ptr %5900, align 4, !tbaa !5
  %5902 = call ptr @strerror(i32 noundef %5901) #10
  %5903 = call ptr @__errno_location() #11
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  %5905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5892, ptr noundef @.str.5, i32 noundef %5893, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 338, ptr noundef %5896, ptr noundef %5899, ptr noundef %5902, i32 noundef %5904) #10
  br label %5906

5906:                                             ; preds = %5889, %5872
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %5907

5907:                                             ; preds = %5906
  br label %5908

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

5909:                                             ; No predecessors!
  br label %5910

5910:                                             ; preds = %5909
  br label %5911

5911:                                             ; preds = %5910, %5849
  br label %5912

5912:                                             ; preds = %5911
  br label %5913

5913:                                             ; preds = %5912
  br label %5914

5914:                                             ; preds = %5913
  br label %5915

5915:                                             ; preds = %5914
  %5916 = load i32, ptr @test_count, align 4, !tbaa !5
  %5917 = add nsw i32 %5916, 1
  store i32 %5917, ptr @test_count, align 4, !tbaa !5
  %5918 = load ptr, ptr %112, align 8, !tbaa !9
  %5919 = getelementptr inbounds %struct.s2n_connection, ptr %5918, i32 0, i32 66
  %5920 = getelementptr inbounds %struct.s2n_blob, ptr %5919, i32 0, i32 0
  %5921 = load ptr, ptr %5920, align 8, !tbaa !51
  %5922 = getelementptr inbounds [15 x i8], ptr %16, i64 0, i64 0
  %5923 = call i32 @memcmp(ptr noundef %5921, ptr noundef %5922, i64 noundef 15) #13
  %5924 = icmp eq i32 %5923, 0
  br i1 %5924, label %5978, label %5925

5925:                                             ; preds = %5915
  br label %5926

5926:                                             ; preds = %5925
  br label %5927

5927:                                             ; preds = %5926
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5928 = call ptr @__errno_location() #11
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  store i32 %5929, ptr %123, align 4, !tbaa !5
  %5930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5931 = call i32 @s2n_print_stacktrace(ptr noundef %5930)
  %5932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5933 = trunc i8 %5932 to i1
  br i1 %5933, label %5934, label %5956

5934:                                             ; preds = %5927
  %5935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5936 = call i32 @fileno(ptr noundef %5935) #10
  %5937 = call i32 @isatty(i32 noundef %5936) #10
  %5938 = icmp ne i32 %5937, 0
  br i1 %5938, label %5939, label %5956

5939:                                             ; preds = %5934
  %5940 = load i32, ptr %123, align 4, !tbaa !5
  %5941 = call ptr @__errno_location() #11
  store i32 %5940, ptr %5941, align 4, !tbaa !5
  %5942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5943 = load i32, ptr @test_count, align 4, !tbaa !5
  %5944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5945 = load i32, ptr %5944, align 4, !tbaa !5
  %5946 = call ptr @s2n_strerror(i32 noundef %5945, ptr noundef @.str.4)
  %5947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5948 = load i32, ptr %5947, align 4, !tbaa !5
  %5949 = call ptr @s2n_strerror_debug(i32 noundef %5948, ptr noundef @.str.4)
  %5950 = call ptr @__errno_location() #11
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @strerror(i32 noundef %5951) #10
  %5953 = call ptr @__errno_location() #11
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5942, ptr noundef @.str.2, i32 noundef %5943, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 339, ptr noundef %5946, ptr noundef %5949, ptr noundef %5952, i32 noundef %5954) #10
  br label %5973

5956:                                             ; preds = %5934, %5927
  %5957 = load i32, ptr %123, align 4, !tbaa !5
  %5958 = call ptr @__errno_location() #11
  store i32 %5957, ptr %5958, align 4, !tbaa !5
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5962 = load i32, ptr %5961, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror(i32 noundef %5962, ptr noundef @.str.4)
  %5964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5965 = load i32, ptr %5964, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef @.str.4)
  %5967 = call ptr @__errno_location() #11
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call ptr @strerror(i32 noundef %5968) #10
  %5970 = call ptr @__errno_location() #11
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5959, ptr noundef @.str.5, i32 noundef %5960, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 339, ptr noundef %5963, ptr noundef %5966, ptr noundef %5969, i32 noundef %5971) #10
  br label %5973

5973:                                             ; preds = %5956, %5939
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5974

5974:                                             ; preds = %5973
  br label %5975

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

5976:                                             ; No predecessors!
  br label %5977

5977:                                             ; preds = %5976
  br label %5978

5978:                                             ; preds = %5977, %5915
  br label %5979

5979:                                             ; preds = %5978
  br label %5980

5980:                                             ; preds = %5979
  br label %5981

5981:                                             ; preds = %5980
  br label %5982

5982:                                             ; preds = %5981
  br label %5983

5983:                                             ; preds = %5982
  %5984 = load i32, ptr @test_count, align 4, !tbaa !5
  %5985 = add nsw i32 %5984, 1
  store i32 %5985, ptr @test_count, align 4, !tbaa !5
  %5986 = load ptr, ptr %112, align 8, !tbaa !9
  %5987 = call i32 @s2n_connection_free(ptr noundef %5986)
  %5988 = icmp eq i32 %5987, -1
  br i1 %5988, label %5989, label %6042

5989:                                             ; preds = %5983
  br label %5990

5990:                                             ; preds = %5989
  br label %5991

5991:                                             ; preds = %5990
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %5992 = call ptr @__errno_location() #11
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  store i32 %5993, ptr %124, align 4, !tbaa !5
  %5994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5995 = call i32 @s2n_print_stacktrace(ptr noundef %5994)
  %5996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5997 = trunc i8 %5996 to i1
  br i1 %5997, label %5998, label %6020

5998:                                             ; preds = %5991
  %5999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6000 = call i32 @fileno(ptr noundef %5999) #10
  %6001 = call i32 @isatty(i32 noundef %6000) #10
  %6002 = icmp ne i32 %6001, 0
  br i1 %6002, label %6003, label %6020

6003:                                             ; preds = %5998
  %6004 = load i32, ptr %124, align 4, !tbaa !5
  %6005 = call ptr @__errno_location() #11
  store i32 %6004, ptr %6005, align 4, !tbaa !5
  %6006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6007 = load i32, ptr @test_count, align 4, !tbaa !5
  %6008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6009 = load i32, ptr %6008, align 4, !tbaa !5
  %6010 = call ptr @s2n_strerror(i32 noundef %6009, ptr noundef @.str.4)
  %6011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  %6013 = call ptr @s2n_strerror_debug(i32 noundef %6012, ptr noundef @.str.4)
  %6014 = call ptr @__errno_location() #11
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  %6016 = call ptr @strerror(i32 noundef %6015) #10
  %6017 = call ptr @__errno_location() #11
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6006, ptr noundef @.str.2, i32 noundef %6007, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6010, ptr noundef %6013, ptr noundef %6016, i32 noundef %6018) #10
  br label %6037

6020:                                             ; preds = %5998, %5991
  %6021 = load i32, ptr %124, align 4, !tbaa !5
  %6022 = call ptr @__errno_location() #11
  store i32 %6021, ptr %6022, align 4, !tbaa !5
  %6023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6024 = load i32, ptr @test_count, align 4, !tbaa !5
  %6025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6026 = load i32, ptr %6025, align 4, !tbaa !5
  %6027 = call ptr @s2n_strerror(i32 noundef %6026, ptr noundef @.str.4)
  %6028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6029 = load i32, ptr %6028, align 4, !tbaa !5
  %6030 = call ptr @s2n_strerror_debug(i32 noundef %6029, ptr noundef @.str.4)
  %6031 = call ptr @__errno_location() #11
  %6032 = load i32, ptr %6031, align 4, !tbaa !5
  %6033 = call ptr @strerror(i32 noundef %6032) #10
  %6034 = call ptr @__errno_location() #11
  %6035 = load i32, ptr %6034, align 4, !tbaa !5
  %6036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6023, ptr noundef @.str.5, i32 noundef %6024, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6027, ptr noundef %6030, ptr noundef %6033, i32 noundef %6035) #10
  br label %6037

6037:                                             ; preds = %6020, %6003
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %6038

6038:                                             ; preds = %6037
  br label %6039

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

6040:                                             ; No predecessors!
  br label %6041

6041:                                             ; preds = %6040
  br label %6042

6042:                                             ; preds = %6041, %5983
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

6044:                                             ; preds = %6043
  %6045 = call i32 @s2n_stuffer_free(ptr noundef %113)
  call void @llvm.lifetime.end.p0(i64 40, ptr %113) #10
  store i32 0, ptr %75, align 4
  br label %6046

6046:                                             ; preds = %6044, %5352
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #10
  %6047 = load i32, ptr %75, align 4
  switch i32 %6047, label %6049 [
    i32 0, label %6048
  ]

6048:                                             ; preds = %6046
  store i32 0, ptr %75, align 4
  br label %6049

6049:                                             ; preds = %6048, %6046, %5345
  call void @llvm.lifetime.end.p0(i64 16, ptr %98) #10
  %6050 = load i32, ptr %75, align 4
  switch i32 %6050, label %6330 [
    i32 0, label %6051
  ]

6051:                                             ; preds = %6049
  br label %6052

6052:                                             ; preds = %6051
  %6053 = load i32, ptr @test_count, align 4, !tbaa !5
  %6054 = add nsw i32 %6053, 1
  store i32 %6054, ptr @test_count, align 4, !tbaa !5
  %6055 = load ptr, ptr %13, align 8, !tbaa !9
  %6056 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %6055)
  %6057 = icmp eq i32 %6056, -1
  br i1 %6057, label %6058, label %6111

6058:                                             ; preds = %6052
  br label %6059

6059:                                             ; preds = %6058
  br label %6060

6060:                                             ; preds = %6059
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %6061 = call ptr @__errno_location() #11
  %6062 = load i32, ptr %6061, align 4, !tbaa !5
  store i32 %6062, ptr %125, align 4, !tbaa !5
  %6063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6064 = call i32 @s2n_print_stacktrace(ptr noundef %6063)
  %6065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6066 = trunc i8 %6065 to i1
  br i1 %6066, label %6067, label %6089

6067:                                             ; preds = %6060
  %6068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6069 = call i32 @fileno(ptr noundef %6068) #10
  %6070 = call i32 @isatty(i32 noundef %6069) #10
  %6071 = icmp ne i32 %6070, 0
  br i1 %6071, label %6072, label %6089

6072:                                             ; preds = %6067
  %6073 = load i32, ptr %125, align 4, !tbaa !5
  %6074 = call ptr @__errno_location() #11
  store i32 %6073, ptr %6074, align 4, !tbaa !5
  %6075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6076 = load i32, ptr @test_count, align 4, !tbaa !5
  %6077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6078 = load i32, ptr %6077, align 4, !tbaa !5
  %6079 = call ptr @s2n_strerror(i32 noundef %6078, ptr noundef @.str.4)
  %6080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6081 = load i32, ptr %6080, align 4, !tbaa !5
  %6082 = call ptr @s2n_strerror_debug(i32 noundef %6081, ptr noundef @.str.4)
  %6083 = call ptr @__errno_location() #11
  %6084 = load i32, ptr %6083, align 4, !tbaa !5
  %6085 = call ptr @strerror(i32 noundef %6084) #10
  %6086 = call ptr @__errno_location() #11
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  %6088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6075, ptr noundef @.str.2, i32 noundef %6076, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 346, ptr noundef %6079, ptr noundef %6082, ptr noundef %6085, i32 noundef %6087) #10
  br label %6106

6089:                                             ; preds = %6067, %6060
  %6090 = load i32, ptr %125, align 4, !tbaa !5
  %6091 = call ptr @__errno_location() #11
  store i32 %6090, ptr %6091, align 4, !tbaa !5
  %6092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6093 = load i32, ptr @test_count, align 4, !tbaa !5
  %6094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  %6096 = call ptr @s2n_strerror(i32 noundef %6095, ptr noundef @.str.4)
  %6097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6098 = load i32, ptr %6097, align 4, !tbaa !5
  %6099 = call ptr @s2n_strerror_debug(i32 noundef %6098, ptr noundef @.str.4)
  %6100 = call ptr @__errno_location() #11
  %6101 = load i32, ptr %6100, align 4, !tbaa !5
  %6102 = call ptr @strerror(i32 noundef %6101) #10
  %6103 = call ptr @__errno_location() #11
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  %6105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6092, ptr noundef @.str.5, i32 noundef %6093, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 346, ptr noundef %6096, ptr noundef %6099, ptr noundef %6102, i32 noundef %6104) #10
  br label %6106

6106:                                             ; preds = %6089, %6072
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %6107

6107:                                             ; preds = %6106
  br label %6108

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

6109:                                             ; No predecessors!
  br label %6110

6110:                                             ; preds = %6109
  br label %6111

6111:                                             ; preds = %6110, %6052
  br label %6112

6112:                                             ; preds = %6111
  br label %6113

6113:                                             ; preds = %6112
  br label %6114

6114:                                             ; preds = %6113
  %6115 = load i32, ptr @test_count, align 4, !tbaa !5
  %6116 = add nsw i32 %6115, 1
  store i32 %6116, ptr @test_count, align 4, !tbaa !5
  %6117 = load ptr, ptr %10, align 8, !tbaa !9
  %6118 = call i32 @s2n_config_free(ptr noundef %6117)
  %6119 = icmp eq i32 %6118, -1
  br i1 %6119, label %6120, label %6173

6120:                                             ; preds = %6114
  br label %6121

6121:                                             ; preds = %6120
  br label %6122

6122:                                             ; preds = %6121
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %6123 = call ptr @__errno_location() #11
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  store i32 %6124, ptr %126, align 4, !tbaa !5
  %6125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6126 = call i32 @s2n_print_stacktrace(ptr noundef %6125)
  %6127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6128 = trunc i8 %6127 to i1
  br i1 %6128, label %6129, label %6151

6129:                                             ; preds = %6122
  %6130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6131 = call i32 @fileno(ptr noundef %6130) #10
  %6132 = call i32 @isatty(i32 noundef %6131) #10
  %6133 = icmp ne i32 %6132, 0
  br i1 %6133, label %6134, label %6151

6134:                                             ; preds = %6129
  %6135 = load i32, ptr %126, align 4, !tbaa !5
  %6136 = call ptr @__errno_location() #11
  store i32 %6135, ptr %6136, align 4, !tbaa !5
  %6137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6138 = load i32, ptr @test_count, align 4, !tbaa !5
  %6139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6140 = load i32, ptr %6139, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror(i32 noundef %6140, ptr noundef @.str.4)
  %6142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @s2n_strerror_debug(i32 noundef %6143, ptr noundef @.str.4)
  %6145 = call ptr @__errno_location() #11
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call ptr @strerror(i32 noundef %6146) #10
  %6148 = call ptr @__errno_location() #11
  %6149 = load i32, ptr %6148, align 4, !tbaa !5
  %6150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6137, ptr noundef @.str.2, i32 noundef %6138, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6141, ptr noundef %6144, ptr noundef %6147, i32 noundef %6149) #10
  br label %6168

6151:                                             ; preds = %6129, %6122
  %6152 = load i32, ptr %126, align 4, !tbaa !5
  %6153 = call ptr @__errno_location() #11
  store i32 %6152, ptr %6153, align 4, !tbaa !5
  %6154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6155 = load i32, ptr @test_count, align 4, !tbaa !5
  %6156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6157 = load i32, ptr %6156, align 4, !tbaa !5
  %6158 = call ptr @s2n_strerror(i32 noundef %6157, ptr noundef @.str.4)
  %6159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6160 = load i32, ptr %6159, align 4, !tbaa !5
  %6161 = call ptr @s2n_strerror_debug(i32 noundef %6160, ptr noundef @.str.4)
  %6162 = call ptr @__errno_location() #11
  %6163 = load i32, ptr %6162, align 4, !tbaa !5
  %6164 = call ptr @strerror(i32 noundef %6163) #10
  %6165 = call ptr @__errno_location() #11
  %6166 = load i32, ptr %6165, align 4, !tbaa !5
  %6167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6154, ptr noundef @.str.5, i32 noundef %6155, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6158, ptr noundef %6161, ptr noundef %6164, i32 noundef %6166) #10
  br label %6168

6168:                                             ; preds = %6151, %6134
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %6169

6169:                                             ; preds = %6168
  br label %6170

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

6171:                                             ; No predecessors!
  br label %6172

6172:                                             ; preds = %6171
  br label %6173

6173:                                             ; preds = %6172, %6114
  br label %6174

6174:                                             ; preds = %6173
  br label %6175

6175:                                             ; preds = %6174
  br label %6176

6176:                                             ; preds = %6175
  br label %6177

6177:                                             ; preds = %6176
  %6178 = call i32 @s2n_cleanup()
  %6179 = icmp eq i32 %6178, -1
  br i1 %6179, label %6180, label %6233

6180:                                             ; preds = %6177
  br label %6181

6181:                                             ; preds = %6180
  br label %6182

6182:                                             ; preds = %6181
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %6183 = call ptr @__errno_location() #11
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  store i32 %6184, ptr %127, align 4, !tbaa !5
  %6185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6186 = call i32 @s2n_print_stacktrace(ptr noundef %6185)
  %6187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6188 = trunc i8 %6187 to i1
  br i1 %6188, label %6189, label %6211

6189:                                             ; preds = %6182
  %6190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6191 = call i32 @fileno(ptr noundef %6190) #10
  %6192 = call i32 @isatty(i32 noundef %6191) #10
  %6193 = icmp ne i32 %6192, 0
  br i1 %6193, label %6194, label %6211

6194:                                             ; preds = %6189
  %6195 = load i32, ptr %127, align 4, !tbaa !5
  %6196 = call ptr @__errno_location() #11
  store i32 %6195, ptr %6196, align 4, !tbaa !5
  %6197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call ptr @s2n_strerror(i32 noundef %6200, ptr noundef @.str.4)
  %6202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror_debug(i32 noundef %6203, ptr noundef @.str.4)
  %6205 = call ptr @__errno_location() #11
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call ptr @strerror(i32 noundef %6206) #10
  %6208 = call ptr @__errno_location() #11
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6197, ptr noundef @.str.2, i32 noundef %6198, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6201, ptr noundef %6204, ptr noundef %6207, i32 noundef %6209) #10
  br label %6228

6211:                                             ; preds = %6189, %6182
  %6212 = load i32, ptr %127, align 4, !tbaa !5
  %6213 = call ptr @__errno_location() #11
  store i32 %6212, ptr %6213, align 4, !tbaa !5
  %6214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6215 = load i32, ptr @test_count, align 4, !tbaa !5
  %6216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6217 = load i32, ptr %6216, align 4, !tbaa !5
  %6218 = call ptr @s2n_strerror(i32 noundef %6217, ptr noundef @.str.4)
  %6219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6220 = load i32, ptr %6219, align 4, !tbaa !5
  %6221 = call ptr @s2n_strerror_debug(i32 noundef %6220, ptr noundef @.str.4)
  %6222 = call ptr @__errno_location() #11
  %6223 = load i32, ptr %6222, align 4, !tbaa !5
  %6224 = call ptr @strerror(i32 noundef %6223) #10
  %6225 = call ptr @__errno_location() #11
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6214, ptr noundef @.str.5, i32 noundef %6215, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6218, ptr noundef %6221, ptr noundef %6224, i32 noundef %6226) #10
  br label %6228

6228:                                             ; preds = %6211, %6194
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %6229

6229:                                             ; preds = %6228
  br label %6230

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

6231:                                             ; No predecessors!
  br label %6232

6232:                                             ; preds = %6231
  br label %6233

6233:                                             ; preds = %6232, %6177
  br label %6234

6234:                                             ; preds = %6233
  br label %6235

6235:                                             ; preds = %6234
  br label %6236

6236:                                             ; preds = %6235
  br label %6237

6237:                                             ; preds = %6236
  %6238 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6239 = icmp eq i32 %6238, -1
  br i1 %6239, label %6240, label %6293

6240:                                             ; preds = %6237
  br label %6241

6241:                                             ; preds = %6240
  br label %6242

6242:                                             ; preds = %6241
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %6243 = call ptr @__errno_location() #11
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  store i32 %6244, ptr %128, align 4, !tbaa !5
  %6245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6246 = call i32 @s2n_print_stacktrace(ptr noundef %6245)
  %6247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6248 = trunc i8 %6247 to i1
  br i1 %6248, label %6249, label %6271

6249:                                             ; preds = %6242
  %6250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6251 = call i32 @fileno(ptr noundef %6250) #10
  %6252 = call i32 @isatty(i32 noundef %6251) #10
  %6253 = icmp ne i32 %6252, 0
  br i1 %6253, label %6254, label %6271

6254:                                             ; preds = %6249
  %6255 = load i32, ptr %128, align 4, !tbaa !5
  %6256 = call ptr @__errno_location() #11
  store i32 %6255, ptr %6256, align 4, !tbaa !5
  %6257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6258 = load i32, ptr @test_count, align 4, !tbaa !5
  %6259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6260 = load i32, ptr %6259, align 4, !tbaa !5
  %6261 = call ptr @s2n_strerror(i32 noundef %6260, ptr noundef @.str.4)
  %6262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6263 = load i32, ptr %6262, align 4, !tbaa !5
  %6264 = call ptr @s2n_strerror_debug(i32 noundef %6263, ptr noundef @.str.4)
  %6265 = call ptr @__errno_location() #11
  %6266 = load i32, ptr %6265, align 4, !tbaa !5
  %6267 = call ptr @strerror(i32 noundef %6266) #10
  %6268 = call ptr @__errno_location() #11
  %6269 = load i32, ptr %6268, align 4, !tbaa !5
  %6270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6257, ptr noundef @.str.2, i32 noundef %6258, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6261, ptr noundef %6264, ptr noundef %6267, i32 noundef %6269) #10
  br label %6288

6271:                                             ; preds = %6249, %6242
  %6272 = load i32, ptr %128, align 4, !tbaa !5
  %6273 = call ptr @__errno_location() #11
  store i32 %6272, ptr %6273, align 4, !tbaa !5
  %6274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6275 = load i32, ptr @test_count, align 4, !tbaa !5
  %6276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6277 = load i32, ptr %6276, align 4, !tbaa !5
  %6278 = call ptr @s2n_strerror(i32 noundef %6277, ptr noundef @.str.4)
  %6279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6280 = load i32, ptr %6279, align 4, !tbaa !5
  %6281 = call ptr @s2n_strerror_debug(i32 noundef %6280, ptr noundef @.str.4)
  %6282 = call ptr @__errno_location() #11
  %6283 = load i32, ptr %6282, align 4, !tbaa !5
  %6284 = call ptr @strerror(i32 noundef %6283) #10
  %6285 = call ptr @__errno_location() #11
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  %6287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6274, ptr noundef @.str.5, i32 noundef %6275, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 349, ptr noundef %6278, ptr noundef %6281, ptr noundef %6284, i32 noundef %6286) #10
  br label %6288

6288:                                             ; preds = %6271, %6254
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %6289

6289:                                             ; preds = %6288
  br label %6290

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

6291:                                             ; No predecessors!
  br label %6292

6292:                                             ; preds = %6291
  br label %6293

6293:                                             ; preds = %6292, %6237
  br label %6294

6294:                                             ; preds = %6293
  br label %6295

6295:                                             ; preds = %6294
  %6296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6297 = trunc i8 %6296 to i1
  br i1 %6297, label %6298, label %6314

6298:                                             ; preds = %6295
  %6299 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6300 = call i32 @fileno(ptr noundef %6299) #10
  %6301 = call i32 @isatty(i32 noundef %6300) #10
  %6302 = icmp ne i32 %6301, 0
  br i1 %6302, label %6303, label %6314

6303:                                             ; preds = %6298
  %6304 = load i32, ptr @test_count, align 4, !tbaa !5
  %6305 = icmp ne i32 %6304, 0
  br i1 %6305, label %6306, label %6310

6306:                                             ; preds = %6303
  %6307 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6308 = load i32, ptr @test_count, align 4, !tbaa !5
  %6309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6307, ptr noundef @.str.51, i32 noundef %6308) #10
  br label %6313

6310:                                             ; preds = %6303
  %6311 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6311, ptr noundef @.str.52) #10
  br label %6313

6313:                                             ; preds = %6310, %6306
  br label %6325

6314:                                             ; preds = %6298, %6295
  %6315 = load i32, ptr @test_count, align 4, !tbaa !5
  %6316 = icmp ne i32 %6315, 0
  br i1 %6316, label %6317, label %6321

6317:                                             ; preds = %6314
  %6318 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6319 = load i32, ptr @test_count, align 4, !tbaa !5
  %6320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6318, ptr noundef @.str.53, i32 noundef %6319) #10
  br label %6324

6321:                                             ; preds = %6314
  %6322 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6322, ptr noundef @.str.54) #10
  br label %6324

6324:                                             ; preds = %6321, %6317
  br label %6325

6325:                                             ; preds = %6324, %6313
  store i32 0, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %6330

6326:                                             ; No predecessors!
  br label %6327

6327:                                             ; preds = %6326
  br label %6328

6328:                                             ; preds = %6327
  br label %6329

6329:                                             ; preds = %6328
  store i32 0, ptr %3, align 4
  store i32 1, ptr %75, align 4
  br label %6330

6330:                                             ; preds = %6329, %6325, %6049, %4650
  call void @llvm.lifetime.end.p0(i64 15, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  %6331 = load i32, ptr %3, align 4
  ret i32 %6331
}

; 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_enable_tls13_in_test(...) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_pkey_zero_init(ptr noundef) #2

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

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

; Function Attrs: 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) #7

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

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

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

declare void @s2n_debug_info_reset() #2

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

declare i32 @s2n_connection_free(ptr noundef) #2

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

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

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

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

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

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

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) #2

declare i32 @s2n_stuffer_reread(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 1544}
!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, !6, i64 2784}
!43 = !{!16, !7, i64 220}
!44 = !{!32, !6, i64 28}
!45 = !{!32, !6, i64 24}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = !{!16, !7, i64 3720}
!49 = !{!16, !6, i64 2816}
!50 = !{!16, !6, i64 2800}
!51 = !{!16, !10, i64 2792}
!52 = !{!16, !6, i64 2832}
!53 = !{!16, !10, i64 2824}


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

%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_stuffer_reservation = type { ptr, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [90 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 [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@public_key = external dso_local global %struct.s2n_pkey, align 8
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@__const.main.data = external hidden unnamed_addr constant [15 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [76 x i8], align 1
@EMPTY_PARSED_EXTENSIONS = external constant [21 x %struct.s2n_parsed_extension], align 16
@.str.27 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = 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 ptr, align 8
  %4 = alloca [15 x i8], align 1
  %5 = alloca %struct.s2n_stuffer, align 8
  %6 = alloca %struct.s2n_parsed_extensions_list, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca %struct.s2n_parsed_extensions_list, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca %struct.s2n_parsed_extensions_list, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca %struct.s2n_stuffer_reservation, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %struct.s2n_stuffer_reservation, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %23 = load ptr, ptr @stdout, align 8, !tbaa !9
  %24 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %25 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26 = tail call i32 @fflush(ptr noundef %25)
  %27 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %28 = icmp eq i32 %27, -1
  br i1 %28, label %29, label %53

29:                                               ; preds = %2
  %30 = tail call ptr @__errno_location() #12
  %31 = load i32, ptr %30, align 4, !tbaa !5
  %32 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33 = tail call i32 @s2n_print_stacktrace(ptr noundef %32) #11
  %34 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %35 = trunc nuw i8 %34 to i1
  br i1 %35, label %36, label %40

36:                                               ; preds = %29
  %37 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38 = tail call i32 @fileno(ptr noundef %37) #11
  %39 = tail call i32 @isatty(i32 noundef %38) #11
  %.not359 = icmp eq i32 %39, 0
  br i1 %.not359, label %40, label %41

40:                                               ; preds = %36, %29
  br label %41

41:                                               ; preds = %36, %40
  %.str.5.sink = phi ptr [ @.str.5, %40 ], [ @.str.2, %36 ]
  store i32 %31, ptr %30, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = load i32, ptr @test_count, align 4, !tbaa !5
  %44 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %45 = load i32, ptr %44, align 4, !tbaa !5
  %46 = tail call ptr @s2n_strerror(i32 noundef %45, ptr noundef nonnull @.str.4) #11
  %47 = load i32, ptr %44, align 4, !tbaa !5
  %48 = tail call ptr @s2n_strerror_debug(i32 noundef %47, ptr noundef nonnull @.str.4) #11
  %49 = load i32, ptr %30, align 4, !tbaa !5
  %50 = tail call ptr @strerror(i32 noundef %49) #11
  %51 = load i32, ptr %30, align 4, !tbaa !5
  %52 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %42, ptr noundef nonnull %.str.5.sink, i32 noundef %43, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %46, ptr noundef %48, ptr noundef %50, i32 noundef %51) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

53:                                               ; preds = %2
  %54 = load i32, ptr @test_count, align 4, !tbaa !5
  %55 = add nsw i32 %54, 1
  store i32 %55, ptr @test_count, align 4, !tbaa !5
  %56 = tail call i32 @s2n_enable_atexit() #11
  %57 = icmp eq i32 %56, -1
  br i1 %57, label %58, label %82

58:                                               ; preds = %53
  %59 = tail call ptr @__errno_location() #12
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = load ptr, ptr @stderr, align 8, !tbaa !9
  %62 = tail call i32 @s2n_print_stacktrace(ptr noundef %61) #11
  %63 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %64 = trunc nuw i8 %63 to i1
  br i1 %64, label %65, label %69

65:                                               ; preds = %58
  %66 = load ptr, ptr @stderr, align 8, !tbaa !9
  %67 = tail call i32 @fileno(ptr noundef %66) #11
  %68 = tail call i32 @isatty(i32 noundef %67) #11
  %.not358 = icmp eq i32 %68, 0
  br i1 %.not358, label %69, label %70

69:                                               ; preds = %65, %58
  br label %70

70:                                               ; preds = %65, %69
  %.str.5.sink397 = phi ptr [ @.str.5, %69 ], [ @.str.2, %65 ]
  store i32 %60, ptr %59, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = load i32, ptr @test_count, align 4, !tbaa !5
  %73 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %74 = load i32, ptr %73, align 4, !tbaa !5
  %75 = tail call ptr @s2n_strerror(i32 noundef %74, ptr noundef nonnull @.str.4) #11
  %76 = load i32, ptr %73, align 4, !tbaa !5
  %77 = tail call ptr @s2n_strerror_debug(i32 noundef %76, ptr noundef nonnull @.str.4) #11
  %78 = load i32, ptr %59, align 4, !tbaa !5
  %79 = tail call ptr @strerror(i32 noundef %78) #11
  %80 = load i32, ptr %59, align 4, !tbaa !5
  %81 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %71, ptr noundef nonnull %.str.5.sink397, i32 noundef %72, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %75, ptr noundef %77, ptr noundef %79, i32 noundef %80) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

82:                                               ; preds = %53
  %83 = tail call i32 @s2n_init() #11
  %84 = icmp eq i32 %83, -1
  br i1 %84, label %85, label %109

85:                                               ; preds = %82
  %86 = tail call ptr @__errno_location() #12
  %87 = load i32, ptr %86, align 4, !tbaa !5
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = tail call i32 @s2n_print_stacktrace(ptr noundef %88) #11
  %90 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %96

92:                                               ; preds = %85
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = tail call i32 @fileno(ptr noundef %93) #11
  %95 = tail call i32 @isatty(i32 noundef %94) #11
  %.not357 = icmp eq i32 %95, 0
  br i1 %.not357, label %96, label %97

96:                                               ; preds = %92, %85
  br label %97

97:                                               ; preds = %92, %96
  %.str.5.sink408 = phi ptr [ @.str.5, %96 ], [ @.str.2, %92 ]
  store i32 %87, ptr %86, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = load i32, ptr @test_count, align 4, !tbaa !5
  %100 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror(i32 noundef %101, ptr noundef nonnull @.str.4) #11
  %103 = load i32, ptr %100, align 4, !tbaa !5
  %104 = tail call ptr @s2n_strerror_debug(i32 noundef %103, ptr noundef nonnull @.str.4) #11
  %105 = load i32, ptr %86, align 4, !tbaa !5
  %106 = tail call ptr @strerror(i32 noundef %105) #11
  %107 = load i32, ptr %86, align 4, !tbaa !5
  %108 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %98, ptr noundef nonnull %.str.5.sink408, i32 noundef %99, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %102, ptr noundef %104, ptr noundef %106, i32 noundef %107) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

109:                                              ; preds = %82
  %110 = load i32, ptr @test_count, align 4, !tbaa !5
  %111 = add nsw i32 %110, 1
  store i32 %111, ptr @test_count, align 4, !tbaa !5
  %112 = tail call i32 (...) @s2n_enable_tls13_in_test() #11
  %113 = icmp eq i32 %112, -1
  br i1 %113, label %114, label %138

114:                                              ; preds = %109
  %115 = tail call ptr @__errno_location() #12
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %118 = tail call i32 @s2n_print_stacktrace(ptr noundef %117) #11
  %119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %120 = trunc nuw i8 %119 to i1
  br i1 %120, label %121, label %125

121:                                              ; preds = %114
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = tail call i32 @fileno(ptr noundef %122) #11
  %124 = tail call i32 @isatty(i32 noundef %123) #11
  %.not356 = icmp eq i32 %124, 0
  br i1 %.not356, label %125, label %126

125:                                              ; preds = %121, %114
  br label %126

126:                                              ; preds = %121, %125
  %.str.5.sink419 = phi ptr [ @.str.5, %125 ], [ @.str.2, %121 ]
  store i32 %116, ptr %115, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = tail call ptr @s2n_strerror(i32 noundef %130, ptr noundef nonnull @.str.4) #11
  %132 = load i32, ptr %129, align 4, !tbaa !5
  %133 = tail call ptr @s2n_strerror_debug(i32 noundef %132, ptr noundef nonnull @.str.4) #11
  %134 = load i32, ptr %115, align 4, !tbaa !5
  %135 = tail call ptr @strerror(i32 noundef %134) #11
  %136 = load i32, ptr %115, align 4, !tbaa !5
  %137 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef nonnull %.str.5.sink419, i32 noundef %128, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %131, ptr noundef %133, ptr noundef %135, i32 noundef %136) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

138:                                              ; preds = %109
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = add nsw i32 %139, 1
  store i32 %140, ptr @test_count, align 4, !tbaa !5
  %141 = tail call ptr @s2n_config_new() #11
  %142 = icmp eq ptr %141, null
  br i1 %142, label %143, label %167

143:                                              ; preds = %138
  %144 = tail call ptr @__errno_location() #12
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = tail call i32 @s2n_print_stacktrace(ptr noundef %146) #11
  %148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %149 = trunc nuw i8 %148 to i1
  br i1 %149, label %150, label %154

150:                                              ; preds = %143
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = tail call i32 @fileno(ptr noundef %151) #11
  %153 = tail call i32 @isatty(i32 noundef %152) #11
  %.not355 = icmp eq i32 %153, 0
  br i1 %.not355, label %154, label %155

154:                                              ; preds = %150, %143
  br label %155

155:                                              ; preds = %150, %154
  %.str.5.sink430 = phi ptr [ @.str.5, %154 ], [ @.str.2, %150 ]
  store i32 %145, ptr %144, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %158 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = tail call ptr @s2n_strerror(i32 noundef %159, ptr noundef nonnull @.str.4) #11
  %161 = load i32, ptr %158, align 4, !tbaa !5
  %162 = tail call ptr @s2n_strerror_debug(i32 noundef %161, ptr noundef nonnull @.str.4) #11
  %163 = load i32, ptr %144, align 4, !tbaa !5
  %164 = tail call ptr @strerror(i32 noundef %163) #11
  %165 = load i32, ptr %144, align 4, !tbaa !5
  %166 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef nonnull %.str.5.sink430, i32 noundef %157, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %160, ptr noundef %162, ptr noundef %164, i32 noundef %165) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

167:                                              ; preds = %138
  %168 = load i32, ptr @test_count, align 4, !tbaa !5
  %169 = add nsw i32 %168, 1
  store i32 %169, ptr @test_count, align 4, !tbaa !5
  %170 = tail call i32 @s2n_pkey_zero_init(ptr noundef nonnull @public_key) #11
  %171 = icmp eq i32 %170, -1
  br i1 %171, label %172, label %196

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

179:                                              ; preds = %172
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = tail call i32 @fileno(ptr noundef %180) #11
  %182 = tail call i32 @isatty(i32 noundef %181) #11
  %.not354 = icmp eq i32 %182, 0
  br i1 %.not354, label %183, label %184

183:                                              ; preds = %179, %172
  br label %184

184:                                              ; preds = %179, %183
  %.str.5.sink441 = phi ptr [ @.str.5, %183 ], [ @.str.2, %179 ]
  store i32 %174, ptr %173, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %188 = load i32, ptr %187, align 4, !tbaa !5
  %189 = tail call ptr @s2n_strerror(i32 noundef %188, ptr noundef nonnull @.str.4) #11
  %190 = load i32, ptr %187, align 4, !tbaa !5
  %191 = tail call ptr @s2n_strerror_debug(i32 noundef %190, ptr noundef nonnull @.str.4) #11
  %192 = load i32, ptr %173, align 4, !tbaa !5
  %193 = tail call ptr @strerror(i32 noundef %192) #11
  %194 = load i32, ptr %173, align 4, !tbaa !5
  %195 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %185, ptr noundef nonnull %.str.5.sink441, i32 noundef %186, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %189, ptr noundef %191, ptr noundef %193, i32 noundef %194) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

196:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %197 = load i32, ptr @test_count, align 4, !tbaa !5
  %198 = add nsw i32 %197, 1
  store i32 %198, ptr @test_count, align 4, !tbaa !5
  %199 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12) #11
  %200 = icmp eq i32 %199, -1
  br i1 %200, label %201, label %225

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

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

212:                                              ; preds = %208, %201
  br label %213

213:                                              ; preds = %208, %212
  %.str.5.sink452 = phi ptr [ @.str.5, %212 ], [ @.str.2, %208 ]
  store i32 %203, ptr %202, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %217, ptr noundef nonnull @.str.4) #11
  %219 = load i32, ptr %216, align 4, !tbaa !5
  %220 = call ptr @s2n_strerror_debug(i32 noundef %219, ptr noundef nonnull @.str.4) #11
  %221 = load i32, ptr %202, align 4, !tbaa !5
  %222 = call ptr @strerror(i32 noundef %221) #11
  %223 = load i32, ptr %202, align 4, !tbaa !5
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef nonnull %.str.5.sink452, i32 noundef %215, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %218, ptr noundef %220, ptr noundef %222, i32 noundef %223) #13
  call void @exit(i32 noundef 1) #14
  unreachable

225:                                              ; preds = %196
  %226 = load i32, ptr @test_count, align 4, !tbaa !5
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr @test_count, align 4, !tbaa !5
  %228 = load ptr, ptr %3, align 8, !tbaa !9
  %229 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %141, ptr noundef %228) #11
  %230 = icmp eq i32 %229, -1
  br i1 %230, label %231, label %255

231:                                              ; preds = %225
  %232 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %241 = call i32 @isatty(i32 noundef %240) #11
  %.not352 = icmp eq i32 %241, 0
  br i1 %.not352, label %242, label %243

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

243:                                              ; preds = %238, %242
  %.str.5.sink463 = 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) #11
  %249 = load i32, ptr %246, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef nonnull @.str.4) #11
  %251 = load i32, ptr %232, align 4, !tbaa !5
  %252 = call ptr @strerror(i32 noundef %251) #11
  %253 = load i32, ptr %232, align 4, !tbaa !5
  %254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef nonnull %.str.5.sink463, i32 noundef %245, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %248, ptr noundef %250, ptr noundef %252, i32 noundef %253) #13
  call void @exit(i32 noundef 1) #14
  unreachable

255:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 15, ptr nonnull %4) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %4, ptr noundef nonnull align 1 dereferenceable(15) @__const.main.data, i64 15, i1 false)
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = add nsw i32 %256, 1
  store i32 %257, ptr @test_count, align 4, !tbaa !5
  %258 = load ptr, ptr %3, align 8, !tbaa !9
  %259 = call i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef %258, ptr noundef nonnull %4, i32 noundef 15) #11
  %260 = icmp eq i32 %259, -1
  br i1 %260, label %261, label %285

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

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

272:                                              ; preds = %268, %261
  br label %273

273:                                              ; preds = %268, %272
  %.str.5.sink474 = phi ptr [ @.str.5, %272 ], [ @.str.2, %268 ]
  store i32 %263, ptr %262, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror(i32 noundef %277, ptr noundef nonnull @.str.4) #11
  %279 = load i32, ptr %276, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef nonnull @.str.4) #11
  %281 = load i32, ptr %262, align 4, !tbaa !5
  %282 = call ptr @strerror(i32 noundef %281) #11
  %283 = load i32, ptr %262, align 4, !tbaa !5
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef nonnull %.str.5.sink474, i32 noundef %275, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %278, ptr noundef %280, ptr noundef %282, i32 noundef %283) #13
  call void @exit(i32 noundef 1) #14
  unreachable

285:                                              ; preds = %255
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr @test_count, align 4, !tbaa !5
  %288 = load ptr, ptr %3, align 8, !tbaa !9
  %289 = call i32 @s2n_cert_chain_and_key_set_sct_list(ptr noundef %288, ptr noundef nonnull %4, i32 noundef 15) #11
  %290 = icmp eq i32 %289, -1
  br i1 %290, label %291, label %315

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

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

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

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

315:                                              ; preds = %285
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  %318 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %319 = icmp eq ptr %318, null
  br i1 %319, label %320, label %344

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

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

331:                                              ; preds = %327, %320
  br label %332

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

344:                                              ; preds = %315
  %345 = load ptr, ptr %3, align 8, !tbaa !9
  %346 = getelementptr inbounds i8, ptr %318, i64 1544
  store ptr %345, ptr %346, align 8, !tbaa !15
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr @test_count, align 4, !tbaa !5
  %349 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %318) #11
  %350 = icmp eq i32 %349, -1
  br i1 %350, label %351, label %375

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

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

362:                                              ; preds = %358, %351
  br label %363

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

375:                                              ; preds = %344
  %376 = getelementptr inbounds i8, ptr %318, i64 2784
  store i32 1, ptr %376, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #11
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr @test_count, align 4, !tbaa !5
  %379 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #11
  %380 = icmp eq i32 %379, -1
  br i1 %380, label %381, label %405

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

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

392:                                              ; preds = %388, %381
  br label %393

393:                                              ; preds = %388, %392
  %.str.5.sink518 = phi ptr [ @.str.5, %392 ], [ @.str.2, %388 ]
  store i32 %383, ptr %382, align 4, !tbaa !5
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef nonnull @.str.4) #11
  %399 = load i32, ptr %396, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror_debug(i32 noundef %399, ptr noundef nonnull @.str.4) #11
  %401 = load i32, ptr %382, align 4, !tbaa !5
  %402 = call ptr @strerror(i32 noundef %401) #11
  %403 = load i32, ptr %382, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %394, ptr noundef nonnull %.str.5.sink518, i32 noundef %395, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %398, ptr noundef %400, ptr noundef %402, i32 noundef %403) #13
  call void @exit(i32 noundef 1) #14
  unreachable

405:                                              ; preds = %375
  %406 = getelementptr inbounds i8, ptr %318, i64 220
  store i8 33, ptr %406, align 4, !tbaa !43
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = add nsw i32 %407, 1
  store i32 %408, ptr @test_count, align 4, !tbaa !5
  %409 = load ptr, ptr %3, align 8, !tbaa !9
  %410 = call i32 @s2n_send_cert_chain(ptr noundef nonnull %318, ptr noundef nonnull %5, ptr noundef %409) #11
  %411 = icmp eq i32 %410, -1
  br i1 %411, label %412, label %436

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

419:                                              ; preds = %412
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = call i32 @fileno(ptr noundef %420) #11
  %422 = call i32 @isatty(i32 noundef %421) #11
  %.not346 = icmp eq i32 %422, 0
  br i1 %.not346, label %423, label %424

423:                                              ; preds = %419, %412
  br label %424

424:                                              ; preds = %419, %423
  %.str.5.sink529 = phi ptr [ @.str.5, %423 ], [ @.str.2, %419 ]
  store i32 %414, ptr %413, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror(i32 noundef %428, ptr noundef nonnull @.str.4) #11
  %430 = load i32, ptr %427, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef nonnull @.str.4) #11
  %432 = load i32, ptr %413, align 4, !tbaa !5
  %433 = call ptr @strerror(i32 noundef %432) #11
  %434 = load i32, ptr %413, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %425, ptr noundef nonnull %.str.5.sink529, i32 noundef %426, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %429, ptr noundef %431, ptr noundef %433, i32 noundef %434) #13
  call void @exit(i32 noundef 1) #14
  unreachable

436:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %6) #11
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr @test_count, align 4, !tbaa !5
  %439 = call i32 @s2n_skip_cert_chain_size(ptr noundef nonnull %5)
  %440 = icmp eq i32 %439, -1
  br i1 %440, label %441, label %465

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

448:                                              ; preds = %441
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = call i32 @fileno(ptr noundef %449) #11
  %451 = call i32 @isatty(i32 noundef %450) #11
  %.not345 = icmp eq i32 %451, 0
  br i1 %.not345, label %452, label %453

452:                                              ; preds = %448, %441
  br label %453

453:                                              ; preds = %448, %452
  %.str.5.sink540 = phi ptr [ @.str.5, %452 ], [ @.str.2, %448 ]
  store i32 %443, ptr %442, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror(i32 noundef %457, ptr noundef nonnull @.str.4) #11
  %459 = load i32, ptr %456, align 4, !tbaa !5
  %460 = call ptr @s2n_strerror_debug(i32 noundef %459, ptr noundef nonnull @.str.4) #11
  %461 = load i32, ptr %442, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #11
  %463 = load i32, ptr %442, align 4, !tbaa !5
  %464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %454, ptr noundef nonnull %.str.5.sink540, i32 noundef %455, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %458, ptr noundef %460, ptr noundef %462, i32 noundef %463) #13
  call void @exit(i32 noundef 1) #14
  unreachable

465:                                              ; preds = %436
  %466 = load i32, ptr @test_count, align 4, !tbaa !5
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr @test_count, align 4, !tbaa !5
  %468 = call i32 @s2n_skip_cert(ptr noundef nonnull %5)
  %469 = icmp eq i32 %468, -1
  br i1 %469, label %470, label %494

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

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

481:                                              ; preds = %477, %470
  br label %482

482:                                              ; preds = %477, %481
  %.str.5.sink551 = phi ptr [ @.str.5, %481 ], [ @.str.2, %477 ]
  store i32 %472, ptr %471, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror(i32 noundef %486, ptr noundef nonnull @.str.4) #11
  %488 = load i32, ptr %485, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror_debug(i32 noundef %488, ptr noundef nonnull @.str.4) #11
  %490 = load i32, ptr %471, align 4, !tbaa !5
  %491 = call ptr @strerror(i32 noundef %490) #11
  %492 = load i32, ptr %471, align 4, !tbaa !5
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef nonnull %.str.5.sink551, i32 noundef %484, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %487, ptr noundef %489, ptr noundef %491, i32 noundef %492) #13
  call void @exit(i32 noundef 1) #14
  unreachable

494:                                              ; preds = %465
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = add nsw i32 %495, 1
  store i32 %496, ptr @test_count, align 4, !tbaa !5
  %497 = call i32 @s2n_extension_list_parse(ptr noundef nonnull %5, ptr noundef nonnull %6) #11
  %498 = icmp eq i32 %497, -1
  br i1 %498, label %523, label %499

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

506:                                              ; preds = %499
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = call i32 @fileno(ptr noundef %507) #11
  %509 = call i32 @isatty(i32 noundef %508) #11
  %.not = icmp eq i32 %509, 0
  br i1 %.not, label %510, label %511

510:                                              ; preds = %506, %499
  br label %511

511:                                              ; preds = %506, %510
  %.str.5.sink562 = phi ptr [ @.str.5, %510 ], [ @.str.2, %506 ]
  store i32 %501, ptr %500, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror(i32 noundef %515, ptr noundef nonnull @.str.4) #11
  %517 = load i32, ptr %514, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror_debug(i32 noundef %517, ptr noundef nonnull @.str.4) #11
  %519 = load i32, ptr %500, align 4, !tbaa !5
  %520 = call ptr @strerror(i32 noundef %519) #11
  %521 = load i32, ptr %500, align 4, !tbaa !5
  %522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef nonnull %.str.5.sink562, i32 noundef %513, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %516, ptr noundef %518, ptr noundef %520, i32 noundef %521) #13
  call void @exit(i32 noundef 1) #14
  unreachable

523:                                              ; preds = %494
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = add nsw i32 %524, 1
  store i32 %525, ptr @test_count, align 4, !tbaa !5
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = icmp eq i32 %527, 335544322
  br i1 %528, label %552, label %529

529:                                              ; preds = %523
  %530 = tail call ptr @__errno_location() #12
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @s2n_print_stacktrace(ptr noundef %532) #11
  %534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %535 = trunc nuw i8 %534 to i1
  br i1 %535, label %536, label %540

536:                                              ; preds = %529
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = call i32 @fileno(ptr noundef %537) #11
  %539 = call i32 @isatty(i32 noundef %538) #11
  %.not254 = icmp eq i32 %539, 0
  br i1 %.not254, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.5.sink573 = phi ptr [ @.str.5, %540 ], [ @.str.2, %536 ]
  store i32 %531, ptr %530, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = load i32, ptr %526, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror(i32 noundef %544, ptr noundef nonnull @.str.4) #11
  %546 = load i32, ptr %526, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror_debug(i32 noundef %546, ptr noundef nonnull @.str.4) #11
  %548 = load i32, ptr %530, align 4, !tbaa !5
  %549 = call ptr @strerror(i32 noundef %548) #11
  %550 = load i32, ptr %530, align 4, !tbaa !5
  %551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.5.sink573, i32 noundef %543, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %545, ptr noundef %547, ptr noundef %549, i32 noundef %550) #13
  call void @exit(i32 noundef 1) #14
  unreachable

552:                                              ; preds = %523
  %553 = add nsw i32 %524, 2
  store i32 %553, ptr @test_count, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %555 = icmp eq ptr %554, null
  br i1 %555, label %556, label %579

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

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

567:                                              ; preds = %563, %556
  br label %568

568:                                              ; preds = %563, %567
  %.str.5.sink582 = phi ptr [ @.str.5, %567 ], [ @.str.2, %563 ]
  store i32 %558, ptr %557, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = load i32, ptr %526, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror(i32 noundef %571, ptr noundef nonnull @.str.4) #11
  %573 = load i32, ptr %526, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror_debug(i32 noundef %573, ptr noundef nonnull @.str.4) #11
  %575 = load i32, ptr %557, align 4, !tbaa !5
  %576 = call ptr @strerror(i32 noundef %575) #11
  %577 = load i32, ptr %557, align 4, !tbaa !5
  %578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull %.str.5.sink582, i32 noundef %570, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %572, ptr noundef %574, ptr noundef %576, i32 noundef %577) #13
  call void @exit(i32 noundef 1) #14
  unreachable

579:                                              ; preds = %552
  store i32 0, ptr %526, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %580 = tail call ptr @__errno_location() #12
  store i32 0, ptr %580, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %6) #11
  %581 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #11
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr @test_count, align 4, !tbaa !5
  %584 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #11
  %585 = icmp eq i32 %584, -1
  br i1 %585, label %586, label %608

586:                                              ; preds = %579
  %587 = load i32, ptr %580, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @s2n_print_stacktrace(ptr noundef %588) #11
  %590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %591 = trunc nuw i8 %590 to i1
  br i1 %591, label %592, label %596

592:                                              ; preds = %586
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @fileno(ptr noundef %593) #11
  %595 = call i32 @isatty(i32 noundef %594) #11
  %.not342 = icmp eq i32 %595, 0
  br i1 %.not342, label %596, label %597

596:                                              ; preds = %592, %586
  br label %597

597:                                              ; preds = %592, %596
  %.str.5.sink591 = phi ptr [ @.str.5, %596 ], [ @.str.2, %592 ]
  store i32 %587, ptr %580, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = load i32, ptr %526, align 4, !tbaa !5
  %601 = call ptr @s2n_strerror(i32 noundef %600, ptr noundef nonnull @.str.4) #11
  %602 = load i32, ptr %526, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef nonnull @.str.4) #11
  %604 = load i32, ptr %580, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #11
  %606 = load i32, ptr %580, align 4, !tbaa !5
  %607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %598, ptr noundef nonnull %.str.5.sink591, i32 noundef %599, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %601, ptr noundef %603, ptr noundef %605, i32 noundef %606) #13
  call void @exit(i32 noundef 1) #14
  unreachable

608:                                              ; preds = %579
  store i8 34, ptr %406, align 4, !tbaa !43
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = add nsw i32 %609, 1
  store i32 %610, ptr @test_count, align 4, !tbaa !5
  %611 = load ptr, ptr %3, align 8, !tbaa !9
  %612 = call i32 @s2n_send_cert_chain(ptr noundef nonnull %318, ptr noundef nonnull %7, ptr noundef %611) #11
  %613 = icmp eq i32 %612, -1
  br i1 %613, label %614, label %636

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

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

624:                                              ; preds = %620, %614
  br label %625

625:                                              ; preds = %620, %624
  %.str.5.sink600 = phi ptr [ @.str.5, %624 ], [ @.str.2, %620 ]
  store i32 %615, ptr %580, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = load i32, ptr %526, align 4, !tbaa !5
  %629 = call ptr @s2n_strerror(i32 noundef %628, ptr noundef nonnull @.str.4) #11
  %630 = load i32, ptr %526, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror_debug(i32 noundef %630, ptr noundef nonnull @.str.4) #11
  %632 = load i32, ptr %580, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #11
  %634 = load i32, ptr %580, align 4, !tbaa !5
  %635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef nonnull %.str.5.sink600, i32 noundef %627, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %629, ptr noundef %631, ptr noundef %633, i32 noundef %634) #13
  call void @exit(i32 noundef 1) #14
  unreachable

636:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %8) #11
  %637 = load i32, ptr @test_count, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr @test_count, align 4, !tbaa !5
  %639 = call i32 @s2n_skip_cert_chain_size(ptr noundef nonnull %7)
  %640 = icmp eq i32 %639, -1
  br i1 %640, label %641, label %663

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

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

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

652:                                              ; preds = %647, %651
  %.str.5.sink609 = phi ptr [ @.str.5, %651 ], [ @.str.2, %647 ]
  store i32 %642, ptr %580, align 4, !tbaa !5
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = load i32, ptr %526, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef nonnull @.str.4) #11
  %657 = load i32, ptr %526, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror_debug(i32 noundef %657, ptr noundef nonnull @.str.4) #11
  %659 = load i32, ptr %580, align 4, !tbaa !5
  %660 = call ptr @strerror(i32 noundef %659) #11
  %661 = load i32, ptr %580, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %653, ptr noundef nonnull %.str.5.sink609, i32 noundef %654, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %656, ptr noundef %658, ptr noundef %660, i32 noundef %661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

663:                                              ; preds = %636
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = call i32 @s2n_skip_cert(ptr noundef nonnull %7)
  %667 = icmp eq i32 %666, -1
  br i1 %667, label %668, label %690

668:                                              ; preds = %663
  %669 = load i32, ptr %580, align 4, !tbaa !5
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @s2n_print_stacktrace(ptr noundef %670) #11
  %672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %673 = trunc nuw i8 %672 to i1
  br i1 %673, label %674, label %678

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

678:                                              ; preds = %674, %668
  br label %679

679:                                              ; preds = %674, %678
  %.str.5.sink618 = phi ptr [ @.str.5, %678 ], [ @.str.2, %674 ]
  store i32 %669, ptr %580, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = load i32, ptr %526, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef nonnull @.str.4) #11
  %684 = load i32, ptr %526, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror_debug(i32 noundef %684, ptr noundef nonnull @.str.4) #11
  %686 = load i32, ptr %580, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #11
  %688 = load i32, ptr %580, align 4, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef nonnull %.str.5.sink618, i32 noundef %681, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %683, ptr noundef %685, ptr noundef %687, i32 noundef %688) #13
  call void @exit(i32 noundef 1) #14
  unreachable

690:                                              ; preds = %663
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = add nsw i32 %691, 1
  store i32 %692, ptr @test_count, align 4, !tbaa !5
  %693 = call i32 @s2n_extension_list_parse(ptr noundef nonnull %7, ptr noundef nonnull %8) #11
  %694 = icmp eq i32 %693, -1
  br i1 %694, label %695, label %717

695:                                              ; preds = %690
  %696 = load i32, ptr %580, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @s2n_print_stacktrace(ptr noundef %697) #11
  %699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %700 = trunc nuw i8 %699 to i1
  br i1 %700, label %701, label %705

701:                                              ; preds = %695
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = call i32 @fileno(ptr noundef %702) #11
  %704 = call i32 @isatty(i32 noundef %703) #11
  %.not338 = icmp eq i32 %704, 0
  br i1 %.not338, label %705, label %706

705:                                              ; preds = %701, %695
  br label %706

706:                                              ; preds = %701, %705
  %.str.5.sink627 = phi ptr [ @.str.5, %705 ], [ @.str.2, %701 ]
  store i32 %696, ptr %580, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = load i32, ptr %526, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef nonnull @.str.4) #11
  %711 = load i32, ptr %526, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror_debug(i32 noundef %711, ptr noundef nonnull @.str.4) #11
  %713 = load i32, ptr %580, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #11
  %715 = load i32, ptr %580, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef nonnull %.str.5.sink627, i32 noundef %708, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %710, ptr noundef %712, ptr noundef %714, i32 noundef %715) #13
  call void @exit(i32 noundef 1) #14
  unreachable

717:                                              ; preds = %690
  %718 = load i32, ptr @test_count, align 4, !tbaa !5
  %719 = add nsw i32 %718, 1
  store i32 %719, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(672) %8, ptr noundef nonnull dereferenceable(672) @EMPTY_PARSED_EXTENSIONS, i64 672)
  %720 = icmp eq i32 %bcmp, 0
  br i1 %720, label %721, label %743

721:                                              ; preds = %717
  %722 = load i32, ptr %580, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #11
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %721
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #11
  %730 = call i32 @isatty(i32 noundef %729) #11
  %.not337 = icmp eq i32 %730, 0
  br i1 %.not337, label %731, label %732

731:                                              ; preds = %727, %721
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink636 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %580, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = load i32, ptr %526, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror(i32 noundef %735, ptr noundef nonnull @.str.4) #11
  %737 = load i32, ptr %526, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror_debug(i32 noundef %737, ptr noundef nonnull @.str.4) #11
  %739 = load i32, ptr %580, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #11
  %741 = load i32, ptr %580, align 4, !tbaa !5
  %742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink636, i32 noundef %734, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %736, ptr noundef %738, ptr noundef %740, i32 noundef %741) #13
  call void @exit(i32 noundef 1) #14
  unreachable

743:                                              ; preds = %717
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %8) #11
  %744 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #11
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call i32 @s2n_connection_free(ptr noundef nonnull %318) #11
  %748 = icmp eq i32 %747, -1
  br i1 %748, label %749, label %771

749:                                              ; preds = %743
  %750 = load i32, ptr %580, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @s2n_print_stacktrace(ptr noundef %751) #11
  %753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %754 = trunc nuw i8 %753 to i1
  br i1 %754, label %755, label %759

755:                                              ; preds = %749
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #11
  %758 = call i32 @isatty(i32 noundef %757) #11
  %.not336 = icmp eq i32 %758, 0
  br i1 %.not336, label %759, label %760

759:                                              ; preds = %755, %749
  br label %760

760:                                              ; preds = %755, %759
  %.str.5.sink645 = phi ptr [ @.str.5, %759 ], [ @.str.2, %755 ]
  store i32 %750, ptr %580, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = load i32, ptr %526, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror(i32 noundef %763, ptr noundef nonnull @.str.4) #11
  %765 = load i32, ptr %526, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror_debug(i32 noundef %765, ptr noundef nonnull @.str.4) #11
  %767 = load i32, ptr %580, align 4, !tbaa !5
  %768 = call ptr @strerror(i32 noundef %767) #11
  %769 = load i32, ptr %580, align 4, !tbaa !5
  %770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef nonnull %.str.5.sink645, i32 noundef %762, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %764, ptr noundef %766, ptr noundef %768, i32 noundef %769) #13
  call void @exit(i32 noundef 1) #14
  unreachable

771:                                              ; preds = %743
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = add nsw i32 %772, 1
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %775 = icmp eq ptr %774, null
  br i1 %775, label %776, label %798

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

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

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

787:                                              ; preds = %782, %786
  %.str.5.sink654 = phi ptr [ @.str.5, %786 ], [ @.str.2, %782 ]
  store i32 %777, ptr %580, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = load i32, ptr %526, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef nonnull @.str.4) #11
  %792 = load i32, ptr %526, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef nonnull @.str.4) #11
  %794 = load i32, ptr %580, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #11
  %796 = load i32, ptr %580, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef nonnull %.str.5.sink654, i32 noundef %789, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %791, ptr noundef %793, ptr noundef %795, i32 noundef %796) #13
  call void @exit(i32 noundef 1) #14
  unreachable

798:                                              ; preds = %771
  %799 = load ptr, ptr %3, align 8, !tbaa !9
  %800 = getelementptr inbounds i8, ptr %774, i64 1544
  store ptr %799, ptr %800, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #11
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @test_count, align 4, !tbaa !5
  %803 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #11
  %804 = icmp eq i32 %803, -1
  br i1 %804, label %805, label %827

805:                                              ; preds = %798
  %806 = load i32, ptr %580, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @s2n_print_stacktrace(ptr noundef %807) #11
  %809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %810 = trunc nuw i8 %809 to i1
  br i1 %810, label %811, label %815

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

815:                                              ; preds = %811, %805
  br label %816

816:                                              ; preds = %811, %815
  %.str.5.sink663 = phi ptr [ @.str.5, %815 ], [ @.str.2, %811 ]
  store i32 %806, ptr %580, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = load i32, ptr %526, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror(i32 noundef %819, ptr noundef nonnull @.str.4) #11
  %821 = load i32, ptr %526, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror_debug(i32 noundef %821, ptr noundef nonnull @.str.4) #11
  %823 = load i32, ptr %580, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #11
  %825 = load i32, ptr %580, align 4, !tbaa !5
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef nonnull %.str.5.sink663, i32 noundef %818, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %820, ptr noundef %822, ptr noundef %824, i32 noundef %825) #13
  call void @exit(i32 noundef 1) #14
  unreachable

827:                                              ; preds = %798
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %774) #11
  %831 = icmp eq i32 %830, -1
  br i1 %831, label %832, label %854

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

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

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

843:                                              ; preds = %838, %842
  %.str.5.sink672 = phi ptr [ @.str.5, %842 ], [ @.str.2, %838 ]
  store i32 %833, ptr %580, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = load i32, ptr %526, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror(i32 noundef %846, ptr noundef nonnull @.str.4) #11
  %848 = load i32, ptr %526, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror_debug(i32 noundef %848, ptr noundef nonnull @.str.4) #11
  %850 = load i32, ptr %580, align 4, !tbaa !5
  %851 = call ptr @strerror(i32 noundef %850) #11
  %852 = load i32, ptr %580, align 4, !tbaa !5
  %853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef nonnull %.str.5.sink672, i32 noundef %845, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %847, ptr noundef %849, ptr noundef %851, i32 noundef %852) #13
  call void @exit(i32 noundef 1) #14
  unreachable

854:                                              ; preds = %827
  %855 = getelementptr inbounds i8, ptr %774, i64 2784
  store i32 1, ptr %855, align 8, !tbaa !42
  %856 = getelementptr inbounds i8, ptr %774, i64 220
  store i8 34, ptr %856, align 4, !tbaa !43
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %3, align 8, !tbaa !9
  %860 = call i32 @s2n_send_cert_chain(ptr noundef nonnull %774, ptr noundef nonnull %9, ptr noundef %859) #11
  %861 = icmp eq i32 %860, -1
  br i1 %861, label %862, label %884

862:                                              ; preds = %854
  %863 = load i32, ptr %580, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @s2n_print_stacktrace(ptr noundef %864) #11
  %866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %867 = trunc nuw i8 %866 to i1
  br i1 %867, label %868, label %872

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

872:                                              ; preds = %868, %862
  br label %873

873:                                              ; preds = %868, %872
  %.str.5.sink681 = phi ptr [ @.str.5, %872 ], [ @.str.2, %868 ]
  store i32 %863, ptr %580, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = load i32, ptr %526, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror(i32 noundef %876, ptr noundef nonnull @.str.4) #11
  %878 = load i32, ptr %526, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror_debug(i32 noundef %878, ptr noundef nonnull @.str.4) #11
  %880 = load i32, ptr %580, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #11
  %882 = load i32, ptr %580, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %874, ptr noundef nonnull %.str.5.sink681, i32 noundef %875, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %877, ptr noundef %879, ptr noundef %881, i32 noundef %882) #13
  call void @exit(i32 noundef 1) #14
  unreachable

884:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %10) #11
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = add nsw i32 %885, 1
  store i32 %886, ptr @test_count, align 4, !tbaa !5
  %887 = call i32 @s2n_skip_cert_chain_size(ptr noundef nonnull %9)
  %888 = icmp eq i32 %887, -1
  br i1 %888, label %889, label %911

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

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

899:                                              ; preds = %895, %889
  br label %900

900:                                              ; preds = %895, %899
  %.str.5.sink690 = phi ptr [ @.str.5, %899 ], [ @.str.2, %895 ]
  store i32 %890, ptr %580, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = load i32, ptr %526, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror(i32 noundef %903, ptr noundef nonnull @.str.4) #11
  %905 = load i32, ptr %526, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef nonnull @.str.4) #11
  %907 = load i32, ptr %580, align 4, !tbaa !5
  %908 = call ptr @strerror(i32 noundef %907) #11
  %909 = load i32, ptr %580, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef nonnull %.str.5.sink690, i32 noundef %902, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %904, ptr noundef %906, ptr noundef %908, i32 noundef %909) #13
  call void @exit(i32 noundef 1) #14
  unreachable

911:                                              ; preds = %884
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = add nsw i32 %912, 1
  store i32 %913, ptr @test_count, align 4, !tbaa !5
  %914 = call i32 @s2n_skip_cert(ptr noundef nonnull %9)
  %915 = icmp eq i32 %914, -1
  br i1 %915, label %916, label %938

916:                                              ; preds = %911
  %917 = load i32, ptr %580, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @s2n_print_stacktrace(ptr noundef %918) #11
  %920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %921 = trunc nuw i8 %920 to i1
  br i1 %921, label %922, label %926

922:                                              ; preds = %916
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = call i32 @fileno(ptr noundef %923) #11
  %925 = call i32 @isatty(i32 noundef %924) #11
  %.not330 = icmp eq i32 %925, 0
  br i1 %.not330, label %926, label %927

926:                                              ; preds = %922, %916
  br label %927

927:                                              ; preds = %922, %926
  %.str.5.sink699 = phi ptr [ @.str.5, %926 ], [ @.str.2, %922 ]
  store i32 %917, ptr %580, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = load i32, ptr %526, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef nonnull @.str.4) #11
  %932 = load i32, ptr %526, align 4, !tbaa !5
  %933 = call ptr @s2n_strerror_debug(i32 noundef %932, ptr noundef nonnull @.str.4) #11
  %934 = load i32, ptr %580, align 4, !tbaa !5
  %935 = call ptr @strerror(i32 noundef %934) #11
  %936 = load i32, ptr %580, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull %.str.5.sink699, i32 noundef %929, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %931, ptr noundef %933, ptr noundef %935, i32 noundef %936) #13
  call void @exit(i32 noundef 1) #14
  unreachable

938:                                              ; preds = %911
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = call i32 @s2n_extension_list_parse(ptr noundef nonnull %9, ptr noundef nonnull %10) #11
  %942 = icmp eq i32 %941, -1
  br i1 %942, label %943, label %965

943:                                              ; preds = %938
  %944 = load i32, ptr %580, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945) #11
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %953

949:                                              ; preds = %943
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #11
  %952 = call i32 @isatty(i32 noundef %951) #11
  %.not329 = icmp eq i32 %952, 0
  br i1 %.not329, label %953, label %954

953:                                              ; preds = %949, %943
  br label %954

954:                                              ; preds = %949, %953
  %.str.5.sink708 = phi ptr [ @.str.5, %953 ], [ @.str.2, %949 ]
  store i32 %944, ptr %580, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = load i32, ptr %526, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror(i32 noundef %957, ptr noundef nonnull @.str.4) #11
  %959 = load i32, ptr %526, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror_debug(i32 noundef %959, ptr noundef nonnull @.str.4) #11
  %961 = load i32, ptr %580, align 4, !tbaa !5
  %962 = call ptr @strerror(i32 noundef %961) #11
  %963 = load i32, ptr %580, align 4, !tbaa !5
  %964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef nonnull %.str.5.sink708, i32 noundef %956, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %958, ptr noundef %960, ptr noundef %962, i32 noundef %963) #13
  call void @exit(i32 noundef 1) #14
  unreachable

965:                                              ; preds = %938
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr @test_count, align 4, !tbaa !5
  %bcmp255 = call i32 @bcmp(ptr noundef nonnull dereferenceable(672) %10, ptr noundef nonnull dereferenceable(672) @EMPTY_PARSED_EXTENSIONS, i64 672)
  %968 = icmp eq i32 %bcmp255, 0
  br i1 %968, label %971, label %.preheader

.preheader:                                       ; preds = %965
  %969 = getelementptr inbounds i8, ptr %9, i64 28
  %970 = getelementptr inbounds i8, ptr %9, i64 24
  br label %993

971:                                              ; preds = %965
  %972 = load i32, ptr %580, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @s2n_print_stacktrace(ptr noundef %973) #11
  %975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %976 = trunc nuw i8 %975 to i1
  br i1 %976, label %977, label %981

977:                                              ; preds = %971
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @fileno(ptr noundef %978) #11
  %980 = call i32 @isatty(i32 noundef %979) #11
  %.not328 = icmp eq i32 %980, 0
  br i1 %.not328, label %981, label %982

981:                                              ; preds = %977, %971
  br label %982

982:                                              ; preds = %977, %981
  %.str.5.sink717 = phi ptr [ @.str.5, %981 ], [ @.str.2, %977 ]
  store i32 %972, ptr %580, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = load i32, ptr %526, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror(i32 noundef %985, ptr noundef nonnull @.str.4) #11
  %987 = load i32, ptr %526, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror_debug(i32 noundef %987, ptr noundef nonnull @.str.4) #11
  %989 = load i32, ptr %580, align 4, !tbaa !5
  %990 = call ptr @strerror(i32 noundef %989) #11
  %991 = load i32, ptr %580, align 4, !tbaa !5
  %992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %983, ptr noundef nonnull %.str.5.sink717, i32 noundef %984, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %986, ptr noundef %988, ptr noundef %990, i32 noundef %991) #13
  call void @exit(i32 noundef 1) #14
  unreachable

993:                                              ; preds = %.preheader, %1073
  %994 = phi i32 [ %967, %.preheader ], [ %1049, %1073 ]
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = call i32 @s2n_skip_cert(ptr noundef nonnull %9)
  %997 = icmp eq i32 %996, -1
  br i1 %997, label %998, label %1020

998:                                              ; preds = %993
  %999 = load i32, ptr %580, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = call i32 @s2n_print_stacktrace(ptr noundef %1000) #11
  %1002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1003 = trunc nuw i8 %1002 to i1
  br i1 %1003, label %1004, label %1008

1004:                                             ; preds = %998
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = call i32 @fileno(ptr noundef %1005) #11
  %1007 = call i32 @isatty(i32 noundef %1006) #11
  %.not327 = icmp eq i32 %1007, 0
  br i1 %.not327, label %1008, label %1009

1008:                                             ; preds = %1004, %998
  br label %1009

1009:                                             ; preds = %1004, %1008
  %.str.5.sink726 = phi ptr [ @.str.5, %1008 ], [ @.str.2, %1004 ]
  store i32 %999, ptr %580, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = load i32, ptr %526, align 4, !tbaa !5
  %1013 = call ptr @s2n_strerror(i32 noundef %1012, ptr noundef nonnull @.str.4) #11
  %1014 = load i32, ptr %526, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror_debug(i32 noundef %1014, ptr noundef nonnull @.str.4) #11
  %1016 = load i32, ptr %580, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #11
  %1018 = load i32, ptr %580, align 4, !tbaa !5
  %1019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1010, ptr noundef nonnull %.str.5.sink726, i32 noundef %1011, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1013, ptr noundef %1015, ptr noundef %1017, i32 noundef %1018) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1020:                                             ; preds = %993
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = call i32 @s2n_extension_list_parse(ptr noundef nonnull %9, ptr noundef nonnull %10) #11
  %1024 = icmp eq i32 %1023, -1
  br i1 %1024, label %1025, label %1047

1025:                                             ; preds = %1020
  %1026 = load i32, ptr %580, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = call i32 @s2n_print_stacktrace(ptr noundef %1027) #11
  %1029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1030 = trunc nuw i8 %1029 to i1
  br i1 %1030, label %1031, label %1035

1031:                                             ; preds = %1025
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @fileno(ptr noundef %1032) #11
  %1034 = call i32 @isatty(i32 noundef %1033) #11
  %.not326 = icmp eq i32 %1034, 0
  br i1 %.not326, label %1035, label %1036

1035:                                             ; preds = %1031, %1025
  br label %1036

1036:                                             ; preds = %1031, %1035
  %.str.5.sink735 = phi ptr [ @.str.5, %1035 ], [ @.str.2, %1031 ]
  store i32 %1026, ptr %580, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = load i32, ptr %526, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef nonnull @.str.4) #11
  %1041 = load i32, ptr %526, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror_debug(i32 noundef %1041, ptr noundef nonnull @.str.4) #11
  %1043 = load i32, ptr %580, align 4, !tbaa !5
  %1044 = call ptr @strerror(i32 noundef %1043) #11
  %1045 = load i32, ptr %580, align 4, !tbaa !5
  %1046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1037, ptr noundef nonnull %.str.5.sink735, i32 noundef %1038, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1040, ptr noundef %1042, ptr noundef %1044, i32 noundef %1045) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1047:                                             ; preds = %1020
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = add nsw i32 %1048, 1
  store i32 %1049, ptr @test_count, align 4, !tbaa !5
  %bcmp256 = call i32 @bcmp(ptr noundef nonnull dereferenceable(672) %10, ptr noundef nonnull dereferenceable(672) @EMPTY_PARSED_EXTENSIONS, i64 672)
  %1050 = icmp eq i32 %bcmp256, 0
  br i1 %1050, label %1073, label %1051

1051:                                             ; preds = %1047
  %1052 = load i32, ptr %580, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @s2n_print_stacktrace(ptr noundef %1053) #11
  %1055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1056 = trunc nuw i8 %1055 to i1
  br i1 %1056, label %1057, label %1061

1057:                                             ; preds = %1051
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @fileno(ptr noundef %1058) #11
  %1060 = call i32 @isatty(i32 noundef %1059) #11
  %.not257 = icmp eq i32 %1060, 0
  br i1 %.not257, label %1061, label %1062

1061:                                             ; preds = %1057, %1051
  br label %1062

1062:                                             ; preds = %1057, %1061
  %.str.5.sink744 = phi ptr [ @.str.5, %1061 ], [ @.str.2, %1057 ]
  store i32 %1052, ptr %580, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = load i32, ptr %526, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef nonnull @.str.4) #11
  %1067 = load i32, ptr %526, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef nonnull @.str.4) #11
  %1069 = load i32, ptr %580, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #11
  %1071 = load i32, ptr %580, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef nonnull %.str.5.sink744, i32 noundef %1064, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1066, ptr noundef %1068, ptr noundef %1070, i32 noundef %1071) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1073:                                             ; preds = %1047
  %1074 = load i32, ptr %969, align 4, !tbaa !44
  %1075 = load i32, ptr %970, align 8, !tbaa !45
  %.not258 = icmp eq i32 %1074, %1075
  br i1 %.not258, label %1076, label %993, !llvm.loop !46

1076:                                             ; preds = %1073
  %1077 = add nsw i32 %1048, 2
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = call i32 @s2n_connection_free(ptr noundef nonnull %774) #11
  %1079 = icmp eq i32 %1078, -1
  br i1 %1079, label %1080, label %1102

1080:                                             ; preds = %1076
  %1081 = load i32, ptr %580, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = call i32 @s2n_print_stacktrace(ptr noundef %1082) #11
  %1084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1085 = trunc nuw i8 %1084 to i1
  br i1 %1085, label %1086, label %1090

1086:                                             ; preds = %1080
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = call i32 @fileno(ptr noundef %1087) #11
  %1089 = call i32 @isatty(i32 noundef %1088) #11
  %.not325 = icmp eq i32 %1089, 0
  br i1 %.not325, label %1090, label %1091

1090:                                             ; preds = %1086, %1080
  br label %1091

1091:                                             ; preds = %1086, %1090
  %.str.5.sink753 = phi ptr [ @.str.5, %1090 ], [ @.str.2, %1086 ]
  store i32 %1081, ptr %580, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = load i32, ptr @test_count, align 4, !tbaa !5
  %1094 = load i32, ptr %526, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror(i32 noundef %1094, ptr noundef nonnull @.str.4) #11
  %1096 = load i32, ptr %526, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef nonnull @.str.4) #11
  %1098 = load i32, ptr %580, align 4, !tbaa !5
  %1099 = call ptr @strerror(i32 noundef %1098) #11
  %1100 = load i32, ptr %580, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1092, ptr noundef nonnull %.str.5.sink753, i32 noundef %1093, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1095, ptr noundef %1097, ptr noundef %1099, i32 noundef %1100) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1102:                                             ; preds = %1076
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %10) #11
  %1103 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #11
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr @test_count, align 4, !tbaa !5
  %1106 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1107 = icmp eq ptr %1106, null
  br i1 %1107, label %1108, label %1130

1108:                                             ; preds = %1102
  %1109 = load i32, ptr %580, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @s2n_print_stacktrace(ptr noundef %1110) #11
  %1112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1113 = trunc nuw i8 %1112 to i1
  br i1 %1113, label %1114, label %1118

1114:                                             ; preds = %1108
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @fileno(ptr noundef %1115) #11
  %1117 = call i32 @isatty(i32 noundef %1116) #11
  %.not324 = icmp eq i32 %1117, 0
  br i1 %.not324, label %1118, label %1119

1118:                                             ; preds = %1114, %1108
  br label %1119

1119:                                             ; preds = %1114, %1118
  %.str.5.sink762 = phi ptr [ @.str.5, %1118 ], [ @.str.2, %1114 ]
  store i32 %1109, ptr %580, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = load i32, ptr %526, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef nonnull @.str.4) #11
  %1124 = load i32, ptr %526, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror_debug(i32 noundef %1124, ptr noundef nonnull @.str.4) #11
  %1126 = load i32, ptr %580, align 4, !tbaa !5
  %1127 = call ptr @strerror(i32 noundef %1126) #11
  %1128 = load i32, ptr %580, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1120, ptr noundef nonnull %.str.5.sink762, i32 noundef %1121, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1123, ptr noundef %1125, ptr noundef %1127, i32 noundef %1128) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1130:                                             ; preds = %1102
  %1131 = getelementptr inbounds i8, ptr %1106, i64 220
  store i8 34, ptr %1131, align 4, !tbaa !43
  %1132 = load ptr, ptr %3, align 8, !tbaa !9
  %1133 = getelementptr inbounds i8, ptr %1106, i64 1544
  store ptr %1132, ptr %1133, align 8, !tbaa !15
  %1134 = getelementptr inbounds i8, ptr %1106, i64 3720
  store i8 1, ptr %1134, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #11
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = add nsw i32 %1135, 1
  store i32 %1136, ptr @test_count, align 4, !tbaa !5
  %1137 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #11
  %1138 = icmp eq i32 %1137, -1
  br i1 %1138, label %1139, label %1161

1139:                                             ; preds = %1130
  %1140 = load i32, ptr %580, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = call i32 @s2n_print_stacktrace(ptr noundef %1141) #11
  %1143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1144 = trunc nuw i8 %1143 to i1
  br i1 %1144, label %1145, label %1149

1145:                                             ; preds = %1139
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @fileno(ptr noundef %1146) #11
  %1148 = call i32 @isatty(i32 noundef %1147) #11
  %.not323 = icmp eq i32 %1148, 0
  br i1 %.not323, label %1149, label %1150

1149:                                             ; preds = %1145, %1139
  br label %1150

1150:                                             ; preds = %1145, %1149
  %.str.5.sink771 = phi ptr [ @.str.5, %1149 ], [ @.str.2, %1145 ]
  store i32 %1140, ptr %580, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = load i32, ptr %526, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror(i32 noundef %1153, ptr noundef nonnull @.str.4) #11
  %1155 = load i32, ptr %526, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef nonnull @.str.4) #11
  %1157 = load i32, ptr %580, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #11
  %1159 = load i32, ptr %580, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1151, ptr noundef nonnull %.str.5.sink771, i32 noundef %1152, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1154, ptr noundef %1156, ptr noundef %1158, i32 noundef %1159) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1161:                                             ; preds = %1130
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = load ptr, ptr %3, align 8, !tbaa !9
  %1165 = call i32 @s2n_send_cert_chain(ptr noundef nonnull %1106, ptr noundef nonnull %11, ptr noundef %1164) #11
  %1166 = icmp eq i32 %1165, -1
  br i1 %1166, label %1167, label %1189

1167:                                             ; preds = %1161
  %1168 = load i32, ptr %580, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169) #11
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc nuw i8 %1171 to i1
  br i1 %1172, label %1173, label %1177

1173:                                             ; preds = %1167
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @fileno(ptr noundef %1174) #11
  %1176 = call i32 @isatty(i32 noundef %1175) #11
  %.not322 = icmp eq i32 %1176, 0
  br i1 %.not322, label %1177, label %1178

1177:                                             ; preds = %1173, %1167
  br label %1178

1178:                                             ; preds = %1173, %1177
  %.str.5.sink780 = phi ptr [ @.str.5, %1177 ], [ @.str.2, %1173 ]
  store i32 %1168, ptr %580, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = load i32, ptr %526, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror(i32 noundef %1181, ptr noundef nonnull @.str.4) #11
  %1183 = load i32, ptr %526, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror_debug(i32 noundef %1183, ptr noundef nonnull @.str.4) #11
  %1185 = load i32, ptr %580, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #11
  %1187 = load i32, ptr %580, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef nonnull %.str.5.sink780, i32 noundef %1180, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1182, ptr noundef %1184, ptr noundef %1186, i32 noundef %1187) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1189:                                             ; preds = %1161
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef nonnull %1106, ptr noundef nonnull %11)
  %1193 = icmp eq i32 %1192, -1
  br i1 %1193, label %1194, label %1216

1194:                                             ; preds = %1189
  %1195 = load i32, ptr %580, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #11
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

1200:                                             ; preds = %1194
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #11
  %1203 = call i32 @isatty(i32 noundef %1202) #11
  %.not321 = icmp eq i32 %1203, 0
  br i1 %.not321, label %1204, label %1205

1204:                                             ; preds = %1200, %1194
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.5.sink789 = phi ptr [ @.str.5, %1204 ], [ @.str.2, %1200 ]
  store i32 %1195, ptr %580, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = load i32, ptr %526, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef nonnull @.str.4) #11
  %1210 = load i32, ptr %526, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef nonnull @.str.4) #11
  %1212 = load i32, ptr %580, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #11
  %1214 = load i32, ptr %580, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.5.sink789, i32 noundef %1207, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1209, ptr noundef %1211, ptr noundef %1213, i32 noundef %1214) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1216:                                             ; preds = %1189
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr @test_count, align 4, !tbaa !5
  %1219 = call i32 @s2n_connection_free(ptr noundef nonnull %1106) #11
  %1220 = icmp eq i32 %1219, -1
  br i1 %1220, label %1221, label %1243

1221:                                             ; preds = %1216
  %1222 = load i32, ptr %580, align 4, !tbaa !5
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @s2n_print_stacktrace(ptr noundef %1223) #11
  %1225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1226 = trunc nuw i8 %1225 to i1
  br i1 %1226, label %1227, label %1231

1227:                                             ; preds = %1221
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @fileno(ptr noundef %1228) #11
  %1230 = call i32 @isatty(i32 noundef %1229) #11
  %.not320 = icmp eq i32 %1230, 0
  br i1 %.not320, label %1231, label %1232

1231:                                             ; preds = %1227, %1221
  br label %1232

1232:                                             ; preds = %1227, %1231
  %.str.5.sink798 = phi ptr [ @.str.5, %1231 ], [ @.str.2, %1227 ]
  store i32 %1222, ptr %580, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = load i32, ptr %526, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.4) #11
  %1237 = load i32, ptr %526, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.4) #11
  %1239 = load i32, ptr %580, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #11
  %1241 = load i32, ptr %580, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef nonnull %.str.5.sink798, i32 noundef %1234, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1243:                                             ; preds = %1216
  %1244 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #11
  %1245 = load i32, ptr @test_count, align 4, !tbaa !5
  %1246 = add nsw i32 %1245, 1
  store i32 %1246, ptr @test_count, align 4, !tbaa !5
  %1247 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1248 = icmp eq ptr %1247, null
  br i1 %1248, label %1249, label %1271

1249:                                             ; preds = %1243
  %1250 = load i32, ptr %580, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @s2n_print_stacktrace(ptr noundef %1251) #11
  %1253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1254 = trunc nuw i8 %1253 to i1
  br i1 %1254, label %1255, label %1259

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

1259:                                             ; preds = %1255, %1249
  br label %1260

1260:                                             ; preds = %1255, %1259
  %.str.5.sink807 = phi ptr [ @.str.5, %1259 ], [ @.str.2, %1255 ]
  store i32 %1250, ptr %580, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = load i32, ptr @test_count, align 4, !tbaa !5
  %1263 = load i32, ptr %526, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror(i32 noundef %1263, ptr noundef nonnull @.str.4) #11
  %1265 = load i32, ptr %526, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror_debug(i32 noundef %1265, ptr noundef nonnull @.str.4) #11
  %1267 = load i32, ptr %580, align 4, !tbaa !5
  %1268 = call ptr @strerror(i32 noundef %1267) #11
  %1269 = load i32, ptr %580, align 4, !tbaa !5
  %1270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1261, ptr noundef nonnull %.str.5.sink807, i32 noundef %1262, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1264, ptr noundef %1266, ptr noundef %1268, i32 noundef %1269) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1271:                                             ; preds = %1243
  %1272 = getelementptr inbounds i8, ptr %1247, i64 220
  store i8 34, ptr %1272, align 4, !tbaa !43
  %1273 = load ptr, ptr %3, align 8, !tbaa !9
  %1274 = getelementptr inbounds i8, ptr %1247, i64 1544
  store ptr %1273, ptr %1274, align 8, !tbaa !15
  %1275 = getelementptr inbounds i8, ptr %1247, i64 3720
  store i8 1, ptr %1275, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #11
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = add nsw i32 %1276, 1
  store i32 %1277, ptr @test_count, align 4, !tbaa !5
  %1278 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %12, i32 noundef 0) #11
  %1279 = icmp eq i32 %1278, -1
  br i1 %1279, label %1280, label %1302

1280:                                             ; preds = %1271
  %1281 = load i32, ptr %580, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @s2n_print_stacktrace(ptr noundef %1282) #11
  %1284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1285 = trunc nuw i8 %1284 to i1
  br i1 %1285, label %1286, label %1290

1286:                                             ; preds = %1280
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #11
  %1289 = call i32 @isatty(i32 noundef %1288) #11
  %.not318 = icmp eq i32 %1289, 0
  br i1 %.not318, label %1290, label %1291

1290:                                             ; preds = %1286, %1280
  br label %1291

1291:                                             ; preds = %1286, %1290
  %.str.5.sink816 = phi ptr [ @.str.5, %1290 ], [ @.str.2, %1286 ]
  store i32 %1281, ptr %580, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = load i32, ptr %526, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror(i32 noundef %1294, ptr noundef nonnull @.str.4) #11
  %1296 = load i32, ptr %526, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef nonnull @.str.4) #11
  %1298 = load i32, ptr %580, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #11
  %1300 = load i32, ptr %580, align 4, !tbaa !5
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef nonnull %.str.5.sink816, i32 noundef %1293, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1295, ptr noundef %1297, ptr noundef %1299, i32 noundef %1300) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1302:                                             ; preds = %1271
  %1303 = load i32, ptr @test_count, align 4, !tbaa !5
  %1304 = add nsw i32 %1303, 1
  store i32 %1304, ptr @test_count, align 4, !tbaa !5
  %1305 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %1247) #11
  %1306 = icmp eq i32 %1305, -1
  br i1 %1306, label %1307, label %1329

1307:                                             ; preds = %1302
  %1308 = load i32, ptr %580, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @s2n_print_stacktrace(ptr noundef %1309) #11
  %1311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1312 = trunc nuw i8 %1311 to i1
  br i1 %1312, label %1313, label %1317

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

1317:                                             ; preds = %1313, %1307
  br label %1318

1318:                                             ; preds = %1313, %1317
  %.str.5.sink825 = phi ptr [ @.str.5, %1317 ], [ @.str.2, %1313 ]
  store i32 %1308, ptr %580, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = load i32, ptr %526, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef nonnull @.str.4) #11
  %1323 = load i32, ptr %526, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef nonnull @.str.4) #11
  %1325 = load i32, ptr %580, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #11
  %1327 = load i32, ptr %580, align 4, !tbaa !5
  %1328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef nonnull %.str.5.sink825, i32 noundef %1320, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1322, ptr noundef %1324, ptr noundef %1326, i32 noundef %1327) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1329:                                             ; preds = %1302
  %1330 = getelementptr inbounds i8, ptr %1247, i64 2784
  store i32 1, ptr %1330, align 8, !tbaa !42
  %1331 = getelementptr inbounds i8, ptr %1247, i64 2816
  store i32 1, ptr %1331, align 8, !tbaa !49
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = add nsw i32 %1332, 1
  store i32 %1333, ptr @test_count, align 4, !tbaa !5
  %1334 = load ptr, ptr %3, align 8, !tbaa !9
  %1335 = call i32 @s2n_send_cert_chain(ptr noundef nonnull %1247, ptr noundef nonnull %12, ptr noundef %1334) #11
  %1336 = icmp eq i32 %1335, -1
  br i1 %1336, label %1337, label %1359

1337:                                             ; preds = %1329
  %1338 = load i32, ptr %580, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @s2n_print_stacktrace(ptr noundef %1339) #11
  %1341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1342 = trunc nuw i8 %1341 to i1
  br i1 %1342, label %1343, label %1347

1343:                                             ; preds = %1337
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @fileno(ptr noundef %1344) #11
  %1346 = call i32 @isatty(i32 noundef %1345) #11
  %.not316 = icmp eq i32 %1346, 0
  br i1 %.not316, label %1347, label %1348

1347:                                             ; preds = %1343, %1337
  br label %1348

1348:                                             ; preds = %1343, %1347
  %.str.5.sink834 = phi ptr [ @.str.5, %1347 ], [ @.str.2, %1343 ]
  store i32 %1338, ptr %580, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = load i32, ptr %526, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror(i32 noundef %1351, ptr noundef nonnull @.str.4) #11
  %1353 = load i32, ptr %526, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef nonnull @.str.4) #11
  %1355 = load i32, ptr %580, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #11
  %1357 = load i32, ptr %580, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1349, ptr noundef nonnull %.str.5.sink834, i32 noundef %1350, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1352, ptr noundef %1354, ptr noundef %1356, i32 noundef %1357) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1359:                                             ; preds = %1329
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = add nsw i32 %1360, 1
  store i32 %1361, ptr @test_count, align 4, !tbaa !5
  %1362 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef nonnull %1247, ptr noundef nonnull %12)
  %1363 = icmp eq i32 %1362, -1
  br i1 %1363, label %1364, label %1386

1364:                                             ; preds = %1359
  %1365 = load i32, ptr %580, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @s2n_print_stacktrace(ptr noundef %1366) #11
  %1368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1369 = trunc nuw i8 %1368 to i1
  br i1 %1369, label %1370, label %1374

1370:                                             ; preds = %1364
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @fileno(ptr noundef %1371) #11
  %1373 = call i32 @isatty(i32 noundef %1372) #11
  %.not315 = icmp eq i32 %1373, 0
  br i1 %.not315, label %1374, label %1375

1374:                                             ; preds = %1370, %1364
  br label %1375

1375:                                             ; preds = %1370, %1374
  %.str.5.sink843 = phi ptr [ @.str.5, %1374 ], [ @.str.2, %1370 ]
  store i32 %1365, ptr %580, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = load i32, ptr %526, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror(i32 noundef %1378, ptr noundef nonnull @.str.4) #11
  %1380 = load i32, ptr %526, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror_debug(i32 noundef %1380, ptr noundef nonnull @.str.4) #11
  %1382 = load i32, ptr %580, align 4, !tbaa !5
  %1383 = call ptr @strerror(i32 noundef %1382) #11
  %1384 = load i32, ptr %580, align 4, !tbaa !5
  %1385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef nonnull %.str.5.sink843, i32 noundef %1377, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1379, ptr noundef %1381, ptr noundef %1383, i32 noundef %1384) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1386:                                             ; preds = %1359
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = add nsw i32 %1387, 1
  store i32 %1388, ptr @test_count, align 4, !tbaa !5
  %1389 = getelementptr inbounds i8, ptr %1247, i64 2800
  %1390 = load i32, ptr %1389, align 8, !tbaa !50
  %1391 = icmp eq i32 %1390, 15
  br i1 %1391, label %1414, label %1392

1392:                                             ; preds = %1386
  %1393 = load i32, ptr %580, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @s2n_print_stacktrace(ptr noundef %1394) #11
  %1396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1402

1398:                                             ; preds = %1392
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @fileno(ptr noundef %1399) #11
  %1401 = call i32 @isatty(i32 noundef %1400) #11
  %.not259 = icmp eq i32 %1401, 0
  br i1 %.not259, label %1402, label %1403

1402:                                             ; preds = %1398, %1392
  br label %1403

1403:                                             ; preds = %1398, %1402
  %.str.5.sink852 = phi ptr [ @.str.5, %1402 ], [ @.str.2, %1398 ]
  store i32 %1393, ptr %580, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = load i32, ptr %526, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef nonnull @.str.4) #11
  %1408 = load i32, ptr %526, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef nonnull @.str.4) #11
  %1410 = load i32, ptr %580, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #11
  %1412 = load i32, ptr %580, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef nonnull %.str.5.sink852, i32 noundef %1405, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i32 noundef %1412) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1414:                                             ; preds = %1386
  %1415 = getelementptr inbounds i8, ptr %1247, i64 2792
  %1416 = add nsw i32 %1387, 2
  store i32 %1416, ptr @test_count, align 4, !tbaa !5
  %1417 = load ptr, ptr %1415, align 8, !tbaa !51
  %bcmp260 = call i32 @bcmp(ptr noundef nonnull dereferenceable(15) %1417, ptr noundef nonnull dereferenceable(15) %4, i64 15)
  %1418 = icmp eq i32 %bcmp260, 0
  br i1 %1418, label %1441, label %1419

1419:                                             ; preds = %1414
  %1420 = load i32, ptr %580, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @s2n_print_stacktrace(ptr noundef %1421) #11
  %1423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1424 = trunc nuw i8 %1423 to i1
  br i1 %1424, label %1425, label %1429

1425:                                             ; preds = %1419
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @fileno(ptr noundef %1426) #11
  %1428 = call i32 @isatty(i32 noundef %1427) #11
  %.not261 = icmp eq i32 %1428, 0
  br i1 %.not261, label %1429, label %1430

1429:                                             ; preds = %1425, %1419
  br label %1430

1430:                                             ; preds = %1425, %1429
  %.str.5.sink861 = phi ptr [ @.str.5, %1429 ], [ @.str.2, %1425 ]
  store i32 %1420, ptr %580, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = load i32, ptr %526, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror(i32 noundef %1433, ptr noundef nonnull @.str.4) #11
  %1435 = load i32, ptr %526, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef nonnull @.str.4) #11
  %1437 = load i32, ptr %580, align 4, !tbaa !5
  %1438 = call ptr @strerror(i32 noundef %1437) #11
  %1439 = load i32, ptr %580, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1431, ptr noundef nonnull %.str.5.sink861, i32 noundef %1432, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1434, ptr noundef %1436, ptr noundef %1438, i32 noundef %1439) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1441:                                             ; preds = %1414
  %1442 = add nsw i32 %1387, 3
  store i32 %1442, ptr @test_count, align 4, !tbaa !5
  %1443 = getelementptr inbounds i8, ptr %1247, i64 2832
  %1444 = load i32, ptr %1443, align 8, !tbaa !52
  %1445 = icmp eq i32 %1444, 15
  br i1 %1445, label %1468, label %1446

1446:                                             ; preds = %1441
  %1447 = load i32, ptr %580, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = call i32 @s2n_print_stacktrace(ptr noundef %1448) #11
  %1450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1451 = trunc nuw i8 %1450 to i1
  br i1 %1451, label %1452, label %1456

1452:                                             ; preds = %1446
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = call i32 @fileno(ptr noundef %1453) #11
  %1455 = call i32 @isatty(i32 noundef %1454) #11
  %.not262 = icmp eq i32 %1455, 0
  br i1 %.not262, label %1456, label %1457

1456:                                             ; preds = %1452, %1446
  br label %1457

1457:                                             ; preds = %1452, %1456
  %.str.5.sink870 = phi ptr [ @.str.5, %1456 ], [ @.str.2, %1452 ]
  store i32 %1447, ptr %580, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = load i32, ptr %526, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror(i32 noundef %1460, ptr noundef nonnull @.str.4) #11
  %1462 = load i32, ptr %526, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef nonnull @.str.4) #11
  %1464 = load i32, ptr %580, align 4, !tbaa !5
  %1465 = call ptr @strerror(i32 noundef %1464) #11
  %1466 = load i32, ptr %580, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1458, ptr noundef nonnull %.str.5.sink870, i32 noundef %1459, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1461, ptr noundef %1463, ptr noundef %1465, i32 noundef %1466) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1468:                                             ; preds = %1441
  %1469 = getelementptr inbounds i8, ptr %1247, i64 2824
  %1470 = add nsw i32 %1387, 4
  store i32 %1470, ptr @test_count, align 4, !tbaa !5
  %1471 = load ptr, ptr %1469, align 8, !tbaa !53
  %bcmp263 = call i32 @bcmp(ptr noundef nonnull dereferenceable(15) %1471, ptr noundef nonnull dereferenceable(15) %4, i64 15)
  %1472 = icmp eq i32 %bcmp263, 0
  br i1 %1472, label %1495, label %1473

1473:                                             ; preds = %1468
  %1474 = load i32, ptr %580, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @s2n_print_stacktrace(ptr noundef %1475) #11
  %1477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1478 = trunc nuw i8 %1477 to i1
  br i1 %1478, label %1479, label %1483

1479:                                             ; preds = %1473
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @fileno(ptr noundef %1480) #11
  %1482 = call i32 @isatty(i32 noundef %1481) #11
  %.not264 = icmp eq i32 %1482, 0
  br i1 %.not264, label %1483, label %1484

1483:                                             ; preds = %1479, %1473
  br label %1484

1484:                                             ; preds = %1479, %1483
  %.str.5.sink879 = phi ptr [ @.str.5, %1483 ], [ @.str.2, %1479 ]
  store i32 %1474, ptr %580, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = load i32, ptr %526, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef nonnull @.str.4) #11
  %1489 = load i32, ptr %526, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror_debug(i32 noundef %1489, ptr noundef nonnull @.str.4) #11
  %1491 = load i32, ptr %580, align 4, !tbaa !5
  %1492 = call ptr @strerror(i32 noundef %1491) #11
  %1493 = load i32, ptr %580, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef nonnull %.str.5.sink879, i32 noundef %1486, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1488, ptr noundef %1490, ptr noundef %1492, i32 noundef %1493) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1495:                                             ; preds = %1468
  %1496 = add nsw i32 %1387, 5
  store i32 %1496, ptr @test_count, align 4, !tbaa !5
  %1497 = call i32 @s2n_connection_free(ptr noundef nonnull %1247) #11
  %1498 = icmp eq i32 %1497, -1
  br i1 %1498, label %1499, label %1521

1499:                                             ; preds = %1495
  %1500 = load i32, ptr %580, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @s2n_print_stacktrace(ptr noundef %1501) #11
  %1503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1504 = trunc nuw i8 %1503 to i1
  br i1 %1504, label %1505, label %1509

1505:                                             ; preds = %1499
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #11
  %1508 = call i32 @isatty(i32 noundef %1507) #11
  %.not314 = icmp eq i32 %1508, 0
  br i1 %.not314, label %1509, label %1510

1509:                                             ; preds = %1505, %1499
  br label %1510

1510:                                             ; preds = %1505, %1509
  %.str.5.sink888 = phi ptr [ @.str.5, %1509 ], [ @.str.2, %1505 ]
  store i32 %1500, ptr %580, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = load i32, ptr %526, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror(i32 noundef %1513, ptr noundef nonnull @.str.4) #11
  %1515 = load i32, ptr %526, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror_debug(i32 noundef %1515, ptr noundef nonnull @.str.4) #11
  %1517 = load i32, ptr %580, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #11
  %1519 = load i32, ptr %580, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull %.str.5.sink888, i32 noundef %1512, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %1514, ptr noundef %1516, ptr noundef %1518, i32 noundef %1519) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1521:                                             ; preds = %1495
  %1522 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  store ptr null, ptr %13, align 8, !tbaa !9
  %1523 = load ptr, ptr %3, align 8, !tbaa !9
  %1524 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef nonnull %13, ptr noundef %1523)
  %1525 = icmp sgt i32 %1524, -1
  br i1 %1525, label %1526, label %.thread365

.thread365:                                       ; preds = %1521
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  br label %2775

1526:                                             ; preds = %1521
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #11
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = add nsw i32 %1527, 1
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %14, i32 noundef 0) #11
  %1530 = icmp eq i32 %1529, -1
  br i1 %1530, label %1531, label %1553

1531:                                             ; preds = %1526
  %1532 = load i32, ptr %580, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = call i32 @s2n_print_stacktrace(ptr noundef %1533) #11
  %1535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1536 = trunc nuw i8 %1535 to i1
  br i1 %1536, label %1537, label %1541

1537:                                             ; preds = %1531
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @fileno(ptr noundef %1538) #11
  %1540 = call i32 @isatty(i32 noundef %1539) #11
  %.not313 = icmp eq i32 %1540, 0
  br i1 %.not313, label %1541, label %1542

1541:                                             ; preds = %1537, %1531
  br label %1542

1542:                                             ; preds = %1537, %1541
  %.str.5.sink897 = phi ptr [ @.str.5, %1541 ], [ @.str.2, %1537 ]
  store i32 %1532, ptr %580, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = load i32, ptr %526, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef nonnull @.str.4) #11
  %1547 = load i32, ptr %526, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef nonnull @.str.4) #11
  %1549 = load i32, ptr %580, align 4, !tbaa !5
  %1550 = call ptr @strerror(i32 noundef %1549) #11
  %1551 = load i32, ptr %580, align 4, !tbaa !5
  %1552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1543, ptr noundef nonnull %.str.5.sink897, i32 noundef %1544, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %1546, ptr noundef %1548, ptr noundef %1550, i32 noundef %1551) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1553:                                             ; preds = %1526
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %15, i8 0, i64 16, i1 false)
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = add nsw i32 %1554, 1
  store i32 %1555, ptr @test_count, align 4, !tbaa !5
  %1556 = call i32 @s2n_stuffer_reserve_uint24(ptr noundef nonnull %14, ptr noundef nonnull %15) #11
  %1557 = icmp eq i32 %1556, -1
  br i1 %1557, label %1558, label %1580

1558:                                             ; preds = %1553
  %1559 = load i32, ptr %580, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @s2n_print_stacktrace(ptr noundef %1560) #11
  %1562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1563 = trunc nuw i8 %1562 to i1
  br i1 %1563, label %1564, label %1568

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

1568:                                             ; preds = %1564, %1558
  br label %1569

1569:                                             ; preds = %1564, %1568
  %.str.5.sink906 = phi ptr [ @.str.5, %1568 ], [ @.str.2, %1564 ]
  store i32 %1559, ptr %580, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = load i32, ptr %526, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef nonnull @.str.4) #11
  %1574 = load i32, ptr %526, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror_debug(i32 noundef %1574, ptr noundef nonnull @.str.4) #11
  %1576 = load i32, ptr %580, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #11
  %1578 = load i32, ptr %580, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef nonnull %.str.5.sink906, i32 noundef %1571, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %1573, ptr noundef %1575, ptr noundef %1577, i32 noundef %1578) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1580:                                             ; preds = %1553
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = add nsw i32 %1581, 1
  store i32 %1582, ptr @test_count, align 4, !tbaa !5
  %1583 = load ptr, ptr %3, align 8, !tbaa !9
  %1584 = call i32 @s2n_write_test_cert(ptr noundef nonnull %14, ptr noundef %1583)
  %1585 = icmp eq i32 %1584, -1
  br i1 %1585, label %1586, label %1608

1586:                                             ; preds = %1580
  %1587 = load i32, ptr %580, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #11
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1586
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #11
  %1595 = call i32 @isatty(i32 noundef %1594) #11
  %.not311 = icmp eq i32 %1595, 0
  br i1 %.not311, label %1596, label %1597

1596:                                             ; preds = %1592, %1586
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.5.sink915 = phi ptr [ @.str.5, %1596 ], [ @.str.2, %1592 ]
  store i32 %1587, ptr %580, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = load i32, ptr %526, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.4) #11
  %1602 = load i32, ptr %526, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.4) #11
  %1604 = load i32, ptr %580, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #11
  %1606 = load i32, ptr %580, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.5.sink915, i32 noundef %1599, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1608:                                             ; preds = %1580
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = load ptr, ptr %13, align 8, !tbaa !9
  %1612 = call i32 @s2n_extension_list_send(i32 noundef 6, ptr noundef %1611, ptr noundef nonnull %14) #11
  %1613 = icmp eq i32 %1612, -1
  br i1 %1613, label %1614, label %1636

1614:                                             ; preds = %1608
  %1615 = load i32, ptr %580, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @s2n_print_stacktrace(ptr noundef %1616) #11
  %1618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1619 = trunc nuw i8 %1618 to i1
  br i1 %1619, label %1620, label %1624

1620:                                             ; preds = %1614
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @fileno(ptr noundef %1621) #11
  %1623 = call i32 @isatty(i32 noundef %1622) #11
  %.not310 = icmp eq i32 %1623, 0
  br i1 %.not310, label %1624, label %1625

1624:                                             ; preds = %1620, %1614
  br label %1625

1625:                                             ; preds = %1620, %1624
  %.str.5.sink924 = phi ptr [ @.str.5, %1624 ], [ @.str.2, %1620 ]
  store i32 %1615, ptr %580, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = load i32, ptr %526, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef nonnull @.str.4) #11
  %1630 = load i32, ptr %526, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef nonnull @.str.4) #11
  %1632 = load i32, ptr %580, align 4, !tbaa !5
  %1633 = call ptr @strerror(i32 noundef %1632) #11
  %1634 = load i32, ptr %580, align 4, !tbaa !5
  %1635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1626, ptr noundef nonnull %.str.5.sink924, i32 noundef %1627, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1629, ptr noundef %1631, ptr noundef %1633, i32 noundef %1634) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1636:                                             ; preds = %1608
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = add nsw i32 %1637, 1
  store i32 %1638, ptr @test_count, align 4, !tbaa !5
  %1639 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %15) #11
  %1640 = icmp eq i32 %1639, -1
  br i1 %1640, label %1641, label %1663

1641:                                             ; preds = %1636
  %1642 = load i32, ptr %580, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @s2n_print_stacktrace(ptr noundef %1643) #11
  %1645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1646 = trunc nuw i8 %1645 to i1
  br i1 %1646, label %1647, label %1651

1647:                                             ; preds = %1641
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = call i32 @fileno(ptr noundef %1648) #11
  %1650 = call i32 @isatty(i32 noundef %1649) #11
  %.not309 = icmp eq i32 %1650, 0
  br i1 %.not309, label %1651, label %1652

1651:                                             ; preds = %1647, %1641
  br label %1652

1652:                                             ; preds = %1647, %1651
  %.str.5.sink933 = phi ptr [ @.str.5, %1651 ], [ @.str.2, %1647 ]
  store i32 %1642, ptr %580, align 4, !tbaa !5
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = load i32, ptr %526, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror(i32 noundef %1655, ptr noundef nonnull @.str.4) #11
  %1657 = load i32, ptr %526, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror_debug(i32 noundef %1657, ptr noundef nonnull @.str.4) #11
  %1659 = load i32, ptr %580, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #11
  %1661 = load i32, ptr %580, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef nonnull %.str.5.sink933, i32 noundef %1654, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %1656, ptr noundef %1658, ptr noundef %1660, i32 noundef %1661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1663:                                             ; preds = %1636
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  store ptr null, ptr %16, align 8, !tbaa !9
  %1664 = load ptr, ptr %3, align 8, !tbaa !9
  %1665 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef nonnull %16, ptr noundef %1664)
  %1666 = icmp sgt i32 %1665, -1
  br i1 %1666, label %1667, label %1858

1667:                                             ; preds = %1663
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = add nsw i32 %1668, 1
  store i32 %1669, ptr @test_count, align 4, !tbaa !5
  %1670 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %14) #11
  %1671 = icmp eq i32 %1670, -1
  br i1 %1671, label %1672, label %1694

1672:                                             ; preds = %1667
  %1673 = load i32, ptr %580, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @s2n_print_stacktrace(ptr noundef %1674) #11
  %1676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1677 = trunc nuw i8 %1676 to i1
  br i1 %1677, label %1678, label %1682

1678:                                             ; preds = %1672
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @fileno(ptr noundef %1679) #11
  %1681 = call i32 @isatty(i32 noundef %1680) #11
  %.not308 = icmp eq i32 %1681, 0
  br i1 %.not308, label %1682, label %1683

1682:                                             ; preds = %1678, %1672
  br label %1683

1683:                                             ; preds = %1678, %1682
  %.str.5.sink942 = phi ptr [ @.str.5, %1682 ], [ @.str.2, %1678 ]
  store i32 %1673, ptr %580, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = load i32, ptr %526, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror(i32 noundef %1686, ptr noundef nonnull @.str.4) #11
  %1688 = load i32, ptr %526, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror_debug(i32 noundef %1688, ptr noundef nonnull @.str.4) #11
  %1690 = load i32, ptr %580, align 4, !tbaa !5
  %1691 = call ptr @strerror(i32 noundef %1690) #11
  %1692 = load i32, ptr %580, align 4, !tbaa !5
  %1693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef nonnull %.str.5.sink942, i32 noundef %1685, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1687, ptr noundef %1689, ptr noundef %1691, i32 noundef %1692) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1694:                                             ; preds = %1667
  %1695 = load ptr, ptr %16, align 8, !tbaa !9
  %1696 = getelementptr inbounds i8, ptr %1695, i64 220
  store i8 33, ptr %1696, align 4, !tbaa !43
  %1697 = load i32, ptr @test_count, align 4, !tbaa !5
  %1698 = add nsw i32 %1697, 1
  store i32 %1698, ptr @test_count, align 4, !tbaa !5
  %1699 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %1695, ptr noundef nonnull %14)
  %1700 = icmp eq i32 %1699, -1
  br i1 %1700, label %1723, label %1701

1701:                                             ; preds = %1694
  %1702 = load i32, ptr %580, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = call i32 @s2n_print_stacktrace(ptr noundef %1703) #11
  %1705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1706 = trunc nuw i8 %1705 to i1
  br i1 %1706, label %1707, label %1711

1707:                                             ; preds = %1701
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @fileno(ptr noundef %1708) #11
  %1710 = call i32 @isatty(i32 noundef %1709) #11
  %.not265 = icmp eq i32 %1710, 0
  br i1 %.not265, label %1711, label %1712

1711:                                             ; preds = %1707, %1701
  br label %1712

1712:                                             ; preds = %1707, %1711
  %.str.5.sink951 = phi ptr [ @.str.5, %1711 ], [ @.str.2, %1707 ]
  store i32 %1702, ptr %580, align 4, !tbaa !5
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = load i32, ptr %526, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror(i32 noundef %1715, ptr noundef nonnull @.str.4) #11
  %1717 = load i32, ptr %526, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef nonnull @.str.4) #11
  %1719 = load i32, ptr %580, align 4, !tbaa !5
  %1720 = call ptr @strerror(i32 noundef %1719) #11
  %1721 = load i32, ptr %580, align 4, !tbaa !5
  %1722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1713, ptr noundef nonnull %.str.5.sink951, i32 noundef %1714, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %1716, ptr noundef %1718, ptr noundef %1720, i32 noundef %1721) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1723:                                             ; preds = %1694
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = add nsw i32 %1724, 1
  store i32 %1725, ptr @test_count, align 4, !tbaa !5
  %1726 = load i32, ptr %526, align 4, !tbaa !5
  %1727 = icmp eq i32 %1726, 0
  br i1 %1727, label %1728, label %1750

1728:                                             ; preds = %1723
  %1729 = load i32, ptr %580, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @s2n_print_stacktrace(ptr noundef %1730) #11
  %1732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1733 = trunc nuw i8 %1732 to i1
  br i1 %1733, label %1734, label %1738

1734:                                             ; preds = %1728
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @fileno(ptr noundef %1735) #11
  %1737 = call i32 @isatty(i32 noundef %1736) #11
  %.not307 = icmp eq i32 %1737, 0
  br i1 %.not307, label %1738, label %1739

1738:                                             ; preds = %1734, %1728
  br label %1739

1739:                                             ; preds = %1734, %1738
  %.str.5.sink960 = phi ptr [ @.str.5, %1738 ], [ @.str.2, %1734 ]
  store i32 %1729, ptr %580, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = load i32, ptr %526, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror(i32 noundef %1742, ptr noundef nonnull @.str.4) #11
  %1744 = load i32, ptr %526, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror_debug(i32 noundef %1744, ptr noundef nonnull @.str.4) #11
  %1746 = load i32, ptr %580, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #11
  %1748 = load i32, ptr %580, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef nonnull %.str.5.sink960, i32 noundef %1741, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %1743, ptr noundef %1745, ptr noundef %1747, i32 noundef %1748) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1750:                                             ; preds = %1723
  %1751 = add nsw i32 %1724, 2
  store i32 %1751, ptr @test_count, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef nonnull @.str.4) #11
  %1753 = icmp eq ptr %1752, null
  br i1 %1753, label %1754, label %1776

1754:                                             ; preds = %1750
  %1755 = load i32, ptr %580, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @s2n_print_stacktrace(ptr noundef %1756) #11
  %1758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1759 = trunc nuw i8 %1758 to i1
  br i1 %1759, label %1760, label %1764

1760:                                             ; preds = %1754
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @fileno(ptr noundef %1761) #11
  %1763 = call i32 @isatty(i32 noundef %1762) #11
  %.not306 = icmp eq i32 %1763, 0
  br i1 %.not306, label %1764, label %1765

1764:                                             ; preds = %1760, %1754
  br label %1765

1765:                                             ; preds = %1760, %1764
  %.str.5.sink969 = phi ptr [ @.str.5, %1764 ], [ @.str.2, %1760 ]
  store i32 %1755, ptr %580, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = load i32, ptr %526, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror(i32 noundef %1768, ptr noundef nonnull @.str.4) #11
  %1770 = load i32, ptr %526, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef nonnull @.str.4) #11
  %1772 = load i32, ptr %580, align 4, !tbaa !5
  %1773 = call ptr @strerror(i32 noundef %1772) #11
  %1774 = load i32, ptr %580, align 4, !tbaa !5
  %1775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef nonnull %.str.5.sink969, i32 noundef %1767, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %1769, ptr noundef %1771, ptr noundef %1773, i32 noundef %1774) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1776:                                             ; preds = %1750
  store i32 0, ptr %526, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %580, align 4, !tbaa !5
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = load ptr, ptr %16, align 8, !tbaa !9
  %1780 = getelementptr inbounds i8, ptr %1779, i64 2800
  %1781 = load i32, ptr %1780, align 8, !tbaa !50
  %1782 = icmp eq i32 %1781, 0
  br i1 %1782, label %1805, label %1783

1783:                                             ; preds = %1776
  %1784 = load i32, ptr %580, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @s2n_print_stacktrace(ptr noundef %1785) #11
  %1787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1788 = trunc nuw i8 %1787 to i1
  br i1 %1788, label %1789, label %1793

1789:                                             ; preds = %1783
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @fileno(ptr noundef %1790) #11
  %1792 = call i32 @isatty(i32 noundef %1791) #11
  %.not266 = icmp eq i32 %1792, 0
  br i1 %.not266, label %1793, label %1794

1793:                                             ; preds = %1789, %1783
  br label %1794

1794:                                             ; preds = %1789, %1793
  %.str.5.sink978 = phi ptr [ @.str.5, %1793 ], [ @.str.2, %1789 ]
  store i32 %1784, ptr %580, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %1797 = load i32, ptr %526, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror(i32 noundef %1797, ptr noundef nonnull @.str.4) #11
  %1799 = load i32, ptr %526, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror_debug(i32 noundef %1799, ptr noundef nonnull @.str.4) #11
  %1801 = load i32, ptr %580, align 4, !tbaa !5
  %1802 = call ptr @strerror(i32 noundef %1801) #11
  %1803 = load i32, ptr %580, align 4, !tbaa !5
  %1804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1795, ptr noundef nonnull %.str.5.sink978, i32 noundef %1796, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %1798, ptr noundef %1800, ptr noundef %1802, i32 noundef %1803) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1805:                                             ; preds = %1776
  %1806 = add nsw i32 %1777, 2
  store i32 %1806, ptr @test_count, align 4, !tbaa !5
  %1807 = getelementptr inbounds i8, ptr %1779, i64 2792
  %1808 = load ptr, ptr %1807, align 8, !tbaa !51
  %1809 = icmp eq ptr %1808, null
  br i1 %1809, label %1832, label %1810

1810:                                             ; preds = %1805
  %1811 = load i32, ptr %580, align 4, !tbaa !5
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @s2n_print_stacktrace(ptr noundef %1812) #11
  %1814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1815 = trunc nuw i8 %1814 to i1
  br i1 %1815, label %1816, label %1820

1816:                                             ; preds = %1810
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = call i32 @fileno(ptr noundef %1817) #11
  %1819 = call i32 @isatty(i32 noundef %1818) #11
  %.not267 = icmp eq i32 %1819, 0
  br i1 %.not267, label %1820, label %1821

1820:                                             ; preds = %1816, %1810
  br label %1821

1821:                                             ; preds = %1816, %1820
  %.str.5.sink987 = phi ptr [ @.str.5, %1820 ], [ @.str.2, %1816 ]
  store i32 %1811, ptr %580, align 4, !tbaa !5
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = load i32, ptr %526, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror(i32 noundef %1824, ptr noundef nonnull @.str.4) #11
  %1826 = load i32, ptr %526, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror_debug(i32 noundef %1826, ptr noundef nonnull @.str.4) #11
  %1828 = load i32, ptr %580, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #11
  %1830 = load i32, ptr %580, align 4, !tbaa !5
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1822, ptr noundef nonnull %.str.5.sink987, i32 noundef %1823, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %1825, ptr noundef %1827, ptr noundef %1829, i32 noundef %1830) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1832:                                             ; preds = %1805
  %1833 = add nsw i32 %1777, 3
  store i32 %1833, ptr @test_count, align 4, !tbaa !5
  %1834 = call i32 @s2n_connection_free(ptr noundef nonnull %1779) #11
  %1835 = icmp eq i32 %1834, -1
  br i1 %1835, label %1836, label %1859

1836:                                             ; preds = %1832
  %1837 = load i32, ptr %580, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @s2n_print_stacktrace(ptr noundef %1838) #11
  %1840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1841 = trunc nuw i8 %1840 to i1
  br i1 %1841, label %1842, label %1846

1842:                                             ; preds = %1836
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = call i32 @fileno(ptr noundef %1843) #11
  %1845 = call i32 @isatty(i32 noundef %1844) #11
  %.not305 = icmp eq i32 %1845, 0
  br i1 %.not305, label %1846, label %1847

1846:                                             ; preds = %1842, %1836
  br label %1847

1847:                                             ; preds = %1842, %1846
  %.str.5.sink996 = phi ptr [ @.str.5, %1846 ], [ @.str.2, %1842 ]
  store i32 %1837, ptr %580, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = load i32, ptr %526, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef nonnull @.str.4) #11
  %1852 = load i32, ptr %526, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef nonnull @.str.4) #11
  %1854 = load i32, ptr %580, align 4, !tbaa !5
  %1855 = call ptr @strerror(i32 noundef %1854) #11
  %1856 = load i32, ptr %580, align 4, !tbaa !5
  %1857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef nonnull %.str.5.sink996, i32 noundef %1849, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %1851, ptr noundef %1853, ptr noundef %1855, i32 noundef %1856) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1858:                                             ; preds = %1663
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  br label %.thread369

1859:                                             ; preds = %1832
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  store ptr null, ptr %17, align 8, !tbaa !9
  %1860 = load ptr, ptr %3, align 8, !tbaa !9
  %1861 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef nonnull %17, ptr noundef %1860)
  %1862 = icmp sgt i32 %1861, -1
  br i1 %1862, label %1863, label %2001

1863:                                             ; preds = %1859
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = add nsw i32 %1864, 1
  store i32 %1865, ptr @test_count, align 4, !tbaa !5
  %1866 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %14) #11
  %1867 = icmp eq i32 %1866, -1
  br i1 %1867, label %1868, label %1890

1868:                                             ; preds = %1863
  %1869 = load i32, ptr %580, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @s2n_print_stacktrace(ptr noundef %1870) #11
  %1872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1873 = trunc nuw i8 %1872 to i1
  br i1 %1873, label %1874, label %1878

1874:                                             ; preds = %1868
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = call i32 @fileno(ptr noundef %1875) #11
  %1877 = call i32 @isatty(i32 noundef %1876) #11
  %.not304 = icmp eq i32 %1877, 0
  br i1 %.not304, label %1878, label %1879

1878:                                             ; preds = %1874, %1868
  br label %1879

1879:                                             ; preds = %1874, %1878
  %.str.5.sink1005 = phi ptr [ @.str.5, %1878 ], [ @.str.2, %1874 ]
  store i32 %1869, ptr %580, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = load i32, ptr %526, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror(i32 noundef %1882, ptr noundef nonnull @.str.4) #11
  %1884 = load i32, ptr %526, align 4, !tbaa !5
  %1885 = call ptr @s2n_strerror_debug(i32 noundef %1884, ptr noundef nonnull @.str.4) #11
  %1886 = load i32, ptr %580, align 4, !tbaa !5
  %1887 = call ptr @strerror(i32 noundef %1886) #11
  %1888 = load i32, ptr %580, align 4, !tbaa !5
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1880, ptr noundef nonnull %.str.5.sink1005, i32 noundef %1881, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %1883, ptr noundef %1885, ptr noundef %1887, i32 noundef %1888) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1890:                                             ; preds = %1863
  %1891 = load ptr, ptr %17, align 8, !tbaa !9
  %1892 = getelementptr inbounds i8, ptr %1891, i64 220
  store i8 34, ptr %1892, align 4, !tbaa !43
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = add nsw i32 %1893, 1
  store i32 %1894, ptr @test_count, align 4, !tbaa !5
  %1895 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %1891, ptr noundef nonnull %14)
  %1896 = icmp eq i32 %1895, -1
  br i1 %1896, label %1897, label %1919

1897:                                             ; preds = %1890
  %1898 = load i32, ptr %580, align 4, !tbaa !5
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @s2n_print_stacktrace(ptr noundef %1899) #11
  %1901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1902 = trunc nuw i8 %1901 to i1
  br i1 %1902, label %1903, label %1907

1903:                                             ; preds = %1897
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = call i32 @fileno(ptr noundef %1904) #11
  %1906 = call i32 @isatty(i32 noundef %1905) #11
  %.not303 = icmp eq i32 %1906, 0
  br i1 %.not303, label %1907, label %1908

1907:                                             ; preds = %1903, %1897
  br label %1908

1908:                                             ; preds = %1903, %1907
  %.str.5.sink1014 = phi ptr [ @.str.5, %1907 ], [ @.str.2, %1903 ]
  store i32 %1898, ptr %580, align 4, !tbaa !5
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = load i32, ptr %526, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror(i32 noundef %1911, ptr noundef nonnull @.str.4) #11
  %1913 = load i32, ptr %526, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror_debug(i32 noundef %1913, ptr noundef nonnull @.str.4) #11
  %1915 = load i32, ptr %580, align 4, !tbaa !5
  %1916 = call ptr @strerror(i32 noundef %1915) #11
  %1917 = load i32, ptr %580, align 4, !tbaa !5
  %1918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1909, ptr noundef nonnull %.str.5.sink1014, i32 noundef %1910, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %1912, ptr noundef %1914, ptr noundef %1916, i32 noundef %1917) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1919:                                             ; preds = %1890
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !5
  %1922 = load ptr, ptr %17, align 8, !tbaa !9
  %1923 = getelementptr inbounds i8, ptr %1922, i64 2800
  %1924 = load i32, ptr %1923, align 8, !tbaa !50
  %1925 = icmp eq i32 %1924, 15
  br i1 %1925, label %1948, label %1926

1926:                                             ; preds = %1919
  %1927 = load i32, ptr %580, align 4, !tbaa !5
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = call i32 @s2n_print_stacktrace(ptr noundef %1928) #11
  %1930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1931 = trunc nuw i8 %1930 to i1
  br i1 %1931, label %1932, label %1936

1932:                                             ; preds = %1926
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @fileno(ptr noundef %1933) #11
  %1935 = call i32 @isatty(i32 noundef %1934) #11
  %.not268 = icmp eq i32 %1935, 0
  br i1 %.not268, label %1936, label %1937

1936:                                             ; preds = %1932, %1926
  br label %1937

1937:                                             ; preds = %1932, %1936
  %.str.5.sink1023 = phi ptr [ @.str.5, %1936 ], [ @.str.2, %1932 ]
  store i32 %1927, ptr %580, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = load i32, ptr %526, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror(i32 noundef %1940, ptr noundef nonnull @.str.4) #11
  %1942 = load i32, ptr %526, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror_debug(i32 noundef %1942, ptr noundef nonnull @.str.4) #11
  %1944 = load i32, ptr %580, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #11
  %1946 = load i32, ptr %580, align 4, !tbaa !5
  %1947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef nonnull %.str.5.sink1023, i32 noundef %1939, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %1941, ptr noundef %1943, ptr noundef %1945, i32 noundef %1946) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1948:                                             ; preds = %1919
  %1949 = add nsw i32 %1920, 2
  store i32 %1949, ptr @test_count, align 4, !tbaa !5
  %1950 = getelementptr inbounds i8, ptr %1922, i64 2792
  %1951 = load ptr, ptr %1950, align 8, !tbaa !51
  %bcmp269 = call i32 @bcmp(ptr noundef nonnull dereferenceable(15) %1951, ptr noundef nonnull dereferenceable(15) %4, i64 15)
  %1952 = icmp eq i32 %bcmp269, 0
  br i1 %1952, label %1975, label %1953

1953:                                             ; preds = %1948
  %1954 = load i32, ptr %580, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @s2n_print_stacktrace(ptr noundef %1955) #11
  %1957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1958 = trunc nuw i8 %1957 to i1
  br i1 %1958, label %1959, label %1963

1959:                                             ; preds = %1953
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @fileno(ptr noundef %1960) #11
  %1962 = call i32 @isatty(i32 noundef %1961) #11
  %.not270 = icmp eq i32 %1962, 0
  br i1 %.not270, label %1963, label %1964

1963:                                             ; preds = %1959, %1953
  br label %1964

1964:                                             ; preds = %1959, %1963
  %.str.5.sink1032 = phi ptr [ @.str.5, %1963 ], [ @.str.2, %1959 ]
  store i32 %1954, ptr %580, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = load i32, ptr %526, align 4, !tbaa !5
  %1968 = call ptr @s2n_strerror(i32 noundef %1967, ptr noundef nonnull @.str.4) #11
  %1969 = load i32, ptr %526, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror_debug(i32 noundef %1969, ptr noundef nonnull @.str.4) #11
  %1971 = load i32, ptr %580, align 4, !tbaa !5
  %1972 = call ptr @strerror(i32 noundef %1971) #11
  %1973 = load i32, ptr %580, align 4, !tbaa !5
  %1974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef nonnull %.str.5.sink1032, i32 noundef %1966, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %1968, ptr noundef %1970, ptr noundef %1972, i32 noundef %1973) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1975:                                             ; preds = %1948
  %1976 = add nsw i32 %1920, 3
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = call i32 @s2n_connection_free(ptr noundef nonnull %1922) #11
  %1978 = icmp eq i32 %1977, -1
  br i1 %1978, label %1979, label %2002

1979:                                             ; preds = %1975
  %1980 = load i32, ptr %580, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = call i32 @s2n_print_stacktrace(ptr noundef %1981) #11
  %1983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1984 = trunc nuw i8 %1983 to i1
  br i1 %1984, label %1985, label %1989

1985:                                             ; preds = %1979
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @fileno(ptr noundef %1986) #11
  %1988 = call i32 @isatty(i32 noundef %1987) #11
  %.not302 = icmp eq i32 %1988, 0
  br i1 %.not302, label %1989, label %1990

1989:                                             ; preds = %1985, %1979
  br label %1990

1990:                                             ; preds = %1985, %1989
  %.str.5.sink1041 = phi ptr [ @.str.5, %1989 ], [ @.str.2, %1985 ]
  store i32 %1980, ptr %580, align 4, !tbaa !5
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = load i32, ptr %526, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror(i32 noundef %1993, ptr noundef nonnull @.str.4) #11
  %1995 = load i32, ptr %526, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror_debug(i32 noundef %1995, ptr noundef nonnull @.str.4) #11
  %1997 = load i32, ptr %580, align 4, !tbaa !5
  %1998 = call ptr @strerror(i32 noundef %1997) #11
  %1999 = load i32, ptr %580, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1991, ptr noundef nonnull %.str.5.sink1041, i32 noundef %1992, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %1994, ptr noundef %1996, ptr noundef %1998, i32 noundef %1999) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2001:                                             ; preds = %1859
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  br label %.thread369

2002:                                             ; preds = %1975
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = load ptr, ptr %13, align 8, !tbaa !9
  %2006 = call i32 @s2n_connection_free(ptr noundef %2005) #11
  %2007 = icmp eq i32 %2006, -1
  br i1 %2007, label %2008, label %2031

2008:                                             ; preds = %2002
  %2009 = load i32, ptr %580, align 4, !tbaa !5
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = call i32 @s2n_print_stacktrace(ptr noundef %2010) #11
  %2012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2013 = trunc nuw i8 %2012 to i1
  br i1 %2013, label %2014, label %2018

2014:                                             ; preds = %2008
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @fileno(ptr noundef %2015) #11
  %2017 = call i32 @isatty(i32 noundef %2016) #11
  %.not301 = icmp eq i32 %2017, 0
  br i1 %.not301, label %2018, label %2019

2018:                                             ; preds = %2014, %2008
  br label %2019

2019:                                             ; preds = %2014, %2018
  %.str.5.sink1050 = phi ptr [ @.str.5, %2018 ], [ @.str.2, %2014 ]
  store i32 %2009, ptr %580, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = load i32, ptr %526, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror(i32 noundef %2022, ptr noundef nonnull @.str.4) #11
  %2024 = load i32, ptr %526, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror_debug(i32 noundef %2024, ptr noundef nonnull @.str.4) #11
  %2026 = load i32, ptr %580, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #11
  %2028 = load i32, ptr %580, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2020, ptr noundef nonnull %.str.5.sink1050, i32 noundef %2021, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2023, ptr noundef %2025, ptr noundef %2027, i32 noundef %2028) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.thread369:                                       ; preds = %2001, %1858
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #11
  %2030 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  br label %2775

2031:                                             ; preds = %2002
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #11
  %2032 = call i32 @s2n_stuffer_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  store ptr null, ptr %19, align 8, !tbaa !9
  %2033 = load ptr, ptr %3, align 8, !tbaa !9
  %2034 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef nonnull %19, ptr noundef %2033)
  %2035 = icmp sgt i32 %2034, -1
  br i1 %2035, label %2036, label %.thread376

2036:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #11
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #11
  %2040 = icmp eq i32 %2039, -1
  br i1 %2040, label %2041, label %2063

2041:                                             ; preds = %2036
  %2042 = load i32, ptr %580, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @s2n_print_stacktrace(ptr noundef %2043) #11
  %2045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2046 = trunc nuw i8 %2045 to i1
  br i1 %2046, label %2047, label %2051

2047:                                             ; preds = %2041
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @fileno(ptr noundef %2048) #11
  %2050 = call i32 @isatty(i32 noundef %2049) #11
  %.not300 = icmp eq i32 %2050, 0
  br i1 %.not300, label %2051, label %2052

2051:                                             ; preds = %2047, %2041
  br label %2052

2052:                                             ; preds = %2047, %2051
  %.str.5.sink1059 = phi ptr [ @.str.5, %2051 ], [ @.str.2, %2047 ]
  store i32 %2042, ptr %580, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = load i32, ptr %526, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef nonnull @.str.4) #11
  %2057 = load i32, ptr %526, align 4, !tbaa !5
  %2058 = call ptr @s2n_strerror_debug(i32 noundef %2057, ptr noundef nonnull @.str.4) #11
  %2059 = load i32, ptr %580, align 4, !tbaa !5
  %2060 = call ptr @strerror(i32 noundef %2059) #11
  %2061 = load i32, ptr %580, align 4, !tbaa !5
  %2062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef nonnull %.str.5.sink1059, i32 noundef %2054, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %2056, ptr noundef %2058, ptr noundef %2060, i32 noundef %2061) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2063:                                             ; preds = %2036
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = add nsw i32 %2064, 1
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = call i32 @s2n_stuffer_reserve_uint24(ptr noundef nonnull %20, ptr noundef nonnull %18) #11
  %2067 = icmp eq i32 %2066, -1
  br i1 %2067, label %2068, label %2090

2068:                                             ; preds = %2063
  %2069 = load i32, ptr %580, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @s2n_print_stacktrace(ptr noundef %2070) #11
  %2072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2073 = trunc nuw i8 %2072 to i1
  br i1 %2073, label %2074, label %2078

2074:                                             ; preds = %2068
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @fileno(ptr noundef %2075) #11
  %2077 = call i32 @isatty(i32 noundef %2076) #11
  %.not299 = icmp eq i32 %2077, 0
  br i1 %.not299, label %2078, label %2079

2078:                                             ; preds = %2074, %2068
  br label %2079

2079:                                             ; preds = %2074, %2078
  %.str.5.sink1068 = phi ptr [ @.str.5, %2078 ], [ @.str.2, %2074 ]
  store i32 %2069, ptr %580, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = load i32, ptr %526, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef nonnull @.str.4) #11
  %2084 = load i32, ptr %526, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef nonnull @.str.4) #11
  %2086 = load i32, ptr %580, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #11
  %2088 = load i32, ptr %580, align 4, !tbaa !5
  %2089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2080, ptr noundef nonnull %.str.5.sink1068, i32 noundef %2081, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2083, ptr noundef %2085, ptr noundef %2087, i32 noundef %2088) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2090:                                             ; preds = %2063
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = add nsw i32 %2091, 1
  store i32 %2092, ptr @test_count, align 4, !tbaa !5
  %2093 = load ptr, ptr %3, align 8, !tbaa !9
  %2094 = call i32 @s2n_write_test_cert(ptr noundef nonnull %20, ptr noundef %2093)
  %2095 = icmp eq i32 %2094, -1
  br i1 %2095, label %2096, label %2118

2096:                                             ; preds = %2090
  %2097 = load i32, ptr %580, align 4, !tbaa !5
  %2098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2099 = call i32 @s2n_print_stacktrace(ptr noundef %2098) #11
  %2100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2101 = trunc nuw i8 %2100 to i1
  br i1 %2101, label %2102, label %2106

2102:                                             ; preds = %2096
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = call i32 @fileno(ptr noundef %2103) #11
  %2105 = call i32 @isatty(i32 noundef %2104) #11
  %.not298 = icmp eq i32 %2105, 0
  br i1 %.not298, label %2106, label %2107

2106:                                             ; preds = %2102, %2096
  br label %2107

2107:                                             ; preds = %2102, %2106
  %.str.5.sink1077 = phi ptr [ @.str.5, %2106 ], [ @.str.2, %2102 ]
  store i32 %2097, ptr %580, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = load i32, ptr %526, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror(i32 noundef %2110, ptr noundef nonnull @.str.4) #11
  %2112 = load i32, ptr %526, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef nonnull @.str.4) #11
  %2114 = load i32, ptr %580, align 4, !tbaa !5
  %2115 = call ptr @strerror(i32 noundef %2114) #11
  %2116 = load i32, ptr %580, align 4, !tbaa !5
  %2117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2108, ptr noundef nonnull %.str.5.sink1077, i32 noundef %2109, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %2111, ptr noundef %2113, ptr noundef %2115, i32 noundef %2116) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2118:                                             ; preds = %2090
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = add nsw i32 %2119, 1
  store i32 %2120, ptr @test_count, align 4, !tbaa !5
  %2121 = load ptr, ptr %19, align 8, !tbaa !9
  %2122 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef %2121, ptr noundef nonnull %20) #11
  %2123 = icmp eq i32 %2122, -1
  br i1 %2123, label %2124, label %2146

2124:                                             ; preds = %2118
  %2125 = load i32, ptr %580, align 4, !tbaa !5
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = call i32 @s2n_print_stacktrace(ptr noundef %2126) #11
  %2128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2129 = trunc nuw i8 %2128 to i1
  br i1 %2129, label %2130, label %2134

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

2134:                                             ; preds = %2130, %2124
  br label %2135

2135:                                             ; preds = %2130, %2134
  %.str.5.sink1086 = phi ptr [ @.str.5, %2134 ], [ @.str.2, %2130 ]
  store i32 %2125, ptr %580, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = load i32, ptr %526, align 4, !tbaa !5
  %2139 = call ptr @s2n_strerror(i32 noundef %2138, ptr noundef nonnull @.str.4) #11
  %2140 = load i32, ptr %526, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef nonnull @.str.4) #11
  %2142 = load i32, ptr %580, align 4, !tbaa !5
  %2143 = call ptr @strerror(i32 noundef %2142) #11
  %2144 = load i32, ptr %580, align 4, !tbaa !5
  %2145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef nonnull %.str.5.sink1086, i32 noundef %2137, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %2139, ptr noundef %2141, ptr noundef %2143, i32 noundef %2144) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2146:                                             ; preds = %2118
  %2147 = load i32, ptr @test_count, align 4, !tbaa !5
  %2148 = add nsw i32 %2147, 1
  store i32 %2148, ptr @test_count, align 4, !tbaa !5
  %2149 = load ptr, ptr %3, align 8, !tbaa !9
  %2150 = call i32 @s2n_write_test_cert(ptr noundef nonnull %20, ptr noundef %2149)
  %2151 = icmp eq i32 %2150, -1
  br i1 %2151, label %2152, label %2174

2152:                                             ; preds = %2146
  %2153 = load i32, ptr %580, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = call i32 @s2n_print_stacktrace(ptr noundef %2154) #11
  %2156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2157 = trunc nuw i8 %2156 to i1
  br i1 %2157, label %2158, label %2162

2158:                                             ; preds = %2152
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @fileno(ptr noundef %2159) #11
  %2161 = call i32 @isatty(i32 noundef %2160) #11
  %.not296 = icmp eq i32 %2161, 0
  br i1 %.not296, label %2162, label %2163

2162:                                             ; preds = %2158, %2152
  br label %2163

2163:                                             ; preds = %2158, %2162
  %.str.5.sink1095 = phi ptr [ @.str.5, %2162 ], [ @.str.2, %2158 ]
  store i32 %2153, ptr %580, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = load i32, ptr @test_count, align 4, !tbaa !5
  %2166 = load i32, ptr %526, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef nonnull @.str.4) #11
  %2168 = load i32, ptr %526, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror_debug(i32 noundef %2168, ptr noundef nonnull @.str.4) #11
  %2170 = load i32, ptr %580, align 4, !tbaa !5
  %2171 = call ptr @strerror(i32 noundef %2170) #11
  %2172 = load i32, ptr %580, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2164, ptr noundef nonnull %.str.5.sink1095, i32 noundef %2165, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %2167, ptr noundef %2169, ptr noundef %2171, i32 noundef %2172) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2174:                                             ; preds = %2146
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = add nsw i32 %2175, 1
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = load ptr, ptr %19, align 8, !tbaa !9
  %2178 = call i32 @s2n_extension_list_send(i32 noundef 6, ptr noundef %2177, ptr noundef nonnull %20) #11
  %2179 = icmp eq i32 %2178, -1
  br i1 %2179, label %2180, label %2202

2180:                                             ; preds = %2174
  %2181 = load i32, ptr %580, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @s2n_print_stacktrace(ptr noundef %2182) #11
  %2184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2185 = trunc nuw i8 %2184 to i1
  br i1 %2185, label %2186, label %2190

2186:                                             ; preds = %2180
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = call i32 @fileno(ptr noundef %2187) #11
  %2189 = call i32 @isatty(i32 noundef %2188) #11
  %.not295 = icmp eq i32 %2189, 0
  br i1 %.not295, label %2190, label %2191

2190:                                             ; preds = %2186, %2180
  br label %2191

2191:                                             ; preds = %2186, %2190
  %.str.5.sink1104 = phi ptr [ @.str.5, %2190 ], [ @.str.2, %2186 ]
  store i32 %2181, ptr %580, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = load i32, ptr %526, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror(i32 noundef %2194, ptr noundef nonnull @.str.4) #11
  %2196 = load i32, ptr %526, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror_debug(i32 noundef %2196, ptr noundef nonnull @.str.4) #11
  %2198 = load i32, ptr %580, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #11
  %2200 = load i32, ptr %580, align 4, !tbaa !5
  %2201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2192, ptr noundef nonnull %.str.5.sink1104, i32 noundef %2193, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %2195, ptr noundef %2197, ptr noundef %2199, i32 noundef %2200) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2202:                                             ; preds = %2174
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = add nsw i32 %2203, 1
  store i32 %2204, ptr @test_count, align 4, !tbaa !5
  %2205 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %18) #11
  %2206 = icmp eq i32 %2205, -1
  br i1 %2206, label %2207, label %2229

2207:                                             ; preds = %2202
  %2208 = load i32, ptr %580, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = call i32 @s2n_print_stacktrace(ptr noundef %2209) #11
  %2211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2212 = trunc nuw i8 %2211 to i1
  br i1 %2212, label %2213, label %2217

2213:                                             ; preds = %2207
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @fileno(ptr noundef %2214) #11
  %2216 = call i32 @isatty(i32 noundef %2215) #11
  %.not294 = icmp eq i32 %2216, 0
  br i1 %.not294, label %2217, label %2218

2217:                                             ; preds = %2213, %2207
  br label %2218

2218:                                             ; preds = %2213, %2217
  %.str.5.sink1113 = phi ptr [ @.str.5, %2217 ], [ @.str.2, %2213 ]
  store i32 %2208, ptr %580, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = load i32, ptr %526, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror(i32 noundef %2221, ptr noundef nonnull @.str.4) #11
  %2223 = load i32, ptr %526, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror_debug(i32 noundef %2223, ptr noundef nonnull @.str.4) #11
  %2225 = load i32, ptr %580, align 4, !tbaa !5
  %2226 = call ptr @strerror(i32 noundef %2225) #11
  %2227 = load i32, ptr %580, align 4, !tbaa !5
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2219, ptr noundef nonnull %.str.5.sink1113, i32 noundef %2220, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %2222, ptr noundef %2224, ptr noundef %2226, i32 noundef %2227) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2229:                                             ; preds = %2202
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = add nsw i32 %2230, 1
  store i32 %2231, ptr @test_count, align 4, !tbaa !5
  %2232 = load ptr, ptr %19, align 8, !tbaa !9
  %2233 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %2232, ptr noundef nonnull %20)
  %2234 = icmp eq i32 %2233, -1
  br i1 %2234, label %2235, label %2257

2235:                                             ; preds = %2229
  %2236 = load i32, ptr %580, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @s2n_print_stacktrace(ptr noundef %2237) #11
  %2239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2240 = trunc nuw i8 %2239 to i1
  br i1 %2240, label %2241, label %2245

2241:                                             ; preds = %2235
  %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
  %.not293 = icmp eq i32 %2244, 0
  br i1 %.not293, label %2245, label %2246

2245:                                             ; preds = %2241, %2235
  br label %2246

2246:                                             ; preds = %2241, %2245
  %.str.5.sink1122 = phi ptr [ @.str.5, %2245 ], [ @.str.2, %2241 ]
  store i32 %2236, ptr %580, align 4, !tbaa !5
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = load i32, ptr @test_count, align 4, !tbaa !5
  %2249 = load i32, ptr %526, align 4, !tbaa !5
  %2250 = call ptr @s2n_strerror(i32 noundef %2249, ptr noundef nonnull @.str.4) #11
  %2251 = load i32, ptr %526, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror_debug(i32 noundef %2251, ptr noundef nonnull @.str.4) #11
  %2253 = load i32, ptr %580, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #11
  %2255 = load i32, ptr %580, align 4, !tbaa !5
  %2256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2247, ptr noundef nonnull %.str.5.sink1122, i32 noundef %2248, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2250, ptr noundef %2252, ptr noundef %2254, i32 noundef %2255) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2257:                                             ; preds = %2229
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = add nsw i32 %2258, 1
  store i32 %2259, ptr @test_count, align 4, !tbaa !5
  %2260 = load ptr, ptr %19, align 8, !tbaa !9
  %2261 = getelementptr inbounds i8, ptr %2260, i64 2800
  %2262 = load i32, ptr %2261, align 8, !tbaa !50
  %2263 = icmp eq i32 %2262, 0
  br i1 %2263, label %2286, label %2264

2264:                                             ; preds = %2257
  %2265 = load i32, ptr %580, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @s2n_print_stacktrace(ptr noundef %2266) #11
  %2268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2269 = trunc nuw i8 %2268 to i1
  br i1 %2269, label %2270, label %2274

2270:                                             ; preds = %2264
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @fileno(ptr noundef %2271) #11
  %2273 = call i32 @isatty(i32 noundef %2272) #11
  %.not271 = icmp eq i32 %2273, 0
  br i1 %.not271, label %2274, label %2275

2274:                                             ; preds = %2270, %2264
  br label %2275

2275:                                             ; preds = %2270, %2274
  %.str.5.sink1131 = phi ptr [ @.str.5, %2274 ], [ @.str.2, %2270 ]
  store i32 %2265, ptr %580, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = load i32, ptr @test_count, align 4, !tbaa !5
  %2278 = load i32, ptr %526, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror(i32 noundef %2278, ptr noundef nonnull @.str.4) #11
  %2280 = load i32, ptr %526, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror_debug(i32 noundef %2280, ptr noundef nonnull @.str.4) #11
  %2282 = load i32, ptr %580, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #11
  %2284 = load i32, ptr %580, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2276, ptr noundef nonnull %.str.5.sink1131, i32 noundef %2277, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2279, ptr noundef %2281, ptr noundef %2283, i32 noundef %2284) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2286:                                             ; preds = %2257
  %2287 = add nsw i32 %2258, 2
  store i32 %2287, ptr @test_count, align 4, !tbaa !5
  %2288 = getelementptr inbounds i8, ptr %2260, i64 2792
  %2289 = load ptr, ptr %2288, align 8, !tbaa !51
  %2290 = icmp eq ptr %2289, null
  br i1 %2290, label %2313, label %2291

2291:                                             ; preds = %2286
  %2292 = load i32, ptr %580, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @s2n_print_stacktrace(ptr noundef %2293) #11
  %2295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2296 = trunc nuw i8 %2295 to i1
  br i1 %2296, label %2297, label %2301

2297:                                             ; preds = %2291
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = call i32 @fileno(ptr noundef %2298) #11
  %2300 = call i32 @isatty(i32 noundef %2299) #11
  %.not272 = icmp eq i32 %2300, 0
  br i1 %.not272, label %2301, label %2302

2301:                                             ; preds = %2297, %2291
  br label %2302

2302:                                             ; preds = %2297, %2301
  %.str.5.sink1140 = phi ptr [ @.str.5, %2301 ], [ @.str.2, %2297 ]
  store i32 %2292, ptr %580, align 4, !tbaa !5
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = load i32, ptr %526, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror(i32 noundef %2305, ptr noundef nonnull @.str.4) #11
  %2307 = load i32, ptr %526, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror_debug(i32 noundef %2307, ptr noundef nonnull @.str.4) #11
  %2309 = load i32, ptr %580, align 4, !tbaa !5
  %2310 = call ptr @strerror(i32 noundef %2309) #11
  %2311 = load i32, ptr %580, align 4, !tbaa !5
  %2312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2303, ptr noundef nonnull %.str.5.sink1140, i32 noundef %2304, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2306, ptr noundef %2308, ptr noundef %2310, i32 noundef %2311) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2313:                                             ; preds = %2286
  %2314 = add nsw i32 %2258, 3
  store i32 %2314, ptr @test_count, align 4, !tbaa !5
  %2315 = call i32 @s2n_connection_free(ptr noundef nonnull %2260) #11
  %2316 = icmp eq i32 %2315, -1
  br i1 %2316, label %2317, label %2339

2317:                                             ; preds = %2313
  %2318 = load i32, ptr %580, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = call i32 @s2n_print_stacktrace(ptr noundef %2319) #11
  %2321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2322 = trunc nuw i8 %2321 to i1
  br i1 %2322, label %2323, label %2327

2323:                                             ; preds = %2317
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @fileno(ptr noundef %2324) #11
  %2326 = call i32 @isatty(i32 noundef %2325) #11
  %.not292 = icmp eq i32 %2326, 0
  br i1 %.not292, label %2327, label %2328

2327:                                             ; preds = %2323, %2317
  br label %2328

2328:                                             ; preds = %2323, %2327
  %.str.5.sink1149 = phi ptr [ @.str.5, %2327 ], [ @.str.2, %2323 ]
  store i32 %2318, ptr %580, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = load i32, ptr %526, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror(i32 noundef %2331, ptr noundef nonnull @.str.4) #11
  %2333 = load i32, ptr %526, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror_debug(i32 noundef %2333, ptr noundef nonnull @.str.4) #11
  %2335 = load i32, ptr %580, align 4, !tbaa !5
  %2336 = call ptr @strerror(i32 noundef %2335) #11
  %2337 = load i32, ptr %580, align 4, !tbaa !5
  %2338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef nonnull %.str.5.sink1149, i32 noundef %2330, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %2332, ptr noundef %2334, ptr noundef %2336, i32 noundef %2337) #13
  call void @exit(i32 noundef 1) #14
  unreachable

.thread376:                                       ; preds = %2031
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  br label %2775

2339:                                             ; preds = %2313
  %2340 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  store ptr null, ptr %21, align 8, !tbaa !9
  %2341 = load ptr, ptr %3, align 8, !tbaa !9
  %2342 = call i32 @s2n_setup_connection_for_ocsp_validate_test(ptr noundef nonnull %21, ptr noundef %2341)
  %2343 = icmp sgt i32 %2342, -1
  br i1 %2343, label %2344, label %2647

2344:                                             ; preds = %2339
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #11
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = add nsw i32 %2345, 1
  store i32 %2346, ptr @test_count, align 4, !tbaa !5
  %2347 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %22, i32 noundef 0) #11
  %2348 = icmp eq i32 %2347, -1
  br i1 %2348, label %2349, label %2371

2349:                                             ; preds = %2344
  %2350 = load i32, ptr %580, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = call i32 @s2n_print_stacktrace(ptr noundef %2351) #11
  %2353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2354 = trunc nuw i8 %2353 to i1
  br i1 %2354, label %2355, label %2359

2355:                                             ; preds = %2349
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @fileno(ptr noundef %2356) #11
  %2358 = call i32 @isatty(i32 noundef %2357) #11
  %.not291 = icmp eq i32 %2358, 0
  br i1 %.not291, label %2359, label %2360

2359:                                             ; preds = %2355, %2349
  br label %2360

2360:                                             ; preds = %2355, %2359
  %.str.5.sink1158 = phi ptr [ @.str.5, %2359 ], [ @.str.2, %2355 ]
  store i32 %2350, ptr %580, align 4, !tbaa !5
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = load i32, ptr @test_count, align 4, !tbaa !5
  %2363 = load i32, ptr %526, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror(i32 noundef %2363, ptr noundef nonnull @.str.4) #11
  %2365 = load i32, ptr %526, align 4, !tbaa !5
  %2366 = call ptr @s2n_strerror_debug(i32 noundef %2365, ptr noundef nonnull @.str.4) #11
  %2367 = load i32, ptr %580, align 4, !tbaa !5
  %2368 = call ptr @strerror(i32 noundef %2367) #11
  %2369 = load i32, ptr %580, align 4, !tbaa !5
  %2370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2361, ptr noundef nonnull %.str.5.sink1158, i32 noundef %2362, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %2364, ptr noundef %2366, ptr noundef %2368, i32 noundef %2369) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2371:                                             ; preds = %2344
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = add nsw i32 %2372, 1
  store i32 %2373, ptr @test_count, align 4, !tbaa !5
  %2374 = call i32 @s2n_stuffer_reserve_uint24(ptr noundef nonnull %22, ptr noundef nonnull %18) #11
  %2375 = icmp eq i32 %2374, -1
  br i1 %2375, label %2376, label %2398

2376:                                             ; preds = %2371
  %2377 = load i32, ptr %580, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @s2n_print_stacktrace(ptr noundef %2378) #11
  %2380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2381 = trunc nuw i8 %2380 to i1
  br i1 %2381, label %2382, label %2386

2382:                                             ; preds = %2376
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @fileno(ptr noundef %2383) #11
  %2385 = call i32 @isatty(i32 noundef %2384) #11
  %.not290 = icmp eq i32 %2385, 0
  br i1 %.not290, label %2386, label %2387

2386:                                             ; preds = %2382, %2376
  br label %2387

2387:                                             ; preds = %2382, %2386
  %.str.5.sink1167 = phi ptr [ @.str.5, %2386 ], [ @.str.2, %2382 ]
  store i32 %2377, ptr %580, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = load i32, ptr @test_count, align 4, !tbaa !5
  %2390 = load i32, ptr %526, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror(i32 noundef %2390, ptr noundef nonnull @.str.4) #11
  %2392 = load i32, ptr %526, align 4, !tbaa !5
  %2393 = call ptr @s2n_strerror_debug(i32 noundef %2392, ptr noundef nonnull @.str.4) #11
  %2394 = load i32, ptr %580, align 4, !tbaa !5
  %2395 = call ptr @strerror(i32 noundef %2394) #11
  %2396 = load i32, ptr %580, align 4, !tbaa !5
  %2397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2388, ptr noundef nonnull %.str.5.sink1167, i32 noundef %2389, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %2391, ptr noundef %2393, ptr noundef %2395, i32 noundef %2396) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2398:                                             ; preds = %2371
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = add nsw i32 %2399, 1
  store i32 %2400, ptr @test_count, align 4, !tbaa !5
  %2401 = load ptr, ptr %3, align 8, !tbaa !9
  %2402 = call i32 @s2n_write_test_cert(ptr noundef nonnull %22, ptr noundef %2401)
  %2403 = icmp eq i32 %2402, -1
  br i1 %2403, label %2404, label %2426

2404:                                             ; preds = %2398
  %2405 = load i32, ptr %580, align 4, !tbaa !5
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = call i32 @s2n_print_stacktrace(ptr noundef %2406) #11
  %2408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2409 = trunc nuw i8 %2408 to i1
  br i1 %2409, label %2410, label %2414

2410:                                             ; preds = %2404
  %2411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2412 = call i32 @fileno(ptr noundef %2411) #11
  %2413 = call i32 @isatty(i32 noundef %2412) #11
  %.not289 = icmp eq i32 %2413, 0
  br i1 %.not289, label %2414, label %2415

2414:                                             ; preds = %2410, %2404
  br label %2415

2415:                                             ; preds = %2410, %2414
  %.str.5.sink1176 = phi ptr [ @.str.5, %2414 ], [ @.str.2, %2410 ]
  store i32 %2405, ptr %580, align 4, !tbaa !5
  %2416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2417 = load i32, ptr @test_count, align 4, !tbaa !5
  %2418 = load i32, ptr %526, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror(i32 noundef %2418, ptr noundef nonnull @.str.4) #11
  %2420 = load i32, ptr %526, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror_debug(i32 noundef %2420, ptr noundef nonnull @.str.4) #11
  %2422 = load i32, ptr %580, align 4, !tbaa !5
  %2423 = call ptr @strerror(i32 noundef %2422) #11
  %2424 = load i32, ptr %580, align 4, !tbaa !5
  %2425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2416, ptr noundef nonnull %.str.5.sink1176, i32 noundef %2417, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %2419, ptr noundef %2421, ptr noundef %2423, i32 noundef %2424) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2426:                                             ; preds = %2398
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = add nsw i32 %2427, 1
  store i32 %2428, ptr @test_count, align 4, !tbaa !5
  %2429 = load ptr, ptr %21, align 8, !tbaa !9
  %2430 = call i32 @s2n_extension_list_send(i32 noundef 6, ptr noundef %2429, ptr noundef nonnull %22) #11
  %2431 = icmp eq i32 %2430, -1
  br i1 %2431, label %2432, label %2454

2432:                                             ; preds = %2426
  %2433 = load i32, ptr %580, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @s2n_print_stacktrace(ptr noundef %2434) #11
  %2436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2437 = trunc nuw i8 %2436 to i1
  br i1 %2437, label %2438, label %2442

2438:                                             ; preds = %2432
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = call i32 @fileno(ptr noundef %2439) #11
  %2441 = call i32 @isatty(i32 noundef %2440) #11
  %.not288 = icmp eq i32 %2441, 0
  br i1 %.not288, label %2442, label %2443

2442:                                             ; preds = %2438, %2432
  br label %2443

2443:                                             ; preds = %2438, %2442
  %.str.5.sink1185 = phi ptr [ @.str.5, %2442 ], [ @.str.2, %2438 ]
  store i32 %2433, ptr %580, align 4, !tbaa !5
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = load i32, ptr %526, align 4, !tbaa !5
  %2447 = call ptr @s2n_strerror(i32 noundef %2446, ptr noundef nonnull @.str.4) #11
  %2448 = load i32, ptr %526, align 4, !tbaa !5
  %2449 = call ptr @s2n_strerror_debug(i32 noundef %2448, ptr noundef nonnull @.str.4) #11
  %2450 = load i32, ptr %580, align 4, !tbaa !5
  %2451 = call ptr @strerror(i32 noundef %2450) #11
  %2452 = load i32, ptr %580, align 4, !tbaa !5
  %2453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2444, ptr noundef nonnull %.str.5.sink1185, i32 noundef %2445, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2447, ptr noundef %2449, ptr noundef %2451, i32 noundef %2452) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2454:                                             ; preds = %2426
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = add nsw i32 %2455, 1
  store i32 %2456, ptr @test_count, align 4, !tbaa !5
  %2457 = load ptr, ptr %3, align 8, !tbaa !9
  %2458 = call i32 @s2n_write_test_cert(ptr noundef nonnull %22, ptr noundef %2457)
  %2459 = icmp eq i32 %2458, -1
  br i1 %2459, label %2460, label %2482

2460:                                             ; preds = %2454
  %2461 = load i32, ptr %580, align 4, !tbaa !5
  %2462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2463 = call i32 @s2n_print_stacktrace(ptr noundef %2462) #11
  %2464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2465 = trunc nuw i8 %2464 to i1
  br i1 %2465, label %2466, label %2470

2466:                                             ; preds = %2460
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @fileno(ptr noundef %2467) #11
  %2469 = call i32 @isatty(i32 noundef %2468) #11
  %.not287 = icmp eq i32 %2469, 0
  br i1 %.not287, label %2470, label %2471

2470:                                             ; preds = %2466, %2460
  br label %2471

2471:                                             ; preds = %2466, %2470
  %.str.5.sink1194 = phi ptr [ @.str.5, %2470 ], [ @.str.2, %2466 ]
  store i32 %2461, ptr %580, align 4, !tbaa !5
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = load i32, ptr @test_count, align 4, !tbaa !5
  %2474 = load i32, ptr %526, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror(i32 noundef %2474, ptr noundef nonnull @.str.4) #11
  %2476 = load i32, ptr %526, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror_debug(i32 noundef %2476, ptr noundef nonnull @.str.4) #11
  %2478 = load i32, ptr %580, align 4, !tbaa !5
  %2479 = call ptr @strerror(i32 noundef %2478) #11
  %2480 = load i32, ptr %580, align 4, !tbaa !5
  %2481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2472, ptr noundef nonnull %.str.5.sink1194, i32 noundef %2473, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %2475, ptr noundef %2477, ptr noundef %2479, i32 noundef %2480) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2482:                                             ; preds = %2454
  %2483 = load i32, ptr @test_count, align 4, !tbaa !5
  %2484 = add nsw i32 %2483, 1
  store i32 %2484, ptr @test_count, align 4, !tbaa !5
  %2485 = load ptr, ptr %21, align 8, !tbaa !9
  %2486 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef %2485, ptr noundef nonnull %22) #11
  %2487 = icmp eq i32 %2486, -1
  br i1 %2487, label %2488, label %2510

2488:                                             ; preds = %2482
  %2489 = load i32, ptr %580, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = call i32 @s2n_print_stacktrace(ptr noundef %2490) #11
  %2492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2493 = trunc nuw i8 %2492 to i1
  br i1 %2493, label %2494, label %2498

2494:                                             ; preds = %2488
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @fileno(ptr noundef %2495) #11
  %2497 = call i32 @isatty(i32 noundef %2496) #11
  %.not286 = icmp eq i32 %2497, 0
  br i1 %.not286, label %2498, label %2499

2498:                                             ; preds = %2494, %2488
  br label %2499

2499:                                             ; preds = %2494, %2498
  %.str.5.sink1203 = phi ptr [ @.str.5, %2498 ], [ @.str.2, %2494 ]
  store i32 %2489, ptr %580, align 4, !tbaa !5
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = load i32, ptr %526, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror(i32 noundef %2502, ptr noundef nonnull @.str.4) #11
  %2504 = load i32, ptr %526, align 4, !tbaa !5
  %2505 = call ptr @s2n_strerror_debug(i32 noundef %2504, ptr noundef nonnull @.str.4) #11
  %2506 = load i32, ptr %580, align 4, !tbaa !5
  %2507 = call ptr @strerror(i32 noundef %2506) #11
  %2508 = load i32, ptr %580, align 4, !tbaa !5
  %2509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2500, ptr noundef nonnull %.str.5.sink1203, i32 noundef %2501, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %2503, ptr noundef %2505, ptr noundef %2507, i32 noundef %2508) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2510:                                             ; preds = %2482
  %2511 = load i32, ptr @test_count, align 4, !tbaa !5
  %2512 = add nsw i32 %2511, 1
  store i32 %2512, ptr @test_count, align 4, !tbaa !5
  %2513 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %18) #11
  %2514 = icmp eq i32 %2513, -1
  br i1 %2514, label %2515, label %2537

2515:                                             ; preds = %2510
  %2516 = load i32, ptr %580, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @s2n_print_stacktrace(ptr noundef %2517) #11
  %2519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2520 = trunc nuw i8 %2519 to i1
  br i1 %2520, label %2521, label %2525

2521:                                             ; preds = %2515
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = call i32 @fileno(ptr noundef %2522) #11
  %2524 = call i32 @isatty(i32 noundef %2523) #11
  %.not285 = icmp eq i32 %2524, 0
  br i1 %.not285, label %2525, label %2526

2525:                                             ; preds = %2521, %2515
  br label %2526

2526:                                             ; preds = %2521, %2525
  %.str.5.sink1212 = phi ptr [ @.str.5, %2525 ], [ @.str.2, %2521 ]
  store i32 %2516, ptr %580, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = load i32, ptr @test_count, align 4, !tbaa !5
  %2529 = load i32, ptr %526, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror(i32 noundef %2529, ptr noundef nonnull @.str.4) #11
  %2531 = load i32, ptr %526, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror_debug(i32 noundef %2531, ptr noundef nonnull @.str.4) #11
  %2533 = load i32, ptr %580, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #11
  %2535 = load i32, ptr %580, align 4, !tbaa !5
  %2536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2527, ptr noundef nonnull %.str.5.sink1212, i32 noundef %2528, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %2530, ptr noundef %2532, ptr noundef %2534, i32 noundef %2535) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2537:                                             ; preds = %2510
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = add nsw i32 %2538, 1
  store i32 %2539, ptr @test_count, align 4, !tbaa !5
  %2540 = load ptr, ptr %21, align 8, !tbaa !9
  %2541 = call i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef %2540, ptr noundef nonnull %22)
  %2542 = icmp eq i32 %2541, -1
  br i1 %2542, label %2543, label %2565

2543:                                             ; preds = %2537
  %2544 = load i32, ptr %580, align 4, !tbaa !5
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = call i32 @s2n_print_stacktrace(ptr noundef %2545) #11
  %2547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2548 = trunc nuw i8 %2547 to i1
  br i1 %2548, label %2549, label %2553

2549:                                             ; preds = %2543
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @fileno(ptr noundef %2550) #11
  %2552 = call i32 @isatty(i32 noundef %2551) #11
  %.not284 = icmp eq i32 %2552, 0
  br i1 %.not284, label %2553, label %2554

2553:                                             ; preds = %2549, %2543
  br label %2554

2554:                                             ; preds = %2549, %2553
  %.str.5.sink1221 = phi ptr [ @.str.5, %2553 ], [ @.str.2, %2549 ]
  store i32 %2544, ptr %580, align 4, !tbaa !5
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = load i32, ptr %526, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror(i32 noundef %2557, ptr noundef nonnull @.str.4) #11
  %2559 = load i32, ptr %526, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror_debug(i32 noundef %2559, ptr noundef nonnull @.str.4) #11
  %2561 = load i32, ptr %580, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #11
  %2563 = load i32, ptr %580, align 4, !tbaa !5
  %2564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2555, ptr noundef nonnull %.str.5.sink1221, i32 noundef %2556, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %2558, ptr noundef %2560, ptr noundef %2562, i32 noundef %2563) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2565:                                             ; preds = %2537
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = add nsw i32 %2566, 1
  store i32 %2567, ptr @test_count, align 4, !tbaa !5
  %2568 = load ptr, ptr %21, align 8, !tbaa !9
  %2569 = getelementptr inbounds i8, ptr %2568, i64 2800
  %2570 = load i32, ptr %2569, align 8, !tbaa !50
  %2571 = icmp eq i32 %2570, 15
  br i1 %2571, label %2594, label %2572

2572:                                             ; preds = %2565
  %2573 = load i32, ptr %580, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574) #11
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc nuw i8 %2576 to i1
  br i1 %2577, label %2578, label %2582

2578:                                             ; preds = %2572
  %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
  %.not273 = icmp eq i32 %2581, 0
  br i1 %.not273, label %2582, label %2583

2582:                                             ; preds = %2578, %2572
  br label %2583

2583:                                             ; preds = %2578, %2582
  %.str.5.sink1230 = phi ptr [ @.str.5, %2582 ], [ @.str.2, %2578 ]
  store i32 %2573, ptr %580, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = load i32, ptr %526, align 4, !tbaa !5
  %2587 = call ptr @s2n_strerror(i32 noundef %2586, ptr noundef nonnull @.str.4) #11
  %2588 = load i32, ptr %526, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror_debug(i32 noundef %2588, ptr noundef nonnull @.str.4) #11
  %2590 = load i32, ptr %580, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #11
  %2592 = load i32, ptr %580, align 4, !tbaa !5
  %2593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef nonnull %.str.5.sink1230, i32 noundef %2585, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %2587, ptr noundef %2589, ptr noundef %2591, i32 noundef %2592) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2594:                                             ; preds = %2565
  %2595 = add nsw i32 %2566, 2
  store i32 %2595, ptr @test_count, align 4, !tbaa !5
  %2596 = getelementptr inbounds i8, ptr %2568, i64 2792
  %2597 = load ptr, ptr %2596, align 8, !tbaa !51
  %bcmp274 = call i32 @bcmp(ptr noundef nonnull dereferenceable(15) %2597, ptr noundef nonnull dereferenceable(15) %4, i64 15)
  %2598 = icmp eq i32 %bcmp274, 0
  br i1 %2598, label %2621, label %2599

2599:                                             ; preds = %2594
  %2600 = load i32, ptr %580, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = call i32 @s2n_print_stacktrace(ptr noundef %2601) #11
  %2603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2604 = trunc nuw i8 %2603 to i1
  br i1 %2604, label %2605, label %2609

2605:                                             ; preds = %2599
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = call i32 @fileno(ptr noundef %2606) #11
  %2608 = call i32 @isatty(i32 noundef %2607) #11
  %.not275 = icmp eq i32 %2608, 0
  br i1 %.not275, label %2609, label %2610

2609:                                             ; preds = %2605, %2599
  br label %2610

2610:                                             ; preds = %2605, %2609
  %.str.5.sink1239 = phi ptr [ @.str.5, %2609 ], [ @.str.2, %2605 ]
  store i32 %2600, ptr %580, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = load i32, ptr %526, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror(i32 noundef %2613, ptr noundef nonnull @.str.4) #11
  %2615 = load i32, ptr %526, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror_debug(i32 noundef %2615, ptr noundef nonnull @.str.4) #11
  %2617 = load i32, ptr %580, align 4, !tbaa !5
  %2618 = call ptr @strerror(i32 noundef %2617) #11
  %2619 = load i32, ptr %580, align 4, !tbaa !5
  %2620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef nonnull %.str.5.sink1239, i32 noundef %2612, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %2614, ptr noundef %2616, ptr noundef %2618, i32 noundef %2619) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2621:                                             ; preds = %2594
  %2622 = add nsw i32 %2566, 3
  store i32 %2622, ptr @test_count, align 4, !tbaa !5
  %2623 = call i32 @s2n_connection_free(ptr noundef nonnull %2568) #11
  %2624 = icmp eq i32 %2623, -1
  br i1 %2624, label %2625, label %2648

2625:                                             ; preds = %2621
  %2626 = load i32, ptr %580, align 4, !tbaa !5
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = call i32 @s2n_print_stacktrace(ptr noundef %2627) #11
  %2629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2630 = trunc nuw i8 %2629 to i1
  br i1 %2630, label %2631, label %2635

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

2635:                                             ; preds = %2631, %2625
  br label %2636

2636:                                             ; preds = %2631, %2635
  %.str.5.sink1248 = phi ptr [ @.str.5, %2635 ], [ @.str.2, %2631 ]
  store i32 %2626, ptr %580, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = load i32, ptr %526, align 4, !tbaa !5
  %2640 = call ptr @s2n_strerror(i32 noundef %2639, ptr noundef nonnull @.str.4) #11
  %2641 = load i32, ptr %526, align 4, !tbaa !5
  %2642 = call ptr @s2n_strerror_debug(i32 noundef %2641, ptr noundef nonnull @.str.4) #11
  %2643 = load i32, ptr %580, align 4, !tbaa !5
  %2644 = call ptr @strerror(i32 noundef %2643) #11
  %2645 = load i32, ptr %580, align 4, !tbaa !5
  %2646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2637, ptr noundef nonnull %.str.5.sink1248, i32 noundef %2638, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2640, ptr noundef %2642, ptr noundef %2644, i32 noundef %2645) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2647:                                             ; preds = %2339
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  br label %2775

2648:                                             ; preds = %2621
  %2649 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #11
  %2650 = load i32, ptr @test_count, align 4, !tbaa !5
  %2651 = add nsw i32 %2650, 1
  store i32 %2651, ptr @test_count, align 4, !tbaa !5
  %2652 = load ptr, ptr %3, align 8, !tbaa !9
  %2653 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2652) #11
  %2654 = icmp eq i32 %2653, -1
  br i1 %2654, label %2655, label %2677

2655:                                             ; preds = %2648
  %2656 = load i32, ptr %580, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = call i32 @s2n_print_stacktrace(ptr noundef %2657) #11
  %2659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2660 = trunc nuw i8 %2659 to i1
  br i1 %2660, label %2661, label %2665

2661:                                             ; preds = %2655
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = call i32 @fileno(ptr noundef %2662) #11
  %2664 = call i32 @isatty(i32 noundef %2663) #11
  %.not282 = icmp eq i32 %2664, 0
  br i1 %.not282, label %2665, label %2666

2665:                                             ; preds = %2661, %2655
  br label %2666

2666:                                             ; preds = %2661, %2665
  %.str.5.sink1257 = phi ptr [ @.str.5, %2665 ], [ @.str.2, %2661 ]
  store i32 %2656, ptr %580, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = load i32, ptr %526, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror(i32 noundef %2669, ptr noundef nonnull @.str.4) #11
  %2671 = load i32, ptr %526, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror_debug(i32 noundef %2671, ptr noundef nonnull @.str.4) #11
  %2673 = load i32, ptr %580, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #11
  %2675 = load i32, ptr %580, align 4, !tbaa !5
  %2676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef nonnull %.str.5.sink1257, i32 noundef %2668, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %2670, ptr noundef %2672, ptr noundef %2674, i32 noundef %2675) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2677:                                             ; preds = %2648
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = add nsw i32 %2678, 1
  store i32 %2679, ptr @test_count, align 4, !tbaa !5
  %2680 = call i32 @s2n_config_free(ptr noundef nonnull %141) #11
  %2681 = icmp eq i32 %2680, -1
  br i1 %2681, label %2682, label %2704

2682:                                             ; preds = %2677
  %2683 = load i32, ptr %580, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = call i32 @s2n_print_stacktrace(ptr noundef %2684) #11
  %2686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2687 = trunc nuw i8 %2686 to i1
  br i1 %2687, label %2688, label %2692

2688:                                             ; preds = %2682
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = call i32 @fileno(ptr noundef %2689) #11
  %2691 = call i32 @isatty(i32 noundef %2690) #11
  %.not281 = icmp eq i32 %2691, 0
  br i1 %.not281, label %2692, label %2693

2692:                                             ; preds = %2688, %2682
  br label %2693

2693:                                             ; preds = %2688, %2692
  %.str.5.sink1266 = phi ptr [ @.str.5, %2692 ], [ @.str.2, %2688 ]
  store i32 %2683, ptr %580, align 4, !tbaa !5
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = load i32, ptr %526, align 4, !tbaa !5
  %2697 = call ptr @s2n_strerror(i32 noundef %2696, ptr noundef nonnull @.str.4) #11
  %2698 = load i32, ptr %526, align 4, !tbaa !5
  %2699 = call ptr @s2n_strerror_debug(i32 noundef %2698, ptr noundef nonnull @.str.4) #11
  %2700 = load i32, ptr %580, align 4, !tbaa !5
  %2701 = call ptr @strerror(i32 noundef %2700) #11
  %2702 = load i32, ptr %580, align 4, !tbaa !5
  %2703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2694, ptr noundef nonnull %.str.5.sink1266, i32 noundef %2695, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %2697, ptr noundef %2699, ptr noundef %2701, i32 noundef %2702) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2704:                                             ; preds = %2677
  %2705 = call i32 @s2n_cleanup() #11
  %2706 = icmp eq i32 %2705, -1
  br i1 %2706, label %2707, label %2729

2707:                                             ; preds = %2704
  %2708 = load i32, ptr %580, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = call i32 @s2n_print_stacktrace(ptr noundef %2709) #11
  %2711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2712 = trunc nuw i8 %2711 to i1
  br i1 %2712, label %2713, label %2717

2713:                                             ; preds = %2707
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = call i32 @fileno(ptr noundef %2714) #11
  %2716 = call i32 @isatty(i32 noundef %2715) #11
  %.not280 = icmp eq i32 %2716, 0
  br i1 %.not280, label %2717, label %2718

2717:                                             ; preds = %2713, %2707
  br label %2718

2718:                                             ; preds = %2713, %2717
  %.str.5.sink1275 = phi ptr [ @.str.5, %2717 ], [ @.str.2, %2713 ]
  store i32 %2708, ptr %580, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = load i32, ptr %526, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror(i32 noundef %2721, ptr noundef nonnull @.str.4) #11
  %2723 = load i32, ptr %526, align 4, !tbaa !5
  %2724 = call ptr @s2n_strerror_debug(i32 noundef %2723, ptr noundef nonnull @.str.4) #11
  %2725 = load i32, ptr %580, align 4, !tbaa !5
  %2726 = call ptr @strerror(i32 noundef %2725) #11
  %2727 = load i32, ptr %580, align 4, !tbaa !5
  %2728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef nonnull %.str.5.sink1275, i32 noundef %2720, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %2722, ptr noundef %2724, ptr noundef %2726, i32 noundef %2727) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2729:                                             ; preds = %2704
  %2730 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %2731 = icmp eq i32 %2730, -1
  br i1 %2731, label %2732, label %2754

2732:                                             ; preds = %2729
  %2733 = load i32, ptr %580, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @s2n_print_stacktrace(ptr noundef %2734) #11
  %2736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2737 = trunc nuw i8 %2736 to i1
  br i1 %2737, label %2738, label %2742

2738:                                             ; preds = %2732
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = call i32 @fileno(ptr noundef %2739) #11
  %2741 = call i32 @isatty(i32 noundef %2740) #11
  %.not279 = icmp eq i32 %2741, 0
  br i1 %.not279, label %2742, label %2743

2742:                                             ; preds = %2738, %2732
  br label %2743

2743:                                             ; preds = %2738, %2742
  %.str.5.sink1284 = phi ptr [ @.str.5, %2742 ], [ @.str.2, %2738 ]
  store i32 %2733, ptr %580, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = load i32, ptr @test_count, align 4, !tbaa !5
  %2746 = load i32, ptr %526, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror(i32 noundef %2746, ptr noundef nonnull @.str.4) #11
  %2748 = load i32, ptr %526, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror_debug(i32 noundef %2748, ptr noundef nonnull @.str.4) #11
  %2750 = load i32, ptr %580, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #11
  %2752 = load i32, ptr %580, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef nonnull %.str.5.sink1284, i32 noundef %2745, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %2747, ptr noundef %2749, ptr noundef %2751, i32 noundef %2752) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2754:                                             ; preds = %2729
  %2755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2756 = trunc nuw i8 %2755 to i1
  br i1 %2756, label %2757, label %2768

2757:                                             ; preds = %2754
  %2758 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2759 = call i32 @fileno(ptr noundef %2758) #11
  %2760 = call i32 @isatty(i32 noundef %2759) #11
  %.not276 = icmp eq i32 %2760, 0
  br i1 %.not276, label %2768, label %2761

2761:                                             ; preds = %2757
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not278 = icmp eq i32 %2762, 0
  %2763 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not278, label %2766, label %2764

2764:                                             ; preds = %2761
  %2765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2763, ptr noundef nonnull @.str.51, i32 noundef %2762) #11
  br label %2775

2766:                                             ; preds = %2761
  %2767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2763, ptr noundef nonnull @.str.52) #11
  br label %2775

2768:                                             ; preds = %2757, %2754
  %2769 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not277 = icmp eq i32 %2769, 0
  %2770 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not277, label %2773, label %2771

2771:                                             ; preds = %2768
  %2772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2770, ptr noundef nonnull @.str.53, i32 noundef %2769) #11
  br label %2775

2773:                                             ; preds = %2768
  %2774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2770, ptr noundef nonnull @.str.54) #11
  br label %2775

2775:                                             ; preds = %2647, %.thread376, %.thread369, %.thread365, %2766, %2764, %2773, %2771
  %.7 = phi i32 [ -1, %2647 ], [ 0, %2771 ], [ 0, %2773 ], [ 0, %2764 ], [ 0, %2766 ], [ -1, %.thread365 ], [ -1, %.thread369 ], [ -1, %.thread376 ]
  call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  ret i32 %.7
}

; 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_enable_tls13_in_test(...) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_pkey_zero_init(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: 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) #8

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_extension_list_parse(ptr noundef, 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: nounwind uwtable
declare hidden i32 @s2n_x509_validator_validate_cert_chain_test(ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 1544}
!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, !6, i64 2784}
!43 = !{!16, !7, i64 220}
!44 = !{!32, !6, i64 28}
!45 = !{!32, !6, i64 24}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = !{!16, !7, i64 3720}
!49 = !{!16, !6, i64 2816}
!50 = !{!16, !6, i64 2800}
!51 = !{!16, !10, i64 2792}
!52 = !{!16, !6, i64 2832}
!53 = !{!16, !10, i64 2824}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass