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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [97 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  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 %28

28:                                               ; preds = %2
  br label %29

29:                                               ; preds = %28
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %30 = load ptr, ptr @stdout, align 8, !tbaa !9
  %31 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef @.str, ptr noundef @.str.1) #7
  %32 = load ptr, ptr @stdout, align 8, !tbaa !9
  %33 = call i32 @fflush(ptr noundef %32)
  br label %34

34:                                               ; preds = %29
  %35 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %36 = icmp eq i32 %35, -1
  br i1 %36, label %37, label %88

37:                                               ; preds = %34
  br label %38

38:                                               ; preds = %37
  br label %39

39:                                               ; preds = %38
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %40 = call ptr @__errno_location() #8
  %41 = load i32, ptr %40, align 4, !tbaa !5
  store i32 %41, ptr %6, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = call i32 @s2n_print_stacktrace(ptr noundef %42)
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc i8 %44 to i1
  br i1 %45, label %46, label %68

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

51:                                               ; preds = %46
  %52 = load i32, ptr %6, align 4, !tbaa !5
  %53 = call ptr @__errno_location() #8
  store i32 %52, ptr %53, align 4, !tbaa !5
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = load i32, ptr @test_count, align 4, !tbaa !5
  %56 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = call ptr @s2n_strerror(i32 noundef %57, ptr noundef @.str.4)
  %59 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %60 = load i32, ptr %59, align 4, !tbaa !5
  %61 = call ptr @s2n_strerror_debug(i32 noundef %60, ptr noundef @.str.4)
  %62 = call ptr @__errno_location() #8
  %63 = load i32, ptr %62, align 4, !tbaa !5
  %64 = call ptr @strerror(i32 noundef %63) #7
  %65 = call ptr @__errno_location() #8
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef @.str.2, i32 noundef %55, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 31, ptr noundef %58, ptr noundef %61, ptr noundef %64, i32 noundef %66) #7
  br label %85

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

85:                                               ; preds = %68, %51
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %86

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

87:                                               ; No predecessors!
  br label %88

88:                                               ; preds = %87, %34
  br label %89

89:                                               ; preds = %88
  br label %90

90:                                               ; preds = %89
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr @test_count, align 4, !tbaa !5
  %93 = call i32 @s2n_enable_atexit()
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %146

95:                                               ; preds = %90
  br label %96

96:                                               ; preds = %95
  br label %97

97:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %98 = call ptr @__errno_location() #8
  %99 = load i32, ptr %98, align 4, !tbaa !5
  store i32 %99, ptr %7, align 4, !tbaa !5
  %100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %101 = call i32 @s2n_print_stacktrace(ptr noundef %100)
  %102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %103 = trunc i8 %102 to i1
  br i1 %103, label %104, label %126

104:                                              ; preds = %97
  %105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %106 = call i32 @fileno(ptr noundef %105) #7
  %107 = call i32 @isatty(i32 noundef %106) #7
  %108 = icmp ne i32 %107, 0
  br i1 %108, label %109, label %126

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

126:                                              ; preds = %104, %97
  %127 = load i32, ptr %7, align 4, !tbaa !5
  %128 = call ptr @__errno_location() #8
  store i32 %127, ptr %128, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = call ptr @s2n_strerror(i32 noundef %132, ptr noundef @.str.4)
  %134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %135 = load i32, ptr %134, align 4, !tbaa !5
  %136 = call ptr @s2n_strerror_debug(i32 noundef %135, ptr noundef @.str.4)
  %137 = call ptr @__errno_location() #8
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = call ptr @strerror(i32 noundef %138) #7
  %140 = call ptr @__errno_location() #8
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef @.str.5, i32 noundef %130, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 31, ptr noundef %133, ptr noundef %136, ptr noundef %139, i32 noundef %141) #7
  br label %143

143:                                              ; preds = %126, %109
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %144

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

145:                                              ; No predecessors!
  br label %146

146:                                              ; preds = %145, %90
  br label %147

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148
  %150 = call i32 @s2n_init()
  %151 = icmp eq i32 %150, -1
  br i1 %151, label %152, label %203

152:                                              ; preds = %149
  br label %153

153:                                              ; preds = %152
  br label %154

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %155 = call ptr @__errno_location() #8
  %156 = load i32, ptr %155, align 4, !tbaa !5
  store i32 %156, ptr %8, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = call i32 @s2n_print_stacktrace(ptr noundef %157)
  %159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %160 = trunc i8 %159 to i1
  br i1 %160, label %161, label %183

161:                                              ; preds = %154
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @fileno(ptr noundef %162) #7
  %164 = call i32 @isatty(i32 noundef %163) #7
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %183

166:                                              ; preds = %161
  %167 = load i32, ptr %8, align 4, !tbaa !5
  %168 = call ptr @__errno_location() #8
  store i32 %167, ptr %168, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror(i32 noundef %172, ptr noundef @.str.4)
  %174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call ptr @s2n_strerror_debug(i32 noundef %175, ptr noundef @.str.4)
  %177 = call ptr @__errno_location() #8
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = call ptr @strerror(i32 noundef %178) #7
  %180 = call ptr @__errno_location() #8
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef @.str.2, i32 noundef %170, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 31, ptr noundef %173, ptr noundef %176, ptr noundef %179, i32 noundef %181) #7
  br label %200

183:                                              ; preds = %161, %154
  %184 = load i32, ptr %8, align 4, !tbaa !5
  %185 = call ptr @__errno_location() #8
  store i32 %184, ptr %185, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call ptr @s2n_strerror(i32 noundef %189, ptr noundef @.str.4)
  %191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = call ptr @s2n_strerror_debug(i32 noundef %192, ptr noundef @.str.4)
  %194 = call ptr @__errno_location() #8
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = call ptr @strerror(i32 noundef %195) #7
  %197 = call ptr @__errno_location() #8
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef @.str.5, i32 noundef %187, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 31, ptr noundef %190, ptr noundef %193, ptr noundef %196, i32 noundef %198) #7
  br label %200

200:                                              ; preds = %183, %166
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  br label %201

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

202:                                              ; No predecessors!
  br label %203

203:                                              ; preds = %202, %149
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  br label %206

206:                                              ; preds = %205
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 (...) @s2n_enable_tls13_in_test()
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %262

211:                                              ; preds = %206
  br label %212

212:                                              ; preds = %211
  br label %213

213:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %214 = call ptr @__errno_location() #8
  %215 = load i32, ptr %214, align 4, !tbaa !5
  store i32 %215, ptr %9, align 4, !tbaa !5
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = call i32 @s2n_print_stacktrace(ptr noundef %216)
  %218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %219 = trunc i8 %218 to i1
  br i1 %219, label %220, label %242

220:                                              ; preds = %213
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = call i32 @fileno(ptr noundef %221) #7
  %223 = call i32 @isatty(i32 noundef %222) #7
  %224 = icmp ne i32 %223, 0
  br i1 %224, label %225, label %242

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

242:                                              ; preds = %220, %213
  %243 = load i32, ptr %9, align 4, !tbaa !5
  %244 = call ptr @__errno_location() #8
  store i32 %243, ptr %244, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror(i32 noundef %248, ptr noundef @.str.4)
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror_debug(i32 noundef %251, ptr noundef @.str.4)
  %253 = call ptr @__errno_location() #8
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @strerror(i32 noundef %254) #7
  %256 = call ptr @__errno_location() #8
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef @.str.5, i32 noundef %246, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 32, ptr noundef %249, ptr noundef %252, ptr noundef %255, i32 noundef %257) #7
  br label %259

259:                                              ; preds = %242, %225
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %260

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

261:                                              ; No predecessors!
  br label %262

262:                                              ; preds = %261, %206
  br label %263

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

264:                                              ; preds = %263
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %267, ptr %10, align 8, !tbaa !9
  %268 = icmp eq ptr %267, null
  br i1 %268, label %269, label %322

269:                                              ; preds = %264
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  %272 = call ptr @__errno_location() #8
  %273 = load i32, ptr %272, align 4, !tbaa !5
  store i32 %273, ptr %11, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @s2n_print_stacktrace(ptr noundef %274)
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc i8 %276 to i1
  br i1 %277, label %278, label %300

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #7
  %281 = call i32 @isatty(i32 noundef %280) #7
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %300

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

300:                                              ; preds = %278, %271
  %301 = load i32, ptr %11, align 4, !tbaa !5
  %302 = call ptr @__errno_location() #8
  store i32 %301, ptr %302, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror(i32 noundef %306, ptr noundef @.str.4)
  %308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef @.str.4)
  %311 = call ptr @__errno_location() #8
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #7
  %314 = call ptr @__errno_location() #8
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef @.str.5, i32 noundef %304, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 37, ptr noundef %307, ptr noundef %310, ptr noundef %313, i32 noundef %315) #7
  br label %317

317:                                              ; preds = %300, %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %318

318:                                              ; preds = %317
  br label %319

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

320:                                              ; No predecessors!
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321, %264
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  %325 = load ptr, ptr %10, align 8, !tbaa !9
  %326 = getelementptr inbounds %struct.s2n_connection, ptr %325, i32 0, i32 23
  store i8 34, ptr %326, align 4, !tbaa !15
  br label %327

327:                                              ; preds = %324
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  store i32 %329, ptr @test_count, align 4, !tbaa !5
  %330 = load ptr, ptr %10, align 8, !tbaa !9
  %331 = getelementptr inbounds %struct.s2n_connection, ptr %330, i32 0, i32 32
  %332 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %331, i32 0, i32 4
  %333 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %332, i32 0, i32 1
  %334 = load i8, ptr %333, align 4, !tbaa !42
  %335 = zext i8 %334 to i32
  %336 = icmp eq i32 %335, 0
  br i1 %336, label %390, label %337

337:                                              ; preds = %327
  br label %338

338:                                              ; preds = %337
  br label %339

339:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %340 = call ptr @__errno_location() #8
  %341 = load i32, ptr %340, align 4, !tbaa !5
  store i32 %341, ptr %12, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = call i32 @s2n_print_stacktrace(ptr noundef %342)
  %344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %345 = trunc i8 %344 to i1
  br i1 %345, label %346, label %368

346:                                              ; preds = %339
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = call i32 @fileno(ptr noundef %347) #7
  %349 = call i32 @isatty(i32 noundef %348) #7
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %351, label %368

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

368:                                              ; preds = %346, %339
  %369 = load i32, ptr %12, align 4, !tbaa !5
  %370 = call ptr @__errno_location() #8
  store i32 %369, ptr %370, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror(i32 noundef %374, ptr noundef @.str.4)
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror_debug(i32 noundef %377, ptr noundef @.str.4)
  %379 = call ptr @__errno_location() #8
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @strerror(i32 noundef %380) #7
  %382 = call ptr @__errno_location() #8
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %371, ptr noundef @.str.5, i32 noundef %372, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 40, ptr noundef %375, ptr noundef %378, ptr noundef %381, i32 noundef %383) #7
  br label %385

385:                                              ; preds = %368, %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %386

386:                                              ; preds = %385
  br label %387

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

388:                                              ; No predecessors!
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389, %327
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  %394 = load i32, ptr @test_count, align 4, !tbaa !5
  %395 = add nsw i32 %394, 1
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %396 = load ptr, ptr %10, align 8, !tbaa !9
  %397 = call i32 @s2n_tls13_cert_req_send(ptr noundef %396)
  %398 = icmp eq i32 %397, -1
  br i1 %398, label %399, label %452

399:                                              ; preds = %393
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %402 = call ptr @__errno_location() #8
  %403 = load i32, ptr %402, align 4, !tbaa !5
  store i32 %403, ptr %13, align 4, !tbaa !5
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = call i32 @s2n_print_stacktrace(ptr noundef %404)
  %406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %407 = trunc i8 %406 to i1
  br i1 %407, label %408, label %430

408:                                              ; preds = %401
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = call i32 @fileno(ptr noundef %409) #7
  %411 = call i32 @isatty(i32 noundef %410) #7
  %412 = icmp ne i32 %411, 0
  br i1 %412, label %413, label %430

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

430:                                              ; preds = %408, %401
  %431 = load i32, ptr %13, align 4, !tbaa !5
  %432 = call ptr @__errno_location() #8
  store i32 %431, ptr %432, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = load i32, ptr @test_count, align 4, !tbaa !5
  %435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror(i32 noundef %436, ptr noundef @.str.4)
  %438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror_debug(i32 noundef %439, ptr noundef @.str.4)
  %441 = call ptr @__errno_location() #8
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @strerror(i32 noundef %442) #7
  %444 = call ptr @__errno_location() #8
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %433, ptr noundef @.str.5, i32 noundef %434, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 41, ptr noundef %437, ptr noundef %440, ptr noundef %443, i32 noundef %445) #7
  br label %447

447:                                              ; preds = %430, %413
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %448

448:                                              ; preds = %447
  br label %449

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

450:                                              ; No predecessors!
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451, %393
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  br label %455

455:                                              ; preds = %454
  %456 = load i32, ptr @test_count, align 4, !tbaa !5
  %457 = add nsw i32 %456, 1
  store i32 %457, ptr @test_count, align 4, !tbaa !5
  %458 = load ptr, ptr %10, align 8, !tbaa !9
  %459 = call i32 @s2n_tls13_cert_req_recv(ptr noundef %458)
  %460 = icmp eq i32 %459, -1
  br i1 %460, label %461, label %514

461:                                              ; preds = %455
  br label %462

462:                                              ; preds = %461
  br label %463

463:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %464 = call ptr @__errno_location() #8
  %465 = load i32, ptr %464, align 4, !tbaa !5
  store i32 %465, ptr %14, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @s2n_print_stacktrace(ptr noundef %466)
  %468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %469 = trunc i8 %468 to i1
  br i1 %469, label %470, label %492

470:                                              ; preds = %463
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = call i32 @fileno(ptr noundef %471) #7
  %473 = call i32 @isatty(i32 noundef %472) #7
  %474 = icmp ne i32 %473, 0
  br i1 %474, label %475, label %492

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

492:                                              ; preds = %470, %463
  %493 = load i32, ptr %14, align 4, !tbaa !5
  %494 = call ptr @__errno_location() #8
  store i32 %493, ptr %494, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = load i32, ptr @test_count, align 4, !tbaa !5
  %497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror(i32 noundef %498, ptr noundef @.str.4)
  %500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef %501, ptr noundef @.str.4)
  %503 = call ptr @__errno_location() #8
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call ptr @strerror(i32 noundef %504) #7
  %506 = call ptr @__errno_location() #8
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef @.str.5, i32 noundef %496, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 42, ptr noundef %499, ptr noundef %502, ptr noundef %505, i32 noundef %507) #7
  br label %509

509:                                              ; preds = %492, %475
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %510

510:                                              ; preds = %509
  br label %511

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

512:                                              ; No predecessors!
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513, %455
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  store i32 %519, ptr @test_count, align 4, !tbaa !5
  %520 = load ptr, ptr %10, align 8, !tbaa !9
  %521 = getelementptr inbounds %struct.s2n_connection, ptr %520, i32 0, i32 32
  %522 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %521, i32 0, i32 4
  %523 = getelementptr inbounds %struct.s2n_sig_scheme_list, ptr %522, i32 0, i32 1
  %524 = load i8, ptr %523, align 4, !tbaa !42
  %525 = zext i8 %524 to i32
  %526 = icmp eq i32 %525, 0
  br i1 %526, label %527, label %580

527:                                              ; preds = %517
  br label %528

528:                                              ; preds = %527
  br label %529

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

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

541:                                              ; preds = %536
  %542 = load i32, ptr %15, align 4, !tbaa !5
  %543 = call ptr @__errno_location() #8
  store i32 %542, ptr %543, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror(i32 noundef %547, ptr noundef @.str.4)
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef @.str.4)
  %552 = call ptr @__errno_location() #8
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @strerror(i32 noundef %553) #7
  %555 = call ptr @__errno_location() #8
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %544, ptr noundef @.str.2, i32 noundef %545, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 43, ptr noundef %548, ptr noundef %551, ptr noundef %554, i32 noundef %556) #7
  br label %575

558:                                              ; preds = %536, %529
  %559 = load i32, ptr %15, align 4, !tbaa !5
  %560 = call ptr @__errno_location() #8
  store i32 %559, ptr %560, align 4, !tbaa !5
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror(i32 noundef %564, ptr noundef @.str.4)
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror_debug(i32 noundef %567, ptr noundef @.str.4)
  %569 = call ptr @__errno_location() #8
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @strerror(i32 noundef %570) #7
  %572 = call ptr @__errno_location() #8
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %561, ptr noundef @.str.5, i32 noundef %562, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 43, ptr noundef %565, ptr noundef %568, ptr noundef %571, i32 noundef %573) #7
  br label %575

575:                                              ; preds = %558, %541
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %576

576:                                              ; preds = %575
  br label %577

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

578:                                              ; No predecessors!
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579, %517
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load ptr, ptr %10, align 8, !tbaa !9
  %587 = call i32 @s2n_connection_free(ptr noundef %586)
  %588 = icmp eq i32 %587, -1
  br i1 %588, label %589, label %642

589:                                              ; preds = %583
  br label %590

590:                                              ; preds = %589
  br label %591

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

598:                                              ; preds = %591
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @fileno(ptr noundef %599) #7
  %601 = call i32 @isatty(i32 noundef %600) #7
  %602 = icmp ne i32 %601, 0
  br i1 %602, label %603, label %620

603:                                              ; preds = %598
  %604 = load i32, ptr %16, align 4, !tbaa !5
  %605 = call ptr @__errno_location() #8
  store i32 %604, ptr %605, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror(i32 noundef %609, ptr noundef @.str.4)
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef @.str.4)
  %614 = call ptr @__errno_location() #8
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @strerror(i32 noundef %615) #7
  %617 = call ptr @__errno_location() #8
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef @.str.2, i32 noundef %607, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 45, ptr noundef %610, ptr noundef %613, ptr noundef %616, i32 noundef %618) #7
  br label %637

620:                                              ; preds = %598, %591
  %621 = load i32, ptr %16, align 4, !tbaa !5
  %622 = call ptr @__errno_location() #8
  store i32 %621, ptr %622, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror(i32 noundef %626, ptr noundef @.str.4)
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror_debug(i32 noundef %629, ptr noundef @.str.4)
  %631 = call ptr @__errno_location() #8
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @strerror(i32 noundef %632) #7
  %634 = call ptr @__errno_location() #8
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef @.str.5, i32 noundef %624, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 45, ptr noundef %627, ptr noundef %630, ptr noundef %633, i32 noundef %635) #7
  br label %637

637:                                              ; preds = %620, %603
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %638

638:                                              ; preds = %637
  br label %639

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

640:                                              ; No predecessors!
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641, %583
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  store ptr null, ptr %17, align 8, !tbaa !9
  br label %645

645:                                              ; preds = %644
  %646 = load i32, ptr @test_count, align 4, !tbaa !5
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr @test_count, align 4, !tbaa !5
  %648 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %648, ptr %17, align 8, !tbaa !9
  %649 = icmp eq ptr %648, null
  br i1 %649, label %650, label %703

650:                                              ; preds = %645
  br label %651

651:                                              ; preds = %650
  br label %652

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

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

664:                                              ; preds = %659
  %665 = load i32, ptr %18, align 4, !tbaa !5
  %666 = call ptr @__errno_location() #8
  store i32 %665, ptr %666, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror(i32 noundef %670, ptr noundef @.str.4)
  %672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef @.str.4)
  %675 = call ptr @__errno_location() #8
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #7
  %678 = call ptr @__errno_location() #8
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef @.str.2, i32 noundef %668, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 51, ptr noundef %671, ptr noundef %674, ptr noundef %677, i32 noundef %679) #7
  br label %698

681:                                              ; preds = %659, %652
  %682 = load i32, ptr %18, align 4, !tbaa !5
  %683 = call ptr @__errno_location() #8
  store i32 %682, ptr %683, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror(i32 noundef %687, ptr noundef @.str.4)
  %689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror_debug(i32 noundef %690, ptr noundef @.str.4)
  %692 = call ptr @__errno_location() #8
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call ptr @strerror(i32 noundef %693) #7
  %695 = call ptr @__errno_location() #8
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %684, ptr noundef @.str.5, i32 noundef %685, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 51, ptr noundef %688, ptr noundef %691, ptr noundef %694, i32 noundef %696) #7
  br label %698

698:                                              ; preds = %681, %664
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %699

699:                                              ; preds = %698
  br label %700

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

701:                                              ; No predecessors!
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702, %645
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  %706 = load ptr, ptr %17, align 8, !tbaa !9
  %707 = getelementptr inbounds %struct.s2n_connection, ptr %706, i32 0, i32 23
  store i8 34, ptr %707, align 4, !tbaa !15
  br label %708

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

716:                                              ; preds = %708
  br label %717

717:                                              ; preds = %716
  br label %718

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

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

730:                                              ; preds = %725
  %731 = load i32, ptr %19, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #8
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.4)
  %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_debug(i32 noundef %739, ptr noundef @.str.4)
  %741 = call ptr @__errno_location() #8
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #7
  %744 = call ptr @__errno_location() #8
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str.2, i32 noundef %734, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 55, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #7
  br label %764

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

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %765

765:                                              ; preds = %764
  br label %766

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

767:                                              ; No predecessors!
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768, %708
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load ptr, ptr %17, align 8, !tbaa !9
  %776 = load ptr, ptr %17, align 8, !tbaa !9
  %777 = getelementptr inbounds %struct.s2n_connection, ptr %776, i32 0, i32 52
  %778 = getelementptr inbounds %struct.s2n_handshake, ptr %777, i32 0, i32 0
  %779 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef %775, ptr noundef %778)
  %780 = icmp eq i32 %779, -1
  br i1 %780, label %781, label %834

781:                                              ; preds = %772
  br label %782

782:                                              ; preds = %781
  br label %783

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

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

795:                                              ; preds = %790
  %796 = load i32, ptr %20, align 4, !tbaa !5
  %797 = call ptr @__errno_location() #8
  store i32 %796, ptr %797, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef @.str.4)
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef @.str.4)
  %806 = call ptr @__errno_location() #8
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #7
  %809 = call ptr @__errno_location() #8
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef @.str.2, i32 noundef %799, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 56, ptr noundef %802, ptr noundef %805, ptr noundef %808, i32 noundef %810) #7
  br label %829

812:                                              ; preds = %790, %783
  %813 = load i32, ptr %20, align 4, !tbaa !5
  %814 = call ptr @__errno_location() #8
  store i32 %813, ptr %814, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror(i32 noundef %818, ptr noundef @.str.4)
  %820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror_debug(i32 noundef %821, ptr noundef @.str.4)
  %823 = call ptr @__errno_location() #8
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @strerror(i32 noundef %824) #7
  %826 = call ptr @__errno_location() #8
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef @.str.5, i32 noundef %816, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 56, ptr noundef %819, ptr noundef %822, ptr noundef %825, i32 noundef %827) #7
  br label %829

829:                                              ; preds = %812, %795
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %830

830:                                              ; preds = %829
  br label %831

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

832:                                              ; No predecessors!
  br label %833

833:                                              ; preds = %832
  br label %834

834:                                              ; preds = %833, %772
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  br label %839

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

845:                                              ; preds = %839
  br label %846

846:                                              ; preds = %845
  br label %847

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

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

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

876:                                              ; preds = %854, %847
  %877 = load i32, ptr %21, align 4, !tbaa !5
  %878 = call ptr @__errno_location() #8
  store i32 %877, ptr %878, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef @.str.4)
  %884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @s2n_strerror_debug(i32 noundef %885, ptr noundef @.str.4)
  %887 = call ptr @__errno_location() #8
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = call ptr @strerror(i32 noundef %888) #7
  %890 = call ptr @__errno_location() #8
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef @.str.5, i32 noundef %880, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 58, ptr noundef %883, ptr noundef %886, ptr noundef %889, i32 noundef %891) #7
  br label %893

893:                                              ; preds = %876, %859
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %894

894:                                              ; preds = %893
  br label %895

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

896:                                              ; No predecessors!
  br label %897

897:                                              ; preds = %896
  br label %898

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

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  br label %901

901:                                              ; preds = %900
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr @test_count, align 4, !tbaa !5
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = icmp eq i32 %905, 335544393
  br i1 %906, label %960, label %907

907:                                              ; preds = %901
  br label %908

908:                                              ; preds = %907
  br label %909

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

916:                                              ; preds = %909
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = call i32 @fileno(ptr noundef %917) #7
  %919 = call i32 @isatty(i32 noundef %918) #7
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %921, label %938

921:                                              ; preds = %916
  %922 = load i32, ptr %22, align 4, !tbaa !5
  %923 = call ptr @__errno_location() #8
  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() #8
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @strerror(i32 noundef %933) #7
  %935 = call ptr @__errno_location() #8
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef @.str.2, i32 noundef %925, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 58, ptr noundef %928, ptr noundef %931, ptr noundef %934, i32 noundef %936) #7
  br label %955

938:                                              ; preds = %916, %909
  %939 = load i32, ptr %22, align 4, !tbaa !5
  %940 = call ptr @__errno_location() #8
  store i32 %939, ptr %940, 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 @.str.4)
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef @.str.4)
  %949 = call ptr @__errno_location() #8
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #7
  %952 = call ptr @__errno_location() #8
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.5, i32 noundef %942, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 58, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #7
  br label %955

955:                                              ; preds = %938, %921
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %956

956:                                              ; preds = %955
  br label %957

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

958:                                              ; No predecessors!
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959, %901
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef @.str.4)
  %969 = icmp eq ptr %968, null
  br i1 %969, label %970, label %1023

970:                                              ; preds = %963
  br label %971

971:                                              ; preds = %970
  br label %972

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

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

984:                                              ; preds = %979
  %985 = load i32, ptr %23, align 4, !tbaa !5
  %986 = call ptr @__errno_location() #8
  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() #8
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @strerror(i32 noundef %996) #7
  %998 = call ptr @__errno_location() #8
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef @.str.2, i32 noundef %988, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 58, ptr noundef %991, ptr noundef %994, ptr noundef %997, i32 noundef %999) #7
  br label %1018

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

1018:                                             ; preds = %1001, %984
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

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

1021:                                             ; No predecessors!
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

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

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1029, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1030 = call ptr @__errno_location() #8
  store i32 0, ptr %1030, align 4, !tbaa !5
  br label %1031

1031:                                             ; preds = %1028
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

1034:                                             ; preds = %1033
  br label %1035

1035:                                             ; preds = %1034
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr @test_count, align 4, !tbaa !5
  %1038 = load ptr, ptr %17, align 8, !tbaa !9
  %1039 = call i32 @s2n_connection_free(ptr noundef %1038)
  %1040 = icmp eq i32 %1039, -1
  br i1 %1040, label %1041, label %1094

1041:                                             ; preds = %1035
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

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

1050:                                             ; preds = %1043
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = call i32 @fileno(ptr noundef %1051) #7
  %1053 = call i32 @isatty(i32 noundef %1052) #7
  %1054 = icmp ne i32 %1053, 0
  br i1 %1054, label %1055, label %1072

1055:                                             ; preds = %1050
  %1056 = load i32, ptr %24, align 4, !tbaa !5
  %1057 = call ptr @__errno_location() #8
  store i32 %1056, ptr %1057, align 4, !tbaa !5
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror(i32 noundef %1061, ptr noundef @.str.4)
  %1063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror_debug(i32 noundef %1064, ptr noundef @.str.4)
  %1066 = call ptr @__errno_location() #8
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @strerror(i32 noundef %1067) #7
  %1069 = call ptr @__errno_location() #8
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1058, ptr noundef @.str.2, i32 noundef %1059, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1062, ptr noundef %1065, ptr noundef %1068, i32 noundef %1070) #7
  br label %1089

1072:                                             ; preds = %1050, %1043
  %1073 = load i32, ptr %24, align 4, !tbaa !5
  %1074 = call ptr @__errno_location() #8
  store i32 %1073, ptr %1074, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef @.str.4)
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call ptr @__errno_location() #8
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #7
  %1086 = call ptr @__errno_location() #8
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef @.str.5, i32 noundef %1076, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1079, ptr noundef %1082, ptr noundef %1085, i32 noundef %1087) #7
  br label %1089

1089:                                             ; preds = %1072, %1055
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

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

1092:                                             ; No predecessors!
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093, %1035
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = add nsw i32 %1098, 1
  store i32 %1099, ptr @test_count, align 4, !tbaa !5
  %1100 = call i32 (...) @s2n_disable_tls13_in_test()
  %1101 = icmp eq i32 %1100, -1
  br i1 %1101, label %1102, label %1153

1102:                                             ; preds = %1097
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

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

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

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

1133:                                             ; preds = %1111, %1104
  %1134 = load i32, ptr %25, align 4, !tbaa !5
  %1135 = call ptr @__errno_location() #8
  store i32 %1134, ptr %1135, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror(i32 noundef %1139, ptr noundef @.str.4)
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror_debug(i32 noundef %1142, ptr noundef @.str.4)
  %1144 = call ptr @__errno_location() #8
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call ptr @strerror(i32 noundef %1145) #7
  %1147 = call ptr @__errno_location() #8
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef @.str.5, i32 noundef %1137, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1140, ptr noundef %1143, ptr noundef %1146, i32 noundef %1148) #7
  br label %1150

1150:                                             ; preds = %1133, %1116
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1151

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

1152:                                             ; No predecessors!
  br label %1153

1153:                                             ; preds = %1152, %1097
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  %1157 = call i32 @s2n_cleanup()
  %1158 = icmp eq i32 %1157, -1
  br i1 %1158, label %1159, label %1210

1159:                                             ; preds = %1156
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

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

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

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

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

1207:                                             ; preds = %1190, %1173
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1208

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

1209:                                             ; No predecessors!
  br label %1210

1210:                                             ; preds = %1209, %1156
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212
  %1214 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %1215 = icmp eq i32 %1214, -1
  br i1 %1215, label %1216, label %1267

1216:                                             ; preds = %1213
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %1219 = call ptr @__errno_location() #8
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  store i32 %1220, ptr %27, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @s2n_print_stacktrace(ptr noundef %1221)
  %1223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1224 = trunc i8 %1223 to i1
  br i1 %1224, label %1225, label %1247

1225:                                             ; preds = %1218
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 @fileno(ptr noundef %1226) #7
  %1228 = call i32 @isatty(i32 noundef %1227) #7
  %1229 = icmp ne i32 %1228, 0
  br i1 %1229, label %1230, label %1247

1230:                                             ; preds = %1225
  %1231 = load i32, ptr %27, align 4, !tbaa !5
  %1232 = call ptr @__errno_location() #8
  store i32 %1231, ptr %1232, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror_debug(i32 noundef %1239, ptr noundef @.str.4)
  %1241 = call ptr @__errno_location() #8
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call ptr @strerror(i32 noundef %1242) #7
  %1244 = call ptr @__errno_location() #8
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef @.str.2, i32 noundef %1234, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1237, ptr noundef %1240, ptr noundef %1243, i32 noundef %1245) #7
  br label %1264

1247:                                             ; preds = %1225, %1218
  %1248 = load i32, ptr %27, align 4, !tbaa !5
  %1249 = call ptr @__errno_location() #8
  store i32 %1248, ptr %1249, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror(i32 noundef %1253, ptr noundef @.str.4)
  %1255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef @.str.4)
  %1258 = call ptr @__errno_location() #8
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @strerror(i32 noundef %1259) #7
  %1261 = call ptr @__errno_location() #8
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef @.str.5, i32 noundef %1251, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1254, ptr noundef %1257, ptr noundef %1260, i32 noundef %1262) #7
  br label %1264

1264:                                             ; preds = %1247, %1230
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1265

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

1266:                                             ; No predecessors!
  br label %1267

1267:                                             ; preds = %1266, %1213
  br label %1268

1268:                                             ; preds = %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 %1287

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

1276:                                             ; preds = %1271
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = icmp ne i32 %1277, 0
  br i1 %1278, label %1279, label %1283

1279:                                             ; preds = %1276
  %1280 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef @.str.25, i32 noundef %1281) #7
  br label %1286

1283:                                             ; preds = %1276
  %1284 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1284, ptr noundef @.str.26) #7
  br label %1286

1286:                                             ; preds = %1283, %1279
  br label %1298

1287:                                             ; preds = %1271, %1268
  %1288 = load i32, ptr @test_count, align 4, !tbaa !5
  %1289 = icmp ne i32 %1288, 0
  br i1 %1289, label %1290, label %1294

1290:                                             ; preds = %1287
  %1291 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1291, ptr noundef @.str.27, i32 noundef %1292) #7
  br label %1297

1294:                                             ; preds = %1287
  %1295 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef @.str.28) #7
  br label %1297

1297:                                             ; preds = %1294, %1290
  br label %1298

1298:                                             ; preds = %1297, %1286
  store i32 0, ptr %3, align 4
  br label %1301

1299:                                             ; No predecessors!
  br label %1300

1300:                                             ; preds = %1299
  store i32 0, ptr %3, align 4
  br label %1301

1301:                                             ; preds = %1300, %1298
  %1302 = load i32, ptr %3, align 4
  ret i32 %1302
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_tls13_cert_req_send(ptr noundef) #2

declare i32 @s2n_tls13_cert_req_recv(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare i32 @s2n_cleanup() #2

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

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

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


; 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"

@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 [97 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [25 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 {
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %3 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #7
  %5 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6 = tail call i32 @fflush(ptr noundef %5)
  %7 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #7
  %8 = icmp eq i32 %7, -1
  br i1 %8, label %9, label %33

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

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

20:                                               ; preds = %16, %9
  br label %21

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

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

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

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

49:                                               ; preds = %45, %38
  br label %50

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

62:                                               ; preds = %33
  %63 = tail call i32 @s2n_init() #7
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %65, label %89

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

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

76:                                               ; preds = %72, %65
  br label %77

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

89:                                               ; preds = %62
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = add nsw i32 %90, 1
  store i32 %91, ptr @test_count, align 4, !tbaa !5
  %92 = tail call i32 (...) @s2n_enable_tls13_in_test() #7
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %118

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

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

105:                                              ; preds = %101, %94
  br label %106

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

118:                                              ; preds = %89
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr @test_count, align 4, !tbaa !5
  %121 = tail call ptr @s2n_connection_new(i32 noundef 1) #7
  %122 = icmp eq ptr %121, null
  br i1 %122, label %123, label %147

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

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

134:                                              ; preds = %130, %123
  br label %135

135:                                              ; preds = %130, %134
  %.str.5.sink120 = phi ptr [ @.str.5, %134 ], [ @.str.2, %130 ]
  store i32 %125, ptr %124, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = load i32, ptr @test_count, align 4, !tbaa !5
  %138 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror(i32 noundef %139, ptr noundef nonnull @.str.4) #7
  %141 = load i32, ptr %138, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror_debug(i32 noundef %141, ptr noundef nonnull @.str.4) #7
  %143 = load i32, ptr %124, align 4, !tbaa !5
  %144 = tail call ptr @strerror(i32 noundef %143) #7
  %145 = load i32, ptr %124, align 4, !tbaa !5
  %146 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %136, ptr noundef nonnull %.str.5.sink120, i32 noundef %137, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %140, ptr noundef %142, ptr noundef %144, i32 noundef %145) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

147:                                              ; preds = %118
  %148 = getelementptr inbounds i8, ptr %121, i64 220
  store i8 34, ptr %148, align 4, !tbaa !15
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = getelementptr inbounds i8, ptr %121, i64 1524
  %152 = load i8, ptr %151, align 4, !tbaa !42
  %153 = icmp eq i8 %152, 0
  br i1 %153, label %178, label %154

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

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

165:                                              ; preds = %161, %154
  br label %166

166:                                              ; preds = %161, %165
  %.str.5.sink131 = phi ptr [ @.str.5, %165 ], [ @.str.2, %161 ]
  store i32 %156, ptr %155, align 4, !tbaa !5
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = load i32, ptr @test_count, align 4, !tbaa !5
  %169 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = tail call ptr @s2n_strerror(i32 noundef %170, ptr noundef nonnull @.str.4) #7
  %172 = load i32, ptr %169, align 4, !tbaa !5
  %173 = tail call ptr @s2n_strerror_debug(i32 noundef %172, ptr noundef nonnull @.str.4) #7
  %174 = load i32, ptr %155, align 4, !tbaa !5
  %175 = tail call ptr @strerror(i32 noundef %174) #7
  %176 = load i32, ptr %155, align 4, !tbaa !5
  %177 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef nonnull %.str.5.sink131, i32 noundef %168, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %171, ptr noundef %173, ptr noundef %175, i32 noundef %176) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

178:                                              ; preds = %147
  %179 = add nsw i32 %149, 2
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = tail call i32 @s2n_tls13_cert_req_send(ptr noundef nonnull %121) #7
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %206

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

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

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

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

206:                                              ; preds = %178
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = tail call i32 @s2n_tls13_cert_req_recv(ptr noundef nonnull %121) #7
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %211, label %235

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

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

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

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

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = load i8, ptr %151, align 4, !tbaa !42
  %239 = icmp eq i8 %238, 0
  br i1 %239, label %240, label %264

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

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

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

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

264:                                              ; preds = %235
  %265 = add nsw i32 %236, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = tail call i32 @s2n_connection_free(ptr noundef nonnull %121) #7
  %267 = icmp eq i32 %266, -1
  br i1 %267, label %268, label %292

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

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = tail call i32 @fileno(ptr noundef %276) #7
  %278 = tail call i32 @isatty(i32 noundef %277) #7
  %.not68 = icmp eq i32 %278, 0
  br i1 %.not68, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink175 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = tail call ptr @s2n_strerror(i32 noundef %284, ptr noundef nonnull @.str.4) #7
  %286 = load i32, ptr %283, align 4, !tbaa !5
  %287 = tail call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef nonnull @.str.4) #7
  %288 = load i32, ptr %269, align 4, !tbaa !5
  %289 = tail call ptr @strerror(i32 noundef %288) #7
  %290 = load i32, ptr %269, align 4, !tbaa !5
  %291 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink175, i32 noundef %282, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %285, ptr noundef %287, ptr noundef %289, i32 noundef %290) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

292:                                              ; preds = %264
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = tail call ptr @s2n_connection_new(i32 noundef 1) #7
  %296 = icmp eq ptr %295, null
  br i1 %296, label %297, label %321

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

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

308:                                              ; preds = %304, %297
  br label %309

309:                                              ; preds = %304, %308
  %.str.5.sink186 = phi ptr [ @.str.5, %308 ], [ @.str.2, %304 ]
  store i32 %299, ptr %298, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = tail call ptr @s2n_strerror(i32 noundef %313, ptr noundef nonnull @.str.4) #7
  %315 = load i32, ptr %312, align 4, !tbaa !5
  %316 = tail call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef nonnull @.str.4) #7
  %317 = load i32, ptr %298, align 4, !tbaa !5
  %318 = tail call ptr @strerror(i32 noundef %317) #7
  %319 = load i32, ptr %298, align 4, !tbaa !5
  %320 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef nonnull %.str.5.sink186, i32 noundef %311, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %314, ptr noundef %316, ptr noundef %318, i32 noundef %319) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

321:                                              ; preds = %292
  %322 = getelementptr inbounds i8, ptr %295, i64 220
  store i8 34, ptr %322, align 4, !tbaa !15
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = getelementptr inbounds i8, ptr %295, i64 2016
  %326 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %325, i8 noundef zeroext 0) #7
  %327 = icmp eq i32 %326, -1
  br i1 %327, label %328, label %352

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

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

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

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

352:                                              ; preds = %321
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = tail call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef nonnull %295, ptr noundef nonnull %325) #7
  %356 = icmp eq i32 %355, -1
  br i1 %356, label %357, label %381

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

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

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

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

381:                                              ; preds = %352
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = tail call i32 @s2n_tls13_cert_req_recv(ptr noundef nonnull %295) #7
  %385 = icmp eq i32 %384, -1
  br i1 %385, label %410, label %386

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

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

397:                                              ; preds = %393, %386
  br label %398

398:                                              ; preds = %393, %397
  %.str.5.sink219 = phi ptr [ @.str.5, %397 ], [ @.str.2, %393 ]
  store i32 %388, ptr %387, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = tail call ptr @s2n_strerror(i32 noundef %402, ptr noundef nonnull @.str.4) #7
  %404 = load i32, ptr %401, align 4, !tbaa !5
  %405 = tail call ptr @s2n_strerror_debug(i32 noundef %404, ptr noundef nonnull @.str.4) #7
  %406 = load i32, ptr %387, align 4, !tbaa !5
  %407 = tail call ptr @strerror(i32 noundef %406) #7
  %408 = load i32, ptr %387, align 4, !tbaa !5
  %409 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef nonnull %.str.5.sink219, i32 noundef %400, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %403, ptr noundef %405, ptr noundef %407, i32 noundef %408) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

410:                                              ; preds = %381
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr @test_count, align 4, !tbaa !5
  %413 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = icmp eq i32 %414, 335544393
  br i1 %415, label %439, label %416

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

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

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

428:                                              ; preds = %423, %427
  %.str.5.sink230 = phi ptr [ @.str.5, %427 ], [ @.str.2, %423 ]
  store i32 %418, ptr %417, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = load i32, ptr %413, align 4, !tbaa !5
  %432 = tail call ptr @s2n_strerror(i32 noundef %431, ptr noundef nonnull @.str.4) #7
  %433 = load i32, ptr %413, align 4, !tbaa !5
  %434 = tail call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef nonnull @.str.4) #7
  %435 = load i32, ptr %417, align 4, !tbaa !5
  %436 = tail call ptr @strerror(i32 noundef %435) #7
  %437 = load i32, ptr %417, align 4, !tbaa !5
  %438 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull %.str.5.sink230, i32 noundef %430, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %432, ptr noundef %434, ptr noundef %436, i32 noundef %437) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

439:                                              ; preds = %410
  %440 = add nsw i32 %411, 2
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = tail call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #7
  %442 = icmp eq ptr %441, null
  br i1 %442, label %443, label %466

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

450:                                              ; preds = %443
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = tail call i32 @fileno(ptr noundef %451) #7
  %453 = tail call i32 @isatty(i32 noundef %452) #7
  %.not64 = icmp eq i32 %453, 0
  br i1 %.not64, label %454, label %455

454:                                              ; preds = %450, %443
  br label %455

455:                                              ; preds = %450, %454
  %.str.5.sink239 = phi ptr [ @.str.5, %454 ], [ @.str.2, %450 ]
  store i32 %445, ptr %444, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = load i32, ptr %413, align 4, !tbaa !5
  %459 = tail call ptr @s2n_strerror(i32 noundef %458, ptr noundef nonnull @.str.4) #7
  %460 = load i32, ptr %413, align 4, !tbaa !5
  %461 = tail call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef nonnull @.str.4) #7
  %462 = load i32, ptr %444, align 4, !tbaa !5
  %463 = tail call ptr @strerror(i32 noundef %462) #7
  %464 = load i32, ptr %444, align 4, !tbaa !5
  %465 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef nonnull %.str.5.sink239, i32 noundef %457, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %459, ptr noundef %461, ptr noundef %463, i32 noundef %464) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

466:                                              ; preds = %439
  store i32 0, ptr %413, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #7
  %467 = tail call ptr @__errno_location() #8
  store i32 0, ptr %467, align 4, !tbaa !5
  %468 = load i32, ptr @test_count, align 4, !tbaa !5
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr @test_count, align 4, !tbaa !5
  %470 = tail call i32 @s2n_connection_free(ptr noundef nonnull %295) #7
  %471 = icmp eq i32 %470, -1
  br i1 %471, label %472, label %494

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

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

482:                                              ; preds = %478, %472
  br label %483

483:                                              ; preds = %478, %482
  %.str.5.sink248 = phi ptr [ @.str.5, %482 ], [ @.str.2, %478 ]
  store i32 %473, ptr %467, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = load i32, ptr %413, align 4, !tbaa !5
  %487 = tail call ptr @s2n_strerror(i32 noundef %486, ptr noundef nonnull @.str.4) #7
  %488 = load i32, ptr %413, align 4, !tbaa !5
  %489 = tail call ptr @s2n_strerror_debug(i32 noundef %488, ptr noundef nonnull @.str.4) #7
  %490 = load i32, ptr %467, align 4, !tbaa !5
  %491 = tail call ptr @strerror(i32 noundef %490) #7
  %492 = load i32, ptr %467, align 4, !tbaa !5
  %493 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %484, ptr noundef nonnull %.str.5.sink248, i32 noundef %485, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %487, ptr noundef %489, ptr noundef %491, i32 noundef %492) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

494:                                              ; preds = %466
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = add nsw i32 %495, 1
  store i32 %496, ptr @test_count, align 4, !tbaa !5
  %497 = tail call i32 (...) @s2n_disable_tls13_in_test() #7
  %498 = icmp eq i32 %497, -1
  br i1 %498, label %499, label %521

499:                                              ; preds = %494
  %500 = load i32, ptr %467, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = tail call i32 @s2n_print_stacktrace(ptr noundef %501) #7
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc nuw i8 %503 to i1
  br i1 %504, label %505, label %509

505:                                              ; preds = %499
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = tail call i32 @fileno(ptr noundef %506) #7
  %508 = tail call i32 @isatty(i32 noundef %507) #7
  %.not62 = icmp eq i32 %508, 0
  br i1 %.not62, label %509, label %510

509:                                              ; preds = %505, %499
  br label %510

510:                                              ; preds = %505, %509
  %.str.5.sink257 = phi ptr [ @.str.5, %509 ], [ @.str.2, %505 ]
  store i32 %500, ptr %467, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = load i32, ptr %413, align 4, !tbaa !5
  %514 = tail call ptr @s2n_strerror(i32 noundef %513, ptr noundef nonnull @.str.4) #7
  %515 = load i32, ptr %413, align 4, !tbaa !5
  %516 = tail call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef nonnull @.str.4) #7
  %517 = load i32, ptr %467, align 4, !tbaa !5
  %518 = tail call ptr @strerror(i32 noundef %517) #7
  %519 = load i32, ptr %467, align 4, !tbaa !5
  %520 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef nonnull %.str.5.sink257, i32 noundef %512, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %514, ptr noundef %516, ptr noundef %518, i32 noundef %519) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

521:                                              ; preds = %494
  %522 = tail call i32 @s2n_cleanup() #7
  %523 = icmp eq i32 %522, -1
  br i1 %523, label %524, label %546

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

530:                                              ; preds = %524
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = tail call i32 @fileno(ptr noundef %531) #7
  %533 = tail call i32 @isatty(i32 noundef %532) #7
  %.not61 = icmp eq i32 %533, 0
  br i1 %.not61, label %534, label %535

534:                                              ; preds = %530, %524
  br label %535

535:                                              ; preds = %530, %534
  %.str.5.sink266 = phi ptr [ @.str.5, %534 ], [ @.str.2, %530 ]
  store i32 %525, ptr %467, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = load i32, ptr %413, align 4, !tbaa !5
  %539 = tail call ptr @s2n_strerror(i32 noundef %538, ptr noundef nonnull @.str.4) #7
  %540 = load i32, ptr %413, align 4, !tbaa !5
  %541 = tail call ptr @s2n_strerror_debug(i32 noundef %540, ptr noundef nonnull @.str.4) #7
  %542 = load i32, ptr %467, align 4, !tbaa !5
  %543 = tail call ptr @strerror(i32 noundef %542) #7
  %544 = load i32, ptr %467, align 4, !tbaa !5
  %545 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %536, ptr noundef nonnull %.str.5.sink266, i32 noundef %537, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %539, ptr noundef %541, ptr noundef %543, i32 noundef %544) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

546:                                              ; preds = %521
  %547 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #7
  %548 = icmp eq i32 %547, -1
  br i1 %548, label %549, label %571

549:                                              ; preds = %546
  %550 = load i32, ptr %467, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = tail call i32 @s2n_print_stacktrace(ptr noundef %551) #7
  %553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %554 = trunc nuw i8 %553 to i1
  br i1 %554, label %555, label %559

555:                                              ; preds = %549
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = tail call i32 @fileno(ptr noundef %556) #7
  %558 = tail call i32 @isatty(i32 noundef %557) #7
  %.not60 = icmp eq i32 %558, 0
  br i1 %.not60, label %559, label %560

559:                                              ; preds = %555, %549
  br label %560

560:                                              ; preds = %555, %559
  %.str.5.sink275 = phi ptr [ @.str.5, %559 ], [ @.str.2, %555 ]
  store i32 %550, ptr %467, align 4, !tbaa !5
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = load i32, ptr %413, align 4, !tbaa !5
  %564 = tail call ptr @s2n_strerror(i32 noundef %563, ptr noundef nonnull @.str.4) #7
  %565 = load i32, ptr %413, align 4, !tbaa !5
  %566 = tail call ptr @s2n_strerror_debug(i32 noundef %565, ptr noundef nonnull @.str.4) #7
  %567 = load i32, ptr %467, align 4, !tbaa !5
  %568 = tail call ptr @strerror(i32 noundef %567) #7
  %569 = load i32, ptr %467, align 4, !tbaa !5
  %570 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %561, ptr noundef nonnull %.str.5.sink275, i32 noundef %562, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %564, ptr noundef %566, ptr noundef %568, i32 noundef %569) #9
  tail call void @exit(i32 noundef 1) #10
  unreachable

571:                                              ; preds = %546
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc nuw i8 %572 to i1
  br i1 %573, label %574, label %585

574:                                              ; preds = %571
  %575 = load ptr, ptr @stdout, align 8, !tbaa !9
  %576 = tail call i32 @fileno(ptr noundef %575) #7
  %577 = tail call i32 @isatty(i32 noundef %576) #7
  %.not57 = icmp eq i32 %577, 0
  br i1 %.not57, label %585, label %578

578:                                              ; preds = %574
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not59 = icmp eq i32 %579, 0
  %580 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not59, label %583, label %581

581:                                              ; preds = %578
  %582 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef nonnull @.str.25, i32 noundef %579) #7
  br label %592

583:                                              ; preds = %578
  %584 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef nonnull @.str.26) #7
  br label %592

585:                                              ; preds = %574, %571
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not58 = icmp eq i32 %586, 0
  %587 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not58, label %590, label %588

588:                                              ; preds = %585
  %589 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull @.str.27, i32 noundef %586) #7
  br label %592

590:                                              ; preds = %585
  %591 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull @.str.28) #7
  br label %592

592:                                              ; preds = %588, %590, %581, %583
  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 nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #3

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #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) #5

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_cert_req_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_cert_req_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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