; LLVM IR from aws/s2n-tls :: tests/unit (s2n_self_talk_broken_pipe_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_test_io_pair = type { i32, 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 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [82 x i8], align 1
@certificate_paths = external hidden global [2 x ptr], align 16
@.str.15 = external hidden unnamed_addr constant [94 x i8], align 1
@private_key_paths = external hidden global [2 x ptr], align 16
@.str.16 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @mock_client(ptr noundef) #0

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

declare i32 @sleep(i32 noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare ptr @s2n_config_new() #2

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

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

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

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

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

; 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 ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [12000 x i8], align 16
  %11 = alloca [12000 x i8], align 16
  %12 = alloca [12000 x i8], align 16
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [2 x ptr], align 16
  %19 = alloca %struct.s2n_test_io_pair, 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 i32, align 4
  %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 [1 x i8], align 1
  %40 = alloca i64, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  store i32 0, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12000, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 12000, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 12000, ptr %12) #8
  br label %56

56:                                               ; preds = %2
  br label %57

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

62:                                               ; preds = %57
  %63 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %65, label %118

65:                                               ; preds = %62
  br label %66

66:                                               ; preds = %65
  br label %67

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

74:                                               ; preds = %67
  %75 = load ptr, ptr @stderr, align 8, !tbaa !9
  %76 = call i32 @fileno(ptr noundef %75) #8
  %77 = call i32 @isatty(i32 noundef %76) #8
  %78 = icmp ne i32 %77, 0
  br i1 %78, label %79, label %96

79:                                               ; preds = %74
  %80 = load i32, ptr %13, align 4, !tbaa !5
  %81 = call ptr @__errno_location() #9
  store i32 %80, ptr %81, align 4, !tbaa !5
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = load i32, ptr @test_count, align 4, !tbaa !5
  %84 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = call ptr @s2n_strerror(i32 noundef %85, ptr noundef @.str.4)
  %87 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = call ptr @s2n_strerror_debug(i32 noundef %88, ptr noundef @.str.4)
  %90 = call ptr @__errno_location() #9
  %91 = load i32, ptr %90, align 4, !tbaa !5
  %92 = call ptr @strerror(i32 noundef %91) #8
  %93 = call ptr @__errno_location() #9
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef @.str.2, i32 noundef %83, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 100, ptr noundef %86, ptr noundef %89, ptr noundef %92, i32 noundef %94) #8
  br label %113

96:                                               ; preds = %74, %67
  %97 = load i32, ptr %13, align 4, !tbaa !5
  %98 = call ptr @__errno_location() #9
  store i32 %97, ptr %98, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = call ptr @s2n_strerror(i32 noundef %102, ptr noundef @.str.4)
  %104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = call ptr @s2n_strerror_debug(i32 noundef %105, ptr noundef @.str.4)
  %107 = call ptr @__errno_location() #9
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = call ptr @strerror(i32 noundef %108) #8
  %110 = call ptr @__errno_location() #9
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %99, ptr noundef @.str.5, i32 noundef %100, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 100, ptr noundef %103, ptr noundef %106, ptr noundef %109, i32 noundef %111) #8
  br label %113

113:                                              ; preds = %96, %79
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %114

114:                                              ; preds = %113
  br label %115

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

116:                                              ; No predecessors!
  br label %117

117:                                              ; preds = %116
  br label %118

118:                                              ; preds = %117, %62
  br label %119

119:                                              ; preds = %118
  br label %120

120:                                              ; preds = %119
  br label %121

121:                                              ; preds = %120
  %122 = load i32, ptr @test_count, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr @test_count, align 4, !tbaa !5
  %124 = call i32 @s2n_enable_atexit()
  %125 = icmp eq i32 %124, -1
  br i1 %125, label %126, label %179

126:                                              ; preds = %121
  br label %127

127:                                              ; preds = %126
  br label %128

128:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %129 = call ptr @__errno_location() #9
  %130 = load i32, ptr %129, align 4, !tbaa !5
  store i32 %130, ptr %14, align 4, !tbaa !5
  %131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %132 = call i32 @s2n_print_stacktrace(ptr noundef %131)
  %133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %134 = trunc i8 %133 to i1
  br i1 %134, label %135, label %157

135:                                              ; preds = %128
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = call i32 @fileno(ptr noundef %136) #8
  %138 = call i32 @isatty(i32 noundef %137) #8
  %139 = icmp ne i32 %138, 0
  br i1 %139, label %140, label %157

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

157:                                              ; preds = %135, %128
  %158 = load i32, ptr %14, align 4, !tbaa !5
  %159 = call ptr @__errno_location() #9
  store i32 %158, ptr %159, align 4, !tbaa !5
  %160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @s2n_strerror(i32 noundef %163, ptr noundef @.str.4)
  %165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call ptr @s2n_strerror_debug(i32 noundef %166, ptr noundef @.str.4)
  %168 = call ptr @__errno_location() #9
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @strerror(i32 noundef %169) #8
  %171 = call ptr @__errno_location() #9
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef @.str.5, i32 noundef %161, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 100, ptr noundef %164, ptr noundef %167, ptr noundef %170, i32 noundef %172) #8
  br label %174

174:                                              ; preds = %157, %140
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %175

175:                                              ; preds = %174
  br label %176

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

177:                                              ; No predecessors!
  br label %178

178:                                              ; preds = %177
  br label %179

179:                                              ; preds = %178, %121
  br label %180

180:                                              ; preds = %179
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  br label %184

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

187:                                              ; preds = %184
  br label %188

188:                                              ; preds = %187
  br label %189

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

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

201:                                              ; preds = %196
  %202 = load i32, ptr %15, align 4, !tbaa !5
  %203 = call ptr @__errno_location() #9
  store i32 %202, ptr %203, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %207, ptr noundef @.str.4)
  %209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror_debug(i32 noundef %210, ptr noundef @.str.4)
  %212 = call ptr @__errno_location() #9
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = call ptr @strerror(i32 noundef %213) #8
  %215 = call ptr @__errno_location() #9
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef @.str.2, i32 noundef %205, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 100, ptr noundef %208, ptr noundef %211, ptr noundef %214, i32 noundef %216) #8
  br label %235

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

235:                                              ; preds = %218, %201
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %236

236:                                              ; preds = %235
  br label %237

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

238:                                              ; No predecessors!
  br label %239

239:                                              ; preds = %238
  br label %240

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

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242
  br label %244

244:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  store i32 0, ptr %16, align 4, !tbaa !5
  br label %245

245:                                              ; preds = %2104, %244
  %246 = load i32, ptr %16, align 4, !tbaa !5
  %247 = icmp sle i32 %246, 1
  br i1 %247, label %249, label %248

248:                                              ; preds = %245
  store i32 24, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %2107

249:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  call void @llvm.memset.p0.i64(ptr align 4 %19, i8 0, i64 8, i1 false)
  br label %250

250:                                              ; preds = %249
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr @test_count, align 4, !tbaa !5
  %253 = call i32 @s2n_io_pair_init(ptr noundef %19)
  %254 = icmp eq i32 %253, -1
  br i1 %254, label %255, label %308

255:                                              ; preds = %250
  br label %256

256:                                              ; preds = %255
  br label %257

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

264:                                              ; preds = %257
  %265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %266 = call i32 @fileno(ptr noundef %265) #8
  %267 = call i32 @isatty(i32 noundef %266) #8
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %286

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

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

303:                                              ; preds = %286, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %304

304:                                              ; preds = %303
  br label %305

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

306:                                              ; No predecessors!
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307, %250
  br label %309

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %311 = call i32 @fork() #8
  store i32 %311, ptr %21, align 4, !tbaa !5
  %312 = load i32, ptr %21, align 4, !tbaa !5
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %314, label %376

314:                                              ; preds = %310
  br label %315

315:                                              ; preds = %314
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  %318 = call i32 @s2n_io_pair_close_one_end(ptr noundef %19, i32 noundef 0)
  %319 = icmp eq i32 %318, -1
  br i1 %319, label %320, label %373

320:                                              ; preds = %315
  br label %321

321:                                              ; preds = %320
  br label %322

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

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

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

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

368:                                              ; preds = %351, %334
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %369

369:                                              ; preds = %368
  br label %370

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

371:                                              ; No predecessors!
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372, %315
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374
  call void @mock_client(ptr noundef %19)
  br label %376

376:                                              ; preds = %375, %310
  br label %377

377:                                              ; preds = %376
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr @test_count, align 4, !tbaa !5
  %380 = call i32 @s2n_io_pair_close_one_end(ptr noundef %19, i32 noundef 1)
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %435

382:                                              ; preds = %377
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %385 = call ptr @__errno_location() #9
  %386 = load i32, ptr %385, align 4, !tbaa !5
  store i32 %386, ptr %23, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @s2n_print_stacktrace(ptr noundef %387)
  %389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %390 = trunc i8 %389 to i1
  br i1 %390, label %391, label %413

391:                                              ; preds = %384
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @fileno(ptr noundef %392) #8
  %394 = call i32 @isatty(i32 noundef %393) #8
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %396, label %413

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

413:                                              ; preds = %391, %384
  %414 = load i32, ptr %23, align 4, !tbaa !5
  %415 = call ptr @__errno_location() #9
  store i32 %414, ptr %415, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef @.str.4)
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef @.str.4)
  %424 = call ptr @__errno_location() #9
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #8
  %427 = call ptr @__errno_location() #9
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef @.str.5, i32 noundef %417, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 120, ptr noundef %420, ptr noundef %423, ptr noundef %426, i32 noundef %428) #8
  br label %430

430:                                              ; preds = %413, %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %431

431:                                              ; preds = %430
  br label %432

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

433:                                              ; No predecessors!
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434, %377
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %441, ptr %6, align 8, !tbaa !9
  %442 = icmp eq ptr %441, null
  br i1 %442, label %443, label %496

443:                                              ; preds = %438
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %446 = call ptr @__errno_location() #9
  %447 = load i32, ptr %446, align 4, !tbaa !5
  store i32 %447, ptr %24, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448)
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc i8 %450 to i1
  br i1 %451, label %452, label %474

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

457:                                              ; preds = %452
  %458 = load i32, ptr %24, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #9
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef @.str.4)
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef @.str.4)
  %468 = call ptr @__errno_location() #9
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #8
  %471 = call ptr @__errno_location() #9
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.2, i32 noundef %461, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 122, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #8
  br label %491

474:                                              ; preds = %452, %445
  %475 = load i32, ptr %24, align 4, !tbaa !5
  %476 = call ptr @__errno_location() #9
  store i32 %475, ptr %476, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror(i32 noundef %480, ptr noundef @.str.4)
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror_debug(i32 noundef %483, ptr noundef @.str.4)
  %485 = call ptr @__errno_location() #9
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @strerror(i32 noundef %486) #8
  %488 = call ptr @__errno_location() #9
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef @.str.5, i32 noundef %478, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 122, ptr noundef %481, ptr noundef %484, ptr noundef %487, i32 noundef %489) #8
  br label %491

491:                                              ; preds = %474, %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %492

492:                                              ; preds = %491
  br label %493

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

494:                                              ; No predecessors!
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495, %438
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  %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 = call ptr @s2n_config_new()
  store ptr %502, ptr %7, align 8, !tbaa !9
  %503 = icmp eq ptr %502, null
  br i1 %503, label %504, label %557

504:                                              ; preds = %499
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %507 = call ptr @__errno_location() #9
  %508 = load i32, ptr %507, align 4, !tbaa !5
  store i32 %508, ptr %25, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = call i32 @s2n_print_stacktrace(ptr noundef %509)
  %511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %512 = trunc i8 %511 to i1
  br i1 %512, label %513, label %535

513:                                              ; preds = %506
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @fileno(ptr noundef %514) #8
  %516 = call i32 @isatty(i32 noundef %515) #8
  %517 = icmp ne i32 %516, 0
  br i1 %517, label %518, label %535

518:                                              ; preds = %513
  %519 = load i32, ptr %25, align 4, !tbaa !5
  %520 = call ptr @__errno_location() #9
  store i32 %519, ptr %520, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror(i32 noundef %524, ptr noundef @.str.4)
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror_debug(i32 noundef %527, ptr noundef @.str.4)
  %529 = call ptr @__errno_location() #9
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #8
  %532 = call ptr @__errno_location() #9
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef @.str.2, i32 noundef %522, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 124, ptr noundef %525, ptr noundef %528, ptr noundef %531, i32 noundef %533) #8
  br label %552

535:                                              ; preds = %513, %506
  %536 = load i32, ptr %25, align 4, !tbaa !5
  %537 = call ptr @__errno_location() #9
  store i32 %536, ptr %537, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror(i32 noundef %541, ptr noundef @.str.4)
  %543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror_debug(i32 noundef %544, ptr noundef @.str.4)
  %546 = call ptr @__errno_location() #9
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call ptr @strerror(i32 noundef %547) #8
  %549 = call ptr @__errno_location() #9
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef @.str.5, i32 noundef %539, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 124, ptr noundef %542, ptr noundef %545, ptr noundef %548, i32 noundef %550) #8
  br label %552

552:                                              ; preds = %535, %518
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %553

553:                                              ; preds = %552
  br label %554

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

555:                                              ; No predecessors!
  br label %556

556:                                              ; preds = %555
  br label %557

557:                                              ; preds = %556, %499
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  %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 = load ptr, ptr %7, align 8, !tbaa !9
  %564 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %563, ptr noundef @.str.13)
  %565 = icmp eq i32 %564, -1
  br i1 %565, label %566, label %619

566:                                              ; preds = %560
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %569 = call ptr @__errno_location() #9
  %570 = load i32, ptr %569, align 4, !tbaa !5
  store i32 %570, ptr %26, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = call i32 @s2n_print_stacktrace(ptr noundef %571)
  %573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %574 = trunc i8 %573 to i1
  br i1 %574, label %575, label %597

575:                                              ; preds = %568
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @fileno(ptr noundef %576) #8
  %578 = call i32 @isatty(i32 noundef %577) #8
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %597

580:                                              ; preds = %575
  %581 = load i32, ptr %26, align 4, !tbaa !5
  %582 = call ptr @__errno_location() #9
  store i32 %581, ptr %582, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror(i32 noundef %586, ptr noundef @.str.4)
  %588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef @.str.4)
  %591 = call ptr @__errno_location() #9
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = call ptr @strerror(i32 noundef %592) #8
  %594 = call ptr @__errno_location() #9
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef @.str.2, i32 noundef %584, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 125, ptr noundef %587, ptr noundef %590, ptr noundef %593, i32 noundef %595) #8
  br label %614

597:                                              ; preds = %575, %568
  %598 = load i32, ptr %26, align 4, !tbaa !5
  %599 = call ptr @__errno_location() #9
  store i32 %598, ptr %599, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef @.str.4)
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror_debug(i32 noundef %606, ptr noundef @.str.4)
  %608 = call ptr @__errno_location() #9
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @strerror(i32 noundef %609) #8
  %611 = call ptr @__errno_location() #9
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef @.str.5, i32 noundef %601, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 125, ptr noundef %604, ptr noundef %607, ptr noundef %610, i32 noundef %612) #8
  br label %614

614:                                              ; preds = %597, %580
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %615

615:                                              ; preds = %614
  br label %616

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

617:                                              ; No predecessors!
  br label %618

618:                                              ; preds = %617
  br label %619

619:                                              ; preds = %618, %560
  br label %620

620:                                              ; preds = %619
  br label %621

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

622:                                              ; preds = %956, %621
  %623 = load i32, ptr %27, align 4, !tbaa !5
  %624 = icmp slt i32 %623, 2
  br i1 %624, label %626, label %625

625:                                              ; preds = %622
  store i32 63, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %959

626:                                              ; preds = %622
  br label %627

627:                                              ; preds = %626
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr @test_count, align 4, !tbaa !5
  %630 = load i32, ptr %27, align 4, !tbaa !5
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds [2 x ptr], ptr @certificate_paths, i64 0, i64 %631
  %633 = load ptr, ptr %632, align 8, !tbaa !9
  %634 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %635 = call i32 @s2n_read_test_pem(ptr noundef %633, ptr noundef %634, i64 noundef 12000)
  %636 = icmp eq i32 %635, -1
  br i1 %636, label %637, label %690

637:                                              ; preds = %627
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %640 = call ptr @__errno_location() #9
  %641 = load i32, ptr %640, align 4, !tbaa !5
  store i32 %641, ptr %28, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @s2n_print_stacktrace(ptr noundef %642)
  %644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %645 = trunc i8 %644 to i1
  br i1 %645, label %646, label %668

646:                                              ; preds = %639
  %647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %648 = call i32 @fileno(ptr noundef %647) #8
  %649 = call i32 @isatty(i32 noundef %648) #8
  %650 = icmp ne i32 %649, 0
  br i1 %650, label %651, label %668

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

668:                                              ; preds = %646, %639
  %669 = load i32, ptr %28, align 4, !tbaa !5
  %670 = call ptr @__errno_location() #9
  store i32 %669, ptr %670, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror(i32 noundef %674, ptr noundef @.str.4)
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef @.str.4)
  %679 = call ptr @__errno_location() #9
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #8
  %682 = call ptr @__errno_location() #9
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef @.str.5, i32 noundef %672, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 127, ptr noundef %675, ptr noundef %678, ptr noundef %681, i32 noundef %683) #8
  br label %685

685:                                              ; preds = %668, %651
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %686

686:                                              ; preds = %685
  br label %687

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

688:                                              ; No predecessors!
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689, %627
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr @test_count, align 4, !tbaa !5
  %696 = load i32, ptr %27, align 4, !tbaa !5
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds [2 x ptr], ptr @private_key_paths, i64 0, i64 %697
  %699 = load ptr, ptr %698, align 8, !tbaa !9
  %700 = getelementptr inbounds [12000 x i8], ptr %11, i64 0, i64 0
  %701 = call i32 @s2n_read_test_pem(ptr noundef %699, ptr noundef %700, i64 noundef 12000)
  %702 = icmp eq i32 %701, -1
  br i1 %702, label %703, label %756

703:                                              ; preds = %693
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %706 = call ptr @__errno_location() #9
  %707 = load i32, ptr %706, align 4, !tbaa !5
  store i32 %707, ptr %29, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708)
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc i8 %710 to i1
  br i1 %711, label %712, label %734

712:                                              ; preds = %705
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #8
  %715 = call i32 @isatty(i32 noundef %714) #8
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %734

717:                                              ; preds = %712
  %718 = load i32, ptr %29, align 4, !tbaa !5
  %719 = call ptr @__errno_location() #9
  store i32 %718, ptr %719, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef @.str.4)
  %725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror_debug(i32 noundef %726, ptr noundef @.str.4)
  %728 = call ptr @__errno_location() #9
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = call ptr @strerror(i32 noundef %729) #8
  %731 = call ptr @__errno_location() #9
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %720, ptr noundef @.str.2, i32 noundef %721, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 128, ptr noundef %724, ptr noundef %727, ptr noundef %730, i32 noundef %732) #8
  br label %751

734:                                              ; preds = %712, %705
  %735 = load i32, ptr %29, align 4, !tbaa !5
  %736 = call ptr @__errno_location() #9
  store i32 %735, ptr %736, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror(i32 noundef %740, ptr noundef @.str.4)
  %742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror_debug(i32 noundef %743, ptr noundef @.str.4)
  %745 = call ptr @__errno_location() #9
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #8
  %748 = call ptr @__errno_location() #9
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef @.str.5, i32 noundef %738, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 128, ptr noundef %741, ptr noundef %744, ptr noundef %747, i32 noundef %749) #8
  br label %751

751:                                              ; preds = %734, %717
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %752

752:                                              ; preds = %751
  br label %753

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

754:                                              ; No predecessors!
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755, %693
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr @test_count, align 4, !tbaa !5
  %762 = call ptr @s2n_cert_chain_and_key_new()
  %763 = load i32, ptr %27, align 4, !tbaa !5
  %764 = sext i32 %763 to i64
  %765 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %764
  store ptr %762, ptr %765, align 8, !tbaa !9
  %766 = icmp eq ptr %762, null
  br i1 %766, label %767, label %820

767:                                              ; preds = %759
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %770 = call ptr @__errno_location() #9
  %771 = load i32, ptr %770, align 4, !tbaa !5
  store i32 %771, ptr %30, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @s2n_print_stacktrace(ptr noundef %772)
  %774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %775 = trunc i8 %774 to i1
  br i1 %775, label %776, label %798

776:                                              ; preds = %769
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @fileno(ptr noundef %777) #8
  %779 = call i32 @isatty(i32 noundef %778) #8
  %780 = icmp ne i32 %779, 0
  br i1 %780, label %781, label %798

781:                                              ; preds = %776
  %782 = load i32, ptr %30, align 4, !tbaa !5
  %783 = call ptr @__errno_location() #9
  store i32 %782, ptr %783, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef @.str.4)
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror_debug(i32 noundef %790, ptr noundef @.str.4)
  %792 = call ptr @__errno_location() #9
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #8
  %795 = call ptr @__errno_location() #9
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef @.str.2, i32 noundef %785, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 129, ptr noundef %788, ptr noundef %791, ptr noundef %794, i32 noundef %796) #8
  br label %815

798:                                              ; preds = %776, %769
  %799 = load i32, ptr %30, align 4, !tbaa !5
  %800 = call ptr @__errno_location() #9
  store i32 %799, ptr %800, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef @.str.4)
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef @.str.4)
  %809 = call ptr @__errno_location() #9
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @strerror(i32 noundef %810) #8
  %812 = call ptr @__errno_location() #9
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef @.str.5, i32 noundef %802, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 129, ptr noundef %805, ptr noundef %808, ptr noundef %811, i32 noundef %813) #8
  br label %815

815:                                              ; preds = %798, %781
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %816

816:                                              ; preds = %815
  br label %817

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

818:                                              ; No predecessors!
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819, %759
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %825 = add nsw i32 %824, 1
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = load i32, ptr %27, align 4, !tbaa !5
  %827 = sext i32 %826 to i64
  %828 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %827
  %829 = load ptr, ptr %828, align 8, !tbaa !9
  %830 = getelementptr inbounds [12000 x i8], ptr %10, i64 0, i64 0
  %831 = getelementptr inbounds [12000 x i8], ptr %11, i64 0, i64 0
  %832 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %829, ptr noundef %830, ptr noundef %831)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %887

834:                                              ; preds = %823
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %837 = call ptr @__errno_location() #9
  %838 = load i32, ptr %837, align 4, !tbaa !5
  store i32 %838, ptr %31, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839)
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc i8 %841 to i1
  br i1 %842, label %843, label %865

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #8
  %846 = call i32 @isatty(i32 noundef %845) #8
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %865

848:                                              ; preds = %843
  %849 = load i32, ptr %31, align 4, !tbaa !5
  %850 = call ptr @__errno_location() #9
  store i32 %849, ptr %850, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef @.str.4)
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef @.str.4)
  %859 = call ptr @__errno_location() #9
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #8
  %862 = call ptr @__errno_location() #9
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef @.str.2, i32 noundef %852, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 130, ptr noundef %855, ptr noundef %858, ptr noundef %861, i32 noundef %863) #8
  br label %882

865:                                              ; preds = %843, %836
  %866 = load i32, ptr %31, align 4, !tbaa !5
  %867 = call ptr @__errno_location() #9
  store i32 %866, ptr %867, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef @.str.4)
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef @.str.4)
  %876 = call ptr @__errno_location() #9
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @strerror(i32 noundef %877) #8
  %879 = call ptr @__errno_location() #9
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef @.str.5, i32 noundef %869, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 130, ptr noundef %872, ptr noundef %875, ptr noundef %878, i32 noundef %880) #8
  br label %882

882:                                              ; preds = %865, %848
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %883

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886, %823
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = load ptr, ptr %7, align 8, !tbaa !9
  %894 = load i32, ptr %27, align 4, !tbaa !5
  %895 = sext i32 %894 to i64
  %896 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %895
  %897 = load ptr, ptr %896, align 8, !tbaa !9
  %898 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %893, ptr noundef %897)
  %899 = icmp eq i32 %898, -1
  br i1 %899, label %900, label %953

900:                                              ; preds = %890
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %903 = call ptr @__errno_location() #9
  %904 = load i32, ptr %903, align 4, !tbaa !5
  store i32 %904, ptr %32, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @s2n_print_stacktrace(ptr noundef %905)
  %907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %908 = trunc i8 %907 to i1
  br i1 %908, label %909, label %931

909:                                              ; preds = %902
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @fileno(ptr noundef %910) #8
  %912 = call i32 @isatty(i32 noundef %911) #8
  %913 = icmp ne i32 %912, 0
  br i1 %913, label %914, label %931

914:                                              ; preds = %909
  %915 = load i32, ptr %32, align 4, !tbaa !5
  %916 = call ptr @__errno_location() #9
  store i32 %915, ptr %916, align 4, !tbaa !5
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror(i32 noundef %920, ptr noundef @.str.4)
  %922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror_debug(i32 noundef %923, ptr noundef @.str.4)
  %925 = call ptr @__errno_location() #9
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @strerror(i32 noundef %926) #8
  %928 = call ptr @__errno_location() #9
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %917, ptr noundef @.str.2, i32 noundef %918, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 131, ptr noundef %921, ptr noundef %924, ptr noundef %927, i32 noundef %929) #8
  br label %948

931:                                              ; preds = %909, %902
  %932 = load i32, ptr %32, align 4, !tbaa !5
  %933 = call ptr @__errno_location() #9
  store i32 %932, ptr %933, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %937 = load i32, ptr %936, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror(i32 noundef %937, ptr noundef @.str.4)
  %939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror_debug(i32 noundef %940, ptr noundef @.str.4)
  %942 = call ptr @__errno_location() #9
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @strerror(i32 noundef %943) #8
  %945 = call ptr @__errno_location() #9
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %934, ptr noundef @.str.5, i32 noundef %935, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 131, ptr noundef %938, ptr noundef %941, ptr noundef %944, i32 noundef %946) #8
  br label %948

948:                                              ; preds = %931, %914
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %949

949:                                              ; preds = %948
  br label %950

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

951:                                              ; No predecessors!
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952, %890
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955
  %957 = load i32, ptr %27, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr %27, align 4, !tbaa !5
  br label %622, !llvm.loop !15

959:                                              ; preds = %625
  %960 = load i32, ptr %16, align 4, !tbaa !5
  %961 = icmp ne i32 %960, 0
  br i1 %961, label %962, label %1088

962:                                              ; preds = %959
  br label %963

963:                                              ; preds = %962
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = getelementptr inbounds [12000 x i8], ptr %12, i64 0, i64 0
  %967 = call i32 @s2n_read_test_pem(ptr noundef @.str.20, ptr noundef %966, i64 noundef 12000)
  %968 = icmp eq i32 %967, -1
  br i1 %968, label %969, label %1022

969:                                              ; preds = %963
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %972 = call ptr @__errno_location() #9
  %973 = load i32, ptr %972, align 4, !tbaa !5
  store i32 %973, ptr %33, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @s2n_print_stacktrace(ptr noundef %974)
  %976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %977 = trunc i8 %976 to i1
  br i1 %977, label %978, label %1000

978:                                              ; preds = %971
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = call i32 @fileno(ptr noundef %979) #8
  %981 = call i32 @isatty(i32 noundef %980) #8
  %982 = icmp ne i32 %981, 0
  br i1 %982, label %983, label %1000

983:                                              ; preds = %978
  %984 = load i32, ptr %33, align 4, !tbaa !5
  %985 = call ptr @__errno_location() #9
  store i32 %984, ptr %985, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = load i32, ptr @test_count, align 4, !tbaa !5
  %988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror(i32 noundef %989, ptr noundef @.str.4)
  %991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror_debug(i32 noundef %992, ptr noundef @.str.4)
  %994 = call ptr @__errno_location() #9
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #8
  %997 = call ptr @__errno_location() #9
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %986, ptr noundef @.str.2, i32 noundef %987, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 135, ptr noundef %990, ptr noundef %993, ptr noundef %996, i32 noundef %998) #8
  br label %1017

1000:                                             ; preds = %978, %971
  %1001 = load i32, ptr %33, align 4, !tbaa !5
  %1002 = call ptr @__errno_location() #9
  store i32 %1001, ptr %1002, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror(i32 noundef %1006, ptr noundef @.str.4)
  %1008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @s2n_strerror_debug(i32 noundef %1009, ptr noundef @.str.4)
  %1011 = call ptr @__errno_location() #9
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call ptr @strerror(i32 noundef %1012) #8
  %1014 = call ptr @__errno_location() #9
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef @.str.5, i32 noundef %1004, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 135, ptr noundef %1007, ptr noundef %1010, ptr noundef %1013, i32 noundef %1015) #8
  br label %1017

1017:                                             ; preds = %1000, %983
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

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

1020:                                             ; No predecessors!
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021, %963
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = load ptr, ptr %7, align 8, !tbaa !9
  %1029 = getelementptr inbounds [12000 x i8], ptr %12, i64 0, i64 0
  %1030 = call i32 @s2n_config_add_dhparams(ptr noundef %1028, ptr noundef %1029)
  %1031 = icmp eq i32 %1030, -1
  br i1 %1031, label %1032, label %1085

1032:                                             ; preds = %1025
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

1034:                                             ; preds = %1033
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1035 = call ptr @__errno_location() #9
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  store i32 %1036, ptr %34, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @s2n_print_stacktrace(ptr noundef %1037)
  %1039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1040 = trunc i8 %1039 to i1
  br i1 %1040, label %1041, label %1063

1041:                                             ; preds = %1034
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @fileno(ptr noundef %1042) #8
  %1044 = call i32 @isatty(i32 noundef %1043) #8
  %1045 = icmp ne i32 %1044, 0
  br i1 %1045, label %1046, label %1063

1046:                                             ; preds = %1041
  %1047 = load i32, ptr %34, align 4, !tbaa !5
  %1048 = call ptr @__errno_location() #9
  store i32 %1047, ptr %1048, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef @.str.4)
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef @.str.4)
  %1057 = call ptr @__errno_location() #9
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #8
  %1060 = call ptr @__errno_location() #9
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef @.str.2, i32 noundef %1050, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1053, ptr noundef %1056, ptr noundef %1059, i32 noundef %1061) #8
  br label %1080

1063:                                             ; preds = %1041, %1034
  %1064 = load i32, ptr %34, align 4, !tbaa !5
  %1065 = call ptr @__errno_location() #9
  store i32 %1064, ptr %1065, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef @.str.4)
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror_debug(i32 noundef %1072, ptr noundef @.str.4)
  %1074 = call ptr @__errno_location() #9
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @strerror(i32 noundef %1075) #8
  %1077 = call ptr @__errno_location() #9
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1066, ptr noundef @.str.5, i32 noundef %1067, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1070, ptr noundef %1073, ptr noundef %1076, i32 noundef %1078) #8
  br label %1080

1080:                                             ; preds = %1063, %1046
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

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

1083:                                             ; No predecessors!
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084, %1025
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087, %959
  br label %1089

1089:                                             ; preds = %1088
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = add nsw i32 %1090, 1
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = load ptr, ptr %6, align 8, !tbaa !9
  %1093 = load ptr, ptr %7, align 8, !tbaa !9
  %1094 = call i32 @s2n_connection_set_config(ptr noundef %1092, ptr noundef %1093)
  %1095 = icmp eq i32 %1094, -1
  br i1 %1095, label %1096, label %1149

1096:                                             ; preds = %1089
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1099 = call ptr @__errno_location() #9
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  store i32 %1100, ptr %35, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @s2n_print_stacktrace(ptr noundef %1101)
  %1103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc i8 %1103 to i1
  br i1 %1104, label %1105, label %1127

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

1110:                                             ; preds = %1105
  %1111 = load i32, ptr %35, align 4, !tbaa !5
  %1112 = call ptr @__errno_location() #9
  store i32 %1111, ptr %1112, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror(i32 noundef %1116, ptr noundef @.str.4)
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef @.str.4)
  %1121 = call ptr @__errno_location() #9
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @strerror(i32 noundef %1122) #8
  %1124 = call ptr @__errno_location() #9
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef @.str.2, i32 noundef %1114, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1117, ptr noundef %1120, ptr noundef %1123, i32 noundef %1125) #8
  br label %1144

1127:                                             ; preds = %1105, %1098
  %1128 = load i32, ptr %35, align 4, !tbaa !5
  %1129 = call ptr @__errno_location() #9
  store i32 %1128, ptr %1129, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef @.str.4)
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror_debug(i32 noundef %1136, ptr noundef @.str.4)
  %1138 = call ptr @__errno_location() #9
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #8
  %1141 = call ptr @__errno_location() #9
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef @.str.5, i32 noundef %1131, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 139, ptr noundef %1134, ptr noundef %1137, ptr noundef %1140, i32 noundef %1142) #8
  br label %1144

1144:                                             ; preds = %1127, %1110
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

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

1147:                                             ; No predecessors!
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148, %1089
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr @test_count, align 4, !tbaa !5
  %1155 = load ptr, ptr %6, align 8, !tbaa !9
  %1156 = call i32 @s2n_connection_set_io_pair(ptr noundef %1155, ptr noundef %19)
  %1157 = icmp eq i32 %1156, -1
  br i1 %1157, label %1158, label %1211

1158:                                             ; preds = %1152
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1161 = call ptr @__errno_location() #9
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  store i32 %1162, ptr %36, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @s2n_print_stacktrace(ptr noundef %1163)
  %1165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1166 = trunc i8 %1165 to i1
  br i1 %1166, label %1167, label %1189

1167:                                             ; preds = %1160
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @fileno(ptr noundef %1168) #8
  %1170 = call i32 @isatty(i32 noundef %1169) #8
  %1171 = icmp ne i32 %1170, 0
  br i1 %1171, label %1172, label %1189

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

1189:                                             ; preds = %1167, %1160
  %1190 = load i32, ptr %36, align 4, !tbaa !5
  %1191 = call ptr @__errno_location() #9
  store i32 %1190, ptr %1191, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef @.str.4)
  %1197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef @.str.4)
  %1200 = call ptr @__errno_location() #9
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #8
  %1203 = call ptr @__errno_location() #9
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef @.str.5, i32 noundef %1193, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1196, ptr noundef %1199, ptr noundef %1202, i32 noundef %1204) #8
  br label %1206

1206:                                             ; preds = %1189, %1172
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

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

1209:                                             ; No predecessors!
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210, %1152
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = add nsw i32 %1215, 1
  store i32 %1216, ptr @test_count, align 4, !tbaa !5
  %1217 = load ptr, ptr %6, align 8, !tbaa !9
  %1218 = call i32 @s2n_negotiate(ptr noundef %1217, ptr noundef %8)
  %1219 = icmp eq i32 %1218, -1
  br i1 %1219, label %1220, label %1273

1220:                                             ; preds = %1214
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

1222:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1223 = call ptr @__errno_location() #9
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  store i32 %1224, ptr %37, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @s2n_print_stacktrace(ptr noundef %1225)
  %1227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1228 = trunc i8 %1227 to i1
  br i1 %1228, label %1229, label %1251

1229:                                             ; preds = %1222
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @fileno(ptr noundef %1230) #8
  %1232 = call i32 @isatty(i32 noundef %1231) #8
  %1233 = icmp ne i32 %1232, 0
  br i1 %1233, label %1234, label %1251

1234:                                             ; preds = %1229
  %1235 = load i32, ptr %37, align 4, !tbaa !5
  %1236 = call ptr @__errno_location() #9
  store i32 %1235, ptr %1236, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef @.str.4)
  %1245 = call ptr @__errno_location() #9
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #8
  %1248 = call ptr @__errno_location() #9
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1237, ptr noundef @.str.2, i32 noundef %1238, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1241, ptr noundef %1244, ptr noundef %1247, i32 noundef %1249) #8
  br label %1268

1251:                                             ; preds = %1229, %1222
  %1252 = load i32, ptr %37, align 4, !tbaa !5
  %1253 = call ptr @__errno_location() #9
  store i32 %1252, ptr %1253, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %1256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef @.str.4)
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef @.str.4)
  %1262 = call ptr @__errno_location() #9
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #8
  %1265 = call ptr @__errno_location() #9
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1254, ptr noundef @.str.5, i32 noundef %1255, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1258, ptr noundef %1261, ptr noundef %1264, i32 noundef %1266) #8
  br label %1268

1268:                                             ; preds = %1251, %1234
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

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

1271:                                             ; No predecessors!
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272, %1214
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = load ptr, ptr %6, align 8, !tbaa !9
  %1280 = getelementptr inbounds %struct.s2n_connection, ptr %1279, i32 0, i32 23
  %1281 = load i8, ptr %1280, align 4, !tbaa !17
  %1282 = zext i8 %1281 to i32
  %1283 = icmp eq i32 %1282, 33
  br i1 %1283, label %1337, label %1284

1284:                                             ; preds = %1276
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1287 = call ptr @__errno_location() #9
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  store i32 %1288, ptr %38, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = call i32 @s2n_print_stacktrace(ptr noundef %1289)
  %1291 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1292 = trunc i8 %1291 to i1
  br i1 %1292, label %1293, label %1315

1293:                                             ; preds = %1286
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = call i32 @fileno(ptr noundef %1294) #8
  %1296 = call i32 @isatty(i32 noundef %1295) #8
  %1297 = icmp ne i32 %1296, 0
  br i1 %1297, label %1298, label %1315

1298:                                             ; preds = %1293
  %1299 = load i32, ptr %38, align 4, !tbaa !5
  %1300 = call ptr @__errno_location() #9
  store i32 %1299, ptr %1300, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef @.str.4)
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror_debug(i32 noundef %1307, ptr noundef @.str.4)
  %1309 = call ptr @__errno_location() #9
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @strerror(i32 noundef %1310) #8
  %1312 = call ptr @__errno_location() #9
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1301, ptr noundef @.str.2, i32 noundef %1302, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1305, ptr noundef %1308, ptr noundef %1311, i32 noundef %1313) #8
  br label %1332

1315:                                             ; preds = %1293, %1286
  %1316 = load i32, ptr %38, align 4, !tbaa !5
  %1317 = call ptr @__errno_location() #9
  store i32 %1316, ptr %1317, align 4, !tbaa !5
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef @.str.4)
  %1323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror_debug(i32 noundef %1324, ptr noundef @.str.4)
  %1326 = call ptr @__errno_location() #9
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call ptr @strerror(i32 noundef %1327) #8
  %1329 = call ptr @__errno_location() #9
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1318, ptr noundef @.str.5, i32 noundef %1319, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1322, ptr noundef %1325, ptr noundef %1328, i32 noundef %1330) #8
  br label %1332

1332:                                             ; preds = %1315, %1298
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

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

1335:                                             ; No predecessors!
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336, %1276
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  %1340 = call i32 @sleep(i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %1341 = load ptr, ptr %6, align 8, !tbaa !9
  %1342 = getelementptr inbounds [1 x i8], ptr %39, i64 0, i64 0
  %1343 = call i64 @s2n_send(ptr noundef %1341, ptr noundef %1342, i64 noundef 1, ptr noundef %8)
  store i64 %1343, ptr %40, align 8, !tbaa !44
  br label %1344

1344:                                             ; preds = %1339
  %1345 = load i32, ptr @test_count, align 4, !tbaa !5
  %1346 = add nsw i32 %1345, 1
  store i32 %1346, ptr @test_count, align 4, !tbaa !5
  %1347 = load i64, ptr %40, align 8, !tbaa !44
  %1348 = icmp eq i64 %1347, -1
  br i1 %1348, label %1402, label %1349

1349:                                             ; preds = %1344
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

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

1358:                                             ; preds = %1351
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @fileno(ptr noundef %1359) #8
  %1361 = call i32 @isatty(i32 noundef %1360) #8
  %1362 = icmp ne i32 %1361, 0
  br i1 %1362, label %1363, label %1380

1363:                                             ; preds = %1358
  %1364 = load i32, ptr %41, align 4, !tbaa !5
  %1365 = call ptr @__errno_location() #9
  store i32 %1364, ptr %1365, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = load i32, ptr @test_count, align 4, !tbaa !5
  %1368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror(i32 noundef %1369, ptr noundef @.str.4)
  %1371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef @.str.4)
  %1374 = call ptr @__errno_location() #9
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #8
  %1377 = call ptr @__errno_location() #9
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1366, ptr noundef @.str.2, i32 noundef %1367, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1370, ptr noundef %1373, ptr noundef %1376, i32 noundef %1378) #8
  br label %1397

1380:                                             ; preds = %1358, %1351
  %1381 = load i32, ptr %41, align 4, !tbaa !5
  %1382 = call ptr @__errno_location() #9
  store i32 %1381, ptr %1382, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror_debug(i32 noundef %1389, ptr noundef @.str.4)
  %1391 = call ptr @__errno_location() #9
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @strerror(i32 noundef %1392) #8
  %1394 = call ptr @__errno_location() #9
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef @.str.5, i32 noundef %1384, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1387, ptr noundef %1390, ptr noundef %1393, i32 noundef %1395) #8
  br label %1397

1397:                                             ; preds = %1380, %1363
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1398

1398:                                             ; preds = %1397
  br label %1399

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

1400:                                             ; No predecessors!
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401, %1344
  br label %1403

1403:                                             ; preds = %1402
  br label %1404

1404:                                             ; preds = %1403
  br label %1405

1405:                                             ; preds = %1404
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = icmp eq i32 %1409, 67108864
  br i1 %1410, label %1464, label %1411

1411:                                             ; preds = %1405
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

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

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

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

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

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

1460:                                             ; preds = %1459
  br label %1461

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

1462:                                             ; No predecessors!
  br label %1463

1463:                                             ; preds = %1462
  br label %1464

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

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = call ptr @__errno_location() #9
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = icmp eq i32 %1471, 32
  br i1 %1472, label %1526, label %1473

1473:                                             ; preds = %1467
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

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

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

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

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

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

1522:                                             ; preds = %1521
  br label %1523

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

1524:                                             ; No predecessors!
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

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

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  %1529 = load ptr, ptr %6, align 8, !tbaa !9
  %1530 = call i32 @s2n_shutdown(ptr noundef %1529, ptr noundef %8)
  %1531 = sext i32 %1530 to i64
  store i64 %1531, ptr %40, align 8, !tbaa !44
  br label %1532

1532:                                             ; preds = %1528
  %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 i64, ptr %40, align 8, !tbaa !44
  %1536 = icmp eq i64 %1535, -1
  br i1 %1536, label %1590, label %1537

1537:                                             ; preds = %1532
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

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

1546:                                             ; preds = %1539
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @fileno(ptr noundef %1547) #8
  %1549 = call i32 @isatty(i32 noundef %1548) #8
  %1550 = icmp ne i32 %1549, 0
  br i1 %1550, label %1551, label %1568

1551:                                             ; preds = %1546
  %1552 = load i32, ptr %44, align 4, !tbaa !5
  %1553 = call ptr @__errno_location() #9
  store i32 %1552, ptr %1553, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = load i32, ptr @test_count, align 4, !tbaa !5
  %1556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call ptr @s2n_strerror(i32 noundef %1557, ptr noundef @.str.4)
  %1559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror_debug(i32 noundef %1560, ptr noundef @.str.4)
  %1562 = call ptr @__errno_location() #9
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = call ptr @strerror(i32 noundef %1563) #8
  %1565 = call ptr @__errno_location() #9
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1554, ptr noundef @.str.2, i32 noundef %1555, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 159, ptr noundef %1558, ptr noundef %1561, ptr noundef %1564, i32 noundef %1566) #8
  br label %1585

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

1585:                                             ; preds = %1568, %1551
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

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

1588:                                             ; No predecessors!
  br label %1589

1589:                                             ; preds = %1588
  br label %1590

1590:                                             ; preds = %1589, %1532
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = add nsw i32 %1594, 1
  store i32 %1595, ptr @test_count, align 4, !tbaa !5
  %1596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = icmp eq i32 %1597, 67108864
  br i1 %1598, label %1652, label %1599

1599:                                             ; preds = %1593
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

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

1608:                                             ; preds = %1601
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #8
  %1611 = call i32 @isatty(i32 noundef %1610) #8
  %1612 = icmp ne i32 %1611, 0
  br i1 %1612, label %1613, label %1630

1613:                                             ; preds = %1608
  %1614 = load i32, ptr %45, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #9
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.4)
  %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_debug(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call ptr @__errno_location() #9
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #8
  %1627 = call ptr @__errno_location() #9
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.2, i32 noundef %1617, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 160, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #8
  br label %1647

1630:                                             ; preds = %1608, %1601
  %1631 = load i32, ptr %45, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #9
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %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_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #9
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #8
  %1644 = call ptr @__errno_location() #9
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.5, i32 noundef %1634, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 160, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #8
  br label %1647

1647:                                             ; preds = %1630, %1613
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

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

1650:                                             ; No predecessors!
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651, %1593
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = call ptr @__errno_location() #9
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = icmp eq i32 %1659, 0
  br i1 %1660, label %1714, label %1661

1661:                                             ; preds = %1655
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %1664 = call ptr @__errno_location() #9
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  store i32 %1665, ptr %46, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = call i32 @s2n_print_stacktrace(ptr noundef %1666)
  %1668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1669 = trunc i8 %1668 to i1
  br i1 %1669, label %1670, label %1692

1670:                                             ; preds = %1663
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = call i32 @fileno(ptr noundef %1671) #8
  %1673 = call i32 @isatty(i32 noundef %1672) #8
  %1674 = icmp ne i32 %1673, 0
  br i1 %1674, label %1675, label %1692

1675:                                             ; preds = %1670
  %1676 = load i32, ptr %46, align 4, !tbaa !5
  %1677 = call ptr @__errno_location() #9
  store i32 %1676, ptr %1677, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef @.str.4)
  %1683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef @.str.4)
  %1686 = call ptr @__errno_location() #9
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #8
  %1689 = call ptr @__errno_location() #9
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef @.str.2, i32 noundef %1679, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1682, ptr noundef %1685, ptr noundef %1688, i32 noundef %1690) #8
  br label %1709

1692:                                             ; preds = %1670, %1663
  %1693 = load i32, ptr %46, align 4, !tbaa !5
  %1694 = call ptr @__errno_location() #9
  store i32 %1693, ptr %1694, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror(i32 noundef %1698, ptr noundef @.str.4)
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror_debug(i32 noundef %1701, ptr noundef @.str.4)
  %1703 = call ptr @__errno_location() #9
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @strerror(i32 noundef %1704) #8
  %1706 = call ptr @__errno_location() #9
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef @.str.5, i32 noundef %1696, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1699, ptr noundef %1702, ptr noundef %1705, i32 noundef %1707) #8
  br label %1709

1709:                                             ; preds = %1692, %1675
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

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

1712:                                             ; No predecessors!
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

1714:                                             ; preds = %1713, %1655
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = add nsw i32 %1718, 1
  store i32 %1719, ptr @test_count, align 4, !tbaa !5
  %1720 = load ptr, ptr %6, align 8, !tbaa !9
  %1721 = call i32 @s2n_connection_free(ptr noundef %1720)
  %1722 = icmp eq i32 %1721, -1
  br i1 %1722, label %1723, label %1776

1723:                                             ; preds = %1717
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %1726 = call ptr @__errno_location() #9
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  store i32 %1727, ptr %47, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = call i32 @s2n_print_stacktrace(ptr noundef %1728)
  %1730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1731 = trunc i8 %1730 to i1
  br i1 %1731, label %1732, label %1754

1732:                                             ; preds = %1725
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = call i32 @fileno(ptr noundef %1733) #8
  %1735 = call i32 @isatty(i32 noundef %1734) #8
  %1736 = icmp ne i32 %1735, 0
  br i1 %1736, label %1737, label %1754

1737:                                             ; preds = %1732
  %1738 = load i32, ptr %47, align 4, !tbaa !5
  %1739 = call ptr @__errno_location() #9
  store i32 %1738, ptr %1739, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef @.str.4)
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror_debug(i32 noundef %1746, ptr noundef @.str.4)
  %1748 = call ptr @__errno_location() #9
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @strerror(i32 noundef %1749) #8
  %1751 = call ptr @__errno_location() #9
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef @.str.2, i32 noundef %1741, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1744, ptr noundef %1747, ptr noundef %1750, i32 noundef %1752) #8
  br label %1771

1754:                                             ; preds = %1732, %1725
  %1755 = load i32, ptr %47, align 4, !tbaa !5
  %1756 = call ptr @__errno_location() #9
  store i32 %1755, ptr %1756, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror(i32 noundef %1760, ptr noundef @.str.4)
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef @.str.4)
  %1765 = call ptr @__errno_location() #9
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #8
  %1768 = call ptr @__errno_location() #9
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef @.str.5, i32 noundef %1758, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1761, ptr noundef %1764, ptr noundef %1767, i32 noundef %1769) #8
  br label %1771

1771:                                             ; preds = %1754, %1737
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

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

1774:                                             ; No predecessors!
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775, %1717
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  store i32 0, ptr %48, align 4, !tbaa !5
  br label %1779

1779:                                             ; preds = %1849, %1778
  %1780 = load i32, ptr %48, align 4, !tbaa !5
  %1781 = icmp slt i32 %1780, 2
  br i1 %1781, label %1783, label %1782

1782:                                             ; preds = %1779
  store i32 174, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %1852

1783:                                             ; preds = %1779
  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 i32, ptr %48, align 4, !tbaa !5
  %1788 = sext i32 %1787 to i64
  %1789 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1788
  %1790 = load ptr, ptr %1789, align 8, !tbaa !9
  %1791 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1790)
  %1792 = icmp eq i32 %1791, -1
  br i1 %1792, label %1793, label %1846

1793:                                             ; preds = %1784
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

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

1802:                                             ; preds = %1795
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @fileno(ptr noundef %1803) #8
  %1805 = call i32 @isatty(i32 noundef %1804) #8
  %1806 = icmp ne i32 %1805, 0
  br i1 %1806, label %1807, label %1824

1807:                                             ; preds = %1802
  %1808 = load i32, ptr %49, align 4, !tbaa !5
  %1809 = call ptr @__errno_location() #9
  store i32 %1808, ptr %1809, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1813, ptr noundef @.str.4)
  %1815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @s2n_strerror_debug(i32 noundef %1816, ptr noundef @.str.4)
  %1818 = call ptr @__errno_location() #9
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call ptr @strerror(i32 noundef %1819) #8
  %1821 = call ptr @__errno_location() #9
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1810, ptr noundef @.str.2, i32 noundef %1811, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 165, ptr noundef %1814, ptr noundef %1817, ptr noundef %1820, i32 noundef %1822) #8
  br label %1841

1824:                                             ; preds = %1802, %1795
  %1825 = load i32, ptr %49, align 4, !tbaa !5
  %1826 = call ptr @__errno_location() #9
  store i32 %1825, ptr %1826, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1830, ptr noundef @.str.4)
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror_debug(i32 noundef %1833, ptr noundef @.str.4)
  %1835 = call ptr @__errno_location() #9
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @strerror(i32 noundef %1836) #8
  %1838 = call ptr @__errno_location() #9
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1827, ptr noundef @.str.5, i32 noundef %1828, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 165, ptr noundef %1831, ptr noundef %1834, ptr noundef %1837, i32 noundef %1839) #8
  br label %1841

1841:                                             ; preds = %1824, %1807
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

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

1844:                                             ; No predecessors!
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845, %1784
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

1848:                                             ; preds = %1847
  br label %1849

1849:                                             ; preds = %1848
  %1850 = load i32, ptr %48, align 4, !tbaa !5
  %1851 = add nsw i32 %1850, 1
  store i32 %1851, ptr %48, align 4, !tbaa !5
  br label %1779, !llvm.loop !45

1852:                                             ; preds = %1782
  br label %1853

1853:                                             ; preds = %1852
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = load ptr, ptr %7, align 8, !tbaa !9
  %1857 = call i32 @s2n_config_free(ptr noundef %1856)
  %1858 = icmp eq i32 %1857, -1
  br i1 %1858, label %1859, label %1912

1859:                                             ; preds = %1853
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %1862 = call ptr @__errno_location() #9
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  store i32 %1863, ptr %50, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @s2n_print_stacktrace(ptr noundef %1864)
  %1866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1867 = trunc i8 %1866 to i1
  br i1 %1867, label %1868, label %1890

1868:                                             ; preds = %1861
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #8
  %1871 = call i32 @isatty(i32 noundef %1870) #8
  %1872 = icmp ne i32 %1871, 0
  br i1 %1872, label %1873, label %1890

1873:                                             ; preds = %1868
  %1874 = load i32, ptr %50, align 4, !tbaa !5
  %1875 = call ptr @__errno_location() #9
  store i32 %1874, ptr %1875, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror(i32 noundef %1879, ptr noundef @.str.4)
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call ptr @__errno_location() #9
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #8
  %1887 = call ptr @__errno_location() #9
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef @.str.2, i32 noundef %1877, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 167, ptr noundef %1880, ptr noundef %1883, ptr noundef %1886, i32 noundef %1888) #8
  br label %1907

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

1907:                                             ; preds = %1890, %1873
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

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

1910:                                             ; No predecessors!
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911, %1853
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914
  %1916 = load i32, ptr @test_count, align 4, !tbaa !5
  %1917 = add nsw i32 %1916, 1
  store i32 %1917, ptr @test_count, align 4, !tbaa !5
  %1918 = call i32 @waitpid(i32 noundef -1, ptr noundef %9, i32 noundef 0)
  %1919 = load i32, ptr %21, align 4, !tbaa !5
  %1920 = icmp eq i32 %1918, %1919
  br i1 %1920, label %1974, label %1921

1921:                                             ; preds = %1915
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

1923:                                             ; preds = %1922
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %1924 = call ptr @__errno_location() #9
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  store i32 %1925, ptr %51, align 4, !tbaa !5
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = call i32 @s2n_print_stacktrace(ptr noundef %1926)
  %1928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1929 = trunc i8 %1928 to i1
  br i1 %1929, label %1930, label %1952

1930:                                             ; preds = %1923
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @fileno(ptr noundef %1931) #8
  %1933 = call i32 @isatty(i32 noundef %1932) #8
  %1934 = icmp ne i32 %1933, 0
  br i1 %1934, label %1935, label %1952

1935:                                             ; preds = %1930
  %1936 = load i32, ptr %51, align 4, !tbaa !5
  %1937 = call ptr @__errno_location() #9
  store i32 %1936, ptr %1937, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call ptr @__errno_location() #9
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #8
  %1949 = call ptr @__errno_location() #9
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef @.str.2, i32 noundef %1939, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 170, ptr noundef %1942, ptr noundef %1945, ptr noundef %1948, i32 noundef %1950) #8
  br label %1969

1952:                                             ; preds = %1930, %1923
  %1953 = load i32, ptr %51, align 4, !tbaa !5
  %1954 = call ptr @__errno_location() #9
  store i32 %1953, ptr %1954, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = load i32, ptr @test_count, align 4, !tbaa !5
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror_debug(i32 noundef %1961, ptr noundef @.str.4)
  %1963 = call ptr @__errno_location() #9
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call ptr @strerror(i32 noundef %1964) #8
  %1966 = call ptr @__errno_location() #9
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1955, ptr noundef @.str.5, i32 noundef %1956, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 170, ptr noundef %1959, ptr noundef %1962, ptr noundef %1965, i32 noundef %1967) #8
  br label %1969

1969:                                             ; preds = %1952, %1935
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

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

1972:                                             ; No predecessors!
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973, %1915
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  %1977 = call ptr @getenv(ptr noundef @.str.35) #8
  %1978 = icmp eq ptr %1977, null
  br i1 %1978, label %1979, label %2041

1979:                                             ; preds = %1976
  br label %1980

1980:                                             ; preds = %1979
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = add nsw i32 %1981, 1
  store i32 %1982, ptr @test_count, align 4, !tbaa !5
  %1983 = load i32, ptr %9, align 4, !tbaa !5
  %1984 = icmp eq i32 %1983, 0
  br i1 %1984, label %2038, label %1985

1985:                                             ; preds = %1980
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %1988 = call ptr @__errno_location() #9
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  store i32 %1989, ptr %52, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @s2n_print_stacktrace(ptr noundef %1990)
  %1992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1993 = trunc i8 %1992 to i1
  br i1 %1993, label %1994, label %2016

1994:                                             ; preds = %1987
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @fileno(ptr noundef %1995) #8
  %1997 = call i32 @isatty(i32 noundef %1996) #8
  %1998 = icmp ne i32 %1997, 0
  br i1 %1998, label %1999, label %2016

1999:                                             ; preds = %1994
  %2000 = load i32, ptr %52, align 4, !tbaa !5
  %2001 = call ptr @__errno_location() #9
  store i32 %2000, ptr %2001, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror(i32 noundef %2005, ptr noundef @.str.4)
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror_debug(i32 noundef %2008, ptr noundef @.str.4)
  %2010 = call ptr @__errno_location() #9
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @strerror(i32 noundef %2011) #8
  %2013 = call ptr @__errno_location() #9
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2002, ptr noundef @.str.2, i32 noundef %2003, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 172, ptr noundef %2006, ptr noundef %2009, ptr noundef %2012, i32 noundef %2014) #8
  br label %2033

2016:                                             ; preds = %1994, %1987
  %2017 = load i32, ptr %52, align 4, !tbaa !5
  %2018 = call ptr @__errno_location() #9
  store i32 %2017, ptr %2018, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror(i32 noundef %2022, ptr noundef @.str.4)
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror_debug(i32 noundef %2025, ptr noundef @.str.4)
  %2027 = call ptr @__errno_location() #9
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @strerror(i32 noundef %2028) #8
  %2030 = call ptr @__errno_location() #9
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2019, ptr noundef @.str.5, i32 noundef %2020, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 172, ptr noundef %2023, ptr noundef %2026, ptr noundef %2029, i32 noundef %2031) #8
  br label %2033

2033:                                             ; preds = %2016, %1999
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

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

2036:                                             ; No predecessors!
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037, %1980
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040, %1976
  br label %2042

2042:                                             ; preds = %2041
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = call i32 @s2n_io_pair_close_one_end(ptr noundef %19, i32 noundef 0)
  %2046 = icmp eq i32 %2045, -1
  br i1 %2046, label %2047, label %2100

2047:                                             ; preds = %2042
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

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

2056:                                             ; preds = %2049
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = call i32 @fileno(ptr noundef %2057) #8
  %2059 = call i32 @isatty(i32 noundef %2058) #8
  %2060 = icmp ne i32 %2059, 0
  br i1 %2060, label %2061, label %2078

2061:                                             ; preds = %2056
  %2062 = load i32, ptr %53, align 4, !tbaa !5
  %2063 = call ptr @__errno_location() #9
  store i32 %2062, ptr %2063, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @s2n_strerror(i32 noundef %2067, ptr noundef @.str.4)
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror_debug(i32 noundef %2070, ptr noundef @.str.4)
  %2072 = call ptr @__errno_location() #9
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @strerror(i32 noundef %2073) #8
  %2075 = call ptr @__errno_location() #9
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2064, ptr noundef @.str.2, i32 noundef %2065, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2068, ptr noundef %2071, ptr noundef %2074, i32 noundef %2076) #8
  br label %2095

2078:                                             ; preds = %2056, %2049
  %2079 = load i32, ptr %53, align 4, !tbaa !5
  %2080 = call ptr @__errno_location() #9
  store i32 %2079, ptr %2080, align 4, !tbaa !5
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = load i32, ptr @test_count, align 4, !tbaa !5
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror(i32 noundef %2084, ptr noundef @.str.4)
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef @.str.4)
  %2089 = call ptr @__errno_location() #9
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @strerror(i32 noundef %2090) #8
  %2092 = call ptr @__errno_location() #9
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2081, ptr noundef @.str.5, i32 noundef %2082, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2085, ptr noundef %2088, ptr noundef %2091, i32 noundef %2093) #8
  br label %2095

2095:                                             ; preds = %2078, %2061
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

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

2098:                                             ; No predecessors!
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

2100:                                             ; preds = %2099, %2042
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

2102:                                             ; preds = %2101
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  %2103 = call i32 @s2n_io_pair_close(ptr noundef %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #8
  br label %2104

2104:                                             ; preds = %2102
  %2105 = load i32, ptr %16, align 4, !tbaa !5
  %2106 = add nsw i32 %2105, 1
  store i32 %2106, ptr %16, align 4, !tbaa !5
  br label %245, !llvm.loop !46

2107:                                             ; preds = %248
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108
  %2110 = call i32 @s2n_cleanup()
  %2111 = icmp eq i32 %2110, -1
  br i1 %2111, label %2112, label %2165

2112:                                             ; preds = %2109
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %2115 = call ptr @__errno_location() #9
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  store i32 %2116, ptr %54, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = call i32 @s2n_print_stacktrace(ptr noundef %2117)
  %2119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2120 = trunc i8 %2119 to i1
  br i1 %2120, label %2121, label %2143

2121:                                             ; preds = %2114
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = call i32 @fileno(ptr noundef %2122) #8
  %2124 = call i32 @isatty(i32 noundef %2123) #8
  %2125 = icmp ne i32 %2124, 0
  br i1 %2125, label %2126, label %2143

2126:                                             ; preds = %2121
  %2127 = load i32, ptr %54, align 4, !tbaa !5
  %2128 = call ptr @__errno_location() #9
  store i32 %2127, ptr %2128, align 4, !tbaa !5
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = load i32, ptr @test_count, align 4, !tbaa !5
  %2131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call ptr @s2n_strerror(i32 noundef %2132, ptr noundef @.str.4)
  %2134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2135 = load i32, ptr %2134, align 4, !tbaa !5
  %2136 = call ptr @s2n_strerror_debug(i32 noundef %2135, ptr noundef @.str.4)
  %2137 = call ptr @__errno_location() #9
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = call ptr @strerror(i32 noundef %2138) #8
  %2140 = call ptr @__errno_location() #9
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2129, ptr noundef @.str.2, i32 noundef %2130, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2133, ptr noundef %2136, ptr noundef %2139, i32 noundef %2141) #8
  br label %2160

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

2160:                                             ; preds = %2143, %2126
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2161

2161:                                             ; preds = %2160
  br label %2162

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

2163:                                             ; No predecessors!
  br label %2164

2164:                                             ; preds = %2163
  br label %2165

2165:                                             ; preds = %2164, %2109
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  %2170 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2171 = icmp eq i32 %2170, -1
  br i1 %2171, label %2172, label %2225

2172:                                             ; preds = %2169
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2175 = call ptr @__errno_location() #9
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  store i32 %2176, ptr %55, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @s2n_print_stacktrace(ptr noundef %2177)
  %2179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2180 = trunc i8 %2179 to i1
  br i1 %2180, label %2181, label %2203

2181:                                             ; preds = %2174
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @fileno(ptr noundef %2182) #8
  %2184 = call i32 @isatty(i32 noundef %2183) #8
  %2185 = icmp ne i32 %2184, 0
  br i1 %2185, label %2186, label %2203

2186:                                             ; preds = %2181
  %2187 = load i32, ptr %55, align 4, !tbaa !5
  %2188 = call ptr @__errno_location() #9
  store i32 %2187, ptr %2188, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror(i32 noundef %2192, ptr noundef @.str.4)
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef @.str.4)
  %2197 = call ptr @__errno_location() #9
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #8
  %2200 = call ptr @__errno_location() #9
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef @.str.2, i32 noundef %2190, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2193, ptr noundef %2196, ptr noundef %2199, i32 noundef %2201) #8
  br label %2220

2203:                                             ; preds = %2181, %2174
  %2204 = load i32, ptr %55, align 4, !tbaa !5
  %2205 = call ptr @__errno_location() #9
  store i32 %2204, ptr %2205, align 4, !tbaa !5
  %2206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2207 = load i32, ptr @test_count, align 4, !tbaa !5
  %2208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror(i32 noundef %2209, ptr noundef @.str.4)
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef @.str.4)
  %2214 = call ptr @__errno_location() #9
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #8
  %2217 = call ptr @__errno_location() #9
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2206, ptr noundef @.str.5, i32 noundef %2207, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2210, ptr noundef %2213, ptr noundef %2216, i32 noundef %2218) #8
  br label %2220

2220:                                             ; preds = %2203, %2186
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2221

2221:                                             ; preds = %2220
  br label %2222

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

2223:                                             ; No predecessors!
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

2225:                                             ; preds = %2224, %2169
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

2227:                                             ; preds = %2226
  %2228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2229 = trunc i8 %2228 to i1
  br i1 %2229, label %2230, label %2246

2230:                                             ; preds = %2227
  %2231 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2232 = call i32 @fileno(ptr noundef %2231) #8
  %2233 = call i32 @isatty(i32 noundef %2232) #8
  %2234 = icmp ne i32 %2233, 0
  br i1 %2234, label %2235, label %2246

2235:                                             ; preds = %2230
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = icmp ne i32 %2236, 0
  br i1 %2237, label %2238, label %2242

2238:                                             ; preds = %2235
  %2239 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef @.str.39, i32 noundef %2240) #8
  br label %2245

2242:                                             ; preds = %2235
  %2243 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2243, ptr noundef @.str.40) #8
  br label %2245

2245:                                             ; preds = %2242, %2238
  br label %2257

2246:                                             ; preds = %2230, %2227
  %2247 = load i32, ptr @test_count, align 4, !tbaa !5
  %2248 = icmp ne i32 %2247, 0
  br i1 %2248, label %2249, label %2253

2249:                                             ; preds = %2246
  %2250 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2250, ptr noundef @.str.41, i32 noundef %2251) #8
  br label %2256

2253:                                             ; preds = %2246
  %2254 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2254, ptr noundef @.str.42) #8
  br label %2256

2256:                                             ; preds = %2253, %2249
  br label %2257

2257:                                             ; preds = %2256, %2245
  store i32 0, ptr %3, align 4
  store i32 1, ptr %17, align 4
  br label %2262

2258:                                             ; No predecessors!
  br label %2259

2259:                                             ; preds = %2258
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260
  store i32 0, ptr %17, align 4
  br label %2262

2262:                                             ; preds = %2261, %2257
  call void @llvm.lifetime.end.p0(i64 12000, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 12000, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 12000, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  %2263 = load i32, ptr %17, align 4
  switch i32 %2263, label %2266 [
    i32 0, label %2264
    i32 1, label %2264
  ]

2264:                                             ; preds = %2262, %2262
  %2265 = load i32, ptr %3, align 4
  ret i32 %2265

2266:                                             ; preds = %2262
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init(ptr noundef) #2

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

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #2

declare ptr @s2n_cert_chain_and_key_new() #2

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

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

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

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

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

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

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!18, !7, i64 220}
!18 = !{!"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, !19, i64 160, !20, i64 168, !20, 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, !21, i64 240, !10, i64 632, !10, i64 640, !22, i64 648, !28, i64 1144, !31, 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, !20, 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, !33, i64 2208, !6, i64 2212, !33, i64 2216, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !27, i64 2792, !6, i64 2816, !27, i64 2824, !27, i64 2848, !27, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!22 = !{!"s2n_kex_parameters", !23, i64 0, !24, i64 8, !7, i64 24, !24, i64 56, !25, i64 72, !25, i64 184, !7, i64 296, !26, i64 360, !27, i64 448, !27, i64 472}
!23 = !{!"s2n_dh_params", !10, i64 0}
!24 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!25 = !{!"s2n_kem_group_params", !10, i64 0, !26, i64 8, !24, i64 96}
!26 = !{!"s2n_kem_params", !10, i64 0, !27, i64 8, !27, i64 32, !27, i64 56, !12, i64 80}
!27 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !27, i64 96, !6, i64 120, !30, 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}
!29 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!30 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!31 = !{!"s2n_psk_parameters", !6, i64 0, !32, i64 8, !33, i64 40, !33, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !27, 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", !27, i64 0, !39, i64 24, !27, i64 728, !27, i64 752, !27, 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, !27, i64 672, !33, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !33, 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", !27, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!20, !20, i64 0}
!45 = distinct !{!45, !16}
!46 = distinct !{!46, !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_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [82 x i8], align 1
@certificate_paths = external hidden local_unnamed_addr global [2 x ptr], align 16
@.str.15 = external hidden unnamed_addr constant [94 x i8], align 1
@private_key_paths = external hidden local_unnamed_addr global [2 x ptr], align 16
@.str.16 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @mock_client(ptr noundef) local_unnamed_addr #0

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

declare i32 @sleep(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

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

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

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

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca [12000 x i8], align 16
  %6 = alloca [12000 x i8], align 16
  %7 = alloca [12000 x i8], align 16
  %8 = alloca %struct.s2n_test_io_pair, align 8
  %9 = alloca [1 x i8], align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #9
  store i32 0, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %7) #9
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %10 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %12 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13 = tail call i32 @fflush(ptr noundef %12)
  %14 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %15 = icmp eq i32 %14, -1
  br i1 %15, label %16, label %40

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

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

27:                                               ; preds = %23, %16
  br label %28

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

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

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

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

56:                                               ; preds = %52, %45
  br label %57

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

69:                                               ; preds = %40
  %70 = tail call i32 @s2n_init() #9
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %73, label %.preheader143

.preheader143:                                    ; preds = %69
  %72 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %100

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

80:                                               ; preds = %73
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = tail call i32 @fileno(ptr noundef %81) #9
  %83 = tail call i32 @isatty(i32 noundef %82) #9
  %.not139 = icmp eq i32 %83, 0
  br i1 %.not139, label %84, label %85

84:                                               ; preds = %80, %73
  br label %85

85:                                               ; preds = %80, %84
  %.str.5.sink265 = phi ptr [ @.str.5, %84 ], [ @.str.2, %80 ]
  store i32 %75, ptr %74, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = load i32, ptr @test_count, align 4, !tbaa !5
  %88 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror(i32 noundef %89, ptr noundef nonnull @.str.4) #9
  %91 = load i32, ptr %88, align 4, !tbaa !5
  %92 = tail call ptr @s2n_strerror_debug(i32 noundef %91, ptr noundef nonnull @.str.4) #9
  %93 = load i32, ptr %74, align 4, !tbaa !5
  %94 = tail call ptr @strerror(i32 noundef %93) #9
  %95 = load i32, ptr %74, align 4, !tbaa !5
  %96 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef nonnull %.str.5.sink265, i32 noundef %87, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %90, ptr noundef %92, ptr noundef %94, i32 noundef %95) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

97:                                               ; preds = %935
  %98 = call i32 @s2n_cleanup() #9
  %99 = icmp eq i32 %98, -1
  br i1 %99, label %937, label %959

100:                                              ; preds = %.preheader143, %935
  %.not109 = phi i1 [ true, %.preheader143 ], [ false, %935 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  store i64 0, ptr %8, align 8
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr @test_count, align 4, !tbaa !5
  %103 = call i32 @s2n_io_pair_init(ptr noundef nonnull %8) #9
  %104 = icmp eq i32 %103, -1
  br i1 %104, label %105, label %128

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

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

116:                                              ; preds = %112, %105
  br label %117

117:                                              ; preds = %112, %116
  %.str.5.sink276 = phi ptr [ @.str.5, %116 ], [ @.str.2, %112 ]
  store i32 %107, ptr %106, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = load i32, ptr %72, align 4, !tbaa !5
  %121 = call ptr @s2n_strerror(i32 noundef %120, ptr noundef nonnull @.str.4) #9
  %122 = load i32, ptr %72, align 4, !tbaa !5
  %123 = call ptr @s2n_strerror_debug(i32 noundef %122, ptr noundef nonnull @.str.4) #9
  %124 = load i32, ptr %106, align 4, !tbaa !5
  %125 = call ptr @strerror(i32 noundef %124) #9
  %126 = load i32, ptr %106, align 4, !tbaa !5
  %127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.5.sink276, i32 noundef %119, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %121, ptr noundef %123, ptr noundef %125, i32 noundef %126) #11
  call void @exit(i32 noundef 1) #12
  unreachable

128:                                              ; preds = %100
  %129 = call i32 @fork() #9
  %130 = icmp eq i32 %129, 0
  br i1 %130, label %131, label %160

131:                                              ; preds = %128
  %132 = load i32, ptr @test_count, align 4, !tbaa !5
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr @test_count, align 4, !tbaa !5
  %134 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %8, i32 noundef 0) #9
  %135 = icmp eq i32 %134, -1
  br i1 %135, label %136, label %159

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

143:                                              ; preds = %136
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = call i32 @fileno(ptr noundef %144) #9
  %146 = call i32 @isatty(i32 noundef %145) #9
  %.not137 = icmp eq i32 %146, 0
  br i1 %.not137, label %147, label %148

147:                                              ; preds = %143, %136
  br label %148

148:                                              ; preds = %143, %147
  %.str.5.sink285 = phi ptr [ @.str.5, %147 ], [ @.str.2, %143 ]
  store i32 %138, ptr %137, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = load i32, ptr %72, align 4, !tbaa !5
  %152 = call ptr @s2n_strerror(i32 noundef %151, ptr noundef nonnull @.str.4) #9
  %153 = load i32, ptr %72, align 4, !tbaa !5
  %154 = call ptr @s2n_strerror_debug(i32 noundef %153, ptr noundef nonnull @.str.4) #9
  %155 = load i32, ptr %137, align 4, !tbaa !5
  %156 = call ptr @strerror(i32 noundef %155) #9
  %157 = load i32, ptr %137, align 4, !tbaa !5
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef nonnull %.str.5.sink285, i32 noundef %150, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %152, ptr noundef %154, ptr noundef %156, i32 noundef %157) #11
  call void @exit(i32 noundef 1) #12
  unreachable

159:                                              ; preds = %131
  call void @mock_client(ptr noundef nonnull %8)
  br label %160

160:                                              ; preds = %128, %159
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %8, i32 noundef 1) #9
  %164 = icmp eq i32 %163, -1
  br i1 %164, label %165, label %188

165:                                              ; preds = %160
  %166 = tail call ptr @__errno_location() #10
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = call i32 @s2n_print_stacktrace(ptr noundef %168) #9
  %170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %171 = trunc nuw i8 %170 to i1
  br i1 %171, label %172, label %176

172:                                              ; preds = %165
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @fileno(ptr noundef %173) #9
  %175 = call i32 @isatty(i32 noundef %174) #9
  %.not136 = icmp eq i32 %175, 0
  br i1 %.not136, label %176, label %177

176:                                              ; preds = %172, %165
  br label %177

177:                                              ; preds = %172, %176
  %.str.5.sink294 = phi ptr [ @.str.5, %176 ], [ @.str.2, %172 ]
  store i32 %167, ptr %166, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = load i32, ptr %72, align 4, !tbaa !5
  %181 = call ptr @s2n_strerror(i32 noundef %180, ptr noundef nonnull @.str.4) #9
  %182 = load i32, ptr %72, align 4, !tbaa !5
  %183 = call ptr @s2n_strerror_debug(i32 noundef %182, ptr noundef nonnull @.str.4) #9
  %184 = load i32, ptr %166, align 4, !tbaa !5
  %185 = call ptr @strerror(i32 noundef %184) #9
  %186 = load i32, ptr %166, align 4, !tbaa !5
  %187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef nonnull %.str.5.sink294, i32 noundef %179, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %181, ptr noundef %183, ptr noundef %185, i32 noundef %186) #11
  call void @exit(i32 noundef 1) #12
  unreachable

188:                                              ; preds = %160
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = add nsw i32 %189, 1
  store i32 %190, ptr @test_count, align 4, !tbaa !5
  %191 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %192 = icmp eq ptr %191, null
  br i1 %192, label %193, label %216

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

200:                                              ; preds = %193
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = call i32 @fileno(ptr noundef %201) #9
  %203 = call i32 @isatty(i32 noundef %202) #9
  %.not135 = icmp eq i32 %203, 0
  br i1 %.not135, label %204, label %205

204:                                              ; preds = %200, %193
  br label %205

205:                                              ; preds = %200, %204
  %.str.5.sink303 = phi ptr [ @.str.5, %204 ], [ @.str.2, %200 ]
  store i32 %195, ptr %194, align 4, !tbaa !5
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = load i32, ptr %72, align 4, !tbaa !5
  %209 = call ptr @s2n_strerror(i32 noundef %208, ptr noundef nonnull @.str.4) #9
  %210 = load i32, ptr %72, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror_debug(i32 noundef %210, ptr noundef nonnull @.str.4) #9
  %212 = load i32, ptr %194, align 4, !tbaa !5
  %213 = call ptr @strerror(i32 noundef %212) #9
  %214 = load i32, ptr %194, align 4, !tbaa !5
  %215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %206, ptr noundef nonnull %.str.5.sink303, i32 noundef %207, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %209, ptr noundef %211, ptr noundef %213, i32 noundef %214) #11
  call void @exit(i32 noundef 1) #12
  unreachable

216:                                              ; preds = %188
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = call ptr @s2n_config_new() #9
  %220 = icmp eq ptr %219, null
  br i1 %220, label %221, label %244

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

228:                                              ; preds = %221
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = call i32 @fileno(ptr noundef %229) #9
  %231 = call i32 @isatty(i32 noundef %230) #9
  %.not134 = icmp eq i32 %231, 0
  br i1 %.not134, label %232, label %233

232:                                              ; preds = %228, %221
  br label %233

233:                                              ; preds = %228, %232
  %.str.5.sink312 = phi ptr [ @.str.5, %232 ], [ @.str.2, %228 ]
  store i32 %223, ptr %222, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = load i32, ptr %72, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror(i32 noundef %236, ptr noundef nonnull @.str.4) #9
  %238 = load i32, ptr %72, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror_debug(i32 noundef %238, ptr noundef nonnull @.str.4) #9
  %240 = load i32, ptr %222, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #9
  %242 = load i32, ptr %222, align 4, !tbaa !5
  %243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %234, ptr noundef nonnull %.str.5.sink312, i32 noundef %235, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %237, ptr noundef %239, ptr noundef %241, i32 noundef %242) #11
  call void @exit(i32 noundef 1) #12
  unreachable

244:                                              ; preds = %216
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %246 = add nsw i32 %245, 1
  store i32 %246, ptr @test_count, align 4, !tbaa !5
  %247 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %219, ptr noundef nonnull @.str.13) #9
  %248 = icmp eq i32 %247, -1
  br i1 %248, label %254, label %.preheader142.preheader

.preheader142.preheader:                          ; preds = %244
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = load ptr, ptr @certificate_paths, align 16, !tbaa !9
  %252 = call i32 @s2n_read_test_pem(ptr noundef %251, ptr noundef nonnull %5, i64 noundef 12000) #9
  %253 = icmp eq i32 %252, -1
  br i1 %253, label %304, label %327

254:                                              ; preds = %244
  %255 = tail call ptr @__errno_location() #10
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = call i32 @s2n_print_stacktrace(ptr noundef %257) #9
  %259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %260 = trunc nuw i8 %259 to i1
  br i1 %260, label %261, label %265

261:                                              ; preds = %254
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = call i32 @fileno(ptr noundef %262) #9
  %264 = call i32 @isatty(i32 noundef %263) #9
  %.not133 = icmp eq i32 %264, 0
  br i1 %.not133, label %265, label %266

265:                                              ; preds = %261, %254
  br label %266

266:                                              ; preds = %261, %265
  %.str.5.sink321 = phi ptr [ @.str.5, %265 ], [ @.str.2, %261 ]
  store i32 %256, ptr %255, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = load i32, ptr %72, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror(i32 noundef %269, ptr noundef nonnull @.str.4) #9
  %271 = load i32, ptr %72, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef nonnull @.str.4) #9
  %273 = load i32, ptr %255, align 4, !tbaa !5
  %274 = call ptr @strerror(i32 noundef %273) #9
  %275 = load i32, ptr %255, align 4, !tbaa !5
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef nonnull %.str.5.sink321, i32 noundef %268, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %270, ptr noundef %272, ptr noundef %274, i32 noundef %275) #11
  call void @exit(i32 noundef 1) #12
  unreachable

.preheader142.1:                                  ; preds = %412
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = add nsw i32 %277, 1
  store i32 %278, ptr @test_count, align 4, !tbaa !5
  %279 = load ptr, ptr getelementptr inbounds (i8, ptr @certificate_paths, i64 8), align 8, !tbaa !9
  %280 = call i32 @s2n_read_test_pem(ptr noundef %279, ptr noundef nonnull %5, i64 noundef 12000) #9
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %304, label %282

282:                                              ; preds = %.preheader142.1
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr @test_count, align 4, !tbaa !5
  %285 = load ptr, ptr getelementptr inbounds (i8, ptr @private_key_paths, i64 8), align 8, !tbaa !9
  %286 = call i32 @s2n_read_test_pem(ptr noundef %285, ptr noundef nonnull %6, i64 noundef 12000) #9
  %287 = icmp eq i32 %286, -1
  br i1 %287, label %333, label %288

288:                                              ; preds = %282
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = add nsw i32 %289, 1
  store i32 %290, ptr @test_count, align 4, !tbaa !5
  %291 = call ptr @s2n_cert_chain_and_key_new() #9
  %292 = icmp eq ptr %291, null
  br i1 %292, label %361, label %293

293:                                              ; preds = %288
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %291, ptr noundef nonnull %5, ptr noundef nonnull %6) #9
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %389, label %298

298:                                              ; preds = %293
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr @test_count, align 4, !tbaa !5
  %301 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %219, ptr noundef nonnull %291) #9
  %302 = icmp eq i32 %301, -1
  br i1 %302, label %417, label %303

303:                                              ; preds = %298
  br i1 %.not109, label %496, label %440

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

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

315:                                              ; preds = %311, %304
  br label %316

316:                                              ; preds = %311, %315
  %.str.5.sink330 = phi ptr [ @.str.5, %315 ], [ @.str.2, %311 ]
  store i32 %306, ptr %305, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %319 = load i32, ptr %72, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef nonnull @.str.4) #9
  %321 = load i32, ptr %72, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror_debug(i32 noundef %321, ptr noundef nonnull @.str.4) #9
  %323 = load i32, ptr %305, align 4, !tbaa !5
  %324 = call ptr @strerror(i32 noundef %323) #9
  %325 = load i32, ptr %305, align 4, !tbaa !5
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %317, ptr noundef nonnull %.str.5.sink330, i32 noundef %318, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %320, ptr noundef %322, ptr noundef %324, i32 noundef %325) #11
  call void @exit(i32 noundef 1) #12
  unreachable

327:                                              ; preds = %.preheader142.preheader
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  store i32 %329, ptr @test_count, align 4, !tbaa !5
  %330 = load ptr, ptr @private_key_paths, align 16, !tbaa !9
  %331 = call i32 @s2n_read_test_pem(ptr noundef %330, ptr noundef nonnull %6, i64 noundef 12000) #9
  %332 = icmp eq i32 %331, -1
  br i1 %332, label %333, label %356

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

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

344:                                              ; preds = %340, %333
  br label %345

345:                                              ; preds = %340, %344
  %.str.5.sink339 = phi ptr [ @.str.5, %344 ], [ @.str.2, %340 ]
  store i32 %335, ptr %334, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = load i32, ptr %72, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror(i32 noundef %348, ptr noundef nonnull @.str.4) #9
  %350 = load i32, ptr %72, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror_debug(i32 noundef %350, ptr noundef nonnull @.str.4) #9
  %352 = load i32, ptr %334, align 4, !tbaa !5
  %353 = call ptr @strerror(i32 noundef %352) #9
  %354 = load i32, ptr %334, align 4, !tbaa !5
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %346, ptr noundef nonnull %.str.5.sink339, i32 noundef %347, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %349, ptr noundef %351, ptr noundef %353, i32 noundef %354) #11
  call void @exit(i32 noundef 1) #12
  unreachable

356:                                              ; preds = %327
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr @test_count, align 4, !tbaa !5
  %359 = call ptr @s2n_cert_chain_and_key_new() #9
  %360 = icmp eq ptr %359, null
  br i1 %360, label %361, label %384

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

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

372:                                              ; preds = %368, %361
  br label %373

373:                                              ; preds = %368, %372
  %.str.5.sink348 = phi ptr [ @.str.5, %372 ], [ @.str.2, %368 ]
  store i32 %363, ptr %362, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = load i32, ptr %72, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef nonnull @.str.4) #9
  %378 = load i32, ptr %72, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef nonnull @.str.4) #9
  %380 = load i32, ptr %362, align 4, !tbaa !5
  %381 = call ptr @strerror(i32 noundef %380) #9
  %382 = load i32, ptr %362, align 4, !tbaa !5
  %383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef nonnull %.str.5.sink348, i32 noundef %375, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %377, ptr noundef %379, ptr noundef %381, i32 noundef %382) #11
  call void @exit(i32 noundef 1) #12
  unreachable

384:                                              ; preds = %356
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %359, ptr noundef nonnull %5, ptr noundef nonnull %6) #9
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %412

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

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

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

401:                                              ; preds = %396, %400
  %.str.5.sink357 = phi ptr [ @.str.5, %400 ], [ @.str.2, %396 ]
  store i32 %391, ptr %390, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = load i32, ptr %72, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror(i32 noundef %404, ptr noundef nonnull @.str.4) #9
  %406 = load i32, ptr %72, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror_debug(i32 noundef %406, ptr noundef nonnull @.str.4) #9
  %408 = load i32, ptr %390, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #9
  %410 = load i32, ptr %390, align 4, !tbaa !5
  %411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef nonnull %.str.5.sink357, i32 noundef %403, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %405, ptr noundef %407, ptr noundef %409, i32 noundef %410) #11
  call void @exit(i32 noundef 1) #12
  unreachable

412:                                              ; preds = %384
  %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 i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %219, ptr noundef nonnull %359) #9
  %416 = icmp eq i32 %415, -1
  br i1 %416, label %417, label %.preheader142.1

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

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

428:                                              ; preds = %424, %417
  br label %429

429:                                              ; preds = %424, %428
  %.str.5.sink366 = phi ptr [ @.str.5, %428 ], [ @.str.2, %424 ]
  store i32 %419, ptr %418, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = load i32, ptr %72, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef nonnull @.str.4) #9
  %434 = load i32, ptr %72, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef nonnull @.str.4) #9
  %436 = load i32, ptr %418, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #9
  %438 = load i32, ptr %418, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef nonnull %.str.5.sink366, i32 noundef %431, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %433, ptr noundef %435, ptr noundef %437, i32 noundef %438) #11
  call void @exit(i32 noundef 1) #12
  unreachable

440:                                              ; preds = %303
  %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 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.20, ptr noundef nonnull %7, i64 noundef 12000) #9
  %444 = icmp eq i32 %443, -1
  br i1 %444, label %445, label %468

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

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

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

457:                                              ; preds = %452, %456
  %.str.5.sink375 = phi ptr [ @.str.5, %456 ], [ @.str.2, %452 ]
  store i32 %447, ptr %446, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = load i32, ptr %72, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef nonnull @.str.4) #9
  %462 = load i32, ptr %72, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef nonnull @.str.4) #9
  %464 = load i32, ptr %446, align 4, !tbaa !5
  %465 = call ptr @strerror(i32 noundef %464) #9
  %466 = load i32, ptr %446, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull %.str.5.sink375, i32 noundef %459, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %461, ptr noundef %463, ptr noundef %465, i32 noundef %466) #11
  call void @exit(i32 noundef 1) #12
  unreachable

468:                                              ; preds = %440
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = add nsw i32 %469, 1
  store i32 %470, ptr @test_count, align 4, !tbaa !5
  %471 = call i32 @s2n_config_add_dhparams(ptr noundef nonnull %219, ptr noundef nonnull %7) #9
  %472 = icmp eq i32 %471, -1
  br i1 %472, label %473, label %496

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

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

484:                                              ; preds = %480, %473
  br label %485

485:                                              ; preds = %480, %484
  %.str.5.sink384 = phi ptr [ @.str.5, %484 ], [ @.str.2, %480 ]
  store i32 %475, ptr %474, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %488 = load i32, ptr %72, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef nonnull @.str.4) #9
  %490 = load i32, ptr %72, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror_debug(i32 noundef %490, ptr noundef nonnull @.str.4) #9
  %492 = load i32, ptr %474, align 4, !tbaa !5
  %493 = call ptr @strerror(i32 noundef %492) #9
  %494 = load i32, ptr %474, align 4, !tbaa !5
  %495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %486, ptr noundef nonnull %.str.5.sink384, i32 noundef %487, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %489, ptr noundef %491, ptr noundef %493, i32 noundef %494) #11
  call void @exit(i32 noundef 1) #12
  unreachable

496:                                              ; preds = %303, %468
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = call i32 @s2n_connection_set_config(ptr noundef nonnull %191, ptr noundef nonnull %219) #9
  %500 = icmp eq i32 %499, -1
  br i1 %500, label %501, label %524

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

508:                                              ; preds = %501
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = call i32 @fileno(ptr noundef %509) #9
  %511 = call i32 @isatty(i32 noundef %510) #9
  %.not125 = icmp eq i32 %511, 0
  br i1 %.not125, label %512, label %513

512:                                              ; preds = %508, %501
  br label %513

513:                                              ; preds = %508, %512
  %.str.5.sink393 = phi ptr [ @.str.5, %512 ], [ @.str.2, %508 ]
  store i32 %503, ptr %502, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = load i32, ptr %72, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror(i32 noundef %516, ptr noundef nonnull @.str.4) #9
  %518 = load i32, ptr %72, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror_debug(i32 noundef %518, ptr noundef nonnull @.str.4) #9
  %520 = load i32, ptr %502, align 4, !tbaa !5
  %521 = call ptr @strerror(i32 noundef %520) #9
  %522 = load i32, ptr %502, align 4, !tbaa !5
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef nonnull %.str.5.sink393, i32 noundef %515, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %517, ptr noundef %519, ptr noundef %521, i32 noundef %522) #11
  call void @exit(i32 noundef 1) #12
  unreachable

524:                                              ; preds = %496
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %191, ptr noundef nonnull %8) #9
  %528 = icmp eq i32 %527, -1
  br i1 %528, label %529, label %552

529:                                              ; preds = %524
  %530 = tail call ptr @__errno_location() #10
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @s2n_print_stacktrace(ptr noundef %532) #9
  %534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %535 = trunc nuw i8 %534 to i1
  br i1 %535, label %536, label %540

536:                                              ; preds = %529
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = call i32 @fileno(ptr noundef %537) #9
  %539 = call i32 @isatty(i32 noundef %538) #9
  %.not124 = icmp eq i32 %539, 0
  br i1 %.not124, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.5.sink402 = phi ptr [ @.str.5, %540 ], [ @.str.2, %536 ]
  store i32 %531, ptr %530, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = load i32, ptr %72, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror(i32 noundef %544, ptr noundef nonnull @.str.4) #9
  %546 = load i32, ptr %72, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror_debug(i32 noundef %546, ptr noundef nonnull @.str.4) #9
  %548 = load i32, ptr %530, align 4, !tbaa !5
  %549 = call ptr @strerror(i32 noundef %548) #9
  %550 = load i32, ptr %530, align 4, !tbaa !5
  %551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.5.sink402, i32 noundef %543, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %545, ptr noundef %547, ptr noundef %549, i32 noundef %550) #11
  call void @exit(i32 noundef 1) #12
  unreachable

552:                                              ; preds = %524
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = call i32 @s2n_negotiate(ptr noundef nonnull %191, ptr noundef nonnull %3) #9
  %556 = icmp eq i32 %555, -1
  br i1 %556, label %557, label %580

557:                                              ; preds = %552
  %558 = tail call ptr @__errno_location() #10
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = call i32 @s2n_print_stacktrace(ptr noundef %560) #9
  %562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %563 = trunc nuw i8 %562 to i1
  br i1 %563, label %564, label %568

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

568:                                              ; preds = %564, %557
  br label %569

569:                                              ; preds = %564, %568
  %.str.5.sink411 = phi ptr [ @.str.5, %568 ], [ @.str.2, %564 ]
  store i32 %559, ptr %558, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = load i32, ptr %72, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror(i32 noundef %572, ptr noundef nonnull @.str.4) #9
  %574 = load i32, ptr %72, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror_debug(i32 noundef %574, ptr noundef nonnull @.str.4) #9
  %576 = load i32, ptr %558, align 4, !tbaa !5
  %577 = call ptr @strerror(i32 noundef %576) #9
  %578 = load i32, ptr %558, align 4, !tbaa !5
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef nonnull %.str.5.sink411, i32 noundef %571, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %573, ptr noundef %575, ptr noundef %577, i32 noundef %578) #11
  call void @exit(i32 noundef 1) #12
  unreachable

580:                                              ; preds = %552
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr @test_count, align 4, !tbaa !5
  %583 = getelementptr inbounds i8, ptr %191, i64 220
  %584 = load i8, ptr %583, align 4, !tbaa !15
  %585 = icmp eq i8 %584, 33
  br i1 %585, label %609, label %586

586:                                              ; preds = %580
  %587 = tail call ptr @__errno_location() #10
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @s2n_print_stacktrace(ptr noundef %589) #9
  %591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc nuw i8 %591 to i1
  br i1 %592, label %593, label %597

593:                                              ; preds = %586
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @fileno(ptr noundef %594) #9
  %596 = call i32 @isatty(i32 noundef %595) #9
  %.not110 = icmp eq i32 %596, 0
  br i1 %.not110, label %597, label %598

597:                                              ; preds = %593, %586
  br label %598

598:                                              ; preds = %593, %597
  %.str.5.sink420 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %587, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %72, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #9
  %603 = load i32, ptr %72, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #9
  %605 = load i32, ptr %587, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #9
  %607 = load i32, ptr %587, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink420, i32 noundef %600, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #11
  call void @exit(i32 noundef 1) #12
  unreachable

609:                                              ; preds = %580
  %610 = call i32 @sleep(i32 noundef 1) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #9
  %611 = call i64 @s2n_send(ptr noundef nonnull %191, ptr noundef nonnull %9, i64 noundef 1, ptr noundef nonnull %3) #9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = icmp eq i64 %611, -1
  br i1 %614, label %638, label %615

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

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

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

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

638:                                              ; preds = %609
  %639 = add nsw i32 %612, 2
  store i32 %639, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %72, align 4, !tbaa !5
  %641 = icmp eq i32 %640, 67108864
  br i1 %641, label %665, label %642

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

649:                                              ; preds = %642
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = call i32 @fileno(ptr noundef %650) #9
  %652 = call i32 @isatty(i32 noundef %651) #9
  %.not112 = icmp eq i32 %652, 0
  br i1 %.not112, label %653, label %654

653:                                              ; preds = %649, %642
  br label %654

654:                                              ; preds = %649, %653
  %.str.5.sink438 = phi ptr [ @.str.5, %653 ], [ @.str.2, %649 ]
  store i32 %644, ptr %643, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = load i32, ptr %72, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror(i32 noundef %657, ptr noundef nonnull @.str.4) #9
  %659 = load i32, ptr %72, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror_debug(i32 noundef %659, ptr noundef nonnull @.str.4) #9
  %661 = load i32, ptr %643, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #9
  %663 = load i32, ptr %643, align 4, !tbaa !5
  %664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %655, ptr noundef nonnull %.str.5.sink438, i32 noundef %656, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %658, ptr noundef %660, ptr noundef %662, i32 noundef %663) #11
  call void @exit(i32 noundef 1) #12
  unreachable

665:                                              ; preds = %638
  %666 = add nsw i32 %612, 3
  store i32 %666, ptr @test_count, align 4, !tbaa !5
  %667 = tail call ptr @__errno_location() #10
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = icmp eq i32 %668, 32
  br i1 %669, label %691, label %670

670:                                              ; preds = %665
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = call i32 @s2n_print_stacktrace(ptr noundef %671) #9
  %673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %674 = trunc nuw i8 %673 to i1
  br i1 %674, label %675, label %679

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

679:                                              ; preds = %675, %670
  br label %680

680:                                              ; preds = %675, %679
  %.str.5.sink447 = phi ptr [ @.str.5, %679 ], [ @.str.2, %675 ]
  store i32 %668, ptr %667, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = load i32, ptr %72, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror(i32 noundef %683, ptr noundef nonnull @.str.4) #9
  %685 = load i32, ptr %72, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror_debug(i32 noundef %685, ptr noundef nonnull @.str.4) #9
  %687 = load i32, ptr %667, align 4, !tbaa !5
  %688 = call ptr @strerror(i32 noundef %687) #9
  %689 = load i32, ptr %667, align 4, !tbaa !5
  %690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %681, ptr noundef nonnull %.str.5.sink447, i32 noundef %682, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %684, ptr noundef %686, ptr noundef %688, i32 noundef %689) #11
  call void @exit(i32 noundef 1) #12
  unreachable

691:                                              ; preds = %665
  %692 = call i32 @s2n_shutdown(ptr noundef nonnull %191, ptr noundef nonnull %3) #9
  %693 = load i32, ptr @test_count, align 4, !tbaa !5
  %694 = add nsw i32 %693, 1
  store i32 %694, ptr @test_count, align 4, !tbaa !5
  %695 = icmp eq i32 %692, -1
  br i1 %695, label %718, label %696

696:                                              ; preds = %691
  %697 = load i32, ptr %667, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @s2n_print_stacktrace(ptr noundef %698) #9
  %700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %701 = trunc nuw i8 %700 to i1
  br i1 %701, label %702, label %706

702:                                              ; preds = %696
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @fileno(ptr noundef %703) #9
  %705 = call i32 @isatty(i32 noundef %704) #9
  %.not114 = icmp eq i32 %705, 0
  br i1 %.not114, label %706, label %707

706:                                              ; preds = %702, %696
  br label %707

707:                                              ; preds = %702, %706
  %.str.5.sink456 = phi ptr [ @.str.5, %706 ], [ @.str.2, %702 ]
  store i32 %697, ptr %667, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = load i32, ptr %72, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror(i32 noundef %710, ptr noundef nonnull @.str.4) #9
  %712 = load i32, ptr %72, align 4, !tbaa !5
  %713 = call ptr @s2n_strerror_debug(i32 noundef %712, ptr noundef nonnull @.str.4) #9
  %714 = load i32, ptr %667, align 4, !tbaa !5
  %715 = call ptr @strerror(i32 noundef %714) #9
  %716 = load i32, ptr %667, align 4, !tbaa !5
  %717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %708, ptr noundef nonnull %.str.5.sink456, i32 noundef %709, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %711, ptr noundef %713, ptr noundef %715, i32 noundef %716) #11
  call void @exit(i32 noundef 1) #12
  unreachable

718:                                              ; preds = %691
  %719 = add nsw i32 %693, 2
  store i32 %719, ptr @test_count, align 4, !tbaa !5
  %720 = load i32, ptr %72, align 4, !tbaa !5
  %721 = icmp eq i32 %720, 67108864
  br i1 %721, label %744, label %722

722:                                              ; preds = %718
  %723 = load i32, ptr %667, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @s2n_print_stacktrace(ptr noundef %724) #9
  %726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %727 = trunc nuw i8 %726 to i1
  br i1 %727, label %728, label %732

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

732:                                              ; preds = %728, %722
  br label %733

733:                                              ; preds = %728, %732
  %.str.5.sink465 = phi ptr [ @.str.5, %732 ], [ @.str.2, %728 ]
  store i32 %723, ptr %667, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = load i32, ptr %72, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #9
  %738 = load i32, ptr %72, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #9
  %740 = load i32, ptr %667, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #9
  %742 = load i32, ptr %667, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef nonnull %.str.5.sink465, i32 noundef %735, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #11
  call void @exit(i32 noundef 1) #12
  unreachable

744:                                              ; preds = %718
  %745 = add nsw i32 %693, 3
  store i32 %745, ptr @test_count, align 4, !tbaa !5
  %746 = load i32, ptr %667, align 4, !tbaa !5
  %747 = icmp eq i32 %746, 0
  br i1 %747, label %769, label %748

748:                                              ; preds = %744
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @s2n_print_stacktrace(ptr noundef %749) #9
  %751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %752 = trunc nuw i8 %751 to i1
  br i1 %752, label %753, label %757

753:                                              ; preds = %748
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @fileno(ptr noundef %754) #9
  %756 = call i32 @isatty(i32 noundef %755) #9
  %.not116 = icmp eq i32 %756, 0
  br i1 %.not116, label %757, label %758

757:                                              ; preds = %753, %748
  br label %758

758:                                              ; preds = %753, %757
  %.str.5.sink474 = phi ptr [ @.str.5, %757 ], [ @.str.2, %753 ]
  store i32 %746, ptr %667, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = load i32, ptr %72, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror(i32 noundef %761, ptr noundef nonnull @.str.4) #9
  %763 = load i32, ptr %72, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror_debug(i32 noundef %763, ptr noundef nonnull @.str.4) #9
  %765 = load i32, ptr %667, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #9
  %767 = load i32, ptr %667, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef nonnull %.str.5.sink474, i32 noundef %760, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %762, ptr noundef %764, ptr noundef %766, i32 noundef %767) #11
  call void @exit(i32 noundef 1) #12
  unreachable

769:                                              ; preds = %744
  %770 = add nsw i32 %693, 4
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call i32 @s2n_connection_free(ptr noundef nonnull %191) #9
  %772 = icmp eq i32 %771, -1
  br i1 %772, label %777, label %.preheader.preheader

.preheader.preheader:                             ; preds = %769
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %359) #9
  %776 = icmp eq i32 %775, -1
  br i1 %776, label %808, label %.preheader.1

777:                                              ; preds = %769
  %778 = load i32, ptr %667, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #9
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %777
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #9
  %786 = call i32 @isatty(i32 noundef %785) #9
  %.not122 = icmp eq i32 %786, 0
  br i1 %.not122, label %787, label %788

787:                                              ; preds = %783, %777
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink483 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %667, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %72, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.4) #9
  %793 = load i32, ptr %72, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.4) #9
  %795 = load i32, ptr %667, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #9
  %797 = load i32, ptr %667, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink483, i32 noundef %790, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #11
  call void @exit(i32 noundef 1) #12
  unreachable

.preheader.1:                                     ; preds = %.preheader.preheader
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = add nsw i32 %799, 1
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %291) #9
  %802 = icmp eq i32 %801, -1
  br i1 %802, label %808, label %803

803:                                              ; preds = %.preheader.1
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr @test_count, align 4, !tbaa !5
  %806 = call i32 @s2n_config_free(ptr noundef nonnull %219) #9
  %807 = icmp eq i32 %806, -1
  br i1 %807, label %830, label %852

808:                                              ; preds = %.preheader.1, %.preheader.preheader
  %809 = load i32, ptr %667, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @s2n_print_stacktrace(ptr noundef %810) #9
  %812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %813 = trunc nuw i8 %812 to i1
  br i1 %813, label %814, label %818

814:                                              ; preds = %808
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @fileno(ptr noundef %815) #9
  %817 = call i32 @isatty(i32 noundef %816) #9
  %.not121 = icmp eq i32 %817, 0
  br i1 %.not121, label %818, label %819

818:                                              ; preds = %814, %808
  br label %819

819:                                              ; preds = %814, %818
  %.str.5.sink492 = phi ptr [ @.str.5, %818 ], [ @.str.2, %814 ]
  store i32 %809, ptr %667, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = load i32, ptr %72, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.4) #9
  %824 = load i32, ptr %72, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.4) #9
  %826 = load i32, ptr %667, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #9
  %828 = load i32, ptr %667, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef nonnull %.str.5.sink492, i32 noundef %821, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #11
  call void @exit(i32 noundef 1) #12
  unreachable

830:                                              ; preds = %803
  %831 = load i32, ptr %667, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832) #9
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc nuw i8 %834 to i1
  br i1 %835, label %836, label %840

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

840:                                              ; preds = %836, %830
  br label %841

841:                                              ; preds = %836, %840
  %.str.5.sink501 = phi ptr [ @.str.5, %840 ], [ @.str.2, %836 ]
  store i32 %831, ptr %667, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = load i32, ptr %72, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef nonnull @.str.4) #9
  %846 = load i32, ptr %72, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef nonnull @.str.4) #9
  %848 = load i32, ptr %667, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #9
  %850 = load i32, ptr %667, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef nonnull %.str.5.sink501, i32 noundef %843, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %845, ptr noundef %847, ptr noundef %849, i32 noundef %850) #11
  call void @exit(i32 noundef 1) #12
  unreachable

852:                                              ; preds = %803
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr @test_count, align 4, !tbaa !5
  %855 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %4, i32 noundef 0) #9
  %856 = icmp eq i32 %855, %129
  br i1 %856, label %879, label %857

857:                                              ; preds = %852
  %858 = load i32, ptr %667, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @s2n_print_stacktrace(ptr noundef %859) #9
  %861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %862 = trunc nuw i8 %861 to i1
  br i1 %862, label %863, label %867

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

867:                                              ; preds = %863, %857
  br label %868

868:                                              ; preds = %863, %867
  %.str.5.sink510 = phi ptr [ @.str.5, %867 ], [ @.str.2, %863 ]
  store i32 %858, ptr %667, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = load i32, ptr %72, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef nonnull @.str.4) #9
  %873 = load i32, ptr %72, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef nonnull @.str.4) #9
  %875 = load i32, ptr %667, align 4, !tbaa !5
  %876 = call ptr @strerror(i32 noundef %875) #9
  %877 = load i32, ptr %667, align 4, !tbaa !5
  %878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef nonnull %.str.5.sink510, i32 noundef %870, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %872, ptr noundef %874, ptr noundef %876, i32 noundef %877) #11
  call void @exit(i32 noundef 1) #12
  unreachable

879:                                              ; preds = %852
  %880 = call ptr @getenv(ptr noundef nonnull @.str.35) #9
  %881 = icmp eq ptr %880, null
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %881, label %882, label %908

882:                                              ; preds = %879
  %883 = add nsw i32 %.pre, 1
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = load i32, ptr %4, align 4, !tbaa !5
  %885 = icmp eq i32 %884, 0
  br i1 %885, label %908, label %886

886:                                              ; preds = %882
  %887 = load i32, ptr %667, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @s2n_print_stacktrace(ptr noundef %888) #9
  %890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %891 = trunc nuw i8 %890 to i1
  br i1 %891, label %892, label %896

892:                                              ; preds = %886
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @fileno(ptr noundef %893) #9
  %895 = call i32 @isatty(i32 noundef %894) #9
  %.not118 = icmp eq i32 %895, 0
  br i1 %.not118, label %896, label %897

896:                                              ; preds = %892, %886
  br label %897

897:                                              ; preds = %892, %896
  %.str.5.sink519 = phi ptr [ @.str.5, %896 ], [ @.str.2, %892 ]
  store i32 %887, ptr %667, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = load i32, ptr %72, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef nonnull @.str.4) #9
  %902 = load i32, ptr %72, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef nonnull @.str.4) #9
  %904 = load i32, ptr %667, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #9
  %906 = load i32, ptr %667, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef nonnull %.str.5.sink519, i32 noundef %899, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %901, ptr noundef %903, ptr noundef %905, i32 noundef %906) #11
  call void @exit(i32 noundef 1) #12
  unreachable

908:                                              ; preds = %879, %882
  %909 = phi i32 [ %.pre, %879 ], [ %883, %882 ]
  %910 = add nsw i32 %909, 1
  store i32 %910, ptr @test_count, align 4, !tbaa !5
  %911 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %8, i32 noundef 0) #9
  %912 = icmp eq i32 %911, -1
  br i1 %912, label %913, label %935

913:                                              ; preds = %908
  %914 = load i32, ptr %667, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @s2n_print_stacktrace(ptr noundef %915) #9
  %917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %918 = trunc nuw i8 %917 to i1
  br i1 %918, label %919, label %923

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

923:                                              ; preds = %919, %913
  br label %924

924:                                              ; preds = %919, %923
  %.str.5.sink528 = phi ptr [ @.str.5, %923 ], [ @.str.2, %919 ]
  store i32 %914, ptr %667, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = load i32, ptr %72, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef nonnull @.str.4) #9
  %929 = load i32, ptr %72, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.4) #9
  %931 = load i32, ptr %667, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #9
  %933 = load i32, ptr %667, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %925, ptr noundef nonnull %.str.5.sink528, i32 noundef %926, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %928, ptr noundef %930, ptr noundef %932, i32 noundef %933) #11
  call void @exit(i32 noundef 1) #12
  unreachable

935:                                              ; preds = %908
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9
  %936 = call i32 @s2n_io_pair_close(ptr noundef nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  br i1 %.not109, label %100, label %97, !llvm.loop !42

937:                                              ; preds = %97
  %938 = load i32, ptr %667, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @s2n_print_stacktrace(ptr noundef %939) #9
  %941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %942 = trunc nuw i8 %941 to i1
  br i1 %942, label %943, label %947

943:                                              ; preds = %937
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = call i32 @fileno(ptr noundef %944) #9
  %946 = call i32 @isatty(i32 noundef %945) #9
  %.not108 = icmp eq i32 %946, 0
  br i1 %.not108, label %947, label %948

947:                                              ; preds = %943, %937
  br label %948

948:                                              ; preds = %943, %947
  %.str.5.sink537 = phi ptr [ @.str.5, %947 ], [ @.str.2, %943 ]
  store i32 %938, ptr %667, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = load i32, ptr %72, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror(i32 noundef %951, ptr noundef nonnull @.str.4) #9
  %953 = load i32, ptr %72, align 4, !tbaa !5
  %954 = call ptr @s2n_strerror_debug(i32 noundef %953, ptr noundef nonnull @.str.4) #9
  %955 = load i32, ptr %667, align 4, !tbaa !5
  %956 = call ptr @strerror(i32 noundef %955) #9
  %957 = load i32, ptr %667, align 4, !tbaa !5
  %958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %949, ptr noundef nonnull %.str.5.sink537, i32 noundef %950, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %952, ptr noundef %954, ptr noundef %956, i32 noundef %957) #11
  call void @exit(i32 noundef 1) #12
  unreachable

959:                                              ; preds = %97
  %960 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %961 = icmp eq i32 %960, -1
  br i1 %961, label %962, label %984

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

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

972:                                              ; preds = %968, %962
  br label %973

973:                                              ; preds = %968, %972
  %.str.5.sink546 = phi ptr [ @.str.5, %972 ], [ @.str.2, %968 ]
  store i32 %963, ptr %667, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = load i32, ptr %72, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror(i32 noundef %976, ptr noundef nonnull @.str.4) #9
  %978 = load i32, ptr %72, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef nonnull @.str.4) #9
  %980 = load i32, ptr %667, align 4, !tbaa !5
  %981 = call ptr @strerror(i32 noundef %980) #9
  %982 = load i32, ptr %667, align 4, !tbaa !5
  %983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef nonnull %.str.5.sink546, i32 noundef %975, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %977, ptr noundef %979, ptr noundef %981, i32 noundef %982) #11
  call void @exit(i32 noundef 1) #12
  unreachable

984:                                              ; preds = %959
  %985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %986 = trunc nuw i8 %985 to i1
  br i1 %986, label %987, label %998

987:                                              ; preds = %984
  %988 = load ptr, ptr @stdout, align 8, !tbaa !9
  %989 = call i32 @fileno(ptr noundef %988) #9
  %990 = call i32 @isatty(i32 noundef %989) #9
  %.not = icmp eq i32 %990, 0
  br i1 %.not, label %998, label %991

991:                                              ; preds = %987
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not106 = icmp eq i32 %992, 0
  %993 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not106, label %996, label %994

994:                                              ; preds = %991
  %995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef nonnull @.str.39, i32 noundef %992) #9
  br label %1005

996:                                              ; preds = %991
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef nonnull @.str.40) #9
  br label %1005

998:                                              ; preds = %987, %984
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not105 = icmp eq i32 %999, 0
  %1000 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not105, label %1003, label %1001

1001:                                             ; preds = %998
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull @.str.41, i32 noundef %999) #9
  br label %1005

1003:                                             ; preds = %998
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull @.str.42) #9
  br label %1005

1005:                                             ; preds = %1001, %1003, %994, %996
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #9
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init(ptr noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare i32 @fork() local_unnamed_addr #4

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind memory(read)
declare noundef ptr @getenv(ptr nocapture noundef) local_unnamed_addr #8

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass