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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [90 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@CLIENT_TRANSPORT_PARAMS = external hidden constant [24 x i8], align 16
@.str.30 = external hidden unnamed_addr constant [144 x i8], align 1
@SERVER_TRANSPORT_PARAMS = external hidden constant [24 x i8], align 16
@.str.31 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [52 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i16, align 2
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca 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 %struct.s2n_test_io_pair, 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 [2 x [6 x %struct.s2n_blob]], align 16
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca 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 i64, align 8
  %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
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %63

63:                                               ; preds = %2
  br label %64

64:                                               ; preds = %63
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %65 = load ptr, ptr @stdout, align 8, !tbaa !9
  %66 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %65, ptr noundef @.str, ptr noundef @.str.1) #9
  %67 = load ptr, ptr @stdout, align 8, !tbaa !9
  %68 = call i32 @fflush(ptr noundef %67)
  br label %69

69:                                               ; preds = %64
  %70 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %72, label %123

72:                                               ; preds = %69
  br label %73

73:                                               ; preds = %72
  br label %74

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %75 = call ptr @__errno_location() #10
  %76 = load i32, ptr %75, align 4, !tbaa !5
  store i32 %76, ptr %6, align 4, !tbaa !5
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = call i32 @s2n_print_stacktrace(ptr noundef %77)
  %79 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %80 = trunc i8 %79 to i1
  br i1 %80, label %81, label %103

81:                                               ; preds = %74
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = call i32 @fileno(ptr noundef %82) #9
  %84 = call i32 @isatty(i32 noundef %83) #9
  %85 = icmp ne i32 %84, 0
  br i1 %85, label %86, label %103

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

103:                                              ; preds = %81, %74
  %104 = load i32, ptr %6, align 4, !tbaa !5
  %105 = call ptr @__errno_location() #10
  store i32 %104, ptr %105, align 4, !tbaa !5
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = load i32, ptr @test_count, align 4, !tbaa !5
  %108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = call ptr @s2n_strerror(i32 noundef %109, ptr noundef @.str.4)
  %111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %112 = load i32, ptr %111, align 4, !tbaa !5
  %113 = call ptr @s2n_strerror_debug(i32 noundef %112, ptr noundef @.str.4)
  %114 = call ptr @__errno_location() #10
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = call ptr @strerror(i32 noundef %115) #9
  %117 = call ptr @__errno_location() #10
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %106, ptr noundef @.str.5, i32 noundef %107, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 43, ptr noundef %110, ptr noundef %113, ptr noundef %116, i32 noundef %118) #9
  br label %120

120:                                              ; preds = %103, %86
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %121

121:                                              ; preds = %120
  call void @exit(i32 noundef 1) #11
  unreachable

122:                                              ; No predecessors!
  br label %123

123:                                              ; preds = %122, %69
  br label %124

124:                                              ; preds = %123
  br label %125

125:                                              ; preds = %124
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = call i32 @s2n_enable_atexit()
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %181

130:                                              ; preds = %125
  br label %131

131:                                              ; preds = %130
  br label %132

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

139:                                              ; preds = %132
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = call i32 @fileno(ptr noundef %140) #9
  %142 = call i32 @isatty(i32 noundef %141) #9
  %143 = icmp ne i32 %142, 0
  br i1 %143, label %144, label %161

144:                                              ; preds = %139
  %145 = load i32, ptr %7, align 4, !tbaa !5
  %146 = call ptr @__errno_location() #10
  store i32 %145, ptr %146, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = call ptr @s2n_strerror(i32 noundef %150, ptr noundef @.str.4)
  %152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = call ptr @s2n_strerror_debug(i32 noundef %153, ptr noundef @.str.4)
  %155 = call ptr @__errno_location() #10
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = call ptr @strerror(i32 noundef %156) #9
  %158 = call ptr @__errno_location() #10
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef @.str.2, i32 noundef %148, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 43, ptr noundef %151, ptr noundef %154, ptr noundef %157, i32 noundef %159) #9
  br label %178

161:                                              ; preds = %139, %132
  %162 = load i32, ptr %7, align 4, !tbaa !5
  %163 = call ptr @__errno_location() #10
  store i32 %162, ptr %163, align 4, !tbaa !5
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @s2n_strerror(i32 noundef %167, ptr noundef @.str.4)
  %169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call ptr @s2n_strerror_debug(i32 noundef %170, ptr noundef @.str.4)
  %172 = call ptr @__errno_location() #10
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call ptr @strerror(i32 noundef %173) #9
  %175 = call ptr @__errno_location() #10
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %164, ptr noundef @.str.5, i32 noundef %165, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 43, ptr noundef %168, ptr noundef %171, ptr noundef %174, i32 noundef %176) #9
  br label %178

178:                                              ; preds = %161, %144
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %179

179:                                              ; preds = %178
  call void @exit(i32 noundef 1) #11
  unreachable

180:                                              ; No predecessors!
  br label %181

181:                                              ; preds = %180, %125
  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 %238

187:                                              ; preds = %184
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %190 = call ptr @__errno_location() #10
  %191 = load i32, ptr %190, align 4, !tbaa !5
  store i32 %191, ptr %8, 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) #9
  %199 = call i32 @isatty(i32 noundef %198) #9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %218

201:                                              ; preds = %196
  %202 = load i32, ptr %8, align 4, !tbaa !5
  %203 = call ptr @__errno_location() #10
  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() #10
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = call ptr @strerror(i32 noundef %213) #9
  %215 = call ptr @__errno_location() #10
  %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 43, ptr noundef %208, ptr noundef %211, ptr noundef %214, i32 noundef %216) #9
  br label %235

218:                                              ; preds = %196, %189
  %219 = load i32, ptr %8, align 4, !tbaa !5
  %220 = call ptr @__errno_location() #10
  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() #10
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @strerror(i32 noundef %230) #9
  %232 = call ptr @__errno_location() #10
  %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 43, ptr noundef %225, ptr noundef %228, ptr noundef %231, i32 noundef %233) #9
  br label %235

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

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

237:                                              ; No predecessors!
  br label %238

238:                                              ; preds = %237, %184
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  %241 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %241, label %389, label %242

242:                                              ; preds = %240
  br label %243

243:                                              ; preds = %242
  br label %244

244:                                              ; preds = %243
  %245 = call i32 @s2n_cleanup()
  %246 = icmp eq i32 %245, -1
  br i1 %246, label %247, label %298

247:                                              ; preds = %244
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %250 = call ptr @__errno_location() #10
  %251 = load i32, ptr %250, align 4, !tbaa !5
  store i32 %251, ptr %9, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = call i32 @s2n_print_stacktrace(ptr noundef %252)
  %254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %278

256:                                              ; preds = %249
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = call i32 @fileno(ptr noundef %257) #9
  %259 = call i32 @isatty(i32 noundef %258) #9
  %260 = icmp ne i32 %259, 0
  br i1 %260, label %261, label %278

261:                                              ; preds = %256
  %262 = load i32, ptr %9, align 4, !tbaa !5
  %263 = call ptr @__errno_location() #10
  store i32 %262, ptr %263, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call ptr @s2n_strerror(i32 noundef %267, ptr noundef @.str.4)
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror_debug(i32 noundef %270, ptr noundef @.str.4)
  %272 = call ptr @__errno_location() #10
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @strerror(i32 noundef %273) #9
  %275 = call ptr @__errno_location() #10
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef @.str.2, i32 noundef %265, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 46, ptr noundef %268, ptr noundef %271, ptr noundef %274, i32 noundef %276) #9
  br label %295

278:                                              ; preds = %256, %249
  %279 = load i32, ptr %9, align 4, !tbaa !5
  %280 = call ptr @__errno_location() #10
  store i32 %279, ptr %280, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror(i32 noundef %284, ptr noundef @.str.4)
  %286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror_debug(i32 noundef %287, ptr noundef @.str.4)
  %289 = call ptr @__errno_location() #10
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call ptr @strerror(i32 noundef %290) #9
  %292 = call ptr @__errno_location() #10
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef @.str.5, i32 noundef %282, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 46, ptr noundef %285, ptr noundef %288, ptr noundef %291, i32 noundef %293) #9
  br label %295

295:                                              ; preds = %278, %261
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %296

296:                                              ; preds = %295
  call void @exit(i32 noundef 1) #11
  unreachable

297:                                              ; No predecessors!
  br label %298

298:                                              ; preds = %297, %244
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300
  %302 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %303 = icmp eq i32 %302, -1
  br i1 %303, label %304, label %355

304:                                              ; preds = %301
  br label %305

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %307 = call ptr @__errno_location() #10
  %308 = load i32, ptr %307, align 4, !tbaa !5
  store i32 %308, ptr %10, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @s2n_print_stacktrace(ptr noundef %309)
  %311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %312 = trunc i8 %311 to i1
  br i1 %312, label %313, label %335

313:                                              ; preds = %306
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = call i32 @fileno(ptr noundef %314) #9
  %316 = call i32 @isatty(i32 noundef %315) #9
  %317 = icmp ne i32 %316, 0
  br i1 %317, label %318, label %335

318:                                              ; preds = %313
  %319 = load i32, ptr %10, align 4, !tbaa !5
  %320 = call ptr @__errno_location() #10
  store i32 %319, ptr %320, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call ptr @s2n_strerror(i32 noundef %324, ptr noundef @.str.4)
  %326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror_debug(i32 noundef %327, ptr noundef @.str.4)
  %329 = call ptr @__errno_location() #10
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call ptr @strerror(i32 noundef %330) #9
  %332 = call ptr @__errno_location() #10
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef @.str.2, i32 noundef %322, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 46, ptr noundef %325, ptr noundef %328, ptr noundef %331, i32 noundef %333) #9
  br label %352

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

352:                                              ; preds = %335, %318
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %353

353:                                              ; preds = %352
  call void @exit(i32 noundef 1) #11
  unreachable

354:                                              ; No predecessors!
  br label %355

355:                                              ; preds = %354, %301
  br label %356

356:                                              ; preds = %355
  %357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %358 = trunc i8 %357 to i1
  br i1 %358, label %359, label %375

359:                                              ; preds = %356
  %360 = load ptr, ptr @stdout, align 8, !tbaa !9
  %361 = call i32 @fileno(ptr noundef %360) #9
  %362 = call i32 @isatty(i32 noundef %361) #9
  %363 = icmp ne i32 %362, 0
  br i1 %363, label %364, label %375

364:                                              ; preds = %359
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = icmp ne i32 %365, 0
  br i1 %366, label %367, label %371

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

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

374:                                              ; preds = %371, %367
  br label %386

375:                                              ; preds = %359, %356
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %382

378:                                              ; preds = %375
  %379 = load ptr, ptr @stdout, align 8, !tbaa !9
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %379, ptr noundef @.str.12, i32 noundef %380) #9
  br label %385

382:                                              ; preds = %375
  %383 = load ptr, ptr @stdout, align 8, !tbaa !9
  %384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %383, ptr noundef @.str.13) #9
  br label %385

385:                                              ; preds = %382, %378
  br label %386

386:                                              ; preds = %385, %374
  store i32 0, ptr %3, align 4
  br label %3102

387:                                              ; No predecessors!
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388, %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr %12) #9
  store i16 0, ptr %12, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  store ptr null, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %390

390:                                              ; preds = %389
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr @test_count, align 4, !tbaa !5
  %393 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %393, ptr %13, align 8, !tbaa !9
  %394 = icmp eq ptr %393, null
  br i1 %394, label %395, label %448

395:                                              ; preds = %390
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %398 = call ptr @__errno_location() #10
  %399 = load i32, ptr %398, align 4, !tbaa !5
  store i32 %399, ptr %15, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @s2n_print_stacktrace(ptr noundef %400)
  %402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %403 = trunc i8 %402 to i1
  br i1 %403, label %404, label %426

404:                                              ; preds = %397
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @fileno(ptr noundef %405) #9
  %407 = call i32 @isatty(i32 noundef %406) #9
  %408 = icmp ne i32 %407, 0
  br i1 %408, label %409, label %426

409:                                              ; preds = %404
  %410 = load i32, ptr %15, align 4, !tbaa !5
  %411 = call ptr @__errno_location() #10
  store i32 %410, ptr %411, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror(i32 noundef %415, ptr noundef @.str.4)
  %417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef @.str.4)
  %420 = call ptr @__errno_location() #10
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call ptr @strerror(i32 noundef %421) #9
  %423 = call ptr @__errno_location() #10
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef @.str.2, i32 noundef %413, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %416, ptr noundef %419, ptr noundef %422, i32 noundef %424) #9
  br label %443

426:                                              ; preds = %404, %397
  %427 = load i32, ptr %15, align 4, !tbaa !5
  %428 = call ptr @__errno_location() #10
  store i32 %427, ptr %428, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef @.str.4)
  %434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call ptr @s2n_strerror_debug(i32 noundef %435, ptr noundef @.str.4)
  %437 = call ptr @__errno_location() #10
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @strerror(i32 noundef %438) #9
  %440 = call ptr @__errno_location() #10
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef @.str.5, i32 noundef %430, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %433, ptr noundef %436, ptr noundef %439, i32 noundef %441) #9
  br label %443

443:                                              ; preds = %426, %409
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  call void @exit(i32 noundef 1) #11
  unreachable

446:                                              ; No predecessors!
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447, %390
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr @test_count, align 4, !tbaa !5
  %454 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %454, ptr %14, align 8, !tbaa !9
  %455 = icmp eq ptr %454, null
  br i1 %455, label %456, label %509

456:                                              ; preds = %451
  br label %457

457:                                              ; preds = %456
  br label %458

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

465:                                              ; preds = %458
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @fileno(ptr noundef %466) #9
  %468 = call i32 @isatty(i32 noundef %467) #9
  %469 = icmp ne i32 %468, 0
  br i1 %469, label %470, label %487

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

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

504:                                              ; preds = %487, %470
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %505

505:                                              ; preds = %504
  br label %506

506:                                              ; preds = %505
  call void @exit(i32 noundef 1) #11
  unreachable

507:                                              ; No predecessors!
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508, %451
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  store ptr null, ptr %17, align 8, !tbaa !9
  br label %512

512:                                              ; preds = %511
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  %515 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %17, ptr noundef @.str.16, ptr noundef @.str.17)
  %516 = icmp eq i32 %515, -1
  br i1 %516, label %517, label %570

517:                                              ; preds = %512
  br label %518

518:                                              ; preds = %517
  br label %519

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

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

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

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

565:                                              ; preds = %548, %531
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %566

566:                                              ; preds = %565
  br label %567

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

568:                                              ; No predecessors!
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569, %512
  br label %571

571:                                              ; preds = %570
  br label %572

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

573:                                              ; preds = %572
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr @test_count, align 4, !tbaa !5
  %576 = call ptr @s2n_config_new()
  store ptr %576, ptr %19, align 8, !tbaa !9
  %577 = icmp eq ptr %576, null
  br i1 %577, label %578, label %631

578:                                              ; preds = %573
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %581 = call ptr @__errno_location() #10
  %582 = load i32, ptr %581, align 4, !tbaa !5
  store i32 %582, ptr %20, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @s2n_print_stacktrace(ptr noundef %583)
  %585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %586 = trunc i8 %585 to i1
  br i1 %586, label %587, label %609

587:                                              ; preds = %580
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @fileno(ptr noundef %588) #9
  %590 = call i32 @isatty(i32 noundef %589) #9
  %591 = icmp ne i32 %590, 0
  br i1 %591, label %592, label %609

592:                                              ; preds = %587
  %593 = load i32, ptr %20, align 4, !tbaa !5
  %594 = call ptr @__errno_location() #10
  store i32 %593, ptr %594, align 4, !tbaa !5
  %595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror(i32 noundef %598, ptr noundef @.str.4)
  %600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror_debug(i32 noundef %601, ptr noundef @.str.4)
  %603 = call ptr @__errno_location() #10
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @strerror(i32 noundef %604) #9
  %606 = call ptr @__errno_location() #10
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %595, ptr noundef @.str.2, i32 noundef %596, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 62, ptr noundef %599, ptr noundef %602, ptr noundef %605, i32 noundef %607) #9
  br label %626

609:                                              ; preds = %587, %580
  %610 = load i32, ptr %20, align 4, !tbaa !5
  %611 = call ptr @__errno_location() #10
  store i32 %610, ptr %611, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef @.str.4)
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef @.str.4)
  %620 = call ptr @__errno_location() #10
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #9
  %623 = call ptr @__errno_location() #10
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef @.str.5, i32 noundef %613, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 62, ptr noundef %616, ptr noundef %619, ptr noundef %622, i32 noundef %624) #9
  br label %626

626:                                              ; preds = %609, %592
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @exit(i32 noundef 1) #11
  unreachable

629:                                              ; No predecessors!
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630, %573
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr @test_count, align 4, !tbaa !5
  %637 = load ptr, ptr %19, align 8, !tbaa !9
  %638 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %637, ptr noundef @.str.20)
  %639 = icmp eq i32 %638, -1
  br i1 %639, label %640, label %693

640:                                              ; preds = %634
  br label %641

641:                                              ; preds = %640
  br label %642

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

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
  %653 = icmp ne i32 %652, 0
  br i1 %653, label %654, label %671

654:                                              ; preds = %649
  %655 = load i32, ptr %21, align 4, !tbaa !5
  %656 = call ptr @__errno_location() #10
  store i32 %655, ptr %656, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %660, ptr noundef @.str.4)
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror_debug(i32 noundef %663, ptr noundef @.str.4)
  %665 = call ptr @__errno_location() #10
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @strerror(i32 noundef %666) #9
  %668 = call ptr @__errno_location() #10
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef @.str.2, i32 noundef %658, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 63, ptr noundef %661, ptr noundef %664, ptr noundef %667, i32 noundef %669) #9
  br label %688

671:                                              ; preds = %649, %642
  %672 = load i32, ptr %21, align 4, !tbaa !5
  %673 = call ptr @__errno_location() #10
  store i32 %672, ptr %673, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %677, ptr noundef @.str.4)
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef @.str.4)
  %682 = call ptr @__errno_location() #10
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @strerror(i32 noundef %683) #9
  %685 = call ptr @__errno_location() #10
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef @.str.5, i32 noundef %675, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 63, ptr noundef %678, ptr noundef %681, ptr noundef %684, i32 noundef %686) #9
  br label %688

688:                                              ; preds = %671, %654
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  call void @exit(i32 noundef 1) #11
  unreachable

691:                                              ; No predecessors!
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692, %634
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = load ptr, ptr %19, align 8, !tbaa !9
  %700 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %699)
  %701 = icmp eq i32 %700, -1
  br i1 %701, label %702, label %755

702:                                              ; preds = %696
  br label %703

703:                                              ; preds = %702
  br label %704

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

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

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

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

750:                                              ; preds = %733, %716
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %751

751:                                              ; preds = %750
  br label %752

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

753:                                              ; No predecessors!
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754, %696
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %760 = add nsw i32 %759, 1
  store i32 %760, ptr @test_count, align 4, !tbaa !5
  %761 = load ptr, ptr %19, align 8, !tbaa !9
  %762 = load ptr, ptr %17, align 8, !tbaa !9
  %763 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %761, ptr noundef %762)
  %764 = icmp eq i32 %763, -1
  br i1 %764, label %765, label %818

765:                                              ; preds = %758
  br label %766

766:                                              ; preds = %765
  br label %767

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

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

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

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

813:                                              ; preds = %796, %779
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %814

814:                                              ; preds = %813
  br label %815

815:                                              ; preds = %814
  call void @exit(i32 noundef 1) #11
  unreachable

816:                                              ; No predecessors!
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817, %758
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr @test_count, align 4, !tbaa !5
  %824 = load ptr, ptr %19, align 8, !tbaa !9
  %825 = call i32 @s2n_config_enable_quic(ptr noundef %824)
  %826 = icmp eq i32 %825, -1
  br i1 %826, label %827, label %880

827:                                              ; preds = %821
  br label %828

828:                                              ; preds = %827
  br label %829

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

836:                                              ; preds = %829
  %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
  %840 = icmp ne i32 %839, 0
  br i1 %840, label %841, label %858

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

858:                                              ; preds = %836, %829
  %859 = load i32, ptr %24, align 4, !tbaa !5
  %860 = call ptr @__errno_location() #10
  store i32 %859, ptr %860, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef @.str.4)
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror_debug(i32 noundef %867, ptr noundef @.str.4)
  %869 = call ptr @__errno_location() #10
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @strerror(i32 noundef %870) #9
  %872 = call ptr @__errno_location() #10
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef @.str.5, i32 noundef %862, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 66, ptr noundef %865, ptr noundef %868, ptr noundef %871, i32 noundef %873) #9
  br label %875

875:                                              ; preds = %858, %841
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  call void @exit(i32 noundef 1) #11
  unreachable

878:                                              ; No predecessors!
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879, %821
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr @test_count, align 4, !tbaa !5
  %886 = load ptr, ptr %13, align 8, !tbaa !9
  %887 = load ptr, ptr %19, align 8, !tbaa !9
  %888 = call i32 @s2n_connection_set_config(ptr noundef %886, ptr noundef %887)
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %890, label %943

890:                                              ; preds = %883
  br label %891

891:                                              ; preds = %890
  br label %892

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

899:                                              ; preds = %892
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @fileno(ptr noundef %900) #9
  %902 = call i32 @isatty(i32 noundef %901) #9
  %903 = icmp ne i32 %902, 0
  br i1 %903, label %904, label %921

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

921:                                              ; preds = %899, %892
  %922 = load i32, ptr %25, align 4, !tbaa !5
  %923 = call ptr @__errno_location() #10
  store i32 %922, ptr %923, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef @.str.4)
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror_debug(i32 noundef %930, ptr noundef @.str.4)
  %932 = call ptr @__errno_location() #10
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @strerror(i32 noundef %933) #9
  %935 = call ptr @__errno_location() #10
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef @.str.5, i32 noundef %925, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 67, ptr noundef %928, ptr noundef %931, ptr noundef %934, i32 noundef %936) #9
  br label %938

938:                                              ; preds = %921, %904
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  call void @exit(i32 noundef 1) #11
  unreachable

941:                                              ; No predecessors!
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942, %883
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  %947 = load i32, ptr @test_count, align 4, !tbaa !5
  %948 = add nsw i32 %947, 1
  store i32 %948, ptr @test_count, align 4, !tbaa !5
  %949 = load ptr, ptr %14, align 8, !tbaa !9
  %950 = load ptr, ptr %19, align 8, !tbaa !9
  %951 = call i32 @s2n_connection_set_config(ptr noundef %949, ptr noundef %950)
  %952 = icmp eq i32 %951, -1
  br i1 %952, label %953, label %1006

953:                                              ; preds = %946
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %956 = call ptr @__errno_location() #10
  %957 = load i32, ptr %956, align 4, !tbaa !5
  store i32 %957, ptr %26, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958)
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc i8 %960 to i1
  br i1 %961, label %962, label %984

962:                                              ; preds = %955
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @fileno(ptr noundef %963) #9
  %965 = call i32 @isatty(i32 noundef %964) #9
  %966 = icmp ne i32 %965, 0
  br i1 %966, label %967, label %984

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

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

1001:                                             ; preds = %984, %967
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1002

1002:                                             ; preds = %1001
  br label %1003

1003:                                             ; preds = %1002
  call void @exit(i32 noundef 1) #11
  unreachable

1004:                                             ; No predecessors!
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005, %946
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  br label %1009

1009:                                             ; preds = %1008
  %1010 = load i32, ptr @test_count, align 4, !tbaa !5
  %1011 = add nsw i32 %1010, 1
  store i32 %1011, ptr @test_count, align 4, !tbaa !5
  %1012 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %27)
  %1013 = icmp eq i32 %1012, -1
  br i1 %1013, label %1014, label %1067

1014:                                             ; preds = %1009
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

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

1023:                                             ; preds = %1016
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @fileno(ptr noundef %1024) #9
  %1026 = call i32 @isatty(i32 noundef %1025) #9
  %1027 = icmp ne i32 %1026, 0
  br i1 %1027, label %1028, label %1045

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

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

1062:                                             ; preds = %1045, %1028
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1063

1063:                                             ; preds = %1062
  br label %1064

1064:                                             ; preds = %1063
  call void @exit(i32 noundef 1) #11
  unreachable

1065:                                             ; No predecessors!
  br label %1066

1066:                                             ; preds = %1065
  br label %1067

1067:                                             ; preds = %1066, %1009
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  br label %1070

1070:                                             ; preds = %1069
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = load ptr, ptr %13, align 8, !tbaa !9
  %1074 = call i32 @s2n_connection_set_io_pair(ptr noundef %1073, ptr noundef %27)
  %1075 = icmp eq i32 %1074, -1
  br i1 %1075, label %1076, label %1129

1076:                                             ; preds = %1070
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

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

1085:                                             ; preds = %1078
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = call i32 @fileno(ptr noundef %1086) #9
  %1088 = call i32 @isatty(i32 noundef %1087) #9
  %1089 = icmp ne i32 %1088, 0
  br i1 %1089, label %1090, label %1107

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

1107:                                             ; preds = %1085, %1078
  %1108 = load i32, ptr %29, align 4, !tbaa !5
  %1109 = call ptr @__errno_location() #10
  store i32 %1108, ptr %1109, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror(i32 noundef %1113, ptr noundef @.str.4)
  %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_debug(i32 noundef %1116, ptr noundef @.str.4)
  %1118 = call ptr @__errno_location() #10
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @strerror(i32 noundef %1119) #9
  %1121 = call ptr @__errno_location() #10
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef @.str.5, i32 noundef %1111, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 73, ptr noundef %1114, ptr noundef %1117, ptr noundef %1120, i32 noundef %1122) #9
  br label %1124

1124:                                             ; preds = %1107, %1090
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  call void @exit(i32 noundef 1) #11
  unreachable

1127:                                             ; No predecessors!
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128, %1070
  br label %1130

1130:                                             ; preds = %1129
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = load ptr, ptr %14, align 8, !tbaa !9
  %1136 = call i32 @s2n_connection_set_io_pair(ptr noundef %1135, ptr noundef %27)
  %1137 = icmp eq i32 %1136, -1
  br i1 %1137, label %1138, label %1191

1138:                                             ; preds = %1132
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

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

1147:                                             ; preds = %1140
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = call i32 @fileno(ptr noundef %1148) #9
  %1150 = call i32 @isatty(i32 noundef %1149) #9
  %1151 = icmp ne i32 %1150, 0
  br i1 %1151, label %1152, label %1169

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

1169:                                             ; preds = %1147, %1140
  %1170 = load i32, ptr %30, align 4, !tbaa !5
  %1171 = call ptr @__errno_location() #10
  store i32 %1170, ptr %1171, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror(i32 noundef %1175, ptr noundef @.str.4)
  %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_debug(i32 noundef %1178, ptr noundef @.str.4)
  %1180 = call ptr @__errno_location() #10
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @strerror(i32 noundef %1181) #9
  %1183 = call ptr @__errno_location() #10
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1172, ptr noundef @.str.5, i32 noundef %1173, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1176, ptr noundef %1179, ptr noundef %1182, i32 noundef %1184) #9
  br label %1186

1186:                                             ; preds = %1169, %1152
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1187

1187:                                             ; preds = %1186
  br label %1188

1188:                                             ; preds = %1187
  call void @exit(i32 noundef 1) #11
  unreachable

1189:                                             ; No predecessors!
  br label %1190

1190:                                             ; preds = %1189
  br label %1191

1191:                                             ; preds = %1190, %1132
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192
  br label %1194

1194:                                             ; preds = %1193
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr @test_count, align 4, !tbaa !5
  %1197 = load ptr, ptr %13, align 8, !tbaa !9
  %1198 = call i32 @s2n_connection_set_quic_transport_parameters(ptr noundef %1197, ptr noundef @CLIENT_TRANSPORT_PARAMS, i16 noundef zeroext 24)
  %1199 = icmp eq i32 %1198, -1
  br i1 %1199, label %1200, label %1253

1200:                                             ; preds = %1194
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

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

1209:                                             ; preds = %1202
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = call i32 @fileno(ptr noundef %1210) #9
  %1212 = call i32 @isatty(i32 noundef %1211) #9
  %1213 = icmp ne i32 %1212, 0
  br i1 %1213, label %1214, label %1231

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

1231:                                             ; preds = %1209, %1202
  %1232 = load i32, ptr %31, align 4, !tbaa !5
  %1233 = call ptr @__errno_location() #10
  store i32 %1232, ptr %1233, align 4, !tbaa !5
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror(i32 noundef %1237, ptr noundef @.str.4)
  %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_debug(i32 noundef %1240, ptr noundef @.str.4)
  %1242 = call ptr @__errno_location() #10
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call ptr @strerror(i32 noundef %1243) #9
  %1245 = call ptr @__errno_location() #10
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1234, ptr noundef @.str.5, i32 noundef %1235, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1238, ptr noundef %1241, ptr noundef %1244, i32 noundef %1246) #9
  br label %1248

1248:                                             ; preds = %1231, %1214
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249
  call void @exit(i32 noundef 1) #11
  unreachable

1251:                                             ; No predecessors!
  br label %1252

1252:                                             ; preds = %1251
  br label %1253

1253:                                             ; preds = %1252, %1194
  br label %1254

1254:                                             ; preds = %1253
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = add nsw i32 %1257, 1
  store i32 %1258, ptr @test_count, align 4, !tbaa !5
  %1259 = load ptr, ptr %14, align 8, !tbaa !9
  %1260 = call i32 @s2n_connection_set_quic_transport_parameters(ptr noundef %1259, ptr noundef @SERVER_TRANSPORT_PARAMS, i16 noundef zeroext 24)
  %1261 = icmp eq i32 %1260, -1
  br i1 %1261, label %1262, label %1315

1262:                                             ; preds = %1256
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

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

1271:                                             ; preds = %1264
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @fileno(ptr noundef %1272) #9
  %1274 = call i32 @isatty(i32 noundef %1273) #9
  %1275 = icmp ne i32 %1274, 0
  br i1 %1275, label %1276, label %1293

1276:                                             ; preds = %1271
  %1277 = load i32, ptr %32, align 4, !tbaa !5
  %1278 = call ptr @__errno_location() #10
  store i32 %1277, ptr %1278, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef @.str.4)
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef @.str.4)
  %1287 = call ptr @__errno_location() #10
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #9
  %1290 = call ptr @__errno_location() #10
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef @.str.2, i32 noundef %1280, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1283, ptr noundef %1286, ptr noundef %1289, i32 noundef %1291) #9
  br label %1310

1293:                                             ; preds = %1271, %1264
  %1294 = load i32, ptr %32, align 4, !tbaa !5
  %1295 = call ptr @__errno_location() #10
  store i32 %1294, ptr %1295, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef @.str.4)
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call ptr @__errno_location() #10
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @strerror(i32 noundef %1305) #9
  %1307 = call ptr @__errno_location() #10
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef @.str.5, i32 noundef %1297, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1300, ptr noundef %1303, ptr noundef %1306, i32 noundef %1308) #9
  br label %1310

1310:                                             ; preds = %1293, %1276
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311
  call void @exit(i32 noundef 1) #11
  unreachable

1313:                                             ; No predecessors!
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314, %1256
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316
  call void @llvm.lifetime.start.p0(i64 288, ptr %33) #9
  call void @llvm.memset.p0.i64(ptr align 16 %33, i8 0, i64 288, i1 false)
  br label %1318

1318:                                             ; preds = %1317
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = load ptr, ptr %13, align 8, !tbaa !9
  %1322 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %1323 = call i32 @s2n_connection_set_secret_callback(ptr noundef %1321, ptr noundef @s2n_test_secret_handler, ptr noundef %1322)
  %1324 = icmp eq i32 %1323, -1
  br i1 %1324, label %1325, label %1378

1325:                                             ; preds = %1318
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1328 = call ptr @__errno_location() #10
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  store i32 %1329, ptr %34, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330)
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc i8 %1332 to i1
  br i1 %1333, label %1334, label %1356

1334:                                             ; preds = %1327
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @fileno(ptr noundef %1335) #9
  %1337 = call i32 @isatty(i32 noundef %1336) #9
  %1338 = icmp ne i32 %1337, 0
  br i1 %1338, label %1339, label %1356

1339:                                             ; preds = %1334
  %1340 = load i32, ptr %34, align 4, !tbaa !5
  %1341 = call ptr @__errno_location() #10
  store i32 %1340, ptr %1341, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror(i32 noundef %1345, ptr noundef @.str.4)
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef %1348, ptr noundef @.str.4)
  %1350 = call ptr @__errno_location() #10
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @strerror(i32 noundef %1351) #9
  %1353 = call ptr @__errno_location() #10
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1342, ptr noundef @.str.2, i32 noundef %1343, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1346, ptr noundef %1349, ptr noundef %1352, i32 noundef %1354) #9
  br label %1373

1356:                                             ; preds = %1334, %1327
  %1357 = load i32, ptr %34, align 4, !tbaa !5
  %1358 = call ptr @__errno_location() #10
  store i32 %1357, ptr %1358, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror_debug(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call ptr @__errno_location() #10
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #9
  %1370 = call ptr @__errno_location() #10
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef @.str.5, i32 noundef %1360, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, i32 noundef %1371) #9
  br label %1373

1373:                                             ; preds = %1356, %1339
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374
  call void @exit(i32 noundef 1) #11
  unreachable

1376:                                             ; No predecessors!
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377, %1318
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 1
  store i32 %1383, ptr @test_count, align 4, !tbaa !5
  %1384 = load ptr, ptr %14, align 8, !tbaa !9
  %1385 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %1386 = call i32 @s2n_connection_set_secret_callback(ptr noundef %1384, ptr noundef @s2n_test_secret_handler, ptr noundef %1385)
  %1387 = icmp eq i32 %1386, -1
  br i1 %1387, label %1388, label %1441

1388:                                             ; preds = %1381
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

1390:                                             ; preds = %1389
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1391 = call ptr @__errno_location() #10
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  store i32 %1392, ptr %35, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @s2n_print_stacktrace(ptr noundef %1393)
  %1395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1396 = trunc i8 %1395 to i1
  br i1 %1396, label %1397, label %1419

1397:                                             ; preds = %1390
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = call i32 @fileno(ptr noundef %1398) #9
  %1400 = call i32 @isatty(i32 noundef %1399) #9
  %1401 = icmp ne i32 %1400, 0
  br i1 %1401, label %1402, label %1419

1402:                                             ; preds = %1397
  %1403 = load i32, ptr %35, align 4, !tbaa !5
  %1404 = call ptr @__errno_location() #10
  store i32 %1403, ptr %1404, align 4, !tbaa !5
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror(i32 noundef %1408, ptr noundef @.str.4)
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror_debug(i32 noundef %1411, ptr noundef @.str.4)
  %1413 = call ptr @__errno_location() #10
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @strerror(i32 noundef %1414) #9
  %1416 = call ptr @__errno_location() #10
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1405, ptr noundef @.str.2, i32 noundef %1406, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1409, ptr noundef %1412, ptr noundef %1415, i32 noundef %1417) #9
  br label %1436

1419:                                             ; preds = %1397, %1390
  %1420 = load i32, ptr %35, align 4, !tbaa !5
  %1421 = call ptr @__errno_location() #10
  store i32 %1420, ptr %1421, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror(i32 noundef %1425, ptr noundef @.str.4)
  %1427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror_debug(i32 noundef %1428, ptr noundef @.str.4)
  %1430 = call ptr @__errno_location() #10
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @strerror(i32 noundef %1431) #9
  %1433 = call ptr @__errno_location() #10
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef @.str.5, i32 noundef %1423, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1426, ptr noundef %1429, ptr noundef %1432, i32 noundef %1434) #9
  br label %1436

1436:                                             ; preds = %1419, %1402
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437
  call void @exit(i32 noundef 1) #11
  unreachable

1439:                                             ; No predecessors!
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

1441:                                             ; preds = %1440, %1381
  br label %1442

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442
  br label %1444

1444:                                             ; preds = %1443
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = load ptr, ptr %14, align 8, !tbaa !9
  %1448 = load ptr, ptr %13, align 8, !tbaa !9
  %1449 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1447, ptr noundef %1448)
  %1450 = icmp eq i32 %1449, -1
  br i1 %1450, label %1451, label %1504

1451:                                             ; preds = %1444
  br label %1452

1452:                                             ; preds = %1451
  br label %1453

1453:                                             ; preds = %1452
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  %1454 = call ptr @__errno_location() #10
  %1455 = load i32, ptr %1454, align 4, !tbaa !5
  store i32 %1455, ptr %36, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = call i32 @s2n_print_stacktrace(ptr noundef %1456)
  %1458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1459 = trunc i8 %1458 to i1
  br i1 %1459, label %1460, label %1482

1460:                                             ; preds = %1453
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = call i32 @fileno(ptr noundef %1461) #9
  %1463 = call i32 @isatty(i32 noundef %1462) #9
  %1464 = icmp ne i32 %1463, 0
  br i1 %1464, label %1465, label %1482

1465:                                             ; preds = %1460
  %1466 = load i32, ptr %36, align 4, !tbaa !5
  %1467 = call ptr @__errno_location() #10
  store i32 %1466, ptr %1467, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = load i32, ptr @test_count, align 4, !tbaa !5
  %1470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror(i32 noundef %1471, ptr noundef @.str.4)
  %1473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror_debug(i32 noundef %1474, ptr noundef @.str.4)
  %1476 = call ptr @__errno_location() #10
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @strerror(i32 noundef %1477) #9
  %1479 = call ptr @__errno_location() #10
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1468, ptr noundef @.str.2, i32 noundef %1469, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1472, ptr noundef %1475, ptr noundef %1478, i32 noundef %1480) #9
  br label %1499

1482:                                             ; preds = %1460, %1453
  %1483 = load i32, ptr %36, align 4, !tbaa !5
  %1484 = call ptr @__errno_location() #10
  store i32 %1483, ptr %1484, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef @.str.4)
  %1490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef %1491, ptr noundef @.str.4)
  %1493 = call ptr @__errno_location() #10
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #9
  %1496 = call ptr @__errno_location() #10
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef @.str.5, i32 noundef %1486, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1489, ptr noundef %1492, ptr noundef %1495, i32 noundef %1497) #9
  br label %1499

1499:                                             ; preds = %1482, %1465
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

1501:                                             ; preds = %1500
  call void @exit(i32 noundef 1) #11
  unreachable

1502:                                             ; No predecessors!
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503, %1444
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = load ptr, ptr %13, align 8, !tbaa !9
  %1511 = getelementptr inbounds %struct.s2n_connection, ptr %1510, i32 0, i32 23
  %1512 = load i8, ptr %1511, align 4, !tbaa !17
  %1513 = zext i8 %1512 to i32
  %1514 = icmp eq i32 %1513, 34
  br i1 %1514, label %1568, label %1515

1515:                                             ; preds = %1507
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1518 = call ptr @__errno_location() #10
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  store i32 %1519, ptr %37, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @s2n_print_stacktrace(ptr noundef %1520)
  %1522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1523 = trunc i8 %1522 to i1
  br i1 %1523, label %1524, label %1546

1524:                                             ; preds = %1517
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @fileno(ptr noundef %1525) #9
  %1527 = call i32 @isatty(i32 noundef %1526) #9
  %1528 = icmp ne i32 %1527, 0
  br i1 %1528, label %1529, label %1546

1529:                                             ; preds = %1524
  %1530 = load i32, ptr %37, align 4, !tbaa !5
  %1531 = call ptr @__errno_location() #10
  store i32 %1530, ptr %1531, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror(i32 noundef %1535, ptr noundef @.str.4)
  %1537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror_debug(i32 noundef %1538, ptr noundef @.str.4)
  %1540 = call ptr @__errno_location() #10
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @strerror(i32 noundef %1541) #9
  %1543 = call ptr @__errno_location() #10
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1532, ptr noundef @.str.2, i32 noundef %1533, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1536, ptr noundef %1539, ptr noundef %1542, i32 noundef %1544) #9
  br label %1563

1546:                                             ; preds = %1524, %1517
  %1547 = load i32, ptr %37, align 4, !tbaa !5
  %1548 = call ptr @__errno_location() #10
  store i32 %1547, ptr %1548, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror_debug(i32 noundef %1555, ptr noundef @.str.4)
  %1557 = call ptr @__errno_location() #10
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #9
  %1560 = call ptr @__errno_location() #10
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef @.str.5, i32 noundef %1550, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1553, ptr noundef %1556, ptr noundef %1559, i32 noundef %1561) #9
  br label %1563

1563:                                             ; preds = %1546, %1529
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  call void @exit(i32 noundef 1) #11
  unreachable

1566:                                             ; No predecessors!
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567, %1507
  br label %1569

1569:                                             ; preds = %1568
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = add nsw i32 %1572, 1
  store i32 %1573, ptr @test_count, align 4, !tbaa !5
  %1574 = load ptr, ptr %14, align 8, !tbaa !9
  %1575 = getelementptr inbounds %struct.s2n_connection, ptr %1574, i32 0, i32 23
  %1576 = load i8, ptr %1575, align 4, !tbaa !17
  %1577 = zext i8 %1576 to i32
  %1578 = icmp eq i32 %1577, 34
  br i1 %1578, label %1632, label %1579

1579:                                             ; preds = %1571
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1582 = call ptr @__errno_location() #10
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  store i32 %1583, ptr %38, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = call i32 @s2n_print_stacktrace(ptr noundef %1584)
  %1586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1587 = trunc i8 %1586 to i1
  br i1 %1587, label %1588, label %1610

1588:                                             ; preds = %1581
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @fileno(ptr noundef %1589) #9
  %1591 = call i32 @isatty(i32 noundef %1590) #9
  %1592 = icmp ne i32 %1591, 0
  br i1 %1592, label %1593, label %1610

1593:                                             ; preds = %1588
  %1594 = load i32, ptr %38, align 4, !tbaa !5
  %1595 = call ptr @__errno_location() #10
  store i32 %1594, ptr %1595, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror(i32 noundef %1599, ptr noundef @.str.4)
  %1601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef @.str.4)
  %1604 = call ptr @__errno_location() #10
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call ptr @strerror(i32 noundef %1605) #9
  %1607 = call ptr @__errno_location() #10
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1596, ptr noundef @.str.2, i32 noundef %1597, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1600, ptr noundef %1603, ptr noundef %1606, i32 noundef %1608) #9
  br label %1627

1610:                                             ; preds = %1588, %1581
  %1611 = load i32, ptr %38, align 4, !tbaa !5
  %1612 = call ptr @__errno_location() #10
  store i32 %1611, ptr %1612, align 4, !tbaa !5
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = load i32, ptr @test_count, align 4, !tbaa !5
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror(i32 noundef %1616, ptr noundef @.str.4)
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror_debug(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call ptr @__errno_location() #10
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #9
  %1624 = call ptr @__errno_location() #10
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1613, ptr noundef @.str.5, i32 noundef %1614, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1617, ptr noundef %1620, ptr noundef %1623, i32 noundef %1625) #9
  br label %1627

1627:                                             ; preds = %1610, %1593
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1628

1628:                                             ; preds = %1627
  br label %1629

1629:                                             ; preds = %1628
  call void @exit(i32 noundef 1) #11
  unreachable

1630:                                             ; No predecessors!
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631, %1571
  br label %1633

1633:                                             ; preds = %1632
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = add nsw i32 %1636, 1
  store i32 %1637, ptr @test_count, align 4, !tbaa !5
  %1638 = load ptr, ptr %13, align 8, !tbaa !9
  %1639 = call i32 @s2n_connection_get_quic_transport_parameters(ptr noundef %1638, ptr noundef %11, ptr noundef %12)
  %1640 = icmp eq i32 %1639, -1
  br i1 %1640, label %1641, label %1694

1641:                                             ; preds = %1635
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

1643:                                             ; preds = %1642
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1644 = call ptr @__errno_location() #10
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  store i32 %1645, ptr %39, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = call i32 @s2n_print_stacktrace(ptr noundef %1646)
  %1648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1649 = trunc i8 %1648 to i1
  br i1 %1649, label %1650, label %1672

1650:                                             ; preds = %1643
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @fileno(ptr noundef %1651) #9
  %1653 = call i32 @isatty(i32 noundef %1652) #9
  %1654 = icmp ne i32 %1653, 0
  br i1 %1654, label %1655, label %1672

1655:                                             ; preds = %1650
  %1656 = load i32, ptr %39, align 4, !tbaa !5
  %1657 = call ptr @__errno_location() #10
  store i32 %1656, ptr %1657, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror(i32 noundef %1661, ptr noundef @.str.4)
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call ptr @__errno_location() #10
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #9
  %1669 = call ptr @__errno_location() #10
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef @.str.2, i32 noundef %1659, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1662, ptr noundef %1665, ptr noundef %1668, i32 noundef %1670) #9
  br label %1689

1672:                                             ; preds = %1650, %1643
  %1673 = load i32, ptr %39, align 4, !tbaa !5
  %1674 = call ptr @__errno_location() #10
  store i32 %1673, ptr %1674, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror(i32 noundef %1678, ptr noundef @.str.4)
  %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_debug(i32 noundef %1681, ptr noundef @.str.4)
  %1683 = call ptr @__errno_location() #10
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @strerror(i32 noundef %1684) #9
  %1686 = call ptr @__errno_location() #10
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1675, ptr noundef @.str.5, i32 noundef %1676, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1679, ptr noundef %1682, ptr noundef %1685, i32 noundef %1687) #9
  br label %1689

1689:                                             ; preds = %1672, %1655
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  call void @exit(i32 noundef 1) #11
  unreachable

1692:                                             ; No predecessors!
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

1694:                                             ; preds = %1693, %1635
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = add nsw i32 %1698, 1
  store i32 %1699, ptr @test_count, align 4, !tbaa !5
  %1700 = load i16, ptr %12, align 2, !tbaa !15
  %1701 = zext i16 %1700 to i64
  %1702 = icmp eq i64 %1701, 24
  br i1 %1702, label %1756, label %1703

1703:                                             ; preds = %1697
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

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

1712:                                             ; preds = %1705
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #9
  %1715 = call i32 @isatty(i32 noundef %1714) #9
  %1716 = icmp ne i32 %1715, 0
  br i1 %1716, label %1717, label %1734

1717:                                             ; preds = %1712
  %1718 = load i32, ptr %40, align 4, !tbaa !5
  %1719 = call ptr @__errno_location() #10
  store i32 %1718, ptr %1719, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef @.str.4)
  %1728 = call ptr @__errno_location() #10
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @strerror(i32 noundef %1729) #9
  %1731 = call ptr @__errno_location() #10
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1720, ptr noundef @.str.2, i32 noundef %1721, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1724, ptr noundef %1727, ptr noundef %1730, i32 noundef %1732) #9
  br label %1751

1734:                                             ; preds = %1712, %1705
  %1735 = load i32, ptr %40, align 4, !tbaa !5
  %1736 = call ptr @__errno_location() #10
  store i32 %1735, ptr %1736, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror(i32 noundef %1740, ptr noundef @.str.4)
  %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_debug(i32 noundef %1743, ptr noundef @.str.4)
  %1745 = call ptr @__errno_location() #10
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #9
  %1748 = call ptr @__errno_location() #10
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef @.str.5, i32 noundef %1738, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1741, ptr noundef %1744, ptr noundef %1747, i32 noundef %1749) #9
  br label %1751

1751:                                             ; preds = %1734, %1717
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752
  call void @exit(i32 noundef 1) #11
  unreachable

1754:                                             ; No predecessors!
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755, %1697
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

1759:                                             ; preds = %1758
  %1760 = load i16, ptr %12, align 2, !tbaa !15
  %1761 = zext i16 %1760 to i32
  %1762 = icmp ne i32 %1761, 0
  br i1 %1762, label %1763, label %1828

1763:                                             ; preds = %1759
  br label %1764

1764:                                             ; preds = %1763
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = add nsw i32 %1765, 1
  store i32 %1766, ptr @test_count, align 4, !tbaa !5
  %1767 = load ptr, ptr %11, align 8, !tbaa !9
  %1768 = load i16, ptr %12, align 2, !tbaa !15
  %1769 = zext i16 %1768 to i64
  %1770 = call i32 @memcmp(ptr noundef %1767, ptr noundef @SERVER_TRANSPORT_PARAMS, i64 noundef %1769) #12
  %1771 = icmp eq i32 %1770, 0
  br i1 %1771, label %1825, label %1772

1772:                                             ; preds = %1764
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1775 = call ptr @__errno_location() #10
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  store i32 %1776, ptr %41, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777)
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc i8 %1779 to i1
  br i1 %1780, label %1781, label %1803

1781:                                             ; preds = %1774
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #9
  %1784 = call i32 @isatty(i32 noundef %1783) #9
  %1785 = icmp ne i32 %1784, 0
  br i1 %1785, label %1786, label %1803

1786:                                             ; preds = %1781
  %1787 = load i32, ptr %41, align 4, !tbaa !5
  %1788 = call ptr @__errno_location() #10
  store i32 %1787, ptr %1788, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror_debug(i32 noundef %1795, ptr noundef @.str.4)
  %1797 = call ptr @__errno_location() #10
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @strerror(i32 noundef %1798) #9
  %1800 = call ptr @__errno_location() #10
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef @.str.2, i32 noundef %1790, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1793, ptr noundef %1796, ptr noundef %1799, i32 noundef %1801) #9
  br label %1820

1803:                                             ; preds = %1781, %1774
  %1804 = load i32, ptr %41, align 4, !tbaa !5
  %1805 = call ptr @__errno_location() #10
  store i32 %1804, ptr %1805, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror_debug(i32 noundef %1812, ptr noundef @.str.4)
  %1814 = call ptr @__errno_location() #10
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #9
  %1817 = call ptr @__errno_location() #10
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef @.str.5, i32 noundef %1807, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1810, ptr noundef %1813, ptr noundef %1816, i32 noundef %1818) #9
  br label %1820

1820:                                             ; preds = %1803, %1786
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  call void @exit(i32 noundef 1) #11
  unreachable

1823:                                             ; No predecessors!
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

1825:                                             ; preds = %1824, %1764
  br label %1826

1826:                                             ; preds = %1825
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827, %1759
  br label %1829

1829:                                             ; preds = %1828
  br label %1830

1830:                                             ; preds = %1829
  br label %1831

1831:                                             ; preds = %1830
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = add nsw i32 %1832, 1
  store i32 %1833, ptr @test_count, align 4, !tbaa !5
  %1834 = load ptr, ptr %14, align 8, !tbaa !9
  %1835 = call i32 @s2n_connection_get_quic_transport_parameters(ptr noundef %1834, ptr noundef %11, ptr noundef %12)
  %1836 = icmp eq i32 %1835, -1
  br i1 %1836, label %1837, label %1890

1837:                                             ; preds = %1831
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1840 = call ptr @__errno_location() #10
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  store i32 %1841, ptr %42, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = call i32 @s2n_print_stacktrace(ptr noundef %1842)
  %1844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1845 = trunc i8 %1844 to i1
  br i1 %1845, label %1846, label %1868

1846:                                             ; preds = %1839
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = call i32 @fileno(ptr noundef %1847) #9
  %1849 = call i32 @isatty(i32 noundef %1848) #9
  %1850 = icmp ne i32 %1849, 0
  br i1 %1850, label %1851, label %1868

1851:                                             ; preds = %1846
  %1852 = load i32, ptr %42, align 4, !tbaa !5
  %1853 = call ptr @__errno_location() #10
  store i32 %1852, ptr %1853, align 4, !tbaa !5
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = load i32, ptr @test_count, align 4, !tbaa !5
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror_debug(i32 noundef %1860, ptr noundef @.str.4)
  %1862 = call ptr @__errno_location() #10
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @strerror(i32 noundef %1863) #9
  %1865 = call ptr @__errno_location() #10
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1854, ptr noundef @.str.2, i32 noundef %1855, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1858, ptr noundef %1861, ptr noundef %1864, i32 noundef %1866) #9
  br label %1885

1868:                                             ; preds = %1846, %1839
  %1869 = load i32, ptr %42, align 4, !tbaa !5
  %1870 = call ptr @__errno_location() #10
  store i32 %1869, ptr %1870, align 4, !tbaa !5
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror_debug(i32 noundef %1877, ptr noundef @.str.4)
  %1879 = call ptr @__errno_location() #10
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #9
  %1882 = call ptr @__errno_location() #10
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1871, ptr noundef @.str.5, i32 noundef %1872, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1875, ptr noundef %1878, ptr noundef %1881, i32 noundef %1883) #9
  br label %1885

1885:                                             ; preds = %1868, %1851
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  call void @exit(i32 noundef 1) #11
  unreachable

1888:                                             ; No predecessors!
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889, %1831
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  br label %1893

1893:                                             ; preds = %1892
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr @test_count, align 4, !tbaa !5
  %1896 = load i16, ptr %12, align 2, !tbaa !15
  %1897 = zext i16 %1896 to i64
  %1898 = icmp eq i64 %1897, 24
  br i1 %1898, label %1952, label %1899

1899:                                             ; preds = %1893
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1902 = call ptr @__errno_location() #10
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  store i32 %1903, ptr %43, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = call i32 @s2n_print_stacktrace(ptr noundef %1904)
  %1906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1907 = trunc i8 %1906 to i1
  br i1 %1907, label %1908, label %1930

1908:                                             ; preds = %1901
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = call i32 @fileno(ptr noundef %1909) #9
  %1911 = call i32 @isatty(i32 noundef %1910) #9
  %1912 = icmp ne i32 %1911, 0
  br i1 %1912, label %1913, label %1930

1913:                                             ; preds = %1908
  %1914 = load i32, ptr %43, align 4, !tbaa !5
  %1915 = call ptr @__errno_location() #10
  store i32 %1914, ptr %1915, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror(i32 noundef %1919, ptr noundef @.str.4)
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror_debug(i32 noundef %1922, ptr noundef @.str.4)
  %1924 = call ptr @__errno_location() #10
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @strerror(i32 noundef %1925) #9
  %1927 = call ptr @__errno_location() #10
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1916, ptr noundef @.str.2, i32 noundef %1917, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1920, ptr noundef %1923, ptr noundef %1926, i32 noundef %1928) #9
  br label %1947

1930:                                             ; preds = %1908, %1901
  %1931 = load i32, ptr %43, align 4, !tbaa !5
  %1932 = call ptr @__errno_location() #10
  store i32 %1931, ptr %1932, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror(i32 noundef %1936, ptr noundef @.str.4)
  %1938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  %1940 = call ptr @s2n_strerror_debug(i32 noundef %1939, ptr noundef @.str.4)
  %1941 = call ptr @__errno_location() #10
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call ptr @strerror(i32 noundef %1942) #9
  %1944 = call ptr @__errno_location() #10
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1933, ptr noundef @.str.5, i32 noundef %1934, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1937, ptr noundef %1940, ptr noundef %1943, i32 noundef %1945) #9
  br label %1947

1947:                                             ; preds = %1930, %1913
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1948

1948:                                             ; preds = %1947
  br label %1949

1949:                                             ; preds = %1948
  call void @exit(i32 noundef 1) #11
  unreachable

1950:                                             ; No predecessors!
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951, %1893
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

1955:                                             ; preds = %1954
  %1956 = load i16, ptr %12, align 2, !tbaa !15
  %1957 = zext i16 %1956 to i32
  %1958 = icmp ne i32 %1957, 0
  br i1 %1958, label %1959, label %2024

1959:                                             ; preds = %1955
  br label %1960

1960:                                             ; preds = %1959
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = add nsw i32 %1961, 1
  store i32 %1962, ptr @test_count, align 4, !tbaa !5
  %1963 = load ptr, ptr %11, align 8, !tbaa !9
  %1964 = load i16, ptr %12, align 2, !tbaa !15
  %1965 = zext i16 %1964 to i64
  %1966 = call i32 @memcmp(ptr noundef %1963, ptr noundef @CLIENT_TRANSPORT_PARAMS, i64 noundef %1965) #12
  %1967 = icmp eq i32 %1966, 0
  br i1 %1967, label %2021, label %1968

1968:                                             ; preds = %1960
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %1971 = call ptr @__errno_location() #10
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  store i32 %1972, ptr %44, align 4, !tbaa !5
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @s2n_print_stacktrace(ptr noundef %1973)
  %1975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1976 = trunc i8 %1975 to i1
  br i1 %1976, label %1977, label %1999

1977:                                             ; preds = %1970
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = call i32 @fileno(ptr noundef %1978) #9
  %1980 = call i32 @isatty(i32 noundef %1979) #9
  %1981 = icmp ne i32 %1980, 0
  br i1 %1981, label %1982, label %1999

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

1999:                                             ; preds = %1977, %1970
  %2000 = load i32, ptr %44, align 4, !tbaa !5
  %2001 = call ptr @__errno_location() #10
  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() #10
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @strerror(i32 noundef %2011) #9
  %2013 = call ptr @__errno_location() #10
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2002, ptr noundef @.str.5, i32 noundef %2003, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2006, ptr noundef %2009, ptr noundef %2012, i32 noundef %2014) #9
  br label %2016

2016:                                             ; preds = %1999, %1982
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

2018:                                             ; preds = %2017
  call void @exit(i32 noundef 1) #11
  unreachable

2019:                                             ; No predecessors!
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

2021:                                             ; preds = %2020, %1960
  br label %2022

2022:                                             ; preds = %2021
  br label %2023

2023:                                             ; preds = %2022
  br label %2024

2024:                                             ; preds = %2023, %1955
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  br label %2027

2027:                                             ; preds = %2026
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = add nsw i32 %2028, 1
  store i32 %2029, ptr @test_count, align 4, !tbaa !5
  %2030 = load ptr, ptr %13, align 8, !tbaa !9
  %2031 = getelementptr inbounds %struct.s2n_connection, ptr %2030, i32 0, i32 19
  %2032 = load i8, ptr %2031, align 8, !tbaa !43
  %2033 = zext i8 %2032 to i32
  %2034 = icmp eq i32 %2033, 0
  br i1 %2034, label %2088, label %2035

2035:                                             ; preds = %2027
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %2038 = call ptr @__errno_location() #10
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  store i32 %2039, ptr %45, align 4, !tbaa !5
  %2040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2041 = call i32 @s2n_print_stacktrace(ptr noundef %2040)
  %2042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2043 = trunc i8 %2042 to i1
  br i1 %2043, label %2044, label %2066

2044:                                             ; preds = %2037
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @fileno(ptr noundef %2045) #9
  %2047 = call i32 @isatty(i32 noundef %2046) #9
  %2048 = icmp ne i32 %2047, 0
  br i1 %2048, label %2049, label %2066

2049:                                             ; preds = %2044
  %2050 = load i32, ptr %45, align 4, !tbaa !5
  %2051 = call ptr @__errno_location() #10
  store i32 %2050, ptr %2051, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror(i32 noundef %2055, ptr noundef @.str.4)
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef @.str.4)
  %2060 = call ptr @__errno_location() #10
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @strerror(i32 noundef %2061) #9
  %2063 = call ptr @__errno_location() #10
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2052, ptr noundef @.str.2, i32 noundef %2053, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2056, ptr noundef %2059, ptr noundef %2062, i32 noundef %2064) #9
  br label %2083

2066:                                             ; preds = %2044, %2037
  %2067 = load i32, ptr %45, align 4, !tbaa !5
  %2068 = call ptr @__errno_location() #10
  store i32 %2067, ptr %2068, align 4, !tbaa !5
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror(i32 noundef %2072, ptr noundef @.str.4)
  %2074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @s2n_strerror_debug(i32 noundef %2075, ptr noundef @.str.4)
  %2077 = call ptr @__errno_location() #10
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @strerror(i32 noundef %2078) #9
  %2080 = call ptr @__errno_location() #10
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2069, ptr noundef @.str.5, i32 noundef %2070, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2073, ptr noundef %2076, ptr noundef %2079, i32 noundef %2081) #9
  br label %2083

2083:                                             ; preds = %2066, %2049
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084
  call void @exit(i32 noundef 1) #11
  unreachable

2086:                                             ; No predecessors!
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

2088:                                             ; preds = %2087, %2027
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089
  br label %2091

2091:                                             ; preds = %2090
  %2092 = load i32, ptr @test_count, align 4, !tbaa !5
  %2093 = add nsw i32 %2092, 1
  store i32 %2093, ptr @test_count, align 4, !tbaa !5
  %2094 = load ptr, ptr %14, align 8, !tbaa !9
  %2095 = getelementptr inbounds %struct.s2n_connection, ptr %2094, i32 0, i32 19
  %2096 = load i8, ptr %2095, align 8, !tbaa !43
  %2097 = zext i8 %2096 to i32
  %2098 = icmp eq i32 %2097, 0
  br i1 %2098, label %2152, label %2099

2099:                                             ; preds = %2091
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2102 = call ptr @__errno_location() #10
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  store i32 %2103, ptr %46, align 4, !tbaa !5
  %2104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2105 = call i32 @s2n_print_stacktrace(ptr noundef %2104)
  %2106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2107 = trunc i8 %2106 to i1
  br i1 %2107, label %2108, label %2130

2108:                                             ; preds = %2101
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = call i32 @fileno(ptr noundef %2109) #9
  %2111 = call i32 @isatty(i32 noundef %2110) #9
  %2112 = icmp ne i32 %2111, 0
  br i1 %2112, label %2113, label %2130

2113:                                             ; preds = %2108
  %2114 = load i32, ptr %46, align 4, !tbaa !5
  %2115 = call ptr @__errno_location() #10
  store i32 %2114, ptr %2115, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror_debug(i32 noundef %2122, ptr noundef @.str.4)
  %2124 = call ptr @__errno_location() #10
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @strerror(i32 noundef %2125) #9
  %2127 = call ptr @__errno_location() #10
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef @.str.2, i32 noundef %2117, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2120, ptr noundef %2123, ptr noundef %2126, i32 noundef %2128) #9
  br label %2147

2130:                                             ; preds = %2108, %2101
  %2131 = load i32, ptr %46, align 4, !tbaa !5
  %2132 = call ptr @__errno_location() #10
  store i32 %2131, ptr %2132, align 4, !tbaa !5
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror(i32 noundef %2136, ptr noundef @.str.4)
  %2138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror_debug(i32 noundef %2139, ptr noundef @.str.4)
  %2141 = call ptr @__errno_location() #10
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @strerror(i32 noundef %2142) #9
  %2144 = call ptr @__errno_location() #10
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2133, ptr noundef @.str.5, i32 noundef %2134, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2137, ptr noundef %2140, ptr noundef %2143, i32 noundef %2145) #9
  br label %2147

2147:                                             ; preds = %2130, %2113
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2148

2148:                                             ; preds = %2147
  br label %2149

2149:                                             ; preds = %2148
  call void @exit(i32 noundef 1) #11
  unreachable

2150:                                             ; No predecessors!
  br label %2151

2151:                                             ; preds = %2150
  br label %2152

2152:                                             ; preds = %2151, %2091
  br label %2153

2153:                                             ; preds = %2152
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = add nsw i32 %2156, 1
  store i32 %2157, ptr @test_count, align 4, !tbaa !5
  %2158 = load ptr, ptr %13, align 8, !tbaa !9
  %2159 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2158, i32 noundef 32)
  br i1 %2159, label %2160, label %2213

2160:                                             ; preds = %2155
  br label %2161

2161:                                             ; preds = %2160
  br label %2162

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

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

2174:                                             ; preds = %2169
  %2175 = load i32, ptr %47, align 4, !tbaa !5
  %2176 = call ptr @__errno_location() #10
  store i32 %2175, ptr %2176, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = load i32, ptr @test_count, align 4, !tbaa !5
  %2179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call ptr @s2n_strerror(i32 noundef %2180, ptr noundef @.str.4)
  %2182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef @.str.4)
  %2185 = call ptr @__errno_location() #10
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call ptr @strerror(i32 noundef %2186) #9
  %2188 = call ptr @__errno_location() #10
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2177, ptr noundef @.str.2, i32 noundef %2178, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2181, ptr noundef %2184, ptr noundef %2187, i32 noundef %2189) #9
  br label %2208

2191:                                             ; preds = %2169, %2162
  %2192 = load i32, ptr %47, align 4, !tbaa !5
  %2193 = call ptr @__errno_location() #10
  store i32 %2192, ptr %2193, align 4, !tbaa !5
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = load i32, ptr @test_count, align 4, !tbaa !5
  %2196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror(i32 noundef %2197, ptr noundef @.str.4)
  %2199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @s2n_strerror_debug(i32 noundef %2200, ptr noundef @.str.4)
  %2202 = call ptr @__errno_location() #10
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @strerror(i32 noundef %2203) #9
  %2205 = call ptr @__errno_location() #10
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2194, ptr noundef @.str.5, i32 noundef %2195, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2198, ptr noundef %2201, ptr noundef %2204, i32 noundef %2206) #9
  br label %2208

2208:                                             ; preds = %2191, %2174
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

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

2211:                                             ; No predecessors!
  br label %2212

2212:                                             ; preds = %2211
  br label %2213

2213:                                             ; preds = %2212, %2155
  br label %2214

2214:                                             ; preds = %2213
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

2216:                                             ; preds = %2215
  %2217 = load i32, ptr @test_count, align 4, !tbaa !5
  %2218 = add nsw i32 %2217, 1
  store i32 %2218, ptr @test_count, align 4, !tbaa !5
  %2219 = load ptr, ptr %14, align 8, !tbaa !9
  %2220 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2219, i32 noundef 32)
  br i1 %2220, label %2221, label %2274

2221:                                             ; preds = %2216
  br label %2222

2222:                                             ; preds = %2221
  br label %2223

2223:                                             ; preds = %2222
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %2224 = call ptr @__errno_location() #10
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  store i32 %2225, ptr %48, align 4, !tbaa !5
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @s2n_print_stacktrace(ptr noundef %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 %2252

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

2235:                                             ; preds = %2230
  %2236 = load i32, ptr %48, align 4, !tbaa !5
  %2237 = call ptr @__errno_location() #10
  store i32 %2236, ptr %2237, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef @.str.4)
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror_debug(i32 noundef %2244, ptr noundef @.str.4)
  %2246 = call ptr @__errno_location() #10
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @strerror(i32 noundef %2247) #9
  %2249 = call ptr @__errno_location() #10
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2238, ptr noundef @.str.2, i32 noundef %2239, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2242, ptr noundef %2245, ptr noundef %2248, i32 noundef %2250) #9
  br label %2269

2252:                                             ; preds = %2230, %2223
  %2253 = load i32, ptr %48, align 4, !tbaa !5
  %2254 = call ptr @__errno_location() #10
  store i32 %2253, ptr %2254, align 4, !tbaa !5
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %2257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @s2n_strerror(i32 noundef %2258, ptr noundef @.str.4)
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef @.str.4)
  %2263 = call ptr @__errno_location() #10
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @strerror(i32 noundef %2264) #9
  %2266 = call ptr @__errno_location() #10
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2255, ptr noundef @.str.5, i32 noundef %2256, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2259, ptr noundef %2262, ptr noundef %2265, i32 noundef %2267) #9
  br label %2269

2269:                                             ; preds = %2252, %2235
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

2271:                                             ; preds = %2270
  call void @exit(i32 noundef 1) #11
  unreachable

2272:                                             ; No predecessors!
  br label %2273

2273:                                             ; preds = %2272
  br label %2274

2274:                                             ; preds = %2273, %2216
  br label %2275

2275:                                             ; preds = %2274
  br label %2276

2276:                                             ; preds = %2275
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  store i64 1, ptr %49, align 8, !tbaa !44
  br label %2277

2277:                                             ; preds = %2633, %2276
  %2278 = load i64, ptr %49, align 8, !tbaa !44
  %2279 = icmp ult i64 %2278, 6
  br i1 %2279, label %2281, label %2280

2280:                                             ; preds = %2277
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %2636

2281:                                             ; preds = %2277
  br label %2282

2282:                                             ; preds = %2281
  %2283 = load i32, ptr @test_count, align 4, !tbaa !5
  %2284 = add nsw i32 %2283, 1
  store i32 %2284, ptr @test_count, align 4, !tbaa !5
  %2285 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 1
  %2286 = load i64, ptr %49, align 8, !tbaa !44
  %2287 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2285, i64 0, i64 %2286
  %2288 = getelementptr inbounds %struct.s2n_blob, ptr %2287, i32 0, i32 1
  %2289 = load i32, ptr %2288, align 8, !tbaa !45
  %2290 = icmp eq i32 %2289, 0
  br i1 %2290, label %2291, label %2344

2291:                                             ; preds = %2282
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %2294 = call ptr @__errno_location() #10
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  store i32 %2295, ptr %50, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = call i32 @s2n_print_stacktrace(ptr noundef %2296)
  %2298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2299 = trunc i8 %2298 to i1
  br i1 %2299, label %2300, label %2322

2300:                                             ; preds = %2293
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = call i32 @fileno(ptr noundef %2301) #9
  %2303 = call i32 @isatty(i32 noundef %2302) #9
  %2304 = icmp ne i32 %2303, 0
  br i1 %2304, label %2305, label %2322

2305:                                             ; preds = %2300
  %2306 = load i32, ptr %50, align 4, !tbaa !5
  %2307 = call ptr @__errno_location() #10
  store i32 %2306, ptr %2307, align 4, !tbaa !5
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = load i32, ptr @test_count, align 4, !tbaa !5
  %2310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror(i32 noundef %2311, ptr noundef @.str.4)
  %2313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @s2n_strerror_debug(i32 noundef %2314, ptr noundef @.str.4)
  %2316 = call ptr @__errno_location() #10
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call ptr @strerror(i32 noundef %2317) #9
  %2319 = call ptr @__errno_location() #10
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2308, ptr noundef @.str.2, i32 noundef %2309, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2312, ptr noundef %2315, ptr noundef %2318, i32 noundef %2320) #9
  br label %2339

2322:                                             ; preds = %2300, %2293
  %2323 = load i32, ptr %50, align 4, !tbaa !5
  %2324 = call ptr @__errno_location() #10
  store i32 %2323, ptr %2324, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror(i32 noundef %2328, ptr noundef @.str.4)
  %2330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror_debug(i32 noundef %2331, ptr noundef @.str.4)
  %2333 = call ptr @__errno_location() #10
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @strerror(i32 noundef %2334) #9
  %2336 = call ptr @__errno_location() #10
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2325, ptr noundef @.str.5, i32 noundef %2326, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2329, ptr noundef %2332, ptr noundef %2335, i32 noundef %2337) #9
  br label %2339

2339:                                             ; preds = %2322, %2305
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

2341:                                             ; preds = %2340
  call void @exit(i32 noundef 1) #11
  unreachable

2342:                                             ; No predecessors!
  br label %2343

2343:                                             ; preds = %2342
  br label %2344

2344:                                             ; preds = %2343, %2282
  br label %2345

2345:                                             ; preds = %2344
  br label %2346

2346:                                             ; preds = %2345
  br label %2347

2347:                                             ; preds = %2346
  %2348 = load i32, ptr @test_count, align 4, !tbaa !5
  %2349 = add nsw i32 %2348, 1
  store i32 %2349, ptr @test_count, align 4, !tbaa !5
  %2350 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 1
  %2351 = load i64, ptr %49, align 8, !tbaa !44
  %2352 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2350, i64 0, i64 %2351
  %2353 = getelementptr inbounds %struct.s2n_blob, ptr %2352, i32 0, i32 1
  %2354 = load i32, ptr %2353, align 8, !tbaa !45
  %2355 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %2356 = load i64, ptr %49, align 8, !tbaa !44
  %2357 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2355, i64 0, i64 %2356
  %2358 = getelementptr inbounds %struct.s2n_blob, ptr %2357, i32 0, i32 1
  %2359 = load i32, ptr %2358, align 8, !tbaa !45
  %2360 = icmp eq i32 %2354, %2359
  br i1 %2360, label %2414, label %2361

2361:                                             ; preds = %2347
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2364 = call ptr @__errno_location() #10
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  store i32 %2365, ptr %51, align 4, !tbaa !5
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @s2n_print_stacktrace(ptr noundef %2366)
  %2368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2369 = trunc i8 %2368 to i1
  br i1 %2369, label %2370, label %2392

2370:                                             ; preds = %2363
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @fileno(ptr noundef %2371) #9
  %2373 = call i32 @isatty(i32 noundef %2372) #9
  %2374 = icmp ne i32 %2373, 0
  br i1 %2374, label %2375, label %2392

2375:                                             ; preds = %2370
  %2376 = load i32, ptr %51, align 4, !tbaa !5
  %2377 = call ptr @__errno_location() #10
  store i32 %2376, ptr %2377, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef @.str.4)
  %2383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror_debug(i32 noundef %2384, ptr noundef @.str.4)
  %2386 = call ptr @__errno_location() #10
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @strerror(i32 noundef %2387) #9
  %2389 = call ptr @__errno_location() #10
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef @.str.2, i32 noundef %2379, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2382, ptr noundef %2385, ptr noundef %2388, i32 noundef %2390) #9
  br label %2409

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

2409:                                             ; preds = %2392, %2375
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2410

2410:                                             ; preds = %2409
  br label %2411

2411:                                             ; preds = %2410
  call void @exit(i32 noundef 1) #11
  unreachable

2412:                                             ; No predecessors!
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413, %2347
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

2416:                                             ; preds = %2415
  br label %2417

2417:                                             ; preds = %2416
  %2418 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %2419 = load i64, ptr %49, align 8, !tbaa !44
  %2420 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2418, i64 0, i64 %2419
  %2421 = getelementptr inbounds %struct.s2n_blob, ptr %2420, i32 0, i32 1
  %2422 = load i32, ptr %2421, align 8, !tbaa !45
  %2423 = icmp ne i32 %2422, 0
  br i1 %2423, label %2424, label %2502

2424:                                             ; preds = %2417
  br label %2425

2425:                                             ; preds = %2424
  %2426 = load i32, ptr @test_count, align 4, !tbaa !5
  %2427 = add nsw i32 %2426, 1
  store i32 %2427, ptr @test_count, align 4, !tbaa !5
  %2428 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 1
  %2429 = load i64, ptr %49, align 8, !tbaa !44
  %2430 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2428, i64 0, i64 %2429
  %2431 = getelementptr inbounds %struct.s2n_blob, ptr %2430, i32 0, i32 0
  %2432 = load ptr, ptr %2431, align 8, !tbaa !46
  %2433 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %2434 = load i64, ptr %49, align 8, !tbaa !44
  %2435 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2433, i64 0, i64 %2434
  %2436 = getelementptr inbounds %struct.s2n_blob, ptr %2435, i32 0, i32 0
  %2437 = load ptr, ptr %2436, align 8, !tbaa !46
  %2438 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %2439 = load i64, ptr %49, align 8, !tbaa !44
  %2440 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2438, i64 0, i64 %2439
  %2441 = getelementptr inbounds %struct.s2n_blob, ptr %2440, i32 0, i32 1
  %2442 = load i32, ptr %2441, align 8, !tbaa !45
  %2443 = zext i32 %2442 to i64
  %2444 = call i32 @memcmp(ptr noundef %2432, ptr noundef %2437, i64 noundef %2443) #12
  %2445 = icmp eq i32 %2444, 0
  br i1 %2445, label %2499, label %2446

2446:                                             ; preds = %2425
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

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

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

2460:                                             ; preds = %2455
  %2461 = load i32, ptr %52, align 4, !tbaa !5
  %2462 = call ptr @__errno_location() #10
  store i32 %2461, ptr %2462, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef @.str.4)
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef @.str.4)
  %2471 = call ptr @__errno_location() #10
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @strerror(i32 noundef %2472) #9
  %2474 = call ptr @__errno_location() #10
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef @.str.2, i32 noundef %2464, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2467, ptr noundef %2470, ptr noundef %2473, i32 noundef %2475) #9
  br label %2494

2477:                                             ; preds = %2455, %2448
  %2478 = load i32, ptr %52, align 4, !tbaa !5
  %2479 = call ptr @__errno_location() #10
  store i32 %2478, ptr %2479, align 4, !tbaa !5
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = load i32, ptr @test_count, align 4, !tbaa !5
  %2482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2483 = load i32, ptr %2482, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror(i32 noundef %2483, ptr noundef @.str.4)
  %2485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror_debug(i32 noundef %2486, ptr noundef @.str.4)
  %2488 = call ptr @__errno_location() #10
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  %2490 = call ptr @strerror(i32 noundef %2489) #9
  %2491 = call ptr @__errno_location() #10
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2480, ptr noundef @.str.5, i32 noundef %2481, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2484, ptr noundef %2487, ptr noundef %2490, i32 noundef %2492) #9
  br label %2494

2494:                                             ; preds = %2477, %2460
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

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

2497:                                             ; No predecessors!
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498, %2425
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501, %2417
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503
  br label %2505

2505:                                             ; preds = %2504
  %2506 = load i32, ptr @test_count, align 4, !tbaa !5
  %2507 = add nsw i32 %2506, 1
  store i32 %2507, ptr @test_count, align 4, !tbaa !5
  %2508 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 1
  %2509 = load i64, ptr %49, align 8, !tbaa !44
  %2510 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2508, i64 0, i64 %2509
  %2511 = call i32 @s2n_free(ptr noundef %2510)
  %2512 = icmp eq i32 %2511, -1
  br i1 %2512, label %2513, label %2566

2513:                                             ; preds = %2505
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

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

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

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

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

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

2562:                                             ; preds = %2561
  br label %2563

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

2564:                                             ; No predecessors!
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

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

2567:                                             ; preds = %2566
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = add nsw i32 %2570, 1
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = getelementptr inbounds [2 x [6 x %struct.s2n_blob]], ptr %33, i64 0, i64 0
  %2573 = load i64, ptr %49, align 8, !tbaa !44
  %2574 = getelementptr inbounds [6 x %struct.s2n_blob], ptr %2572, i64 0, i64 %2573
  %2575 = call i32 @s2n_free(ptr noundef %2574)
  %2576 = icmp eq i32 %2575, -1
  br i1 %2576, label %2577, label %2630

2577:                                             ; preds = %2569
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2580 = call ptr @__errno_location() #10
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  store i32 %2581, ptr %54, align 4, !tbaa !5
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @s2n_print_stacktrace(ptr noundef %2582)
  %2584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2585 = trunc i8 %2584 to i1
  br i1 %2585, label %2586, label %2608

2586:                                             ; preds = %2579
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = call i32 @fileno(ptr noundef %2587) #9
  %2589 = call i32 @isatty(i32 noundef %2588) #9
  %2590 = icmp ne i32 %2589, 0
  br i1 %2590, label %2591, label %2608

2591:                                             ; preds = %2586
  %2592 = load i32, ptr %54, align 4, !tbaa !5
  %2593 = call ptr @__errno_location() #10
  store i32 %2592, ptr %2593, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror(i32 noundef %2597, ptr noundef @.str.4)
  %2599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2600 = load i32, ptr %2599, align 4, !tbaa !5
  %2601 = call ptr @s2n_strerror_debug(i32 noundef %2600, ptr noundef @.str.4)
  %2602 = call ptr @__errno_location() #10
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call ptr @strerror(i32 noundef %2603) #9
  %2605 = call ptr @__errno_location() #10
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2594, ptr noundef @.str.2, i32 noundef %2595, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2598, ptr noundef %2601, ptr noundef %2604, i32 noundef %2606) #9
  br label %2625

2608:                                             ; preds = %2586, %2579
  %2609 = load i32, ptr %54, align 4, !tbaa !5
  %2610 = call ptr @__errno_location() #10
  store i32 %2609, ptr %2610, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call ptr @s2n_strerror(i32 noundef %2614, ptr noundef @.str.4)
  %2616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror_debug(i32 noundef %2617, ptr noundef @.str.4)
  %2619 = call ptr @__errno_location() #10
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call ptr @strerror(i32 noundef %2620) #9
  %2622 = call ptr @__errno_location() #10
  %2623 = load i32, ptr %2622, align 4, !tbaa !5
  %2624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef @.str.5, i32 noundef %2612, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2615, ptr noundef %2618, ptr noundef %2621, i32 noundef %2623) #9
  br label %2625

2625:                                             ; preds = %2608, %2591
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2626

2626:                                             ; preds = %2625
  br label %2627

2627:                                             ; preds = %2626
  call void @exit(i32 noundef 1) #11
  unreachable

2628:                                             ; No predecessors!
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629, %2569
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  %2634 = load i64, ptr %49, align 8, !tbaa !44
  %2635 = add i64 %2634, 1
  store i64 %2635, ptr %49, align 8, !tbaa !44
  br label %2277, !llvm.loop !47

2636:                                             ; preds = %2280
  br label %2637

2637:                                             ; preds = %2636
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = add nsw i32 %2638, 1
  store i32 %2639, ptr @test_count, align 4, !tbaa !5
  %2640 = load ptr, ptr %14, align 8, !tbaa !9
  %2641 = call i32 @s2n_connection_free(ptr noundef %2640)
  %2642 = icmp eq i32 %2641, -1
  br i1 %2642, label %2643, label %2696

2643:                                             ; preds = %2637
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

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

2652:                                             ; preds = %2645
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = call i32 @fileno(ptr noundef %2653) #9
  %2655 = call i32 @isatty(i32 noundef %2654) #9
  %2656 = icmp ne i32 %2655, 0
  br i1 %2656, label %2657, label %2674

2657:                                             ; preds = %2652
  %2658 = load i32, ptr %55, align 4, !tbaa !5
  %2659 = call ptr @__errno_location() #10
  store i32 %2658, ptr %2659, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror(i32 noundef %2663, ptr noundef @.str.4)
  %2665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @s2n_strerror_debug(i32 noundef %2666, ptr noundef @.str.4)
  %2668 = call ptr @__errno_location() #10
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call ptr @strerror(i32 noundef %2669) #9
  %2671 = call ptr @__errno_location() #10
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  %2673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2660, ptr noundef @.str.2, i32 noundef %2661, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2664, ptr noundef %2667, ptr noundef %2670, i32 noundef %2672) #9
  br label %2691

2674:                                             ; preds = %2652, %2645
  %2675 = load i32, ptr %55, align 4, !tbaa !5
  %2676 = call ptr @__errno_location() #10
  store i32 %2675, ptr %2676, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror_debug(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call ptr @__errno_location() #10
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #9
  %2688 = call ptr @__errno_location() #10
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef @.str.5, i32 noundef %2678, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2681, ptr noundef %2684, ptr noundef %2687, i32 noundef %2689) #9
  br label %2691

2691:                                             ; preds = %2674, %2657
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692
  call void @exit(i32 noundef 1) #11
  unreachable

2694:                                             ; No predecessors!
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695, %2637
  br label %2697

2697:                                             ; preds = %2696
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  %2700 = load i32, ptr @test_count, align 4, !tbaa !5
  %2701 = add nsw i32 %2700, 1
  store i32 %2701, ptr @test_count, align 4, !tbaa !5
  %2702 = load ptr, ptr %13, align 8, !tbaa !9
  %2703 = call i32 @s2n_connection_free(ptr noundef %2702)
  %2704 = icmp eq i32 %2703, -1
  br i1 %2704, label %2705, label %2758

2705:                                             ; preds = %2699
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

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

2714:                                             ; preds = %2707
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = call i32 @fileno(ptr noundef %2715) #9
  %2717 = call i32 @isatty(i32 noundef %2716) #9
  %2718 = icmp ne i32 %2717, 0
  br i1 %2718, label %2719, label %2736

2719:                                             ; preds = %2714
  %2720 = load i32, ptr %56, align 4, !tbaa !5
  %2721 = call ptr @__errno_location() #10
  store i32 %2720, ptr %2721, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @s2n_strerror(i32 noundef %2725, ptr noundef @.str.4)
  %2727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror_debug(i32 noundef %2728, ptr noundef @.str.4)
  %2730 = call ptr @__errno_location() #10
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @strerror(i32 noundef %2731) #9
  %2733 = call ptr @__errno_location() #10
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2722, ptr noundef @.str.2, i32 noundef %2723, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2726, ptr noundef %2729, ptr noundef %2732, i32 noundef %2734) #9
  br label %2753

2736:                                             ; preds = %2714, %2707
  %2737 = load i32, ptr %56, align 4, !tbaa !5
  %2738 = call ptr @__errno_location() #10
  store i32 %2737, ptr %2738, align 4, !tbaa !5
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = load i32, ptr @test_count, align 4, !tbaa !5
  %2741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call ptr @s2n_strerror(i32 noundef %2742, ptr noundef @.str.4)
  %2744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror_debug(i32 noundef %2745, ptr noundef @.str.4)
  %2747 = call ptr @__errno_location() #10
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @strerror(i32 noundef %2748) #9
  %2750 = call ptr @__errno_location() #10
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2739, ptr noundef @.str.5, i32 noundef %2740, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2743, ptr noundef %2746, ptr noundef %2749, i32 noundef %2751) #9
  br label %2753

2753:                                             ; preds = %2736, %2719
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

2755:                                             ; preds = %2754
  call void @exit(i32 noundef 1) #11
  unreachable

2756:                                             ; No predecessors!
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757, %2699
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  br label %2761

2761:                                             ; preds = %2760
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = add nsw i32 %2762, 1
  store i32 %2763, ptr @test_count, align 4, !tbaa !5
  %2764 = call i32 @s2n_io_pair_close(ptr noundef %27)
  %2765 = icmp eq i32 %2764, -1
  br i1 %2765, label %2766, label %2819

2766:                                             ; preds = %2761
  br label %2767

2767:                                             ; preds = %2766
  br label %2768

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

2775:                                             ; preds = %2768
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @fileno(ptr noundef %2776) #9
  %2778 = call i32 @isatty(i32 noundef %2777) #9
  %2779 = icmp ne i32 %2778, 0
  br i1 %2779, label %2780, label %2797

2780:                                             ; preds = %2775
  %2781 = load i32, ptr %57, align 4, !tbaa !5
  %2782 = call ptr @__errno_location() #10
  store i32 %2781, ptr %2782, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef @.str.4)
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef @.str.4)
  %2791 = call ptr @__errno_location() #10
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #9
  %2794 = call ptr @__errno_location() #10
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef @.str.2, i32 noundef %2784, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2787, ptr noundef %2790, ptr noundef %2793, i32 noundef %2795) #9
  br label %2814

2797:                                             ; preds = %2775, %2768
  %2798 = load i32, ptr %57, align 4, !tbaa !5
  %2799 = call ptr @__errno_location() #10
  store i32 %2798, ptr %2799, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef @.str.4)
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef @.str.4)
  %2808 = call ptr @__errno_location() #10
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @strerror(i32 noundef %2809) #9
  %2811 = call ptr @__errno_location() #10
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef @.str.5, i32 noundef %2801, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2804, ptr noundef %2807, ptr noundef %2810, i32 noundef %2812) #9
  br label %2814

2814:                                             ; preds = %2797, %2780
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2815

2815:                                             ; preds = %2814
  br label %2816

2816:                                             ; preds = %2815
  call void @exit(i32 noundef 1) #11
  unreachable

2817:                                             ; No predecessors!
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818, %2761
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  br label %2822

2822:                                             ; preds = %2821
  %2823 = load i32, ptr @test_count, align 4, !tbaa !5
  %2824 = add nsw i32 %2823, 1
  store i32 %2824, ptr @test_count, align 4, !tbaa !5
  %2825 = load ptr, ptr %17, align 8, !tbaa !9
  %2826 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2825)
  %2827 = icmp eq i32 %2826, -1
  br i1 %2827, label %2828, label %2881

2828:                                             ; preds = %2822
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

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

2837:                                             ; preds = %2830
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = call i32 @fileno(ptr noundef %2838) #9
  %2840 = call i32 @isatty(i32 noundef %2839) #9
  %2841 = icmp ne i32 %2840, 0
  br i1 %2841, label %2842, label %2859

2842:                                             ; preds = %2837
  %2843 = load i32, ptr %58, align 4, !tbaa !5
  %2844 = call ptr @__errno_location() #10
  store i32 %2843, ptr %2844, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror(i32 noundef %2848, ptr noundef @.str.4)
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef @.str.4)
  %2853 = call ptr @__errno_location() #10
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @strerror(i32 noundef %2854) #9
  %2856 = call ptr @__errno_location() #10
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2845, ptr noundef @.str.2, i32 noundef %2846, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2849, ptr noundef %2852, ptr noundef %2855, i32 noundef %2857) #9
  br label %2876

2859:                                             ; preds = %2837, %2830
  %2860 = load i32, ptr %58, align 4, !tbaa !5
  %2861 = call ptr @__errno_location() #10
  store i32 %2860, ptr %2861, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror(i32 noundef %2865, ptr noundef @.str.4)
  %2867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror_debug(i32 noundef %2868, ptr noundef @.str.4)
  %2870 = call ptr @__errno_location() #10
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @strerror(i32 noundef %2871) #9
  %2873 = call ptr @__errno_location() #10
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2862, ptr noundef @.str.5, i32 noundef %2863, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2866, ptr noundef %2869, ptr noundef %2872, i32 noundef %2874) #9
  br label %2876

2876:                                             ; preds = %2859, %2842
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877
  call void @exit(i32 noundef 1) #11
  unreachable

2879:                                             ; No predecessors!
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880, %2822
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = load ptr, ptr %19, align 8, !tbaa !9
  %2888 = call i32 @s2n_config_free(ptr noundef %2887)
  %2889 = icmp eq i32 %2888, -1
  br i1 %2889, label %2890, label %2943

2890:                                             ; preds = %2884
  br label %2891

2891:                                             ; preds = %2890
  br label %2892

2892:                                             ; preds = %2891
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %2893 = call ptr @__errno_location() #10
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  store i32 %2894, ptr %59, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @s2n_print_stacktrace(ptr noundef %2895)
  %2897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2898 = trunc i8 %2897 to i1
  br i1 %2898, label %2899, label %2921

2899:                                             ; preds = %2892
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @fileno(ptr noundef %2900) #9
  %2902 = call i32 @isatty(i32 noundef %2901) #9
  %2903 = icmp ne i32 %2902, 0
  br i1 %2903, label %2904, label %2921

2904:                                             ; preds = %2899
  %2905 = load i32, ptr %59, align 4, !tbaa !5
  %2906 = call ptr @__errno_location() #10
  store i32 %2905, ptr %2906, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror(i32 noundef %2910, ptr noundef @.str.4)
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror_debug(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call ptr @__errno_location() #10
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @strerror(i32 noundef %2916) #9
  %2918 = call ptr @__errno_location() #10
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2907, ptr noundef @.str.2, i32 noundef %2908, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2911, ptr noundef %2914, ptr noundef %2917, i32 noundef %2919) #9
  br label %2938

2921:                                             ; preds = %2899, %2892
  %2922 = load i32, ptr %59, align 4, !tbaa !5
  %2923 = call ptr @__errno_location() #10
  store i32 %2922, ptr %2923, align 4, !tbaa !5
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror(i32 noundef %2927, ptr noundef @.str.4)
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror_debug(i32 noundef %2930, ptr noundef @.str.4)
  %2932 = call ptr @__errno_location() #10
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @strerror(i32 noundef %2933) #9
  %2935 = call ptr @__errno_location() #10
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2924, ptr noundef @.str.5, i32 noundef %2925, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2928, ptr noundef %2931, ptr noundef %2934, i32 noundef %2936) #9
  br label %2938

2938:                                             ; preds = %2921, %2904
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

2940:                                             ; preds = %2939
  call void @exit(i32 noundef 1) #11
  unreachable

2941:                                             ; No predecessors!
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942, %2884
  br label %2944

2944:                                             ; preds = %2943
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

2947:                                             ; preds = %2946
  %2948 = call i32 @s2n_cleanup()
  %2949 = icmp eq i32 %2948, -1
  br i1 %2949, label %2950, label %3003

2950:                                             ; preds = %2947
  br label %2951

2951:                                             ; preds = %2950
  br label %2952

2952:                                             ; preds = %2951
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2953 = call ptr @__errno_location() #10
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  store i32 %2954, ptr %60, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @s2n_print_stacktrace(ptr noundef %2955)
  %2957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2958 = trunc i8 %2957 to i1
  br i1 %2958, label %2959, label %2981

2959:                                             ; preds = %2952
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @fileno(ptr noundef %2960) #9
  %2962 = call i32 @isatty(i32 noundef %2961) #9
  %2963 = icmp ne i32 %2962, 0
  br i1 %2963, label %2964, label %2981

2964:                                             ; preds = %2959
  %2965 = load i32, ptr %60, align 4, !tbaa !5
  %2966 = call ptr @__errno_location() #10
  store i32 %2965, ptr %2966, align 4, !tbaa !5
  %2967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2968 = load i32, ptr @test_count, align 4, !tbaa !5
  %2969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2970 = load i32, ptr %2969, align 4, !tbaa !5
  %2971 = call ptr @s2n_strerror(i32 noundef %2970, ptr noundef @.str.4)
  %2972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2973 = load i32, ptr %2972, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror_debug(i32 noundef %2973, ptr noundef @.str.4)
  %2975 = call ptr @__errno_location() #10
  %2976 = load i32, ptr %2975, align 4, !tbaa !5
  %2977 = call ptr @strerror(i32 noundef %2976) #9
  %2978 = call ptr @__errno_location() #10
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2967, ptr noundef @.str.2, i32 noundef %2968, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2971, ptr noundef %2974, ptr noundef %2977, i32 noundef %2979) #9
  br label %2998

2981:                                             ; preds = %2959, %2952
  %2982 = load i32, ptr %60, align 4, !tbaa !5
  %2983 = call ptr @__errno_location() #10
  store i32 %2982, ptr %2983, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = load i32, ptr @test_count, align 4, !tbaa !5
  %2986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror(i32 noundef %2987, ptr noundef @.str.4)
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror_debug(i32 noundef %2990, ptr noundef @.str.4)
  %2992 = call ptr @__errno_location() #10
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #9
  %2995 = call ptr @__errno_location() #10
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2984, ptr noundef @.str.5, i32 noundef %2985, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2988, ptr noundef %2991, ptr noundef %2994, i32 noundef %2996) #9
  br label %2998

2998:                                             ; preds = %2981, %2964
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

3000:                                             ; preds = %2999
  call void @exit(i32 noundef 1) #11
  unreachable

3001:                                             ; No predecessors!
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

3003:                                             ; preds = %3002, %2947
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  %3008 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3009 = icmp eq i32 %3008, -1
  br i1 %3009, label %3010, label %3063

3010:                                             ; preds = %3007
  br label %3011

3011:                                             ; preds = %3010
  br label %3012

3012:                                             ; preds = %3011
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %3013 = call ptr @__errno_location() #10
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  store i32 %3014, ptr %61, align 4, !tbaa !5
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @s2n_print_stacktrace(ptr noundef %3015)
  %3017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3018 = trunc i8 %3017 to i1
  br i1 %3018, label %3019, label %3041

3019:                                             ; preds = %3012
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @fileno(ptr noundef %3020) #9
  %3022 = call i32 @isatty(i32 noundef %3021) #9
  %3023 = icmp ne i32 %3022, 0
  br i1 %3023, label %3024, label %3041

3024:                                             ; preds = %3019
  %3025 = load i32, ptr %61, align 4, !tbaa !5
  %3026 = call ptr @__errno_location() #10
  store i32 %3025, ptr %3026, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = load i32, ptr @test_count, align 4, !tbaa !5
  %3029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror(i32 noundef %3030, ptr noundef @.str.4)
  %3032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef @.str.4)
  %3035 = call ptr @__errno_location() #10
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #9
  %3038 = call ptr @__errno_location() #10
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3027, ptr noundef @.str.2, i32 noundef %3028, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 130, ptr noundef %3031, ptr noundef %3034, ptr noundef %3037, i32 noundef %3039) #9
  br label %3058

3041:                                             ; preds = %3019, %3012
  %3042 = load i32, ptr %61, align 4, !tbaa !5
  %3043 = call ptr @__errno_location() #10
  store i32 %3042, ptr %3043, align 4, !tbaa !5
  %3044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3045 = load i32, ptr @test_count, align 4, !tbaa !5
  %3046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror(i32 noundef %3047, ptr noundef @.str.4)
  %3049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call ptr @s2n_strerror_debug(i32 noundef %3050, ptr noundef @.str.4)
  %3052 = call ptr @__errno_location() #10
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @strerror(i32 noundef %3053) #9
  %3055 = call ptr @__errno_location() #10
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3044, ptr noundef @.str.5, i32 noundef %3045, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 130, ptr noundef %3048, ptr noundef %3051, ptr noundef %3054, i32 noundef %3056) #9
  br label %3058

3058:                                             ; preds = %3041, %3024
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  call void @exit(i32 noundef 1) #11
  unreachable

3061:                                             ; No predecessors!
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062, %3007
  br label %3064

3064:                                             ; preds = %3063
  br label %3065

3065:                                             ; preds = %3064
  %3066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3067 = trunc i8 %3066 to i1
  br i1 %3067, label %3068, label %3084

3068:                                             ; preds = %3065
  %3069 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3070 = call i32 @fileno(ptr noundef %3069) #9
  %3071 = call i32 @isatty(i32 noundef %3070) #9
  %3072 = icmp ne i32 %3071, 0
  br i1 %3072, label %3073, label %3084

3073:                                             ; preds = %3068
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = icmp ne i32 %3074, 0
  br i1 %3075, label %3076, label %3080

3076:                                             ; preds = %3073
  %3077 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3078 = load i32, ptr @test_count, align 4, !tbaa !5
  %3079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3077, ptr noundef @.str.10, i32 noundef %3078) #9
  br label %3083

3080:                                             ; preds = %3073
  %3081 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3081, ptr noundef @.str.11) #9
  br label %3083

3083:                                             ; preds = %3080, %3076
  br label %3095

3084:                                             ; preds = %3068, %3065
  %3085 = load i32, ptr @test_count, align 4, !tbaa !5
  %3086 = icmp ne i32 %3085, 0
  br i1 %3086, label %3087, label %3091

3087:                                             ; preds = %3084
  %3088 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3089 = load i32, ptr @test_count, align 4, !tbaa !5
  %3090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3088, ptr noundef @.str.12, i32 noundef %3089) #9
  br label %3094

3091:                                             ; preds = %3084
  %3092 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3092, ptr noundef @.str.13) #9
  br label %3094

3094:                                             ; preds = %3091, %3087
  br label %3095

3095:                                             ; preds = %3094, %3083
  store i32 0, ptr %3, align 4
  store i32 1, ptr %62, align 4
  br label %3100

3096:                                             ; No predecessors!
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098
  store i32 0, ptr %62, align 4
  br label %3100

3100:                                             ; preds = %3099, %3095
  call void @llvm.lifetime.end.p0(i64 288, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  %3101 = load i32, ptr %62, align 4
  switch i32 %3101, label %3104 [
    i32 0, label %3102
    i32 1, label %3102
  ]

3102:                                             ; preds = %3100, %3100, %386
  %3103 = load i32, ptr %3, align 4
  ret i32 %3103

3104:                                             ; preds = %3100
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare ptr @s2n_config_new() #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

declare i32 @s2n_config_enable_quic(ptr noundef) #2

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

declare i32 @s2n_connection_set_quic_transport_parameters(ptr noundef, ptr noundef, i16 noundef zeroext) #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_connection_set_secret_callback(ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) #2

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"short", !7, i64 0}
!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, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !20, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !16, i64 2208, !6, i64 2212, !16, i64 2216, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !34, i64 2264, !34, 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, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !16, i64 4084, !16, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !42, i64 4128, !34, 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, !16, i64 40, !16, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"s2n_stuffer", !27, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !27, i64 0, !38, 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}
!38 = !{!"", !7, i64 0, !27, i64 672, !16, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !16, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !27, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!18, !7, i64 216}
!44 = !{!20, !20, i64 0}
!45 = !{!27, !6, i64 8}
!46 = !{!27, !10, i64 0}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}


; 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 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [90 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@CLIENT_TRANSPORT_PARAMS = external hidden constant [24 x i8], align 16
@.str.30 = external hidden unnamed_addr constant [144 x i8], align 1
@SERVER_TRANSPORT_PARAMS = external hidden constant [24 x i8], align 16
@.str.31 = external hidden unnamed_addr constant [144 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [52 x i8], align 1

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

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

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

25:                                               ; preds = %21, %14
  br label %26

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

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

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

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

54:                                               ; preds = %50, %43
  br label %55

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

67:                                               ; preds = %38
  %68 = tail call i32 @s2n_init() #10
  %69 = icmp eq i32 %68, -1
  br i1 %69, label %70, label %94

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

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

81:                                               ; preds = %77, %70
  br label %82

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

94:                                               ; preds = %67
  %95 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #10
  br i1 %95, label %171, label %96

96:                                               ; preds = %94
  %97 = tail call i32 @s2n_cleanup() #10
  %98 = icmp eq i32 %97, -1
  br i1 %98, label %99, label %123

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

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

110:                                              ; preds = %106, %99
  br label %111

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

123:                                              ; preds = %96
  %124 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %125 = icmp eq i32 %124, -1
  br i1 %125, label %126, label %150

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

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

137:                                              ; preds = %133, %126
  br label %138

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

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

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

157:                                              ; preds = %153
  %158 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not141 = icmp eq i32 %158, 0
  %159 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not141, label %162, label %160

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

162:                                              ; preds = %157
  %163 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef nonnull @.str.11) #10
  br label %1517

164:                                              ; preds = %153, %150
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not140 = icmp eq i32 %165, 0
  %166 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not140, label %169, label %167

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

169:                                              ; preds = %164
  %170 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull @.str.13) #10
  br label %1517

171:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr null, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %4) #10
  store i16 0, ptr %4, align 2, !tbaa !15
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %173 = add nsw i32 %172, 1
  store i32 %173, ptr @test_count, align 4, !tbaa !5
  %174 = tail call ptr @s2n_connection_new(i32 noundef 1) #10
  %175 = icmp eq ptr %174, null
  br i1 %175, label %176, label %200

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

183:                                              ; preds = %176
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = tail call i32 @fileno(ptr noundef %184) #10
  %186 = tail call i32 @isatty(i32 noundef %185) #10
  %.not191 = icmp eq i32 %186, 0
  br i1 %.not191, label %187, label %188

187:                                              ; preds = %183, %176
  br label %188

188:                                              ; preds = %183, %187
  %.str.5.sink250 = phi ptr [ @.str.5, %187 ], [ @.str.2, %183 ]
  store i32 %178, ptr %177, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = tail call ptr @s2n_strerror(i32 noundef %192, ptr noundef nonnull @.str.4) #10
  %194 = load i32, ptr %191, align 4, !tbaa !5
  %195 = tail call ptr @s2n_strerror_debug(i32 noundef %194, ptr noundef nonnull @.str.4) #10
  %196 = load i32, ptr %177, align 4, !tbaa !5
  %197 = tail call ptr @strerror(i32 noundef %196) #10
  %198 = load i32, ptr %177, align 4, !tbaa !5
  %199 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef nonnull %.str.5.sink250, i32 noundef %190, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %193, ptr noundef %195, ptr noundef %197, i32 noundef %198) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

200:                                              ; preds = %171
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr @test_count, align 4, !tbaa !5
  %203 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %204 = icmp eq ptr %203, null
  br i1 %204, label %205, label %229

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

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

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

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

229:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  store ptr null, ptr %5, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = add nsw i32 %230, 1
  store i32 %231, ptr @test_count, align 4, !tbaa !5
  %232 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %5, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.17) #10
  %233 = icmp eq i32 %232, -1
  br i1 %233, label %234, label %258

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

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

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

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

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

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

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

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

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

287:                                              ; preds = %258
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @test_count, align 4, !tbaa !5
  %290 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %261, ptr noundef nonnull @.str.20) #10
  %291 = icmp eq i32 %290, -1
  br i1 %291, label %292, label %316

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

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

303:                                              ; preds = %299, %292
  br label %304

304:                                              ; preds = %299, %303
  %.str.5.sink294 = phi ptr [ @.str.5, %303 ], [ @.str.2, %299 ]
  store i32 %294, ptr %293, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef nonnull @.str.4) #10
  %310 = load i32, ptr %307, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror_debug(i32 noundef %310, ptr noundef nonnull @.str.4) #10
  %312 = load i32, ptr %293, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #10
  %314 = load i32, ptr %293, align 4, !tbaa !5
  %315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef nonnull %.str.5.sink294, i32 noundef %306, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %309, ptr noundef %311, ptr noundef %313, i32 noundef %314) #12
  call void @exit(i32 noundef 1) #13
  unreachable

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

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

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

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

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

345:                                              ; preds = %316
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr @test_count, align 4, !tbaa !5
  %348 = load ptr, ptr %5, align 8, !tbaa !9
  %349 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %261, ptr noundef %348) #10
  %350 = icmp eq i32 %349, -1
  br i1 %350, label %351, label %375

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

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

362:                                              ; preds = %358, %351
  br label %363

363:                                              ; preds = %358, %362
  %.str.5.sink316 = phi ptr [ @.str.5, %362 ], [ @.str.2, %358 ]
  store i32 %353, ptr %352, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror(i32 noundef %367, ptr noundef nonnull @.str.4) #10
  %369 = load i32, ptr %366, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror_debug(i32 noundef %369, ptr noundef nonnull @.str.4) #10
  %371 = load i32, ptr %352, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #10
  %373 = load i32, ptr %352, align 4, !tbaa !5
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %364, ptr noundef nonnull %.str.5.sink316, i32 noundef %365, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %368, ptr noundef %370, ptr noundef %372, i32 noundef %373) #12
  call void @exit(i32 noundef 1) #13
  unreachable

375:                                              ; preds = %345
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr @test_count, align 4, !tbaa !5
  %378 = call i32 @s2n_config_enable_quic(ptr noundef nonnull %261) #10
  %379 = icmp eq i32 %378, -1
  br i1 %379, label %380, label %404

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

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

391:                                              ; preds = %387, %380
  br label %392

392:                                              ; preds = %387, %391
  %.str.5.sink327 = phi ptr [ @.str.5, %391 ], [ @.str.2, %387 ]
  store i32 %382, ptr %381, align 4, !tbaa !5
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call ptr @s2n_strerror(i32 noundef %396, ptr noundef nonnull @.str.4) #10
  %398 = load i32, ptr %395, align 4, !tbaa !5
  %399 = call ptr @s2n_strerror_debug(i32 noundef %398, ptr noundef nonnull @.str.4) #10
  %400 = load i32, ptr %381, align 4, !tbaa !5
  %401 = call ptr @strerror(i32 noundef %400) #10
  %402 = load i32, ptr %381, align 4, !tbaa !5
  %403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %393, ptr noundef nonnull %.str.5.sink327, i32 noundef %394, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %397, ptr noundef %399, ptr noundef %401, i32 noundef %402) #12
  call void @exit(i32 noundef 1) #13
  unreachable

404:                                              ; preds = %375
  %405 = load i32, ptr @test_count, align 4, !tbaa !5
  %406 = add nsw i32 %405, 1
  store i32 %406, ptr @test_count, align 4, !tbaa !5
  %407 = call i32 @s2n_connection_set_config(ptr noundef nonnull %174, ptr noundef nonnull %261) #10
  %408 = icmp eq i32 %407, -1
  br i1 %408, label %409, label %433

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

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

420:                                              ; preds = %416, %409
  br label %421

421:                                              ; preds = %416, %420
  %.str.5.sink338 = phi ptr [ @.str.5, %420 ], [ @.str.2, %416 ]
  store i32 %411, ptr %410, align 4, !tbaa !5
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @s2n_strerror(i32 noundef %425, ptr noundef nonnull @.str.4) #10
  %427 = load i32, ptr %424, align 4, !tbaa !5
  %428 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef nonnull @.str.4) #10
  %429 = load i32, ptr %410, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #10
  %431 = load i32, ptr %410, align 4, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %422, ptr noundef nonnull %.str.5.sink338, i32 noundef %423, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %426, ptr noundef %428, ptr noundef %430, i32 noundef %431) #12
  call void @exit(i32 noundef 1) #13
  unreachable

433:                                              ; preds = %404
  %434 = load i32, ptr @test_count, align 4, !tbaa !5
  %435 = add nsw i32 %434, 1
  store i32 %435, ptr @test_count, align 4, !tbaa !5
  %436 = call i32 @s2n_connection_set_config(ptr noundef nonnull %203, ptr noundef nonnull %261) #10
  %437 = icmp eq i32 %436, -1
  br i1 %437, label %438, label %462

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

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

449:                                              ; preds = %445, %438
  br label %450

450:                                              ; preds = %445, %449
  %.str.5.sink349 = phi ptr [ @.str.5, %449 ], [ @.str.2, %445 ]
  store i32 %440, ptr %439, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %454 = load i32, ptr %453, align 4, !tbaa !5
  %455 = call ptr @s2n_strerror(i32 noundef %454, ptr noundef nonnull @.str.4) #10
  %456 = load i32, ptr %453, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror_debug(i32 noundef %456, ptr noundef nonnull @.str.4) #10
  %458 = load i32, ptr %439, align 4, !tbaa !5
  %459 = call ptr @strerror(i32 noundef %458) #10
  %460 = load i32, ptr %439, align 4, !tbaa !5
  %461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %451, ptr noundef nonnull %.str.5.sink349, i32 noundef %452, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %455, ptr noundef %457, ptr noundef %459, i32 noundef %460) #12
  call void @exit(i32 noundef 1) #13
  unreachable

462:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %6) #10
  %466 = icmp eq i32 %465, -1
  br i1 %466, label %467, label %491

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

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

478:                                              ; preds = %474, %467
  br label %479

479:                                              ; preds = %474, %478
  %.str.5.sink360 = phi ptr [ @.str.5, %478 ], [ @.str.2, %474 ]
  store i32 %469, ptr %468, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %483, ptr noundef nonnull @.str.4) #10
  %485 = load i32, ptr %482, align 4, !tbaa !5
  %486 = call ptr @s2n_strerror_debug(i32 noundef %485, ptr noundef nonnull @.str.4) #10
  %487 = load i32, ptr %468, align 4, !tbaa !5
  %488 = call ptr @strerror(i32 noundef %487) #10
  %489 = load i32, ptr %468, align 4, !tbaa !5
  %490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef nonnull %.str.5.sink360, i32 noundef %481, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %484, ptr noundef %486, ptr noundef %488, i32 noundef %489) #12
  call void @exit(i32 noundef 1) #13
  unreachable

491:                                              ; preds = %462
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %174, ptr noundef nonnull %6) #10
  %495 = icmp eq i32 %494, -1
  br i1 %495, label %496, label %520

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

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

507:                                              ; preds = %503, %496
  br label %508

508:                                              ; preds = %503, %507
  %.str.5.sink371 = phi ptr [ @.str.5, %507 ], [ @.str.2, %503 ]
  store i32 %498, ptr %497, align 4, !tbaa !5
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef nonnull @.str.4) #10
  %514 = load i32, ptr %511, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef nonnull @.str.4) #10
  %516 = load i32, ptr %497, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #10
  %518 = load i32, ptr %497, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef nonnull %.str.5.sink371, i32 noundef %510, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %513, ptr noundef %515, ptr noundef %517, i32 noundef %518) #12
  call void @exit(i32 noundef 1) #13
  unreachable

520:                                              ; preds = %491
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %203, ptr noundef nonnull %6) #10
  %524 = icmp eq i32 %523, -1
  br i1 %524, label %525, label %549

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

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

536:                                              ; preds = %532, %525
  br label %537

537:                                              ; preds = %532, %536
  %.str.5.sink382 = phi ptr [ @.str.5, %536 ], [ @.str.2, %532 ]
  store i32 %527, ptr %526, 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 nonnull @.str.4) #10
  %543 = load i32, ptr %540, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef nonnull @.str.4) #10
  %545 = load i32, ptr %526, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #10
  %547 = load i32, ptr %526, align 4, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef nonnull %.str.5.sink382, i32 noundef %539, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %542, ptr noundef %544, ptr noundef %546, i32 noundef %547) #12
  call void @exit(i32 noundef 1) #13
  unreachable

549:                                              ; preds = %520
  %550 = load i32, ptr @test_count, align 4, !tbaa !5
  %551 = add nsw i32 %550, 1
  store i32 %551, ptr @test_count, align 4, !tbaa !5
  %552 = call i32 @s2n_connection_set_quic_transport_parameters(ptr noundef nonnull %174, ptr noundef nonnull @CLIENT_TRANSPORT_PARAMS, i16 noundef zeroext 24) #10
  %553 = icmp eq i32 %552, -1
  br i1 %553, label %554, label %578

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

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

565:                                              ; preds = %561, %554
  br label %566

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

578:                                              ; preds = %549
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr @test_count, align 4, !tbaa !5
  %581 = call i32 @s2n_connection_set_quic_transport_parameters(ptr noundef nonnull %203, ptr noundef nonnull @SERVER_TRANSPORT_PARAMS, i16 noundef zeroext 24) #10
  %582 = icmp eq i32 %581, -1
  br i1 %582, label %583, label %607

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

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

594:                                              ; preds = %590, %583
  br label %595

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

607:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 288, ptr nonnull %7) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(288) %7, i8 0, i64 288, i1 false)
  %608 = load i32, ptr @test_count, align 4, !tbaa !5
  %609 = add nsw i32 %608, 1
  store i32 %609, ptr @test_count, align 4, !tbaa !5
  %610 = call i32 @s2n_connection_set_secret_callback(ptr noundef nonnull %174, ptr noundef nonnull @s2n_test_secret_handler, ptr noundef nonnull %7) #10
  %611 = icmp eq i32 %610, -1
  br i1 %611, label %612, label %636

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

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

623:                                              ; preds = %619, %612
  br label %624

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

636:                                              ; preds = %607
  %637 = load i32, ptr @test_count, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr @test_count, align 4, !tbaa !5
  %639 = call i32 @s2n_connection_set_secret_callback(ptr noundef nonnull %203, ptr noundef nonnull @s2n_test_secret_handler, ptr noundef nonnull %7) #10
  %640 = icmp eq i32 %639, -1
  br i1 %640, label %641, label %665

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

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

652:                                              ; preds = %648, %641
  br label %653

653:                                              ; preds = %648, %652
  %.str.5.sink426 = phi ptr [ @.str.5, %652 ], [ @.str.2, %648 ]
  store i32 %643, ptr %642, 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 nonnull @.str.4) #10
  %659 = load i32, ptr %656, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror_debug(i32 noundef %659, ptr noundef nonnull @.str.4) #10
  %661 = load i32, ptr %642, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #10
  %663 = load i32, ptr %642, align 4, !tbaa !5
  %664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef nonnull %.str.5.sink426, i32 noundef %655, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %658, ptr noundef %660, ptr noundef %662, i32 noundef %663) #12
  call void @exit(i32 noundef 1) #13
  unreachable

665:                                              ; preds = %636
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = add nsw i32 %666, 1
  store i32 %667, ptr @test_count, align 4, !tbaa !5
  %668 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %203, ptr noundef nonnull %174) #10
  %669 = icmp eq i32 %668, -1
  br i1 %669, label %670, label %694

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

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

681:                                              ; preds = %677, %670
  br label %682

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

694:                                              ; preds = %665
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr @test_count, align 4, !tbaa !5
  %697 = getelementptr inbounds i8, ptr %174, i64 220
  %698 = load i8, ptr %697, align 4, !tbaa !17
  %699 = icmp eq i8 %698, 34
  br i1 %699, label %724, label %700

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

707:                                              ; preds = %700
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @fileno(ptr noundef %708) #10
  %710 = call i32 @isatty(i32 noundef %709) #10
  %.not144 = icmp eq i32 %710, 0
  br i1 %.not144, label %711, label %712

711:                                              ; preds = %707, %700
  br label %712

712:                                              ; preds = %707, %711
  %.str.5.sink448 = phi ptr [ @.str.5, %711 ], [ @.str.2, %707 ]
  store i32 %702, ptr %701, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror(i32 noundef %716, ptr noundef nonnull @.str.4) #10
  %718 = load i32, ptr %715, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror_debug(i32 noundef %718, ptr noundef nonnull @.str.4) #10
  %720 = load i32, ptr %701, align 4, !tbaa !5
  %721 = call ptr @strerror(i32 noundef %720) #10
  %722 = load i32, ptr %701, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %713, ptr noundef nonnull %.str.5.sink448, i32 noundef %714, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %717, ptr noundef %719, ptr noundef %721, i32 noundef %722) #12
  call void @exit(i32 noundef 1) #13
  unreachable

724:                                              ; preds = %694
  %725 = add nsw i32 %695, 2
  store i32 %725, ptr @test_count, align 4, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %203, i64 220
  %727 = load i8, ptr %726, align 4, !tbaa !17
  %728 = icmp eq i8 %727, 34
  br i1 %728, label %753, label %729

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

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

740:                                              ; preds = %736, %729
  br label %741

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

753:                                              ; preds = %724
  %754 = add nsw i32 %695, 3
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = call i32 @s2n_connection_get_quic_transport_parameters(ptr noundef nonnull %174, ptr noundef nonnull %3, ptr noundef nonnull %4) #10
  %756 = icmp eq i32 %755, -1
  br i1 %756, label %757, label %781

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

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

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

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

781:                                              ; preds = %753
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = load i16, ptr %4, align 2, !tbaa !15
  %785 = icmp eq i16 %784, 24
  br i1 %785, label %810, label %786

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

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

797:                                              ; preds = %793, %786
  br label %798

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

810:                                              ; preds = %781
  %811 = add nsw i32 %782, 2
  store i32 %811, ptr @test_count, align 4, !tbaa !5
  %812 = load ptr, ptr %3, align 8, !tbaa !9
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(24) %812, ptr noundef nonnull dereferenceable(24) @SERVER_TRANSPORT_PARAMS, i64 24)
  %813 = icmp eq i32 %bcmp, 0
  br i1 %813, label %838, label %814

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

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

825:                                              ; preds = %821, %814
  br label %826

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

838:                                              ; preds = %810
  %839 = add nsw i32 %782, 3
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = call i32 @s2n_connection_get_quic_transport_parameters(ptr noundef nonnull %203, ptr noundef nonnull %3, ptr noundef nonnull %4) #10
  %841 = icmp eq i32 %840, -1
  br i1 %841, label %842, label %866

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

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

853:                                              ; preds = %849, %842
  br label %854

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

866:                                              ; preds = %838
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = load i16, ptr %4, align 2, !tbaa !15
  %870 = icmp eq i16 %869, 24
  br i1 %870, label %895, label %871

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

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

882:                                              ; preds = %878, %871
  br label %883

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

895:                                              ; preds = %866
  %896 = add nsw i32 %867, 2
  store i32 %896, ptr @test_count, align 4, !tbaa !5
  %897 = load ptr, ptr %3, align 8, !tbaa !9
  %bcmp149 = call i32 @bcmp(ptr noundef nonnull dereferenceable(24) %897, ptr noundef nonnull dereferenceable(24) @CLIENT_TRANSPORT_PARAMS, i64 24)
  %898 = icmp eq i32 %bcmp149, 0
  br i1 %898, label %923, label %899

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

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

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

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

923:                                              ; preds = %895
  %924 = add nsw i32 %867, 3
  store i32 %924, ptr @test_count, align 4, !tbaa !5
  %925 = getelementptr inbounds i8, ptr %174, i64 216
  %926 = load i8, ptr %925, align 8, !tbaa !43
  %927 = icmp eq i8 %926, 0
  br i1 %927, label %952, label %928

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

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

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

940:                                              ; preds = %935, %939
  %.str.5.sink536 = phi ptr [ @.str.5, %939 ], [ @.str.2, %935 ]
  store i32 %930, ptr %929, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef nonnull @.str.4) #10
  %946 = load i32, ptr %943, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef nonnull @.str.4) #10
  %948 = load i32, ptr %929, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #10
  %950 = load i32, ptr %929, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.5.sink536, i32 noundef %942, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %945, ptr noundef %947, ptr noundef %949, i32 noundef %950) #12
  call void @exit(i32 noundef 1) #13
  unreachable

952:                                              ; preds = %923
  %953 = add nsw i32 %867, 4
  store i32 %953, ptr @test_count, align 4, !tbaa !5
  %954 = getelementptr inbounds i8, ptr %203, i64 216
  %955 = load i8, ptr %954, align 8, !tbaa !43
  %956 = icmp eq i8 %955, 0
  br i1 %956, label %981, label %957

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

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

968:                                              ; preds = %964, %957
  br label %969

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

981:                                              ; preds = %952
  %982 = add nsw i32 %867, 5
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %174, i32 noundef 32) #10
  br i1 %983, label %984, label %1008

984:                                              ; preds = %981
  %985 = tail call ptr @__errno_location() #11
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #10
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

991:                                              ; preds = %984
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @fileno(ptr noundef %992) #10
  %994 = call i32 @isatty(i32 noundef %993) #10
  %.not171 = icmp eq i32 %994, 0
  br i1 %.not171, label %995, label %996

995:                                              ; preds = %991, %984
  br label %996

996:                                              ; preds = %991, %995
  %.str.5.sink558 = phi ptr [ @.str.5, %995 ], [ @.str.2, %991 ]
  store i32 %986, ptr %985, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef nonnull @.str.4) #10
  %1002 = load i32, ptr %999, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef nonnull @.str.4) #10
  %1004 = load i32, ptr %985, align 4, !tbaa !5
  %1005 = call ptr @strerror(i32 noundef %1004) #10
  %1006 = load i32, ptr %985, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.5.sink558, i32 noundef %998, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1001, ptr noundef %1003, ptr noundef %1005, i32 noundef %1006) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1008:                                             ; preds = %981
  %1009 = load i32, ptr @test_count, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr @test_count, align 4, !tbaa !5
  %1011 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %203, i32 noundef 32) #10
  br i1 %1011, label %1018, label %.preheader

.preheader:                                       ; preds = %1008
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = add nsw i32 %1012, 1
  store i32 %1013, ptr @test_count, align 4, !tbaa !5
  %1014 = getelementptr inbounds i8, ptr %7, i64 168
  %1015 = getelementptr inbounds i8, ptr %7, i64 176
  %1016 = load i32, ptr %1015, align 16, !tbaa !44
  %1017 = icmp eq i32 %1016, 0
  br i1 %1017, label %1159, label %1183

1018:                                             ; preds = %1008
  %1019 = tail call ptr @__errno_location() #11
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = call i32 @s2n_print_stacktrace(ptr noundef %1021) #10
  %1023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1024 = trunc nuw i8 %1023 to i1
  br i1 %1024, label %1025, label %1029

1025:                                             ; preds = %1018
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @fileno(ptr noundef %1026) #10
  %1028 = call i32 @isatty(i32 noundef %1027) #10
  %.not170 = icmp eq i32 %1028, 0
  br i1 %.not170, label %1029, label %1030

1029:                                             ; preds = %1025, %1018
  br label %1030

1030:                                             ; preds = %1025, %1029
  %.str.5.sink569 = phi ptr [ @.str.5, %1029 ], [ @.str.2, %1025 ]
  store i32 %1020, ptr %1019, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef nonnull @.str.4) #10
  %1036 = load i32, ptr %1033, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef nonnull @.str.4) #10
  %1038 = load i32, ptr %1019, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #10
  %1040 = load i32, ptr %1019, align 4, !tbaa !5
  %1041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef nonnull %.str.5.sink569, i32 noundef %1032, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %1035, ptr noundef %1037, ptr noundef %1039, i32 noundef %1040) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1042:                                             ; preds = %1271
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = getelementptr inbounds i8, ptr %7, i64 192
  %1046 = getelementptr inbounds i8, ptr %7, i64 200
  %1047 = load i32, ptr %1046, align 8, !tbaa !44
  %1048 = icmp eq i32 %1047, 0
  br i1 %1048, label %1159, label %1049

1049:                                             ; preds = %1042
  %1050 = add nsw i32 %1043, 2
  store i32 %1050, ptr @test_count, align 4, !tbaa !5
  %1051 = getelementptr inbounds i8, ptr %7, i64 48
  %1052 = getelementptr inbounds i8, ptr %7, i64 56
  %1053 = load i32, ptr %1052, align 8, !tbaa !44
  %1054 = icmp eq i32 %1047, %1053
  br i1 %1054, label %1055, label %1189

1055:                                             ; preds = %1049
  %1056 = add nsw i32 %1043, 3
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = load ptr, ptr %1045, align 16, !tbaa !45
  %1058 = load ptr, ptr %1051, align 16, !tbaa !45
  %1059 = zext i32 %1047 to i64
  %bcmp165.1 = call i32 @bcmp(ptr %1057, ptr %1058, i64 %1059)
  %1060 = icmp eq i32 %bcmp165.1, 0
  br i1 %1060, label %1061, label %1219

1061:                                             ; preds = %1055
  %1062 = add nsw i32 %1043, 4
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = call i32 @s2n_free(ptr noundef nonnull %1045) #10
  %1064 = icmp eq i32 %1063, -1
  br i1 %1064, label %1247, label %1065

1065:                                             ; preds = %1061
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr @test_count, align 4, !tbaa !5
  %1068 = call i32 @s2n_free(ptr noundef nonnull %1051) #10
  %1069 = icmp eq i32 %1068, -1
  br i1 %1069, label %1276, label %1070

1070:                                             ; preds = %1065
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = add nsw i32 %1071, 1
  store i32 %1072, ptr @test_count, align 4, !tbaa !5
  %1073 = getelementptr inbounds i8, ptr %7, i64 216
  %1074 = getelementptr inbounds i8, ptr %7, i64 224
  %1075 = load i32, ptr %1074, align 16, !tbaa !44
  %1076 = icmp eq i32 %1075, 0
  br i1 %1076, label %1159, label %1077

1077:                                             ; preds = %1070
  %1078 = add nsw i32 %1071, 2
  store i32 %1078, ptr @test_count, align 4, !tbaa !5
  %1079 = getelementptr inbounds i8, ptr %7, i64 72
  %1080 = getelementptr inbounds i8, ptr %7, i64 80
  %1081 = load i32, ptr %1080, align 16, !tbaa !44
  %1082 = icmp eq i32 %1075, %1081
  br i1 %1082, label %1083, label %1189

1083:                                             ; preds = %1077
  %1084 = add nsw i32 %1071, 3
  store i32 %1084, ptr @test_count, align 4, !tbaa !5
  %1085 = load ptr, ptr %1073, align 8, !tbaa !45
  %1086 = load ptr, ptr %1079, align 8, !tbaa !45
  %1087 = zext i32 %1075 to i64
  %bcmp165.2 = call i32 @bcmp(ptr %1085, ptr %1086, i64 %1087)
  %1088 = icmp eq i32 %bcmp165.2, 0
  br i1 %1088, label %1089, label %1219

1089:                                             ; preds = %1083
  %1090 = add nsw i32 %1071, 4
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = call i32 @s2n_free(ptr noundef nonnull %1073) #10
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1247, label %1093

1093:                                             ; preds = %1089
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = add nsw i32 %1094, 1
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = call i32 @s2n_free(ptr noundef nonnull %1079) #10
  %1097 = icmp eq i32 %1096, -1
  br i1 %1097, label %1276, label %1098

1098:                                             ; preds = %1093
  %1099 = load i32, ptr @test_count, align 4, !tbaa !5
  %1100 = add nsw i32 %1099, 1
  store i32 %1100, ptr @test_count, align 4, !tbaa !5
  %1101 = getelementptr inbounds i8, ptr %7, i64 240
  %1102 = getelementptr inbounds i8, ptr %7, i64 248
  %1103 = load i32, ptr %1102, align 8, !tbaa !44
  %1104 = icmp eq i32 %1103, 0
  br i1 %1104, label %1159, label %1105

1105:                                             ; preds = %1098
  %1106 = add nsw i32 %1099, 2
  store i32 %1106, ptr @test_count, align 4, !tbaa !5
  %1107 = getelementptr inbounds i8, ptr %7, i64 96
  %1108 = getelementptr inbounds i8, ptr %7, i64 104
  %1109 = load i32, ptr %1108, align 8, !tbaa !44
  %1110 = icmp eq i32 %1103, %1109
  br i1 %1110, label %1111, label %1189

1111:                                             ; preds = %1105
  %1112 = add nsw i32 %1099, 3
  store i32 %1112, ptr @test_count, align 4, !tbaa !5
  %1113 = load ptr, ptr %1101, align 16, !tbaa !45
  %1114 = load ptr, ptr %1107, align 16, !tbaa !45
  %1115 = zext i32 %1103 to i64
  %bcmp165.3 = call i32 @bcmp(ptr %1113, ptr %1114, i64 %1115)
  %1116 = icmp eq i32 %bcmp165.3, 0
  br i1 %1116, label %1117, label %1219

1117:                                             ; preds = %1111
  %1118 = add nsw i32 %1099, 4
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @s2n_free(ptr noundef nonnull %1101) #10
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1247, label %1121

1121:                                             ; preds = %1117
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr @test_count, align 4, !tbaa !5
  %1124 = call i32 @s2n_free(ptr noundef nonnull %1107) #10
  %1125 = icmp eq i32 %1124, -1
  br i1 %1125, label %1276, label %1126

1126:                                             ; preds = %1121
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr @test_count, align 4, !tbaa !5
  %1129 = getelementptr inbounds i8, ptr %7, i64 264
  %1130 = getelementptr inbounds i8, ptr %7, i64 272
  %1131 = load i32, ptr %1130, align 16, !tbaa !44
  %1132 = icmp eq i32 %1131, 0
  br i1 %1132, label %1159, label %1133

1133:                                             ; preds = %1126
  %1134 = add nsw i32 %1127, 2
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = getelementptr inbounds i8, ptr %7, i64 120
  %1136 = getelementptr inbounds i8, ptr %7, i64 128
  %1137 = load i32, ptr %1136, align 16, !tbaa !44
  %1138 = icmp eq i32 %1131, %1137
  br i1 %1138, label %1139, label %1189

1139:                                             ; preds = %1133
  %1140 = add nsw i32 %1127, 3
  store i32 %1140, ptr @test_count, align 4, !tbaa !5
  %1141 = load ptr, ptr %1129, align 8, !tbaa !45
  %1142 = load ptr, ptr %1135, align 8, !tbaa !45
  %1143 = zext i32 %1131 to i64
  %bcmp165.4 = call i32 @bcmp(ptr %1141, ptr %1142, i64 %1143)
  %1144 = icmp eq i32 %bcmp165.4, 0
  br i1 %1144, label %1145, label %1219

1145:                                             ; preds = %1139
  %1146 = add nsw i32 %1127, 4
  store i32 %1146, ptr @test_count, align 4, !tbaa !5
  %1147 = call i32 @s2n_free(ptr noundef nonnull %1129) #10
  %1148 = icmp eq i32 %1147, -1
  br i1 %1148, label %1247, label %1149

1149:                                             ; preds = %1145
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr @test_count, align 4, !tbaa !5
  %1152 = call i32 @s2n_free(ptr noundef nonnull %1135) #10
  %1153 = icmp eq i32 %1152, -1
  br i1 %1153, label %1276, label %1154

1154:                                             ; preds = %1149
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = add nsw i32 %1155, 1
  store i32 %1156, ptr @test_count, align 4, !tbaa !5
  %1157 = call i32 @s2n_connection_free(ptr noundef nonnull %203) #10
  %1158 = icmp eq i32 %1157, -1
  br i1 %1158, label %1300, label %1324

1159:                                             ; preds = %1126, %1098, %1070, %1042, %.preheader
  %1160 = tail call ptr @__errno_location() #11
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @s2n_print_stacktrace(ptr noundef %1162) #10
  %1164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc nuw i8 %1164 to i1
  br i1 %1165, label %1166, label %1170

1166:                                             ; preds = %1159
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @fileno(ptr noundef %1167) #10
  %1169 = call i32 @isatty(i32 noundef %1168) #10
  %.not169 = icmp eq i32 %1169, 0
  br i1 %.not169, label %1170, label %1171

1170:                                             ; preds = %1166, %1159
  br label %1171

1171:                                             ; preds = %1166, %1170
  %.str.5.sink580 = phi ptr [ @.str.5, %1170 ], [ @.str.2, %1166 ]
  store i32 %1161, ptr %1160, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror(i32 noundef %1175, ptr noundef nonnull @.str.4) #10
  %1177 = load i32, ptr %1174, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror_debug(i32 noundef %1177, ptr noundef nonnull @.str.4) #10
  %1179 = load i32, ptr %1160, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #10
  %1181 = load i32, ptr %1160, align 4, !tbaa !5
  %1182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1172, ptr noundef nonnull %.str.5.sink580, i32 noundef %1173, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1176, ptr noundef %1178, ptr noundef %1180, i32 noundef %1181) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1183:                                             ; preds = %.preheader
  %1184 = add nsw i32 %1012, 2
  store i32 %1184, ptr @test_count, align 4, !tbaa !5
  %1185 = getelementptr inbounds i8, ptr %7, i64 24
  %1186 = getelementptr inbounds i8, ptr %7, i64 32
  %1187 = load i32, ptr %1186, align 16, !tbaa !44
  %1188 = icmp eq i32 %1016, %1187
  br i1 %1188, label %1213, label %1189

1189:                                             ; preds = %1133, %1105, %1077, %1049, %1183
  %1190 = tail call ptr @__errno_location() #11
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = call i32 @s2n_print_stacktrace(ptr noundef %1192) #10
  %1194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1195 = trunc nuw i8 %1194 to i1
  br i1 %1195, label %1196, label %1200

1196:                                             ; preds = %1189
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = call i32 @fileno(ptr noundef %1197) #10
  %1199 = call i32 @isatty(i32 noundef %1198) #10
  %.not163 = icmp eq i32 %1199, 0
  br i1 %.not163, label %1200, label %1201

1200:                                             ; preds = %1196, %1189
  br label %1201

1201:                                             ; preds = %1196, %1200
  %.str.5.sink591 = phi ptr [ @.str.5, %1200 ], [ @.str.2, %1196 ]
  store i32 %1191, ptr %1190, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror(i32 noundef %1205, ptr noundef nonnull @.str.4) #10
  %1207 = load i32, ptr %1204, align 4, !tbaa !5
  %1208 = call ptr @s2n_strerror_debug(i32 noundef %1207, ptr noundef nonnull @.str.4) #10
  %1209 = load i32, ptr %1190, align 4, !tbaa !5
  %1210 = call ptr @strerror(i32 noundef %1209) #10
  %1211 = load i32, ptr %1190, align 4, !tbaa !5
  %1212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1202, ptr noundef nonnull %.str.5.sink591, i32 noundef %1203, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1206, ptr noundef %1208, ptr noundef %1210, i32 noundef %1211) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1213:                                             ; preds = %1183
  %1214 = add nsw i32 %1012, 3
  store i32 %1214, ptr @test_count, align 4, !tbaa !5
  %1215 = load ptr, ptr %1014, align 8, !tbaa !45
  %1216 = load ptr, ptr %1185, align 8, !tbaa !45
  %1217 = zext i32 %1016 to i64
  %bcmp165 = call i32 @bcmp(ptr %1215, ptr %1216, i64 %1217)
  %1218 = icmp eq i32 %bcmp165, 0
  br i1 %1218, label %1243, label %1219

1219:                                             ; preds = %1139, %1111, %1083, %1055, %1213
  %1220 = tail call ptr @__errno_location() #11
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @s2n_print_stacktrace(ptr noundef %1222) #10
  %1224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1225 = trunc nuw i8 %1224 to i1
  br i1 %1225, label %1226, label %1230

1226:                                             ; preds = %1219
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @fileno(ptr noundef %1227) #10
  %1229 = call i32 @isatty(i32 noundef %1228) #10
  %.not166 = icmp eq i32 %1229, 0
  br i1 %.not166, label %1230, label %1231

1230:                                             ; preds = %1226, %1219
  br label %1231

1231:                                             ; preds = %1226, %1230
  %.str.5.sink602 = phi ptr [ @.str.5, %1230 ], [ @.str.2, %1226 ]
  store i32 %1221, ptr %1220, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.4) #10
  %1237 = load i32, ptr %1234, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.4) #10
  %1239 = load i32, ptr %1220, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #10
  %1241 = load i32, ptr %1220, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef nonnull %.str.5.sink602, i32 noundef %1233, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1243:                                             ; preds = %1213
  %1244 = add nsw i32 %1012, 4
  store i32 %1244, ptr @test_count, align 4, !tbaa !5
  %1245 = call i32 @s2n_free(ptr noundef nonnull %1014) #10
  %1246 = icmp eq i32 %1245, -1
  br i1 %1246, label %1247, label %1271

1247:                                             ; preds = %1145, %1117, %1089, %1061, %1243
  %1248 = tail call ptr @__errno_location() #11
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = call i32 @s2n_print_stacktrace(ptr noundef %1250) #10
  %1252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1253 = trunc nuw i8 %1252 to i1
  br i1 %1253, label %1254, label %1258

1254:                                             ; preds = %1247
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = call i32 @fileno(ptr noundef %1255) #10
  %1257 = call i32 @isatty(i32 noundef %1256) #10
  %.not168 = icmp eq i32 %1257, 0
  br i1 %.not168, label %1258, label %1259

1258:                                             ; preds = %1254, %1247
  br label %1259

1259:                                             ; preds = %1254, %1258
  %.str.5.sink613 = phi ptr [ @.str.5, %1258 ], [ @.str.2, %1254 ]
  store i32 %1249, ptr %1248, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror(i32 noundef %1263, ptr noundef nonnull @.str.4) #10
  %1265 = load i32, ptr %1262, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror_debug(i32 noundef %1265, ptr noundef nonnull @.str.4) #10
  %1267 = load i32, ptr %1248, align 4, !tbaa !5
  %1268 = call ptr @strerror(i32 noundef %1267) #10
  %1269 = load i32, ptr %1248, align 4, !tbaa !5
  %1270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1260, ptr noundef nonnull %.str.5.sink613, i32 noundef %1261, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %1264, ptr noundef %1266, ptr noundef %1268, i32 noundef %1269) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1271:                                             ; preds = %1243
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = add nsw i32 %1272, 1
  store i32 %1273, ptr @test_count, align 4, !tbaa !5
  %1274 = call i32 @s2n_free(ptr noundef nonnull %1185) #10
  %1275 = icmp eq i32 %1274, -1
  br i1 %1275, label %1276, label %1042

1276:                                             ; preds = %1149, %1121, %1093, %1065, %1271
  %1277 = tail call ptr @__errno_location() #11
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @s2n_print_stacktrace(ptr noundef %1279) #10
  %1281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1282 = trunc nuw i8 %1281 to i1
  br i1 %1282, label %1283, label %1287

1283:                                             ; preds = %1276
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 @fileno(ptr noundef %1284) #10
  %1286 = call i32 @isatty(i32 noundef %1285) #10
  %.not167 = icmp eq i32 %1286, 0
  br i1 %.not167, label %1287, label %1288

1287:                                             ; preds = %1283, %1276
  br label %1288

1288:                                             ; preds = %1283, %1287
  %.str.5.sink624 = phi ptr [ @.str.5, %1287 ], [ @.str.2, %1283 ]
  store i32 %1278, ptr %1277, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef nonnull @.str.4) #10
  %1294 = load i32, ptr %1291, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror_debug(i32 noundef %1294, ptr noundef nonnull @.str.4) #10
  %1296 = load i32, ptr %1277, align 4, !tbaa !5
  %1297 = call ptr @strerror(i32 noundef %1296) #10
  %1298 = load i32, ptr %1277, align 4, !tbaa !5
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1289, ptr noundef nonnull %.str.5.sink624, i32 noundef %1290, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1293, ptr noundef %1295, ptr noundef %1297, i32 noundef %1298) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1300:                                             ; preds = %1154
  %1301 = tail call ptr @__errno_location() #11
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = call i32 @s2n_print_stacktrace(ptr noundef %1303) #10
  %1305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc nuw i8 %1305 to i1
  br i1 %1306, label %1307, label %1311

1307:                                             ; preds = %1300
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #10
  %1310 = call i32 @isatty(i32 noundef %1309) #10
  %.not162 = icmp eq i32 %1310, 0
  br i1 %.not162, label %1311, label %1312

1311:                                             ; preds = %1307, %1300
  br label %1312

1312:                                             ; preds = %1307, %1311
  %.str.5.sink635 = phi ptr [ @.str.5, %1311 ], [ @.str.2, %1307 ]
  store i32 %1302, ptr %1301, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror(i32 noundef %1316, ptr noundef nonnull @.str.4) #10
  %1318 = load i32, ptr %1315, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror_debug(i32 noundef %1318, ptr noundef nonnull @.str.4) #10
  %1320 = load i32, ptr %1301, align 4, !tbaa !5
  %1321 = call ptr @strerror(i32 noundef %1320) #10
  %1322 = load i32, ptr %1301, align 4, !tbaa !5
  %1323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef nonnull %.str.5.sink635, i32 noundef %1314, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1317, ptr noundef %1319, ptr noundef %1321, i32 noundef %1322) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1324:                                             ; preds = %1154
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = add nsw i32 %1325, 1
  store i32 %1326, ptr @test_count, align 4, !tbaa !5
  %1327 = call i32 @s2n_connection_free(ptr noundef nonnull %174) #10
  %1328 = icmp eq i32 %1327, -1
  br i1 %1328, label %1329, label %1353

1329:                                             ; preds = %1324
  %1330 = tail call ptr @__errno_location() #11
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = call i32 @s2n_print_stacktrace(ptr noundef %1332) #10
  %1334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1335 = trunc nuw i8 %1334 to i1
  br i1 %1335, label %1336, label %1340

1336:                                             ; preds = %1329
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 @fileno(ptr noundef %1337) #10
  %1339 = call i32 @isatty(i32 noundef %1338) #10
  %.not161 = icmp eq i32 %1339, 0
  br i1 %.not161, label %1340, label %1341

1340:                                             ; preds = %1336, %1329
  br label %1341

1341:                                             ; preds = %1336, %1340
  %.str.5.sink646 = phi ptr [ @.str.5, %1340 ], [ @.str.2, %1336 ]
  store i32 %1331, ptr %1330, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror(i32 noundef %1345, ptr noundef nonnull @.str.4) #10
  %1347 = load i32, ptr %1344, align 4, !tbaa !5
  %1348 = call ptr @s2n_strerror_debug(i32 noundef %1347, ptr noundef nonnull @.str.4) #10
  %1349 = load i32, ptr %1330, align 4, !tbaa !5
  %1350 = call ptr @strerror(i32 noundef %1349) #10
  %1351 = load i32, ptr %1330, align 4, !tbaa !5
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1342, ptr noundef nonnull %.str.5.sink646, i32 noundef %1343, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1346, ptr noundef %1348, ptr noundef %1350, i32 noundef %1351) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1353:                                             ; preds = %1324
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = add nsw i32 %1354, 1
  store i32 %1355, ptr @test_count, align 4, !tbaa !5
  %1356 = call i32 @s2n_io_pair_close(ptr noundef nonnull %6) #10
  %1357 = icmp eq i32 %1356, -1
  br i1 %1357, label %1358, label %1382

1358:                                             ; preds = %1353
  %1359 = tail call ptr @__errno_location() #11
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = call i32 @s2n_print_stacktrace(ptr noundef %1361) #10
  %1363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1364 = trunc nuw i8 %1363 to i1
  br i1 %1364, label %1365, label %1369

1365:                                             ; preds = %1358
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @fileno(ptr noundef %1366) #10
  %1368 = call i32 @isatty(i32 noundef %1367) #10
  %.not160 = icmp eq i32 %1368, 0
  br i1 %.not160, label %1369, label %1370

1369:                                             ; preds = %1365, %1358
  br label %1370

1370:                                             ; preds = %1365, %1369
  %.str.5.sink657 = phi ptr [ @.str.5, %1369 ], [ @.str.2, %1365 ]
  store i32 %1360, ptr %1359, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror(i32 noundef %1374, ptr noundef nonnull @.str.4) #10
  %1376 = load i32, ptr %1373, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror_debug(i32 noundef %1376, ptr noundef nonnull @.str.4) #10
  %1378 = load i32, ptr %1359, align 4, !tbaa !5
  %1379 = call ptr @strerror(i32 noundef %1378) #10
  %1380 = load i32, ptr %1359, align 4, !tbaa !5
  %1381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1371, ptr noundef nonnull %.str.5.sink657, i32 noundef %1372, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1375, ptr noundef %1377, ptr noundef %1379, i32 noundef %1380) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1382:                                             ; preds = %1353
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = add nsw i32 %1383, 1
  store i32 %1384, ptr @test_count, align 4, !tbaa !5
  %1385 = load ptr, ptr %5, align 8, !tbaa !9
  %1386 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1385) #10
  %1387 = icmp eq i32 %1386, -1
  br i1 %1387, label %1388, label %1412

1388:                                             ; preds = %1382
  %1389 = tail call ptr @__errno_location() #11
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391) #10
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1399

1395:                                             ; preds = %1388
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #10
  %1398 = call i32 @isatty(i32 noundef %1397) #10
  %.not159 = icmp eq i32 %1398, 0
  br i1 %.not159, label %1399, label %1400

1399:                                             ; preds = %1395, %1388
  br label %1400

1400:                                             ; preds = %1395, %1399
  %.str.5.sink668 = phi ptr [ @.str.5, %1399 ], [ @.str.2, %1395 ]
  store i32 %1390, ptr %1389, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef nonnull @.str.4) #10
  %1406 = load i32, ptr %1403, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror_debug(i32 noundef %1406, ptr noundef nonnull @.str.4) #10
  %1408 = load i32, ptr %1389, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #10
  %1410 = load i32, ptr %1389, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink668, i32 noundef %1402, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1405, ptr noundef %1407, ptr noundef %1409, i32 noundef %1410) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1412:                                             ; preds = %1382
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = add nsw i32 %1413, 1
  store i32 %1414, ptr @test_count, align 4, !tbaa !5
  %1415 = call i32 @s2n_config_free(ptr noundef nonnull %261) #10
  %1416 = icmp eq i32 %1415, -1
  br i1 %1416, label %1417, label %1441

1417:                                             ; preds = %1412
  %1418 = tail call ptr @__errno_location() #11
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @s2n_print_stacktrace(ptr noundef %1420) #10
  %1422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1423 = trunc nuw i8 %1422 to i1
  br i1 %1423, label %1424, label %1428

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

1428:                                             ; preds = %1424, %1417
  br label %1429

1429:                                             ; preds = %1424, %1428
  %.str.5.sink679 = phi ptr [ @.str.5, %1428 ], [ @.str.2, %1424 ]
  store i32 %1419, ptr %1418, align 4, !tbaa !5
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror(i32 noundef %1433, ptr noundef nonnull @.str.4) #10
  %1435 = load i32, ptr %1432, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef nonnull @.str.4) #10
  %1437 = load i32, ptr %1418, align 4, !tbaa !5
  %1438 = call ptr @strerror(i32 noundef %1437) #10
  %1439 = load i32, ptr %1418, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1430, ptr noundef nonnull %.str.5.sink679, i32 noundef %1431, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1434, ptr noundef %1436, ptr noundef %1438, i32 noundef %1439) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1441:                                             ; preds = %1412
  %1442 = call i32 @s2n_cleanup() #10
  %1443 = icmp eq i32 %1442, -1
  br i1 %1443, label %1444, label %1468

1444:                                             ; preds = %1441
  %1445 = tail call ptr @__errno_location() #11
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @s2n_print_stacktrace(ptr noundef %1447) #10
  %1449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1450 = trunc nuw i8 %1449 to i1
  br i1 %1450, label %1451, label %1455

1451:                                             ; preds = %1444
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @fileno(ptr noundef %1452) #10
  %1454 = call i32 @isatty(i32 noundef %1453) #10
  %.not157 = icmp eq i32 %1454, 0
  br i1 %.not157, label %1455, label %1456

1455:                                             ; preds = %1451, %1444
  br label %1456

1456:                                             ; preds = %1451, %1455
  %.str.5.sink690 = phi ptr [ @.str.5, %1455 ], [ @.str.2, %1451 ]
  store i32 %1446, ptr %1445, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror(i32 noundef %1460, ptr noundef nonnull @.str.4) #10
  %1462 = load i32, ptr %1459, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef nonnull @.str.4) #10
  %1464 = load i32, ptr %1445, align 4, !tbaa !5
  %1465 = call ptr @strerror(i32 noundef %1464) #10
  %1466 = load i32, ptr %1445, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1457, ptr noundef nonnull %.str.5.sink690, i32 noundef %1458, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1461, ptr noundef %1463, ptr noundef %1465, i32 noundef %1466) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1468:                                             ; preds = %1441
  %1469 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1470 = icmp eq i32 %1469, -1
  br i1 %1470, label %1471, label %1495

1471:                                             ; preds = %1468
  %1472 = tail call ptr @__errno_location() #11
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @s2n_print_stacktrace(ptr noundef %1474) #10
  %1476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1477 = trunc nuw i8 %1476 to i1
  br i1 %1477, label %1478, label %1482

1478:                                             ; preds = %1471
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @fileno(ptr noundef %1479) #10
  %1481 = call i32 @isatty(i32 noundef %1480) #10
  %.not156 = icmp eq i32 %1481, 0
  br i1 %.not156, label %1482, label %1483

1482:                                             ; preds = %1478, %1471
  br label %1483

1483:                                             ; preds = %1478, %1482
  %.str.5.sink701 = phi ptr [ @.str.5, %1482 ], [ @.str.2, %1478 ]
  store i32 %1473, ptr %1472, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef nonnull @.str.4) #10
  %1489 = load i32, ptr %1486, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror_debug(i32 noundef %1489, ptr noundef nonnull @.str.4) #10
  %1491 = load i32, ptr %1472, align 4, !tbaa !5
  %1492 = call ptr @strerror(i32 noundef %1491) #10
  %1493 = load i32, ptr %1472, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1484, ptr noundef nonnull %.str.5.sink701, i32 noundef %1485, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1488, ptr noundef %1490, ptr noundef %1492, i32 noundef %1493) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1495:                                             ; preds = %1468
  %1496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1497 = trunc nuw i8 %1496 to i1
  br i1 %1497, label %1498, label %1509

1498:                                             ; preds = %1495
  %1499 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1500 = call i32 @fileno(ptr noundef %1499) #10
  %1501 = call i32 @isatty(i32 noundef %1500) #10
  %.not153 = icmp eq i32 %1501, 0
  br i1 %.not153, label %1509, label %1502

1502:                                             ; preds = %1498
  %1503 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not155 = icmp eq i32 %1503, 0
  %1504 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not155, label %1507, label %1505

1505:                                             ; preds = %1502
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef nonnull @.str.10, i32 noundef %1503) #10
  br label %1516

1507:                                             ; preds = %1502
  %1508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef nonnull @.str.11) #10
  br label %1516

1509:                                             ; preds = %1498, %1495
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not154 = icmp eq i32 %1510, 0
  %1511 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not154, label %1514, label %1512

1512:                                             ; preds = %1509
  %1513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull @.str.12, i32 noundef %1510) #10
  br label %1516

1514:                                             ; preds = %1509
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull @.str.13) #10
  br label %1516

1516:                                             ; preds = %1512, %1514, %1505, %1507
  call void @llvm.lifetime.end.p0(i64 288, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  br label %1517

1517:                                             ; preds = %162, %160, %169, %167, %1516
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare ptr @s2n_config_new() local_unnamed_addr #2

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

declare i32 @s2n_config_set_unsafe_for_testing(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_enable_quic(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_set_quic_transport_parameters(ptr noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

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

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

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

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

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

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nofree nounwind willreturn memory(argmem: read) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { 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, !16, i64 0}
!16 = !{!"short", !7, i64 0}
!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, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !20, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !16, i64 2208, !6, i64 2212, !16, i64 2216, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !34, i64 2264, !34, 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, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !16, i64 4084, !16, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !42, i64 4128, !34, 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, !16, i64 40, !16, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"s2n_stuffer", !27, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !27, i64 0, !38, 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}
!38 = !{!"", !7, i64 0, !27, i64 672, !16, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !16, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !27, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!18, !7, i64 216}
!44 = !{!27, !6, i64 8}
!45 = !{!27, !10, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass