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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@ocsp_data = external dso_local constant [10 x i8], align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [98 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@stdout = external global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_cert_status_response_extension = external constant %struct.s2n_extension_type, align 8
@.str.16 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [25 x i8], align 1

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

declare i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef, ptr noundef, i32 noundef) #1

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #1

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %43

43:                                               ; preds = %2
  br label %44

44:                                               ; preds = %43
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %45 = load ptr, ptr @stdout, align 8, !tbaa !9
  %46 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef @.str.5, ptr noundef @.str.2) #7
  %47 = load ptr, ptr @stdout, align 8, !tbaa !9
  %48 = call i32 @fflush(ptr noundef %47)
  br label %49

49:                                               ; preds = %44
  %50 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %51 = icmp eq i32 %50, -1
  br i1 %51, label %52, label %103

52:                                               ; preds = %49
  br label %53

53:                                               ; preds = %52
  br label %54

54:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %55 = call ptr @__errno_location() #8
  %56 = load i32, ptr %55, align 4, !tbaa !5
  store i32 %56, ptr %6, align 4, !tbaa !5
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = call i32 @s2n_print_stacktrace(ptr noundef %57)
  %59 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %60 = trunc i8 %59 to i1
  br i1 %60, label %61, label %83

61:                                               ; preds = %54
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = call i32 @fileno(ptr noundef %62) #7
  %64 = call i32 @isatty(i32 noundef %63) #7
  %65 = icmp ne i32 %64, 0
  br i1 %65, label %66, label %83

66:                                               ; preds = %61
  %67 = load i32, ptr %6, align 4, !tbaa !5
  %68 = call ptr @__errno_location() #8
  store i32 %67, ptr %68, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = load i32, ptr @test_count, align 4, !tbaa !5
  %71 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = call ptr @s2n_strerror(i32 noundef %72, ptr noundef @.str.3)
  %74 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = call ptr @s2n_strerror_debug(i32 noundef %75, ptr noundef @.str.3)
  %77 = call ptr @__errno_location() #8
  %78 = load i32, ptr %77, align 4, !tbaa !5
  %79 = call ptr @strerror(i32 noundef %78) #7
  %80 = call ptr @__errno_location() #8
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef @.str, i32 noundef %70, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 33, ptr noundef %73, ptr noundef %76, ptr noundef %79, i32 noundef %81) #7
  br label %100

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

100:                                              ; preds = %83, %66
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %101

101:                                              ; preds = %100
  call void @exit(i32 noundef 1) #9
  unreachable

102:                                              ; No predecessors!
  br label %103

103:                                              ; preds = %102, %49
  br label %104

104:                                              ; preds = %103
  br label %105

105:                                              ; preds = %104
  %106 = load i32, ptr @test_count, align 4, !tbaa !5
  %107 = add nsw i32 %106, 1
  store i32 %107, ptr @test_count, align 4, !tbaa !5
  %108 = call i32 @s2n_enable_atexit()
  %109 = icmp eq i32 %108, -1
  br i1 %109, label %110, label %161

110:                                              ; preds = %105
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %113 = call ptr @__errno_location() #8
  %114 = load i32, ptr %113, align 4, !tbaa !5
  store i32 %114, ptr %7, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = call i32 @s2n_print_stacktrace(ptr noundef %115)
  %117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %141

119:                                              ; preds = %112
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = call i32 @fileno(ptr noundef %120) #7
  %122 = call i32 @isatty(i32 noundef %121) #7
  %123 = icmp ne i32 %122, 0
  br i1 %123, label %124, label %141

124:                                              ; preds = %119
  %125 = load i32, ptr %7, align 4, !tbaa !5
  %126 = call ptr @__errno_location() #8
  store i32 %125, ptr %126, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call ptr @s2n_strerror(i32 noundef %130, ptr noundef @.str.3)
  %132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror_debug(i32 noundef %133, ptr noundef @.str.3)
  %135 = call ptr @__errno_location() #8
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @strerror(i32 noundef %136) #7
  %138 = call ptr @__errno_location() #8
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef @.str, i32 noundef %128, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 33, ptr noundef %131, ptr noundef %134, ptr noundef %137, i32 noundef %139) #7
  br label %158

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

158:                                              ; preds = %141, %124
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %159

159:                                              ; preds = %158
  call void @exit(i32 noundef 1) #9
  unreachable

160:                                              ; No predecessors!
  br label %161

161:                                              ; preds = %160, %105
  br label %162

162:                                              ; preds = %161
  br label %163

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163
  %165 = call i32 @s2n_init()
  %166 = icmp eq i32 %165, -1
  br i1 %166, label %167, label %218

167:                                              ; preds = %164
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %170 = call ptr @__errno_location() #8
  %171 = load i32, ptr %170, align 4, !tbaa !5
  store i32 %171, ptr %8, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = call i32 @s2n_print_stacktrace(ptr noundef %172)
  %174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %175 = trunc i8 %174 to i1
  br i1 %175, label %176, label %198

176:                                              ; preds = %169
  %177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %178 = call i32 @fileno(ptr noundef %177) #7
  %179 = call i32 @isatty(i32 noundef %178) #7
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %181, label %198

181:                                              ; preds = %176
  %182 = load i32, ptr %8, align 4, !tbaa !5
  %183 = call ptr @__errno_location() #8
  store i32 %182, ptr %183, align 4, !tbaa !5
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = load i32, ptr @test_count, align 4, !tbaa !5
  %186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call ptr @s2n_strerror(i32 noundef %187, ptr noundef @.str.3)
  %189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call ptr @s2n_strerror_debug(i32 noundef %190, ptr noundef @.str.3)
  %192 = call ptr @__errno_location() #8
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call ptr @strerror(i32 noundef %193) #7
  %195 = call ptr @__errno_location() #8
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef @.str, i32 noundef %185, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 33, ptr noundef %188, ptr noundef %191, ptr noundef %194, i32 noundef %196) #7
  br label %215

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

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

216:                                              ; preds = %215
  call void @exit(i32 noundef 1) #9
  unreachable

217:                                              ; No predecessors!
  br label %218

218:                                              ; preds = %217, %164
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219
  br label %221

221:                                              ; preds = %220
  %222 = load i32, ptr @test_count, align 4, !tbaa !5
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr @test_count, align 4, !tbaa !5
  %224 = call i32 (...) @s2n_disable_tls13_in_test()
  %225 = icmp eq i32 %224, -1
  br i1 %225, label %226, label %277

226:                                              ; preds = %221
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %229 = call ptr @__errno_location() #8
  %230 = load i32, ptr %229, align 4, !tbaa !5
  store i32 %230, ptr %9, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @s2n_print_stacktrace(ptr noundef %231)
  %233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %234 = trunc i8 %233 to i1
  br i1 %234, label %235, label %257

235:                                              ; preds = %228
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @fileno(ptr noundef %236) #7
  %238 = call i32 @isatty(i32 noundef %237) #7
  %239 = icmp ne i32 %238, 0
  br i1 %239, label %240, label %257

240:                                              ; preds = %235
  %241 = load i32, ptr %9, align 4, !tbaa !5
  %242 = call ptr @__errno_location() #8
  store i32 %241, ptr %242, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror(i32 noundef %246, ptr noundef @.str.3)
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef @.str.3)
  %251 = call ptr @__errno_location() #8
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call ptr @strerror(i32 noundef %252) #7
  %254 = call ptr @__errno_location() #8
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str, i32 noundef %244, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 34, ptr noundef %247, ptr noundef %250, ptr noundef %253, i32 noundef %255) #7
  br label %274

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

274:                                              ; preds = %257, %240
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %275

275:                                              ; preds = %274
  call void @exit(i32 noundef 1) #9
  unreachable

276:                                              ; No predecessors!
  br label %277

277:                                              ; preds = %276, %221
  br label %278

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

279:                                              ; preds = %278
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr @test_count, align 4, !tbaa !5
  %282 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.10, ptr noundef @.str.11)
  %283 = icmp eq i32 %282, -1
  br i1 %283, label %284, label %337

284:                                              ; preds = %279
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  %287 = call ptr @__errno_location() #8
  %288 = load i32, ptr %287, align 4, !tbaa !5
  store i32 %288, ptr %11, align 4, !tbaa !5
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = call i32 @s2n_print_stacktrace(ptr noundef %289)
  %291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %292 = trunc i8 %291 to i1
  br i1 %292, label %293, label %315

293:                                              ; preds = %286
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = call i32 @fileno(ptr noundef %294) #7
  %296 = call i32 @isatty(i32 noundef %295) #7
  %297 = icmp ne i32 %296, 0
  br i1 %297, label %298, label %315

298:                                              ; preds = %293
  %299 = load i32, ptr %11, align 4, !tbaa !5
  %300 = call ptr @__errno_location() #8
  store i32 %299, ptr %300, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef @.str.3)
  %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_debug(i32 noundef %307, ptr noundef @.str.3)
  %309 = call ptr @__errno_location() #8
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @strerror(i32 noundef %310) #7
  %312 = call ptr @__errno_location() #8
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef @.str, i32 noundef %302, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 38, ptr noundef %305, ptr noundef %308, ptr noundef %311, i32 noundef %313) #7
  br label %332

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

332:                                              ; preds = %315, %298
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  call void @exit(i32 noundef 1) #9
  unreachable

335:                                              ; No predecessors!
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336, %279
  br label %338

338:                                              ; preds = %337
  br label %339

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

340:                                              ; preds = %339
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = call ptr @s2n_config_new()
  store ptr %343, ptr %12, align 8, !tbaa !9
  %344 = icmp eq ptr %343, null
  br i1 %344, label %345, label %398

345:                                              ; preds = %340
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %348 = call ptr @__errno_location() #8
  %349 = load i32, ptr %348, align 4, !tbaa !5
  store i32 %349, ptr %13, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @s2n_print_stacktrace(ptr noundef %350)
  %352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %353 = trunc i8 %352 to i1
  br i1 %353, label %354, label %376

354:                                              ; preds = %347
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @fileno(ptr noundef %355) #7
  %357 = call i32 @isatty(i32 noundef %356) #7
  %358 = icmp ne i32 %357, 0
  br i1 %358, label %359, label %376

359:                                              ; preds = %354
  %360 = load i32, ptr %13, align 4, !tbaa !5
  %361 = call ptr @__errno_location() #8
  store i32 %360, ptr %361, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror(i32 noundef %365, ptr noundef @.str.3)
  %367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef @.str.3)
  %370 = call ptr @__errno_location() #8
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #7
  %373 = call ptr @__errno_location() #8
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %362, ptr noundef @.str, i32 noundef %363, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 43, ptr noundef %366, ptr noundef %369, ptr noundef %372, i32 noundef %374) #7
  br label %393

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

393:                                              ; preds = %376, %359
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  call void @exit(i32 noundef 1) #9
  unreachable

396:                                              ; No predecessors!
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397, %340
  br label %399

399:                                              ; preds = %398
  br label %400

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

401:                                              ; preds = %400
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr @test_count, align 4, !tbaa !5
  %404 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %404, ptr %14, align 8, !tbaa !9
  %405 = icmp eq ptr %404, null
  br i1 %405, label %406, label %459

406:                                              ; preds = %401
  br label %407

407:                                              ; preds = %406
  br label %408

408:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %409 = call ptr @__errno_location() #8
  %410 = load i32, ptr %409, align 4, !tbaa !5
  store i32 %410, ptr %15, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @s2n_print_stacktrace(ptr noundef %411)
  %413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %414 = trunc i8 %413 to i1
  br i1 %414, label %415, label %437

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

420:                                              ; preds = %415
  %421 = load i32, ptr %15, align 4, !tbaa !5
  %422 = call ptr @__errno_location() #8
  store i32 %421, ptr %422, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror(i32 noundef %426, ptr noundef @.str.3)
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror_debug(i32 noundef %429, ptr noundef @.str.3)
  %431 = call ptr @__errno_location() #8
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @strerror(i32 noundef %432) #7
  %434 = call ptr @__errno_location() #8
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %423, ptr noundef @.str, i32 noundef %424, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 46, ptr noundef %427, ptr noundef %430, ptr noundef %433, i32 noundef %435) #7
  br label %454

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

454:                                              ; preds = %437, %420
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @exit(i32 noundef 1) #9
  unreachable

457:                                              ; No predecessors!
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458, %401
  br label %460

460:                                              ; preds = %459
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = load ptr, ptr %14, align 8, !tbaa !9
  %466 = load ptr, ptr %12, align 8, !tbaa !9
  %467 = call i32 @s2n_connection_set_config(ptr noundef %465, ptr noundef %466)
  %468 = icmp eq i32 %467, -1
  br i1 %468, label %469, label %522

469:                                              ; preds = %462
  br label %470

470:                                              ; preds = %469
  br label %471

471:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %472 = call ptr @__errno_location() #8
  %473 = load i32, ptr %472, align 4, !tbaa !5
  store i32 %473, ptr %16, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @s2n_print_stacktrace(ptr noundef %474)
  %476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %477 = trunc i8 %476 to i1
  br i1 %477, label %478, label %500

478:                                              ; preds = %471
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = call i32 @fileno(ptr noundef %479) #7
  %481 = call i32 @isatty(i32 noundef %480) #7
  %482 = icmp ne i32 %481, 0
  br i1 %482, label %483, label %500

483:                                              ; preds = %478
  %484 = load i32, ptr %16, align 4, !tbaa !5
  %485 = call ptr @__errno_location() #8
  store i32 %484, ptr %485, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror(i32 noundef %489, ptr noundef @.str.3)
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef @.str.3)
  %494 = call ptr @__errno_location() #8
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @strerror(i32 noundef %495) #7
  %497 = call ptr @__errno_location() #8
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %486, ptr noundef @.str, i32 noundef %487, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 47, ptr noundef %490, ptr noundef %493, ptr noundef %496, i32 noundef %498) #7
  br label %517

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

517:                                              ; preds = %500, %483
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %518

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518
  call void @exit(i32 noundef 1) #9
  unreachable

520:                                              ; No predecessors!
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521, %462
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 5), align 8, !tbaa !15
  %529 = load ptr, ptr %14, align 8, !tbaa !9
  %530 = call zeroext i1 %528(ptr noundef %529)
  br i1 %530, label %531, label %584

531:                                              ; preds = %525
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %534 = call ptr @__errno_location() #8
  %535 = load i32, ptr %534, align 4, !tbaa !5
  store i32 %535, ptr %17, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = call i32 @s2n_print_stacktrace(ptr noundef %536)
  %538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %539 = trunc i8 %538 to i1
  br i1 %539, label %540, label %562

540:                                              ; preds = %533
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @fileno(ptr noundef %541) #7
  %543 = call i32 @isatty(i32 noundef %542) #7
  %544 = icmp ne i32 %543, 0
  br i1 %544, label %545, label %562

545:                                              ; preds = %540
  %546 = load i32, ptr %17, align 4, !tbaa !5
  %547 = call ptr @__errno_location() #8
  store i32 %546, ptr %547, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef @.str.3)
  %553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef @.str.3)
  %556 = call ptr @__errno_location() #8
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @strerror(i32 noundef %557) #7
  %559 = call ptr @__errno_location() #8
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef @.str, i32 noundef %549, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 50, ptr noundef %552, ptr noundef %555, ptr noundef %558, i32 noundef %560) #7
  br label %579

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

579:                                              ; preds = %562, %545
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  call void @exit(i32 noundef 1) #9
  unreachable

582:                                              ; No predecessors!
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583, %525
  br label %585

585:                                              ; preds = %584
  br label %586

586:                                              ; preds = %585
  br label %587

587:                                              ; preds = %586
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = add nsw i32 %588, 1
  store i32 %589, ptr @test_count, align 4, !tbaa !5
  %590 = load ptr, ptr %14, align 8, !tbaa !9
  %591 = load ptr, ptr %10, align 8, !tbaa !9
  %592 = call i32 @s2n_test_enable_sending_extension(ptr noundef %590, ptr noundef %591)
  %593 = icmp eq i32 %592, -1
  br i1 %593, label %594, label %647

594:                                              ; preds = %587
  br label %595

595:                                              ; preds = %594
  br label %596

596:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %597 = call ptr @__errno_location() #8
  %598 = load i32, ptr %597, align 4, !tbaa !5
  store i32 %598, ptr %18, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @s2n_print_stacktrace(ptr noundef %599)
  %601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %602 = trunc i8 %601 to i1
  br i1 %602, label %603, label %625

603:                                              ; preds = %596
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @fileno(ptr noundef %604) #7
  %606 = call i32 @isatty(i32 noundef %605) #7
  %607 = icmp ne i32 %606, 0
  br i1 %607, label %608, label %625

608:                                              ; preds = %603
  %609 = load i32, ptr %18, align 4, !tbaa !5
  %610 = call ptr @__errno_location() #8
  store i32 %609, ptr %610, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror(i32 noundef %614, ptr noundef @.str.3)
  %616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror_debug(i32 noundef %617, ptr noundef @.str.3)
  %619 = call ptr @__errno_location() #8
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = call ptr @strerror(i32 noundef %620) #7
  %622 = call ptr @__errno_location() #8
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef @.str, i32 noundef %612, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 53, ptr noundef %615, ptr noundef %618, ptr noundef %621, i32 noundef %623) #7
  br label %642

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

642:                                              ; preds = %625, %608
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643
  call void @exit(i32 noundef 1) #9
  unreachable

645:                                              ; No predecessors!
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646, %587
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 5), align 8, !tbaa !15
  %654 = load ptr, ptr %14, align 8, !tbaa !9
  %655 = call zeroext i1 %653(ptr noundef %654)
  br i1 %655, label %709, label %656

656:                                              ; preds = %650
  br label %657

657:                                              ; preds = %656
  br label %658

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

665:                                              ; preds = %658
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = call i32 @fileno(ptr noundef %666) #7
  %668 = call i32 @isatty(i32 noundef %667) #7
  %669 = icmp ne i32 %668, 0
  br i1 %669, label %670, label %687

670:                                              ; preds = %665
  %671 = load i32, ptr %19, align 4, !tbaa !5
  %672 = call ptr @__errno_location() #8
  store i32 %671, ptr %672, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror(i32 noundef %676, ptr noundef @.str.3)
  %678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror_debug(i32 noundef %679, ptr noundef @.str.3)
  %681 = call ptr @__errno_location() #8
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @strerror(i32 noundef %682) #7
  %684 = call ptr @__errno_location() #8
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %673, ptr noundef @.str, i32 noundef %674, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 54, ptr noundef %677, ptr noundef %680, ptr noundef %683, i32 noundef %685) #7
  br label %704

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

704:                                              ; preds = %687, %670
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  call void @exit(i32 noundef 1) #9
  unreachable

707:                                              ; No predecessors!
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708, %650
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  br label %712

712:                                              ; preds = %711
  %713 = load i32, ptr @test_count, align 4, !tbaa !5
  %714 = add nsw i32 %713, 1
  store i32 %714, ptr @test_count, align 4, !tbaa !5
  %715 = load ptr, ptr %14, align 8, !tbaa !9
  %716 = load ptr, ptr %10, align 8, !tbaa !9
  %717 = call i32 @s2n_test_enable_sending_extension(ptr noundef %715, ptr noundef %716)
  %718 = icmp eq i32 %717, -1
  br i1 %718, label %719, label %772

719:                                              ; preds = %712
  br label %720

720:                                              ; preds = %719
  br label %721

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

728:                                              ; preds = %721
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @fileno(ptr noundef %729) #7
  %731 = call i32 @isatty(i32 noundef %730) #7
  %732 = icmp ne i32 %731, 0
  br i1 %732, label %733, label %750

733:                                              ; preds = %728
  %734 = load i32, ptr %20, align 4, !tbaa !5
  %735 = call ptr @__errno_location() #8
  store i32 %734, ptr %735, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror(i32 noundef %739, ptr noundef @.str.3)
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef @.str.3)
  %744 = call ptr @__errno_location() #8
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @strerror(i32 noundef %745) #7
  %747 = call ptr @__errno_location() #8
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef @.str, i32 noundef %737, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 57, ptr noundef %740, ptr noundef %743, ptr noundef %746, i32 noundef %748) #7
  br label %767

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

767:                                              ; preds = %750, %733
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  call void @exit(i32 noundef 1) #9
  unreachable

770:                                              ; No predecessors!
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771, %712
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  %775 = load ptr, ptr %14, align 8, !tbaa !9
  %776 = getelementptr inbounds %struct.s2n_connection, ptr %775, i32 0, i32 13
  store i32 1, ptr %776, align 4, !tbaa !18
  br label %777

777:                                              ; preds = %774
  %778 = load i32, ptr @test_count, align 4, !tbaa !5
  %779 = add nsw i32 %778, 1
  store i32 %779, ptr @test_count, align 4, !tbaa !5
  %780 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 5), align 8, !tbaa !15
  %781 = load ptr, ptr %14, align 8, !tbaa !9
  %782 = call zeroext i1 %780(ptr noundef %781)
  br i1 %782, label %783, label %836

783:                                              ; preds = %777
  br label %784

784:                                              ; preds = %783
  br label %785

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

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

797:                                              ; preds = %792
  %798 = load i32, ptr %21, align 4, !tbaa !5
  %799 = call ptr @__errno_location() #8
  store i32 %798, ptr %799, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef @.str.3)
  %805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef @.str.3)
  %808 = call ptr @__errno_location() #8
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @strerror(i32 noundef %809) #7
  %811 = call ptr @__errno_location() #8
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %800, ptr noundef @.str, i32 noundef %801, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 59, ptr noundef %804, ptr noundef %807, ptr noundef %810, i32 noundef %812) #7
  br label %831

814:                                              ; preds = %792, %785
  %815 = load i32, ptr %21, align 4, !tbaa !5
  %816 = call ptr @__errno_location() #8
  store i32 %815, ptr %816, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror(i32 noundef %820, ptr noundef @.str.3)
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef @.str.3)
  %825 = call ptr @__errno_location() #8
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #7
  %828 = call ptr @__errno_location() #8
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef @.str.4, i32 noundef %818, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 59, ptr noundef %821, ptr noundef %824, ptr noundef %827, i32 noundef %829) #7
  br label %831

831:                                              ; preds = %814, %797
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %832

832:                                              ; preds = %831
  br label %833

833:                                              ; preds = %832
  call void @exit(i32 noundef 1) #9
  unreachable

834:                                              ; No predecessors!
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835, %777
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  br label %839

839:                                              ; preds = %838
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = add nsw i32 %840, 1
  store i32 %841, ptr @test_count, align 4, !tbaa !5
  %842 = load ptr, ptr %14, align 8, !tbaa !9
  %843 = load ptr, ptr %10, align 8, !tbaa !9
  %844 = call i32 @s2n_test_enable_sending_extension(ptr noundef %842, ptr noundef %843)
  %845 = icmp eq i32 %844, -1
  br i1 %845, label %846, label %899

846:                                              ; preds = %839
  br label %847

847:                                              ; preds = %846
  br label %848

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

855:                                              ; preds = %848
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @fileno(ptr noundef %856) #7
  %858 = call i32 @isatty(i32 noundef %857) #7
  %859 = icmp ne i32 %858, 0
  br i1 %859, label %860, label %877

860:                                              ; preds = %855
  %861 = load i32, ptr %22, align 4, !tbaa !5
  %862 = call ptr @__errno_location() #8
  store i32 %861, ptr %862, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror(i32 noundef %866, ptr noundef @.str.3)
  %868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef @.str.3)
  %871 = call ptr @__errno_location() #8
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #7
  %874 = call ptr @__errno_location() #8
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %863, ptr noundef @.str, i32 noundef %864, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 62, ptr noundef %867, ptr noundef %870, ptr noundef %873, i32 noundef %875) #7
  br label %894

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

894:                                              ; preds = %877, %860
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  call void @exit(i32 noundef 1) #9
  unreachable

897:                                              ; No predecessors!
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898, %839
  br label %900

900:                                              ; preds = %899
  br label %901

901:                                              ; preds = %900
  %902 = load ptr, ptr %14, align 8, !tbaa !9
  %903 = getelementptr inbounds %struct.s2n_connection, ptr %902, i32 0, i32 65
  store i32 0, ptr %903, align 8, !tbaa !44
  br label %904

904:                                              ; preds = %901
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @test_count, align 4, !tbaa !5
  %907 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 5), align 8, !tbaa !15
  %908 = load ptr, ptr %14, align 8, !tbaa !9
  %909 = call zeroext i1 %907(ptr noundef %908)
  br i1 %909, label %910, label %963

910:                                              ; preds = %904
  br label %911

911:                                              ; preds = %910
  br label %912

912:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %913 = call ptr @__errno_location() #8
  %914 = load i32, ptr %913, align 4, !tbaa !5
  store i32 %914, ptr %23, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @s2n_print_stacktrace(ptr noundef %915)
  %917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %918 = trunc i8 %917 to i1
  br i1 %918, label %919, label %941

919:                                              ; preds = %912
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @fileno(ptr noundef %920) #7
  %922 = call i32 @isatty(i32 noundef %921) #7
  %923 = icmp ne i32 %922, 0
  br i1 %923, label %924, label %941

924:                                              ; preds = %919
  %925 = load i32, ptr %23, align 4, !tbaa !5
  %926 = call ptr @__errno_location() #8
  store i32 %925, ptr %926, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = load i32, ptr @test_count, align 4, !tbaa !5
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef @.str.3)
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef @.str.3)
  %935 = call ptr @__errno_location() #8
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #7
  %938 = call ptr @__errno_location() #8
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %927, ptr noundef @.str, i32 noundef %928, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 64, ptr noundef %931, ptr noundef %934, ptr noundef %937, i32 noundef %939) #7
  br label %958

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

958:                                              ; preds = %941, %924
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  call void @exit(i32 noundef 1) #9
  unreachable

961:                                              ; No predecessors!
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962, %904
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr @test_count, align 4, !tbaa !5
  %969 = load ptr, ptr %14, align 8, !tbaa !9
  %970 = load ptr, ptr %10, align 8, !tbaa !9
  %971 = call i32 @s2n_test_enable_sending_extension(ptr noundef %969, ptr noundef %970)
  %972 = icmp eq i32 %971, -1
  br i1 %972, label %973, label %1026

973:                                              ; preds = %966
  br label %974

974:                                              ; preds = %973
  br label %975

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

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

987:                                              ; preds = %982
  %988 = load i32, ptr %24, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #8
  store i32 %988, ptr %989, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef @.str.3)
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef @.str.3)
  %998 = call ptr @__errno_location() #8
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #7
  %1001 = call ptr @__errno_location() #8
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef @.str, i32 noundef %991, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 67, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #7
  br label %1021

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

1021:                                             ; preds = %1004, %987
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

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

1024:                                             ; No predecessors!
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025, %966
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  %1029 = load ptr, ptr %14, align 8, !tbaa !9
  %1030 = getelementptr inbounds %struct.s2n_connection, ptr %1029, i32 0, i32 32
  %1031 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1030, i32 0, i32 7
  store ptr null, ptr %1031, align 8, !tbaa !45
  br label %1032

1032:                                             ; preds = %1028
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 5), align 8, !tbaa !15
  %1036 = load ptr, ptr %14, align 8, !tbaa !9
  %1037 = call zeroext i1 %1035(ptr noundef %1036)
  br i1 %1037, label %1038, label %1091

1038:                                             ; preds = %1032
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

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

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

1052:                                             ; preds = %1047
  %1053 = load i32, ptr %25, align 4, !tbaa !5
  %1054 = call ptr @__errno_location() #8
  store i32 %1053, ptr %1054, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror(i32 noundef %1058, ptr noundef @.str.3)
  %1060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror_debug(i32 noundef %1061, ptr noundef @.str.3)
  %1063 = call ptr @__errno_location() #8
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call ptr @strerror(i32 noundef %1064) #7
  %1066 = call ptr @__errno_location() #8
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1055, ptr noundef @.str, i32 noundef %1056, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1059, ptr noundef %1062, ptr noundef %1065, i32 noundef %1067) #7
  br label %1086

1069:                                             ; preds = %1047, %1040
  %1070 = load i32, ptr %25, align 4, !tbaa !5
  %1071 = call ptr @__errno_location() #8
  store i32 %1070, ptr %1071, align 4, !tbaa !5
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = load i32, ptr @test_count, align 4, !tbaa !5
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror(i32 noundef %1075, ptr noundef @.str.3)
  %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_debug(i32 noundef %1078, ptr noundef @.str.3)
  %1080 = call ptr @__errno_location() #8
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #7
  %1083 = call ptr @__errno_location() #8
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1072, ptr noundef @.str.4, i32 noundef %1073, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1076, ptr noundef %1079, ptr noundef %1082, i32 noundef %1084) #7
  br label %1086

1086:                                             ; preds = %1069, %1052
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

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

1089:                                             ; No predecessors!
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

1091:                                             ; preds = %1090, %1032
  br label %1092

1092:                                             ; preds = %1091
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = add nsw i32 %1095, 1
  store i32 %1096, ptr @test_count, align 4, !tbaa !5
  %1097 = load ptr, ptr %14, align 8, !tbaa !9
  %1098 = load ptr, ptr %10, align 8, !tbaa !9
  %1099 = call i32 @s2n_test_enable_sending_extension(ptr noundef %1097, ptr noundef %1098)
  %1100 = icmp eq i32 %1099, -1
  br i1 %1100, label %1101, label %1154

1101:                                             ; preds = %1094
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %1104 = call ptr @__errno_location() #8
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  store i32 %1105, ptr %26, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 @s2n_print_stacktrace(ptr noundef %1106)
  %1108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1109 = trunc i8 %1108 to i1
  br i1 %1109, label %1110, label %1132

1110:                                             ; preds = %1103
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @fileno(ptr noundef %1111) #7
  %1113 = call i32 @isatty(i32 noundef %1112) #7
  %1114 = icmp ne i32 %1113, 0
  br i1 %1114, label %1115, label %1132

1115:                                             ; preds = %1110
  %1116 = load i32, ptr %26, align 4, !tbaa !5
  %1117 = call ptr @__errno_location() #8
  store i32 %1116, ptr %1117, align 4, !tbaa !5
  %1118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror(i32 noundef %1121, ptr noundef @.str.3)
  %1123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror_debug(i32 noundef %1124, ptr noundef @.str.3)
  %1126 = call ptr @__errno_location() #8
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @strerror(i32 noundef %1127) #7
  %1129 = call ptr @__errno_location() #8
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1118, ptr noundef @.str, i32 noundef %1119, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 72, ptr noundef %1122, ptr noundef %1125, ptr noundef %1128, i32 noundef %1130) #7
  br label %1149

1132:                                             ; preds = %1110, %1103
  %1133 = load i32, ptr %26, align 4, !tbaa !5
  %1134 = call ptr @__errno_location() #8
  store i32 %1133, ptr %1134, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef @.str.3)
  %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_debug(i32 noundef %1141, ptr noundef @.str.3)
  %1143 = call ptr @__errno_location() #8
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @strerror(i32 noundef %1144) #7
  %1146 = call ptr @__errno_location() #8
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef @.str.4, i32 noundef %1136, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 72, ptr noundef %1139, ptr noundef %1142, ptr noundef %1145, i32 noundef %1147) #7
  br label %1149

1149:                                             ; preds = %1132, %1115
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  call void @exit(i32 noundef 1) #9
  unreachable

1152:                                             ; No predecessors!
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153, %1094
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  br label %1157

1157:                                             ; preds = %1156
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = add nsw i32 %1158, 1
  store i32 %1159, ptr @test_count, align 4, !tbaa !5
  %1160 = load ptr, ptr %14, align 8, !tbaa !9
  %1161 = getelementptr inbounds %struct.s2n_connection, ptr %1160, i32 0, i32 32
  %1162 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1161, i32 0, i32 7
  %1163 = load ptr, ptr %1162, align 8, !tbaa !45
  %1164 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %1163, i32 0, i32 2
  %1165 = call i32 @s2n_free(ptr noundef %1164)
  %1166 = icmp eq i32 %1165, -1
  br i1 %1166, label %1167, label %1220

1167:                                             ; preds = %1157
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

1169:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %1170 = call ptr @__errno_location() #8
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  store i32 %1171, ptr %27, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @s2n_print_stacktrace(ptr noundef %1172)
  %1174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1175 = trunc i8 %1174 to i1
  br i1 %1175, label %1176, label %1198

1176:                                             ; preds = %1169
  %1177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1178 = call i32 @fileno(ptr noundef %1177) #7
  %1179 = call i32 @isatty(i32 noundef %1178) #7
  %1180 = icmp ne i32 %1179, 0
  br i1 %1180, label %1181, label %1198

1181:                                             ; preds = %1176
  %1182 = load i32, ptr %27, align 4, !tbaa !5
  %1183 = call ptr @__errno_location() #8
  store i32 %1182, ptr %1183, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror(i32 noundef %1187, ptr noundef @.str.3)
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror_debug(i32 noundef %1190, ptr noundef @.str.3)
  %1192 = call ptr @__errno_location() #8
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @strerror(i32 noundef %1193) #7
  %1195 = call ptr @__errno_location() #8
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef @.str, i32 noundef %1185, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 73, ptr noundef %1188, ptr noundef %1191, ptr noundef %1194, i32 noundef %1196) #7
  br label %1215

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

1215:                                             ; preds = %1198, %1181
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  call void @exit(i32 noundef 1) #9
  unreachable

1218:                                             ; No predecessors!
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219, %1157
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  %1224 = load i32, ptr @test_count, align 4, !tbaa !5
  %1225 = add nsw i32 %1224, 1
  store i32 %1225, ptr @test_count, align 4, !tbaa !5
  %1226 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 5), align 8, !tbaa !15
  %1227 = load ptr, ptr %14, align 8, !tbaa !9
  %1228 = call zeroext i1 %1226(ptr noundef %1227)
  br i1 %1228, label %1229, label %1282

1229:                                             ; preds = %1223
  br label %1230

1230:                                             ; preds = %1229
  br label %1231

1231:                                             ; preds = %1230
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %1232 = call ptr @__errno_location() #8
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  store i32 %1233, ptr %28, align 4, !tbaa !5
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = call i32 @s2n_print_stacktrace(ptr noundef %1234)
  %1236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1237 = trunc i8 %1236 to i1
  br i1 %1237, label %1238, label %1260

1238:                                             ; preds = %1231
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = call i32 @fileno(ptr noundef %1239) #7
  %1241 = call i32 @isatty(i32 noundef %1240) #7
  %1242 = icmp ne i32 %1241, 0
  br i1 %1242, label %1243, label %1260

1243:                                             ; preds = %1238
  %1244 = load i32, ptr %28, align 4, !tbaa !5
  %1245 = call ptr @__errno_location() #8
  store i32 %1244, ptr %1245, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = load i32, ptr @test_count, align 4, !tbaa !5
  %1248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror(i32 noundef %1249, ptr noundef @.str.3)
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror_debug(i32 noundef %1252, ptr noundef @.str.3)
  %1254 = call ptr @__errno_location() #8
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @strerror(i32 noundef %1255) #7
  %1257 = call ptr @__errno_location() #8
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1246, ptr noundef @.str, i32 noundef %1247, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1250, ptr noundef %1253, ptr noundef %1256, i32 noundef %1258) #7
  br label %1277

1260:                                             ; preds = %1238, %1231
  %1261 = load i32, ptr %28, align 4, !tbaa !5
  %1262 = call ptr @__errno_location() #8
  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.3)
  %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.3)
  %1271 = call ptr @__errno_location() #8
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call ptr @strerror(i32 noundef %1272) #7
  %1274 = call ptr @__errno_location() #8
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1263, ptr noundef @.str.4, i32 noundef %1264, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 74, ptr noundef %1267, ptr noundef %1270, ptr noundef %1273, i32 noundef %1275) #7
  br label %1277

1277:                                             ; preds = %1260, %1243
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1278

1278:                                             ; preds = %1277
  br label %1279

1279:                                             ; preds = %1278
  call void @exit(i32 noundef 1) #9
  unreachable

1280:                                             ; No predecessors!
  br label %1281

1281:                                             ; preds = %1280
  br label %1282

1282:                                             ; preds = %1281, %1223
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = add nsw i32 %1286, 1
  store i32 %1287, ptr @test_count, align 4, !tbaa !5
  %1288 = load ptr, ptr %14, align 8, !tbaa !9
  %1289 = call i32 @s2n_connection_free(ptr noundef %1288)
  %1290 = icmp eq i32 %1289, -1
  br i1 %1290, label %1291, label %1344

1291:                                             ; preds = %1285
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %1294 = call ptr @__errno_location() #8
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  store i32 %1295, ptr %29, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @s2n_print_stacktrace(ptr noundef %1296)
  %1298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1299 = trunc i8 %1298 to i1
  br i1 %1299, label %1300, label %1322

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

1305:                                             ; preds = %1300
  %1306 = load i32, ptr %29, align 4, !tbaa !5
  %1307 = call ptr @__errno_location() #8
  store i32 %1306, ptr %1307, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef @.str.3)
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef @.str.3)
  %1316 = call ptr @__errno_location() #8
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @strerror(i32 noundef %1317) #7
  %1319 = call ptr @__errno_location() #8
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef @.str, i32 noundef %1309, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1312, ptr noundef %1315, ptr noundef %1318, i32 noundef %1320) #7
  br label %1339

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

1339:                                             ; preds = %1322, %1305
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  call void @exit(i32 noundef 1) #9
  unreachable

1342:                                             ; No predecessors!
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343, %1285
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr @test_count, align 4, !tbaa !5
  %1350 = load ptr, ptr %12, align 8, !tbaa !9
  %1351 = call i32 @s2n_config_free(ptr noundef %1350)
  %1352 = icmp eq i32 %1351, -1
  br i1 %1352, label %1353, label %1406

1353:                                             ; preds = %1347
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %1356 = call ptr @__errno_location() #8
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  store i32 %1357, ptr %30, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @s2n_print_stacktrace(ptr noundef %1358)
  %1360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1361 = trunc i8 %1360 to i1
  br i1 %1361, label %1362, label %1384

1362:                                             ; preds = %1355
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @fileno(ptr noundef %1363) #7
  %1365 = call i32 @isatty(i32 noundef %1364) #7
  %1366 = icmp ne i32 %1365, 0
  br i1 %1366, label %1367, label %1384

1367:                                             ; preds = %1362
  %1368 = load i32, ptr %30, align 4, !tbaa !5
  %1369 = call ptr @__errno_location() #8
  store i32 %1368, ptr %1369, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = load i32, ptr @test_count, align 4, !tbaa !5
  %1372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror(i32 noundef %1373, ptr noundef @.str.3)
  %1375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror_debug(i32 noundef %1376, ptr noundef @.str.3)
  %1378 = call ptr @__errno_location() #8
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #7
  %1381 = call ptr @__errno_location() #8
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1370, ptr noundef @.str, i32 noundef %1371, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 77, ptr noundef %1374, ptr noundef %1377, ptr noundef %1380, i32 noundef %1382) #7
  br label %1401

1384:                                             ; preds = %1362, %1355
  %1385 = load i32, ptr %30, align 4, !tbaa !5
  %1386 = call ptr @__errno_location() #8
  store i32 %1385, ptr %1386, align 4, !tbaa !5
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = load i32, ptr @test_count, align 4, !tbaa !5
  %1389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror(i32 noundef %1390, ptr noundef @.str.3)
  %1392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror_debug(i32 noundef %1393, ptr noundef @.str.3)
  %1395 = call ptr @__errno_location() #8
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @strerror(i32 noundef %1396) #7
  %1398 = call ptr @__errno_location() #8
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1387, ptr noundef @.str.4, i32 noundef %1388, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 77, ptr noundef %1391, ptr noundef %1394, ptr noundef %1397, i32 noundef %1399) #7
  br label %1401

1401:                                             ; preds = %1384, %1367
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  call void @exit(i32 noundef 1) #9
  unreachable

1404:                                             ; No predecessors!
  br label %1405

1405:                                             ; preds = %1404
  br label %1406

1406:                                             ; preds = %1405, %1347
  br label %1407

1407:                                             ; preds = %1406
  br label %1408

1408:                                             ; preds = %1407
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  br label %1409

1409:                                             ; preds = %1408
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = add nsw i32 %1410, 1
  store i32 %1411, ptr @test_count, align 4, !tbaa !5
  %1412 = load ptr, ptr %10, align 8, !tbaa !9
  %1413 = call i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef %1412, ptr noundef @ocsp_data, i32 noundef 10)
  %1414 = icmp eq i32 %1413, -1
  br i1 %1414, label %1415, label %1468

1415:                                             ; preds = %1409
  br label %1416

1416:                                             ; preds = %1415
  br label %1417

1417:                                             ; preds = %1416
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #7
  %1418 = call ptr @__errno_location() #8
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  store i32 %1419, ptr %31, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @s2n_print_stacktrace(ptr noundef %1420)
  %1422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1423 = trunc i8 %1422 to i1
  br i1 %1423, label %1424, label %1446

1424:                                             ; preds = %1417
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @fileno(ptr noundef %1425) #7
  %1427 = call i32 @isatty(i32 noundef %1426) #7
  %1428 = icmp ne i32 %1427, 0
  br i1 %1428, label %1429, label %1446

1429:                                             ; preds = %1424
  %1430 = load i32, ptr %31, align 4, !tbaa !5
  %1431 = call ptr @__errno_location() #8
  store i32 %1430, ptr %1431, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror(i32 noundef %1435, ptr noundef @.str.3)
  %1437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef @.str.3)
  %1440 = call ptr @__errno_location() #8
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @strerror(i32 noundef %1441) #7
  %1443 = call ptr @__errno_location() #8
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef @.str, i32 noundef %1433, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 81, ptr noundef %1436, ptr noundef %1439, ptr noundef %1442, i32 noundef %1444) #7
  br label %1463

1446:                                             ; preds = %1424, %1417
  %1447 = load i32, ptr %31, align 4, !tbaa !5
  %1448 = call ptr @__errno_location() #8
  store i32 %1447, ptr %1448, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = load i32, ptr @test_count, align 4, !tbaa !5
  %1451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror(i32 noundef %1452, ptr noundef @.str.3)
  %1454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror_debug(i32 noundef %1455, ptr noundef @.str.3)
  %1457 = call ptr @__errno_location() #8
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @strerror(i32 noundef %1458) #7
  %1460 = call ptr @__errno_location() #8
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1449, ptr noundef @.str.4, i32 noundef %1450, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 81, ptr noundef %1453, ptr noundef %1456, ptr noundef %1459, i32 noundef %1461) #7
  br label %1463

1463:                                             ; preds = %1446, %1429
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  call void @exit(i32 noundef 1) #9
  unreachable

1466:                                             ; No predecessors!
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

1468:                                             ; preds = %1467, %1409
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  store ptr null, ptr %32, align 8, !tbaa !9
  br label %1471

1471:                                             ; preds = %1470
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = add nsw i32 %1472, 1
  store i32 %1473, ptr @test_count, align 4, !tbaa !5
  %1474 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1474, ptr %32, align 8, !tbaa !9
  %1475 = icmp eq ptr %1474, null
  br i1 %1475, label %1476, label %1529

1476:                                             ; preds = %1471
  br label %1477

1477:                                             ; preds = %1476
  br label %1478

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

1485:                                             ; preds = %1478
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = call i32 @fileno(ptr noundef %1486) #7
  %1488 = call i32 @isatty(i32 noundef %1487) #7
  %1489 = icmp ne i32 %1488, 0
  br i1 %1489, label %1490, label %1507

1490:                                             ; preds = %1485
  %1491 = load i32, ptr %33, align 4, !tbaa !5
  %1492 = call ptr @__errno_location() #8
  store i32 %1491, ptr %1492, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror(i32 noundef %1496, ptr noundef @.str.3)
  %1498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror_debug(i32 noundef %1499, ptr noundef @.str.3)
  %1501 = call ptr @__errno_location() #8
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @strerror(i32 noundef %1502) #7
  %1504 = call ptr @__errno_location() #8
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1493, ptr noundef @.str, i32 noundef %1494, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 86, ptr noundef %1497, ptr noundef %1500, ptr noundef %1503, i32 noundef %1505) #7
  br label %1524

1507:                                             ; preds = %1485, %1478
  %1508 = load i32, ptr %33, align 4, !tbaa !5
  %1509 = call ptr @__errno_location() #8
  store i32 %1508, ptr %1509, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror(i32 noundef %1513, ptr noundef @.str.3)
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror_debug(i32 noundef %1516, ptr noundef @.str.3)
  %1518 = call ptr @__errno_location() #8
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #7
  %1521 = call ptr @__errno_location() #8
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1510, ptr noundef @.str.4, i32 noundef %1511, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 86, ptr noundef %1514, ptr noundef %1517, ptr noundef %1520, i32 noundef %1522) #7
  br label %1524

1524:                                             ; preds = %1507, %1490
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  call void @exit(i32 noundef 1) #9
  unreachable

1527:                                             ; No predecessors!
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528, %1471
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = add nsw i32 %1533, 1
  store i32 %1534, ptr @test_count, align 4, !tbaa !5
  %1535 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 3), align 8, !tbaa !46
  %1536 = load ptr, ptr %32, align 8, !tbaa !9
  %1537 = call i32 %1535(ptr noundef %1536, ptr noundef null)
  %1538 = icmp eq i32 %1537, -1
  br i1 %1538, label %1539, label %1592

1539:                                             ; preds = %1532
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %1542 = call ptr @__errno_location() #8
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  store i32 %1543, ptr %34, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @s2n_print_stacktrace(ptr noundef %1544)
  %1546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1547 = trunc i8 %1546 to i1
  br i1 %1547, label %1548, label %1570

1548:                                             ; preds = %1541
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = call i32 @fileno(ptr noundef %1549) #7
  %1551 = call i32 @isatty(i32 noundef %1550) #7
  %1552 = icmp ne i32 %1551, 0
  br i1 %1552, label %1553, label %1570

1553:                                             ; preds = %1548
  %1554 = load i32, ptr %34, align 4, !tbaa !5
  %1555 = call ptr @__errno_location() #8
  store i32 %1554, ptr %1555, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror(i32 noundef %1559, ptr noundef @.str.3)
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror_debug(i32 noundef %1562, ptr noundef @.str.3)
  %1564 = call ptr @__errno_location() #8
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @strerror(i32 noundef %1565) #7
  %1567 = call ptr @__errno_location() #8
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1556, ptr noundef @.str, i32 noundef %1557, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 88, ptr noundef %1560, ptr noundef %1563, ptr noundef %1566, i32 noundef %1568) #7
  br label %1587

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

1587:                                             ; preds = %1570, %1553
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

1589:                                             ; preds = %1588
  call void @exit(i32 noundef 1) #9
  unreachable

1590:                                             ; No predecessors!
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591, %1532
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594
  %1596 = load i32, ptr @test_count, align 4, !tbaa !5
  %1597 = add nsw i32 %1596, 1
  store i32 %1597, ptr @test_count, align 4, !tbaa !5
  %1598 = load ptr, ptr %32, align 8, !tbaa !9
  %1599 = getelementptr inbounds %struct.s2n_connection, ptr %1598, i32 0, i32 65
  %1600 = load i32, ptr %1599, align 8, !tbaa !44
  %1601 = icmp eq i32 %1600, 0
  br i1 %1601, label %1655, label %1602

1602:                                             ; preds = %1595
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %1605 = call ptr @__errno_location() #8
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  store i32 %1606, ptr %35, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1608 = call i32 @s2n_print_stacktrace(ptr noundef %1607)
  %1609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1610 = trunc i8 %1609 to i1
  br i1 %1610, label %1611, label %1633

1611:                                             ; preds = %1604
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @fileno(ptr noundef %1612) #7
  %1614 = call i32 @isatty(i32 noundef %1613) #7
  %1615 = icmp ne i32 %1614, 0
  br i1 %1615, label %1616, label %1633

1616:                                             ; preds = %1611
  %1617 = load i32, ptr %35, align 4, !tbaa !5
  %1618 = call ptr @__errno_location() #8
  store i32 %1617, ptr %1618, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror(i32 noundef %1622, ptr noundef @.str.3)
  %1624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef @.str.3)
  %1627 = call ptr @__errno_location() #8
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @strerror(i32 noundef %1628) #7
  %1630 = call ptr @__errno_location() #8
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef @.str, i32 noundef %1620, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 90, ptr noundef %1623, ptr noundef %1626, ptr noundef %1629, i32 noundef %1631) #7
  br label %1650

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

1650:                                             ; preds = %1633, %1616
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651
  call void @exit(i32 noundef 1) #9
  unreachable

1653:                                             ; No predecessors!
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654, %1595
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = add nsw i32 %1659, 1
  store i32 %1660, ptr @test_count, align 4, !tbaa !5
  %1661 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_status_response_extension, i32 0, i32 4), align 8, !tbaa !47
  %1662 = load ptr, ptr %32, align 8, !tbaa !9
  %1663 = call i32 %1661(ptr noundef %1662, ptr noundef null)
  %1664 = icmp eq i32 %1663, -1
  br i1 %1664, label %1665, label %1718

1665:                                             ; preds = %1658
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

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

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

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

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

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

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; No predecessors!
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

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

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = load ptr, ptr %32, align 8, !tbaa !9
  %1725 = getelementptr inbounds %struct.s2n_connection, ptr %1724, i32 0, i32 65
  %1726 = load i32, ptr %1725, align 8, !tbaa !44
  %1727 = icmp eq i32 %1726, 1
  br i1 %1727, label %1781, label %1728

1728:                                             ; preds = %1721
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

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

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

1742:                                             ; preds = %1737
  %1743 = load i32, ptr %37, align 4, !tbaa !5
  %1744 = call ptr @__errno_location() #8
  store i32 %1743, ptr %1744, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call ptr @s2n_strerror(i32 noundef %1748, ptr noundef @.str.3)
  %1750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror_debug(i32 noundef %1751, ptr noundef @.str.3)
  %1753 = call ptr @__errno_location() #8
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  %1755 = call ptr @strerror(i32 noundef %1754) #7
  %1756 = call ptr @__errno_location() #8
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1745, ptr noundef @.str, i32 noundef %1746, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1749, ptr noundef %1752, ptr noundef %1755, i32 noundef %1757) #7
  br label %1776

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

1776:                                             ; preds = %1759, %1742
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

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

1779:                                             ; No predecessors!
  br label %1780

1780:                                             ; preds = %1779
  br label %1781

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

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  br label %1784

1784:                                             ; preds = %1783
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = add nsw i32 %1785, 1
  store i32 %1786, ptr @test_count, align 4, !tbaa !5
  %1787 = load ptr, ptr %32, align 8, !tbaa !9
  %1788 = call i32 @s2n_connection_free(ptr noundef %1787)
  %1789 = icmp eq i32 %1788, -1
  br i1 %1789, label %1790, label %1843

1790:                                             ; preds = %1784
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

1792:                                             ; preds = %1791
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %1793 = call ptr @__errno_location() #8
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  store i32 %1794, ptr %38, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @s2n_print_stacktrace(ptr noundef %1795)
  %1797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1798 = trunc i8 %1797 to i1
  br i1 %1798, label %1799, label %1821

1799:                                             ; preds = %1792
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = call i32 @fileno(ptr noundef %1800) #7
  %1802 = call i32 @isatty(i32 noundef %1801) #7
  %1803 = icmp ne i32 %1802, 0
  br i1 %1803, label %1804, label %1821

1804:                                             ; preds = %1799
  %1805 = load i32, ptr %38, align 4, !tbaa !5
  %1806 = call ptr @__errno_location() #8
  store i32 %1805, ptr %1806, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror(i32 noundef %1810, ptr noundef @.str.3)
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef @.str.3)
  %1815 = call ptr @__errno_location() #8
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @strerror(i32 noundef %1816) #7
  %1818 = call ptr @__errno_location() #8
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1807, ptr noundef @.str, i32 noundef %1808, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 94, ptr noundef %1811, ptr noundef %1814, ptr noundef %1817, i32 noundef %1819) #7
  br label %1838

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

1838:                                             ; preds = %1821, %1804
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  call void @exit(i32 noundef 1) #9
  unreachable

1841:                                             ; No predecessors!
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842, %1784
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  %1848 = call i32 @s2n_cleanup()
  %1849 = icmp eq i32 %1848, -1
  br i1 %1849, label %1850, label %1903

1850:                                             ; preds = %1847
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %1853 = call ptr @__errno_location() #8
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  store i32 %1854, ptr %39, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @s2n_print_stacktrace(ptr noundef %1855)
  %1857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1858 = trunc i8 %1857 to i1
  br i1 %1858, label %1859, label %1881

1859:                                             ; preds = %1852
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @fileno(ptr noundef %1860) #7
  %1862 = call i32 @isatty(i32 noundef %1861) #7
  %1863 = icmp ne i32 %1862, 0
  br i1 %1863, label %1864, label %1881

1864:                                             ; preds = %1859
  %1865 = load i32, ptr %39, align 4, !tbaa !5
  %1866 = call ptr @__errno_location() #8
  store i32 %1865, ptr %1866, align 4, !tbaa !5
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = load i32, ptr @test_count, align 4, !tbaa !5
  %1869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call ptr @s2n_strerror(i32 noundef %1870, ptr noundef @.str.3)
  %1872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef @.str.3)
  %1875 = call ptr @__errno_location() #8
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @strerror(i32 noundef %1876) #7
  %1878 = call ptr @__errno_location() #8
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1867, ptr noundef @.str, i32 noundef %1868, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 97, ptr noundef %1871, ptr noundef %1874, ptr noundef %1877, i32 noundef %1879) #7
  br label %1898

1881:                                             ; preds = %1859, %1852
  %1882 = load i32, ptr %39, align 4, !tbaa !5
  %1883 = call ptr @__errno_location() #8
  store i32 %1882, ptr %1883, align 4, !tbaa !5
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = load i32, ptr @test_count, align 4, !tbaa !5
  %1886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror(i32 noundef %1887, ptr noundef @.str.3)
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror_debug(i32 noundef %1890, ptr noundef @.str.3)
  %1892 = call ptr @__errno_location() #8
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @strerror(i32 noundef %1893) #7
  %1895 = call ptr @__errno_location() #8
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1884, ptr noundef @.str.4, i32 noundef %1885, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 97, ptr noundef %1888, ptr noundef %1891, ptr noundef %1894, i32 noundef %1896) #7
  br label %1898

1898:                                             ; preds = %1881, %1864
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %1899

1899:                                             ; preds = %1898
  br label %1900

1900:                                             ; preds = %1899
  call void @exit(i32 noundef 1) #9
  unreachable

1901:                                             ; No predecessors!
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

1903:                                             ; preds = %1902, %1847
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

1907:                                             ; preds = %1906
  %1908 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1909 = icmp eq i32 %1908, -1
  br i1 %1909, label %1910, label %1963

1910:                                             ; preds = %1907
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %1913 = call ptr @__errno_location() #8
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  store i32 %1914, ptr %40, align 4, !tbaa !5
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = call i32 @s2n_print_stacktrace(ptr noundef %1915)
  %1917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1918 = trunc i8 %1917 to i1
  br i1 %1918, label %1919, label %1941

1919:                                             ; preds = %1912
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @fileno(ptr noundef %1920) #7
  %1922 = call i32 @isatty(i32 noundef %1921) #7
  %1923 = icmp ne i32 %1922, 0
  br i1 %1923, label %1924, label %1941

1924:                                             ; preds = %1919
  %1925 = load i32, ptr %40, align 4, !tbaa !5
  %1926 = call ptr @__errno_location() #8
  store i32 %1925, ptr %1926, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror(i32 noundef %1930, ptr noundef @.str.3)
  %1932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror_debug(i32 noundef %1933, ptr noundef @.str.3)
  %1935 = call ptr @__errno_location() #8
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #7
  %1938 = call ptr @__errno_location() #8
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  %1940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1927, ptr noundef @.str, i32 noundef %1928, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 97, ptr noundef %1931, ptr noundef %1934, ptr noundef %1937, i32 noundef %1939) #7
  br label %1958

1941:                                             ; preds = %1919, %1912
  %1942 = load i32, ptr %40, align 4, !tbaa !5
  %1943 = call ptr @__errno_location() #8
  store i32 %1942, ptr %1943, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = load i32, ptr @test_count, align 4, !tbaa !5
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror(i32 noundef %1947, ptr noundef @.str.3)
  %1949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror_debug(i32 noundef %1950, ptr noundef @.str.3)
  %1952 = call ptr @__errno_location() #8
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call ptr @strerror(i32 noundef %1953) #7
  %1955 = call ptr @__errno_location() #8
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1944, ptr noundef @.str.4, i32 noundef %1945, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 97, ptr noundef %1948, ptr noundef %1951, ptr noundef %1954, i32 noundef %1956) #7
  br label %1958

1958:                                             ; preds = %1941, %1924
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959
  call void @exit(i32 noundef 1) #9
  unreachable

1961:                                             ; No predecessors!
  br label %1962

1962:                                             ; preds = %1961
  br label %1963

1963:                                             ; preds = %1962, %1907
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964
  %1966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1967 = trunc i8 %1966 to i1
  br i1 %1967, label %1968, label %1984

1968:                                             ; preds = %1965
  %1969 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1970 = call i32 @fileno(ptr noundef %1969) #7
  %1971 = call i32 @isatty(i32 noundef %1970) #7
  %1972 = icmp ne i32 %1971, 0
  br i1 %1972, label %1973, label %1984

1973:                                             ; preds = %1968
  %1974 = load i32, ptr @test_count, align 4, !tbaa !5
  %1975 = icmp ne i32 %1974, 0
  br i1 %1975, label %1976, label %1980

1976:                                             ; preds = %1973
  %1977 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1977, ptr noundef @.str.29, i32 noundef %1978) #7
  br label %1983

1980:                                             ; preds = %1973
  %1981 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1981, ptr noundef @.str.30) #7
  br label %1983

1983:                                             ; preds = %1980, %1976
  br label %1995

1984:                                             ; preds = %1968, %1965
  %1985 = load i32, ptr @test_count, align 4, !tbaa !5
  %1986 = icmp ne i32 %1985, 0
  br i1 %1986, label %1987, label %1991

1987:                                             ; preds = %1984
  %1988 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1988, ptr noundef @.str.31, i32 noundef %1989) #7
  br label %1994

1991:                                             ; preds = %1984
  %1992 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1992, ptr noundef @.str.32) #7
  br label %1994

1994:                                             ; preds = %1991, %1987
  br label %1995

1995:                                             ; preds = %1994, %1983
  store i32 0, ptr %3, align 4
  store i32 1, ptr %41, align 4
  br label %2000

1996:                                             ; No predecessors!
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

1999:                                             ; preds = %1998
  store i32 0, ptr %41, align 4
  br label %2000

2000:                                             ; preds = %1999, %1995
  %2001 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %2002 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  store i32 %2001, ptr %2002, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  %2003 = load i32, ptr %41, align 4
  switch i32 %2003, label %2006 [
    i32 0, label %2004
    i32 1, label %2004
  ]

2004:                                             ; preds = %2000, %2000
  %2005 = load i32, ptr %3, align 4
  ret i32 %2005

2006:                                             ; preds = %2000
  unreachable
}

declare i32 @fflush(ptr noundef) #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #1

declare i32 @s2n_enable_atexit() #1

declare i32 @s2n_init() #1

declare i32 @s2n_disable_tls13_in_test(...) #1

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #1

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

declare ptr @s2n_config_new() #1

declare ptr @s2n_connection_new(i32 noundef) #1

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

declare i32 @s2n_free(ptr noundef) #1

declare i32 @s2n_connection_free(ptr noundef) #1

declare i32 @s2n_config_free(ptr noundef) #1

declare i32 @s2n_cleanup() #1

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

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

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


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

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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@ocsp_data = external dso_local constant [10 x i8], align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [98 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.5 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@s2n_cert_status_response_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.16 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [25 x i8], align 1

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

declare i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

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

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

21:                                               ; preds = %17, %10
  br label %22

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

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

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

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #8
  %49 = tail call i32 @isatty(i32 noundef %48) #8
  %.not121 = icmp eq i32 %49, 0
  br i1 %.not121, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

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

63:                                               ; preds = %34
  %64 = tail call i32 @s2n_init() #8
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

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

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #8
  %76 = tail call i32 @isatty(i32 noundef %75) #8
  %.not120 = icmp eq i32 %76, 0
  br i1 %.not120, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

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

90:                                               ; preds = %63
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr @test_count, align 4, !tbaa !5
  %93 = tail call i32 (...) @s2n_disable_tls13_in_test() #8
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

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

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #8
  %105 = tail call i32 @isatty(i32 noundef %104) #8
  %.not119 = icmp eq i32 %105, 0
  br i1 %.not119, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

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

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

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

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = call i32 @fileno(ptr noundef %132) #8
  %134 = call i32 @isatty(i32 noundef %133) #8
  %.not118 = icmp eq i32 %134, 0
  br i1 %.not118, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

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

148:                                              ; preds = %119
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = call ptr @s2n_config_new() #8
  %152 = icmp eq ptr %151, null
  br i1 %152, label %153, label %177

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

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @fileno(ptr noundef %161) #8
  %163 = call i32 @isatty(i32 noundef %162) #8
  %.not117 = icmp eq i32 %163, 0
  br i1 %.not117, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

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

177:                                              ; preds = %148
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = call ptr @s2n_connection_new(i32 noundef 1) #8
  %181 = icmp eq ptr %180, null
  br i1 %181, label %182, label %206

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

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @fileno(ptr noundef %190) #8
  %192 = call i32 @isatty(i32 noundef %191) #8
  %.not116 = icmp eq i32 %192, 0
  br i1 %.not116, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

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

206:                                              ; preds = %177
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 @s2n_connection_set_config(ptr noundef nonnull %180, ptr noundef nonnull %151) #8
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %235

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

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #8
  %221 = call i32 @isatty(i32 noundef %220) #8
  %.not115 = icmp eq i32 %221, 0
  br i1 %.not115, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

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

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_cert_status_response_extension, i64 24), align 8, !tbaa !15
  %239 = call zeroext i1 %238(ptr noundef nonnull %180) #8
  br i1 %239, label %240, label %264

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

247:                                              ; preds = %240
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = call i32 @fileno(ptr noundef %248) #8
  %250 = call i32 @isatty(i32 noundef %249) #8
  %.not114 = icmp eq i32 %250, 0
  br i1 %.not114, label %251, label %252

251:                                              ; preds = %247, %240
  br label %252

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

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

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

277:                                              ; preds = %270
  %278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %279 = call i32 @fileno(ptr noundef %278) #8
  %280 = call i32 @isatty(i32 noundef %279) #8
  %.not113 = icmp eq i32 %280, 0
  br i1 %.not113, label %281, label %282

281:                                              ; preds = %277, %270
  br label %282

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

294:                                              ; preds = %264
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = add nsw i32 %295, 1
  store i32 %296, ptr @test_count, align 4, !tbaa !5
  %297 = call zeroext i1 %238(ptr noundef nonnull %180) #8
  br i1 %297, label %322, label %298

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

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

309:                                              ; preds = %305, %298
  br label %310

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

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

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

335:                                              ; preds = %328
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = call i32 @fileno(ptr noundef %336) #8
  %338 = call i32 @isatty(i32 noundef %337) #8
  %.not112 = icmp eq i32 %338, 0
  br i1 %.not112, label %339, label %340

339:                                              ; preds = %335, %328
  br label %340

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

352:                                              ; preds = %322
  %353 = getelementptr inbounds i8, ptr %180, i64 148
  store i32 1, ptr %353, align 4, !tbaa !18
  %354 = load i32, ptr @test_count, align 4, !tbaa !5
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr @test_count, align 4, !tbaa !5
  %356 = call zeroext i1 %238(ptr noundef nonnull %180) #8
  br i1 %356, label %357, label %381

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

364:                                              ; preds = %357
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @fileno(ptr noundef %365) #8
  %367 = call i32 @isatty(i32 noundef %366) #8
  %.not111 = icmp eq i32 %367, 0
  br i1 %.not111, label %368, label %369

368:                                              ; preds = %364, %357
  br label %369

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

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

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

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #8
  %397 = call i32 @isatty(i32 noundef %396) #8
  %.not110 = icmp eq i32 %397, 0
  br i1 %.not110, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

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

411:                                              ; preds = %381
  %412 = getelementptr inbounds i8, ptr %180, i64 2784
  store i32 0, ptr %412, align 8, !tbaa !44
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr @test_count, align 4, !tbaa !5
  %415 = call zeroext i1 %238(ptr noundef nonnull %180) #8
  br i1 %415, label %416, label %440

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

423:                                              ; preds = %416
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = call i32 @fileno(ptr noundef %424) #8
  %426 = call i32 @isatty(i32 noundef %425) #8
  %.not109 = icmp eq i32 %426, 0
  br i1 %.not109, label %427, label %428

427:                                              ; preds = %423, %416
  br label %428

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

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

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

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

457:                                              ; preds = %453, %446
  br label %458

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

470:                                              ; preds = %440
  %471 = getelementptr inbounds i8, ptr %180, i64 1544
  store ptr null, ptr %471, align 8, !tbaa !45
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = call zeroext i1 %238(ptr noundef nonnull %180) #8
  br i1 %474, label %475, label %499

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

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

486:                                              ; preds = %482, %475
  br label %487

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

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

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

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #8
  %515 = call i32 @isatty(i32 noundef %514) #8
  %.not106 = icmp eq i32 %515, 0
  br i1 %.not106, label %516, label %517

516:                                              ; preds = %512, %505
  br label %517

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

529:                                              ; preds = %499
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = add nsw i32 %530, 1
  store i32 %531, ptr @test_count, align 4, !tbaa !5
  %532 = load ptr, ptr %471, align 8, !tbaa !45
  %533 = getelementptr inbounds i8, ptr %532, i64 16
  %534 = call i32 @s2n_free(ptr noundef nonnull %533) #8
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %560

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

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

547:                                              ; preds = %543, %536
  br label %548

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

560:                                              ; preds = %529
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr @test_count, align 4, !tbaa !5
  %563 = call zeroext i1 %238(ptr noundef nonnull %180) #8
  br i1 %563, label %564, label %588

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

571:                                              ; preds = %564
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #8
  %574 = call i32 @isatty(i32 noundef %573) #8
  %.not104 = icmp eq i32 %574, 0
  br i1 %.not104, label %575, label %576

575:                                              ; preds = %571, %564
  br label %576

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

588:                                              ; preds = %560
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = call i32 @s2n_connection_free(ptr noundef nonnull %180) #8
  %592 = icmp eq i32 %591, -1
  br i1 %592, label %593, label %617

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

600:                                              ; preds = %593
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @fileno(ptr noundef %601) #8
  %603 = call i32 @isatty(i32 noundef %602) #8
  %.not103 = icmp eq i32 %603, 0
  br i1 %.not103, label %604, label %605

604:                                              ; preds = %600, %593
  br label %605

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

617:                                              ; preds = %588
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = add nsw i32 %618, 1
  store i32 %619, ptr @test_count, align 4, !tbaa !5
  %620 = call i32 @s2n_config_free(ptr noundef nonnull %151) #8
  %621 = icmp eq i32 %620, -1
  br i1 %621, label %622, label %646

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

629:                                              ; preds = %622
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @fileno(ptr noundef %630) #8
  %632 = call i32 @isatty(i32 noundef %631) #8
  %.not102 = icmp eq i32 %632, 0
  br i1 %.not102, label %633, label %634

633:                                              ; preds = %629, %622
  br label %634

634:                                              ; preds = %629, %633
  %.str.4.sink353 = phi ptr [ @.str.4, %633 ], [ @.str, %629 ]
  store i32 %624, ptr %623, 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 nonnull @.str.3) #8
  %640 = load i32, ptr %637, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror_debug(i32 noundef %640, ptr noundef nonnull @.str.3) #8
  %642 = load i32, ptr %623, align 4, !tbaa !5
  %643 = call ptr @strerror(i32 noundef %642) #8
  %644 = load i32, ptr %623, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.4.sink353, i32 noundef %636, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 77, ptr noundef %639, ptr noundef %641, ptr noundef %643, i32 noundef %644) #10
  call void @exit(i32 noundef 1) #11
  unreachable

646:                                              ; preds = %617
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr @test_count, align 4, !tbaa !5
  %649 = load ptr, ptr %3, align 8, !tbaa !9
  %650 = call i32 @s2n_cert_chain_and_key_set_ocsp_data(ptr noundef %649, ptr noundef nonnull @ocsp_data, i32 noundef 10) #8
  %651 = icmp eq i32 %650, -1
  br i1 %651, label %652, label %676

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

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

663:                                              ; preds = %659, %652
  br label %664

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

676:                                              ; preds = %646
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = call ptr @s2n_connection_new(i32 noundef 0) #8
  %680 = icmp eq ptr %679, null
  br i1 %680, label %681, label %705

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

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

692:                                              ; preds = %688, %681
  br label %693

693:                                              ; preds = %688, %692
  %.str.4.sink375 = phi ptr [ @.str.4, %692 ], [ @.str, %688 ]
  store i32 %683, ptr %682, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef nonnull @.str.3) #8
  %699 = load i32, ptr %696, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef nonnull @.str.3) #8
  %701 = load i32, ptr %682, align 4, !tbaa !5
  %702 = call ptr @strerror(i32 noundef %701) #8
  %703 = load i32, ptr %682, align 4, !tbaa !5
  %704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.4.sink375, i32 noundef %695, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 86, ptr noundef %698, ptr noundef %700, ptr noundef %702, i32 noundef %703) #10
  call void @exit(i32 noundef 1) #11
  unreachable

705:                                              ; preds = %676
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_cert_status_response_extension, i64 8), align 8, !tbaa !46
  %709 = call i32 %708(ptr noundef nonnull %679, ptr noundef null) #8
  %710 = icmp eq i32 %709, -1
  br i1 %710, label %711, label %735

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

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

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

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

735:                                              ; preds = %705
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = getelementptr inbounds i8, ptr %679, i64 2784
  %739 = load i32, ptr %738, align 8, !tbaa !44
  %740 = icmp eq i32 %739, 0
  br i1 %740, label %765, label %741

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

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

752:                                              ; preds = %748, %741
  br label %753

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

765:                                              ; preds = %735
  %766 = add nsw i32 %736, 2
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_cert_status_response_extension, i64 16), align 8, !tbaa !47
  %768 = call i32 %767(ptr noundef nonnull %679, ptr noundef null) #8
  %769 = icmp eq i32 %768, -1
  br i1 %769, label %770, label %794

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

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

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

782:                                              ; preds = %777, %781
  %.str.4.sink408 = phi ptr [ @.str.4, %781 ], [ @.str, %777 ]
  store i32 %772, ptr %771, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror(i32 noundef %786, ptr noundef nonnull @.str.3) #8
  %788 = load i32, ptr %785, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror_debug(i32 noundef %788, ptr noundef nonnull @.str.3) #8
  %790 = load i32, ptr %771, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #8
  %792 = load i32, ptr %771, align 4, !tbaa !5
  %793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull %.str.4.sink408, i32 noundef %784, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 91, ptr noundef %787, ptr noundef %789, ptr noundef %791, i32 noundef %792) #10
  call void @exit(i32 noundef 1) #11
  unreachable

794:                                              ; preds = %765
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = load i32, ptr %738, align 8, !tbaa !44
  %798 = icmp eq i32 %797, 1
  br i1 %798, label %823, label %799

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

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

810:                                              ; preds = %806, %799
  br label %811

811:                                              ; preds = %806, %810
  %.str.4.sink419 = phi ptr [ @.str.4, %810 ], [ @.str, %806 ]
  store i32 %801, ptr %800, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror(i32 noundef %815, ptr noundef nonnull @.str.3) #8
  %817 = load i32, ptr %814, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror_debug(i32 noundef %817, ptr noundef nonnull @.str.3) #8
  %819 = load i32, ptr %800, align 4, !tbaa !5
  %820 = call ptr @strerror(i32 noundef %819) #8
  %821 = load i32, ptr %800, align 4, !tbaa !5
  %822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef nonnull %.str.4.sink419, i32 noundef %813, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 92, ptr noundef %816, ptr noundef %818, ptr noundef %820, i32 noundef %821) #10
  call void @exit(i32 noundef 1) #11
  unreachable

823:                                              ; preds = %794
  %824 = add nsw i32 %795, 2
  store i32 %824, ptr @test_count, align 4, !tbaa !5
  %825 = call i32 @s2n_connection_free(ptr noundef nonnull %679) #8
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %851

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

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

838:                                              ; preds = %834, %827
  br label %839

839:                                              ; preds = %834, %838
  %.str.4.sink430 = phi ptr [ @.str.4, %838 ], [ @.str, %834 ]
  store i32 %829, ptr %828, align 4, !tbaa !5
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror(i32 noundef %843, ptr noundef nonnull @.str.3) #8
  %845 = load i32, ptr %842, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror_debug(i32 noundef %845, ptr noundef nonnull @.str.3) #8
  %847 = load i32, ptr %828, align 4, !tbaa !5
  %848 = call ptr @strerror(i32 noundef %847) #8
  %849 = load i32, ptr %828, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %840, ptr noundef nonnull %.str.4.sink430, i32 noundef %841, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 94, ptr noundef %844, ptr noundef %846, ptr noundef %848, i32 noundef %849) #10
  call void @exit(i32 noundef 1) #11
  unreachable

851:                                              ; preds = %823
  %852 = call i32 @s2n_cleanup() #8
  %853 = icmp eq i32 %852, -1
  br i1 %853, label %854, label %878

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

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

865:                                              ; preds = %861, %854
  br label %866

866:                                              ; preds = %861, %865
  %.str.4.sink441 = phi ptr [ @.str.4, %865 ], [ @.str, %861 ]
  store i32 %856, ptr %855, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror(i32 noundef %870, ptr noundef nonnull @.str.3) #8
  %872 = load i32, ptr %869, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror_debug(i32 noundef %872, ptr noundef nonnull @.str.3) #8
  %874 = load i32, ptr %855, align 4, !tbaa !5
  %875 = call ptr @strerror(i32 noundef %874) #8
  %876 = load i32, ptr %855, align 4, !tbaa !5
  %877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef nonnull %.str.4.sink441, i32 noundef %868, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 97, ptr noundef %871, ptr noundef %873, ptr noundef %875, i32 noundef %876) #10
  call void @exit(i32 noundef 1) #11
  unreachable

878:                                              ; preds = %851
  %879 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #8
  %880 = icmp eq i32 %879, -1
  br i1 %880, label %881, label %905

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

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

892:                                              ; preds = %888, %881
  br label %893

893:                                              ; preds = %888, %892
  %.str.4.sink452 = phi ptr [ @.str.4, %892 ], [ @.str, %888 ]
  store i32 %883, ptr %882, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror(i32 noundef %897, ptr noundef nonnull @.str.3) #8
  %899 = load i32, ptr %896, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror_debug(i32 noundef %899, ptr noundef nonnull @.str.3) #8
  %901 = load i32, ptr %882, align 4, !tbaa !5
  %902 = call ptr @strerror(i32 noundef %901) #8
  %903 = load i32, ptr %882, align 4, !tbaa !5
  %904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.4.sink452, i32 noundef %895, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 97, ptr noundef %898, ptr noundef %900, ptr noundef %902, i32 noundef %903) #10
  call void @exit(i32 noundef 1) #11
  unreachable

905:                                              ; preds = %878
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  br i1 %907, label %908, label %919

908:                                              ; preds = %905
  %909 = load ptr, ptr @stdout, align 8, !tbaa !9
  %910 = call i32 @fileno(ptr noundef %909) #8
  %911 = call i32 @isatty(i32 noundef %910) #8
  %.not92 = icmp eq i32 %911, 0
  br i1 %.not92, label %919, label %912

912:                                              ; preds = %908
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not94 = icmp eq i32 %913, 0
  %914 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not94, label %917, label %915

915:                                              ; preds = %912
  %916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull @.str.29, i32 noundef %913) #8
  br label %926

917:                                              ; preds = %912
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull @.str.30) #8
  br label %926

919:                                              ; preds = %908, %905
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not93 = icmp eq i32 %920, 0
  %921 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not93, label %924, label %922

922:                                              ; preds = %919
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef nonnull @.str.31, i32 noundef %920) #8
  br label %926

924:                                              ; preds = %919
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef nonnull @.str.32) #8
  br label %926

926:                                              ; preds = %922, %924, %915, %917
  %927 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  ret i32 0
}

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #1

declare i32 @s2n_init() local_unnamed_addr #1

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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #1

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

declare ptr @s2n_config_new() local_unnamed_addr #1

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #1

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

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_cleanup() local_unnamed_addr #1

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

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

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


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