; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_cert_request_context_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 [95 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.40 = 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 i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i8, align 1
  %40 = alloca i8, align 1
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  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 %62

62:                                               ; preds = %2
  br label %63

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

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

71:                                               ; preds = %68
  br label %72

72:                                               ; preds = %71
  br label %73

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

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

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

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

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

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

121:                                              ; No predecessors!
  br label %122

122:                                              ; preds = %121, %68
  br label %123

123:                                              ; preds = %122
  br label %124

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

129:                                              ; preds = %124
  br label %130

130:                                              ; preds = %129
  br label %131

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

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

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

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

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

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

179:                                              ; No predecessors!
  br label %180

180:                                              ; preds = %179, %124
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %181
  br label %183

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

186:                                              ; preds = %183
  br label %187

187:                                              ; preds = %186
  br label %188

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

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

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

217:                                              ; preds = %195, %188
  %218 = load i32, ptr %8, align 4, !tbaa !5
  %219 = call ptr @__errno_location() #8
  store i32 %218, ptr %219, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call ptr @s2n_strerror(i32 noundef %223, ptr noundef @.str.4)
  %225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call ptr @s2n_strerror_debug(i32 noundef %226, ptr noundef @.str.4)
  %228 = call ptr @__errno_location() #8
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @strerror(i32 noundef %229) #7
  %231 = call ptr @__errno_location() #8
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef @.str.5, i32 noundef %221, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 27, ptr noundef %224, ptr noundef %227, ptr noundef %230, i32 noundef %232) #7
  br label %234

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

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

236:                                              ; No predecessors!
  br label %237

237:                                              ; preds = %236, %183
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr @test_count, align 4, !tbaa !5
  %243 = call i32 (...) @s2n_disable_tls13_in_test()
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %245, label %296

245:                                              ; preds = %240
  br label %246

246:                                              ; preds = %245
  br label %247

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

254:                                              ; preds = %247
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @fileno(ptr noundef %255) #7
  %257 = call i32 @isatty(i32 noundef %256) #7
  %258 = icmp ne i32 %257, 0
  br i1 %258, label %259, label %276

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

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

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

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

295:                                              ; No predecessors!
  br label %296

296:                                              ; preds = %295, %240
  br label %297

297:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #7
  store i8 3, ptr %10, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  store i8 1, ptr %11, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %298

298:                                              ; preds = %297
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr @test_count, align 4, !tbaa !5
  %301 = call ptr @s2n_config_new()
  store ptr %301, ptr %12, align 8, !tbaa !9
  %302 = icmp eq ptr %301, null
  br i1 %302, label %303, label %356

303:                                              ; preds = %298
  br label %304

304:                                              ; preds = %303
  br label %305

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

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

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

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

351:                                              ; preds = %334, %317
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %352

352:                                              ; preds = %351
  br label %353

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

354:                                              ; No predecessors!
  br label %355

355:                                              ; preds = %354
  br label %356

356:                                              ; preds = %355, %298
  br label %357

357:                                              ; preds = %356
  br label %358

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

359:                                              ; preds = %358
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = add nsw i32 %360, 1
  store i32 %361, ptr @test_count, align 4, !tbaa !5
  %362 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %362, ptr %14, align 8, !tbaa !9
  %363 = icmp eq ptr %362, null
  br i1 %363, label %364, label %417

364:                                              ; preds = %359
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %367 = call ptr @__errno_location() #8
  %368 = load i32, ptr %367, align 4, !tbaa !5
  store i32 %368, ptr %15, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = call i32 @s2n_print_stacktrace(ptr noundef %369)
  %371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %372 = trunc i8 %371 to i1
  br i1 %372, label %373, label %395

373:                                              ; preds = %366
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = call i32 @fileno(ptr noundef %374) #7
  %376 = call i32 @isatty(i32 noundef %375) #7
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %395

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

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

412:                                              ; preds = %395, %378
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %413

413:                                              ; preds = %412
  br label %414

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

415:                                              ; No predecessors!
  br label %416

416:                                              ; preds = %415
  br label %417

417:                                              ; preds = %416, %359
  br label %418

418:                                              ; preds = %417
  br label %419

419:                                              ; preds = %418
  br label %420

420:                                              ; preds = %419
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = load ptr, ptr %14, align 8, !tbaa !9
  %424 = load ptr, ptr %12, align 8, !tbaa !9
  %425 = call i32 @s2n_connection_set_config(ptr noundef %423, ptr noundef %424)
  %426 = icmp eq i32 %425, -1
  br i1 %426, label %427, label %480

427:                                              ; preds = %420
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %430 = call ptr @__errno_location() #8
  %431 = load i32, ptr %430, align 4, !tbaa !5
  store i32 %431, ptr %16, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = call i32 @s2n_print_stacktrace(ptr noundef %432)
  %434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %435 = trunc i8 %434 to i1
  br i1 %435, label %436, label %458

436:                                              ; preds = %429
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = call i32 @fileno(ptr noundef %437) #7
  %439 = call i32 @isatty(i32 noundef %438) #7
  %440 = icmp ne i32 %439, 0
  br i1 %440, label %441, label %458

441:                                              ; preds = %436
  %442 = load i32, ptr %16, align 4, !tbaa !5
  %443 = call ptr @__errno_location() #8
  store i32 %442, ptr %443, align 4, !tbaa !5
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror(i32 noundef %447, ptr noundef @.str.4)
  %449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror_debug(i32 noundef %450, ptr noundef @.str.4)
  %452 = call ptr @__errno_location() #8
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @strerror(i32 noundef %453) #7
  %455 = call ptr @__errno_location() #8
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %444, ptr noundef @.str.2, i32 noundef %445, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 40, ptr noundef %448, ptr noundef %451, ptr noundef %454, i32 noundef %456) #7
  br label %475

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

475:                                              ; preds = %458, %441
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  br label %476

476:                                              ; preds = %475
  br label %477

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

478:                                              ; No predecessors!
  br label %479

479:                                              ; preds = %478
  br label %480

480:                                              ; preds = %479, %420
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  br label %483

483:                                              ; preds = %482
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr @test_count, align 4, !tbaa !5
  %486 = load ptr, ptr %14, align 8, !tbaa !9
  %487 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %486, i32 noundef 2)
  %488 = icmp eq i32 %487, -1
  br i1 %488, label %489, label %542

489:                                              ; preds = %483
  br label %490

490:                                              ; preds = %489
  br label %491

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

498:                                              ; preds = %491
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @fileno(ptr noundef %499) #7
  %501 = call i32 @isatty(i32 noundef %500) #7
  %502 = icmp ne i32 %501, 0
  br i1 %502, label %503, label %520

503:                                              ; preds = %498
  %504 = load i32, ptr %17, align 4, !tbaa !5
  %505 = call ptr @__errno_location() #8
  store i32 %504, ptr %505, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror(i32 noundef %509, ptr noundef @.str.4)
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror_debug(i32 noundef %512, ptr noundef @.str.4)
  %514 = call ptr @__errno_location() #8
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #7
  %517 = call ptr @__errno_location() #8
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef @.str.2, i32 noundef %507, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 41, ptr noundef %510, ptr noundef %513, ptr noundef %516, i32 noundef %518) #7
  br label %537

520:                                              ; preds = %498, %491
  %521 = load i32, ptr %17, align 4, !tbaa !5
  %522 = call ptr @__errno_location() #8
  store i32 %521, ptr %522, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef @.str.4)
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef @.str.4)
  %531 = call ptr @__errno_location() #8
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #7
  %534 = call ptr @__errno_location() #8
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef @.str.5, i32 noundef %524, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 41, ptr noundef %527, ptr noundef %530, ptr noundef %533, i32 noundef %535) #7
  br label %537

537:                                              ; preds = %520, %503
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %538

538:                                              ; preds = %537
  br label %539

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

540:                                              ; No predecessors!
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541, %483
  br label %543

543:                                              ; preds = %542
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  %546 = load i32, ptr @test_count, align 4, !tbaa !5
  %547 = add nsw i32 %546, 1
  store i32 %547, ptr @test_count, align 4, !tbaa !5
  %548 = load ptr, ptr %14, align 8, !tbaa !9
  %549 = call i32 @s2n_client_cert_send(ptr noundef %548)
  %550 = icmp eq i32 %549, -1
  br i1 %550, label %551, label %604

551:                                              ; preds = %545
  br label %552

552:                                              ; preds = %551
  br label %553

553:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %554 = call ptr @__errno_location() #8
  %555 = load i32, ptr %554, align 4, !tbaa !5
  store i32 %555, ptr %18, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = call i32 @s2n_print_stacktrace(ptr noundef %556)
  %558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %559 = trunc i8 %558 to i1
  br i1 %559, label %560, label %582

560:                                              ; preds = %553
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = call i32 @fileno(ptr noundef %561) #7
  %563 = call i32 @isatty(i32 noundef %562) #7
  %564 = icmp ne i32 %563, 0
  br i1 %564, label %565, label %582

565:                                              ; preds = %560
  %566 = load i32, ptr %18, align 4, !tbaa !5
  %567 = call ptr @__errno_location() #8
  store i32 %566, ptr %567, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call ptr @s2n_strerror(i32 noundef %571, ptr noundef @.str.4)
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror_debug(i32 noundef %574, ptr noundef @.str.4)
  %576 = call ptr @__errno_location() #8
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @strerror(i32 noundef %577) #7
  %579 = call ptr @__errno_location() #8
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %568, ptr noundef @.str.2, i32 noundef %569, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %572, ptr noundef %575, ptr noundef %578, i32 noundef %580) #7
  br label %599

582:                                              ; preds = %560, %553
  %583 = load i32, ptr %18, align 4, !tbaa !5
  %584 = call ptr @__errno_location() #8
  store i32 %583, ptr %584, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror(i32 noundef %588, ptr noundef @.str.4)
  %590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef @.str.4)
  %593 = call ptr @__errno_location() #8
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @strerror(i32 noundef %594) #7
  %596 = call ptr @__errno_location() #8
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %585, ptr noundef @.str.5, i32 noundef %586, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %589, ptr noundef %592, ptr noundef %595, i32 noundef %597) #7
  br label %599

599:                                              ; preds = %582, %565
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %600

600:                                              ; preds = %599
  br label %601

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

602:                                              ; No predecessors!
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603, %545
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  %608 = load i32, ptr @test_count, align 4, !tbaa !5
  %609 = add nsw i32 %608, 1
  store i32 %609, ptr @test_count, align 4, !tbaa !5
  %610 = load ptr, ptr %14, align 8, !tbaa !9
  %611 = getelementptr inbounds %struct.s2n_connection, ptr %610, i32 0, i32 52
  %612 = getelementptr inbounds %struct.s2n_handshake, ptr %611, i32 0, i32 0
  %613 = getelementptr inbounds %struct.s2n_stuffer, ptr %612, i32 0, i32 2
  %614 = load i32, ptr %613, align 4, !tbaa !16
  %615 = load ptr, ptr %14, align 8, !tbaa !9
  %616 = getelementptr inbounds %struct.s2n_connection, ptr %615, i32 0, i32 52
  %617 = getelementptr inbounds %struct.s2n_handshake, ptr %616, i32 0, i32 0
  %618 = getelementptr inbounds %struct.s2n_stuffer, ptr %617, i32 0, i32 1
  %619 = load i32, ptr %618, align 8, !tbaa !43
  %620 = sub i32 %614, %619
  %621 = load i8, ptr %10, align 1, !tbaa !15
  %622 = zext i8 %621 to i32
  %623 = icmp eq i32 %620, %622
  br i1 %623, label %677, label %624

624:                                              ; preds = %607
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %627 = call ptr @__errno_location() #8
  %628 = load i32, ptr %627, align 4, !tbaa !5
  store i32 %628, ptr %19, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = call i32 @s2n_print_stacktrace(ptr noundef %629)
  %631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %632 = trunc i8 %631 to i1
  br i1 %632, label %633, label %655

633:                                              ; preds = %626
  %634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %635 = call i32 @fileno(ptr noundef %634) #7
  %636 = call i32 @isatty(i32 noundef %635) #7
  %637 = icmp ne i32 %636, 0
  br i1 %637, label %638, label %655

638:                                              ; preds = %633
  %639 = load i32, ptr %19, align 4, !tbaa !5
  %640 = call ptr @__errno_location() #8
  store i32 %639, ptr %640, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror(i32 noundef %644, ptr noundef @.str.4)
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef @.str.4)
  %649 = call ptr @__errno_location() #8
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call ptr @strerror(i32 noundef %650) #7
  %652 = call ptr @__errno_location() #8
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef @.str.2, i32 noundef %642, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 45, ptr noundef %645, ptr noundef %648, ptr noundef %651, i32 noundef %653) #7
  br label %672

655:                                              ; preds = %633, %626
  %656 = load i32, ptr %19, align 4, !tbaa !5
  %657 = call ptr @__errno_location() #8
  store i32 %656, ptr %657, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef @.str.4)
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef @.str.4)
  %666 = call ptr @__errno_location() #8
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #7
  %669 = call ptr @__errno_location() #8
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef @.str.5, i32 noundef %659, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 45, ptr noundef %662, ptr noundef %665, ptr noundef %668, i32 noundef %670) #7
  br label %672

672:                                              ; preds = %655, %638
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %673

673:                                              ; preds = %672
  br label %674

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

675:                                              ; No predecessors!
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676, %607
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = load ptr, ptr %14, align 8, !tbaa !9
  %684 = call i32 @s2n_client_cert_recv(ptr noundef %683)
  %685 = icmp eq i32 %684, -1
  br i1 %685, label %686, label %739

686:                                              ; preds = %680
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %689 = call ptr @__errno_location() #8
  %690 = load i32, ptr %689, align 4, !tbaa !5
  store i32 %690, ptr %20, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = call i32 @s2n_print_stacktrace(ptr noundef %691)
  %693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %694 = trunc i8 %693 to i1
  br i1 %694, label %695, label %717

695:                                              ; preds = %688
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @fileno(ptr noundef %696) #7
  %698 = call i32 @isatty(i32 noundef %697) #7
  %699 = icmp ne i32 %698, 0
  br i1 %699, label %700, label %717

700:                                              ; preds = %695
  %701 = load i32, ptr %20, align 4, !tbaa !5
  %702 = call ptr @__errno_location() #8
  store i32 %701, ptr %702, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror(i32 noundef %706, ptr noundef @.str.4)
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror_debug(i32 noundef %709, ptr noundef @.str.4)
  %711 = call ptr @__errno_location() #8
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #7
  %714 = call ptr @__errno_location() #8
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %703, ptr noundef @.str.2, i32 noundef %704, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 46, ptr noundef %707, ptr noundef %710, ptr noundef %713, i32 noundef %715) #7
  br label %734

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

734:                                              ; preds = %717, %700
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %735

735:                                              ; preds = %734
  br label %736

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

737:                                              ; No predecessors!
  br label %738

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738, %680
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740
  br label %742

742:                                              ; preds = %741
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr @test_count, align 4, !tbaa !5
  %745 = load ptr, ptr %14, align 8, !tbaa !9
  %746 = getelementptr inbounds %struct.s2n_connection, ptr %745, i32 0, i32 52
  %747 = getelementptr inbounds %struct.s2n_handshake, ptr %746, i32 0, i32 0
  %748 = call i32 @s2n_stuffer_wipe(ptr noundef %747)
  %749 = icmp eq i32 %748, -1
  br i1 %749, label %750, label %803

750:                                              ; preds = %742
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %753 = call ptr @__errno_location() #8
  %754 = load i32, ptr %753, align 4, !tbaa !5
  store i32 %754, ptr %21, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = call i32 @s2n_print_stacktrace(ptr noundef %755)
  %757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %758 = trunc i8 %757 to i1
  br i1 %758, label %759, label %781

759:                                              ; preds = %752
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = call i32 @fileno(ptr noundef %760) #7
  %762 = call i32 @isatty(i32 noundef %761) #7
  %763 = icmp ne i32 %762, 0
  br i1 %763, label %764, label %781

764:                                              ; preds = %759
  %765 = load i32, ptr %21, align 4, !tbaa !5
  %766 = call ptr @__errno_location() #8
  store i32 %765, ptr %766, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef @.str.4)
  %772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef @.str.4)
  %775 = call ptr @__errno_location() #8
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call ptr @strerror(i32 noundef %776) #7
  %778 = call ptr @__errno_location() #8
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %767, ptr noundef @.str.2, i32 noundef %768, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 48, ptr noundef %771, ptr noundef %774, ptr noundef %777, i32 noundef %779) #7
  br label %798

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

798:                                              ; preds = %781, %764
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %799

799:                                              ; preds = %798
  br label %800

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

801:                                              ; No predecessors!
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802, %742
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = add nsw i32 %807, 1
  store i32 %808, ptr @test_count, align 4, !tbaa !5
  %809 = load ptr, ptr %14, align 8, !tbaa !9
  %810 = getelementptr inbounds %struct.s2n_connection, ptr %809, i32 0, i32 52
  %811 = getelementptr inbounds %struct.s2n_handshake, ptr %810, i32 0, i32 0
  %812 = getelementptr inbounds %struct.s2n_stuffer, ptr %811, i32 0, i32 2
  %813 = load i32, ptr %812, align 4, !tbaa !16
  %814 = load ptr, ptr %14, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct.s2n_connection, ptr %814, i32 0, i32 52
  %816 = getelementptr inbounds %struct.s2n_handshake, ptr %815, i32 0, i32 0
  %817 = getelementptr inbounds %struct.s2n_stuffer, ptr %816, i32 0, i32 1
  %818 = load i32, ptr %817, align 8, !tbaa !43
  %819 = sub i32 %813, %818
  %820 = icmp eq i32 %819, 0
  br i1 %820, label %874, label %821

821:                                              ; preds = %806
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %824 = call ptr @__errno_location() #8
  %825 = load i32, ptr %824, align 4, !tbaa !5
  store i32 %825, ptr %22, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = call i32 @s2n_print_stacktrace(ptr noundef %826)
  %828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %829 = trunc i8 %828 to i1
  br i1 %829, label %830, label %852

830:                                              ; preds = %823
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = call i32 @fileno(ptr noundef %831) #7
  %833 = call i32 @isatty(i32 noundef %832) #7
  %834 = icmp ne i32 %833, 0
  br i1 %834, label %835, label %852

835:                                              ; preds = %830
  %836 = load i32, ptr %22, align 4, !tbaa !5
  %837 = call ptr @__errno_location() #8
  store i32 %836, ptr %837, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef @.str.4)
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror_debug(i32 noundef %844, ptr noundef @.str.4)
  %846 = call ptr @__errno_location() #8
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @strerror(i32 noundef %847) #7
  %849 = call ptr @__errno_location() #8
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef @.str.2, i32 noundef %839, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 49, ptr noundef %842, ptr noundef %845, ptr noundef %848, i32 noundef %850) #7
  br label %869

852:                                              ; preds = %830, %823
  %853 = load i32, ptr %22, align 4, !tbaa !5
  %854 = call ptr @__errno_location() #8
  store i32 %853, ptr %854, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror(i32 noundef %858, ptr noundef @.str.4)
  %860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror_debug(i32 noundef %861, ptr noundef @.str.4)
  %863 = call ptr @__errno_location() #8
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @strerror(i32 noundef %864) #7
  %866 = call ptr @__errno_location() #8
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %855, ptr noundef @.str.5, i32 noundef %856, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 49, ptr noundef %859, ptr noundef %862, ptr noundef %865, i32 noundef %867) #7
  br label %869

869:                                              ; preds = %852, %835
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %870

870:                                              ; preds = %869
  br label %871

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

872:                                              ; No predecessors!
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873, %806
  br label %875

875:                                              ; preds = %874
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = add nsw i32 %878, 1
  store i32 %879, ptr @test_count, align 4, !tbaa !5
  %880 = call i32 (...) @s2n_enable_tls13_in_test()
  %881 = icmp eq i32 %880, -1
  br i1 %881, label %882, label %935

882:                                              ; preds = %877
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %885 = call ptr @__errno_location() #8
  %886 = load i32, ptr %885, align 4, !tbaa !5
  store i32 %886, ptr %23, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @s2n_print_stacktrace(ptr noundef %887)
  %889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %890 = trunc i8 %889 to i1
  br i1 %890, label %891, label %913

891:                                              ; preds = %884
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @fileno(ptr noundef %892) #7
  %894 = call i32 @isatty(i32 noundef %893) #7
  %895 = icmp ne i32 %894, 0
  br i1 %895, label %896, label %913

896:                                              ; preds = %891
  %897 = load i32, ptr %23, align 4, !tbaa !5
  %898 = call ptr @__errno_location() #8
  store i32 %897, ptr %898, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror(i32 noundef %902, ptr noundef @.str.4)
  %904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call ptr @s2n_strerror_debug(i32 noundef %905, ptr noundef @.str.4)
  %907 = call ptr @__errno_location() #8
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #7
  %910 = call ptr @__errno_location() #8
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %899, ptr noundef @.str.2, i32 noundef %900, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 52, ptr noundef %903, ptr noundef %906, ptr noundef %909, i32 noundef %911) #7
  br label %930

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

930:                                              ; preds = %913, %896
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %931

931:                                              ; preds = %930
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934, %877
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  %938 = load ptr, ptr %14, align 8, !tbaa !9
  %939 = getelementptr inbounds %struct.s2n_connection, ptr %938, i32 0, i32 23
  store i8 34, ptr %939, align 4, !tbaa !44
  br label %940

940:                                              ; preds = %937
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = add nsw i32 %941, 1
  store i32 %942, ptr @test_count, align 4, !tbaa !5
  %943 = load ptr, ptr %14, align 8, !tbaa !9
  %944 = call i32 @s2n_client_cert_send(ptr noundef %943)
  %945 = icmp eq i32 %944, -1
  br i1 %945, label %946, label %999

946:                                              ; preds = %940
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %949 = call ptr @__errno_location() #8
  %950 = load i32, ptr %949, align 4, !tbaa !5
  store i32 %950, ptr %24, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951)
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc i8 %953 to i1
  br i1 %954, label %955, label %977

955:                                              ; preds = %948
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #7
  %958 = call i32 @isatty(i32 noundef %957) #7
  %959 = icmp ne i32 %958, 0
  br i1 %959, label %960, label %977

960:                                              ; preds = %955
  %961 = load i32, ptr %24, align 4, !tbaa !5
  %962 = call ptr @__errno_location() #8
  store i32 %961, ptr %962, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror(i32 noundef %966, ptr noundef @.str.4)
  %968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef @.str.4)
  %971 = call ptr @__errno_location() #8
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @strerror(i32 noundef %972) #7
  %974 = call ptr @__errno_location() #8
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef @.str.2, i32 noundef %964, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 54, ptr noundef %967, ptr noundef %970, ptr noundef %973, i32 noundef %975) #7
  br label %994

977:                                              ; preds = %955, %948
  %978 = load i32, ptr %24, align 4, !tbaa !5
  %979 = call ptr @__errno_location() #8
  store i32 %978, ptr %979, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef @.str.4)
  %985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror_debug(i32 noundef %986, ptr noundef @.str.4)
  %988 = call ptr @__errno_location() #8
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @strerror(i32 noundef %989) #7
  %991 = call ptr @__errno_location() #8
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %980, ptr noundef @.str.5, i32 noundef %981, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 54, ptr noundef %984, ptr noundef %987, ptr noundef %990, i32 noundef %992) #7
  br label %994

994:                                              ; preds = %977, %960
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %995

995:                                              ; preds = %994
  br label %996

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

997:                                              ; No predecessors!
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998, %940
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  br label %1002

1002:                                             ; preds = %1001
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %1004 = add nsw i32 %1003, 1
  store i32 %1004, ptr @test_count, align 4, !tbaa !5
  %1005 = load ptr, ptr %14, align 8, !tbaa !9
  %1006 = getelementptr inbounds %struct.s2n_connection, ptr %1005, i32 0, i32 52
  %1007 = getelementptr inbounds %struct.s2n_handshake, ptr %1006, i32 0, i32 0
  %1008 = getelementptr inbounds %struct.s2n_stuffer, ptr %1007, i32 0, i32 2
  %1009 = load i32, ptr %1008, align 4, !tbaa !16
  %1010 = load ptr, ptr %14, align 8, !tbaa !9
  %1011 = getelementptr inbounds %struct.s2n_connection, ptr %1010, i32 0, i32 52
  %1012 = getelementptr inbounds %struct.s2n_handshake, ptr %1011, i32 0, i32 0
  %1013 = getelementptr inbounds %struct.s2n_stuffer, ptr %1012, i32 0, i32 1
  %1014 = load i32, ptr %1013, align 8, !tbaa !43
  %1015 = sub i32 %1009, %1014
  %1016 = load i8, ptr %10, align 1, !tbaa !15
  %1017 = zext i8 %1016 to i32
  %1018 = load i8, ptr %11, align 1, !tbaa !15
  %1019 = zext i8 %1018 to i32
  %1020 = add nsw i32 %1017, %1019
  %1021 = icmp eq i32 %1015, %1020
  br i1 %1021, label %1075, label %1022

1022:                                             ; preds = %1002
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  %1025 = call ptr @__errno_location() #8
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  store i32 %1026, ptr %25, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = call i32 @s2n_print_stacktrace(ptr noundef %1027)
  %1029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1030 = trunc i8 %1029 to i1
  br i1 %1030, label %1031, label %1053

1031:                                             ; preds = %1024
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @fileno(ptr noundef %1032) #7
  %1034 = call i32 @isatty(i32 noundef %1033) #7
  %1035 = icmp ne i32 %1034, 0
  br i1 %1035, label %1036, label %1053

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %25, align 4, !tbaa !5
  %1038 = call ptr @__errno_location() #8
  store i32 %1037, ptr %1038, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call ptr @__errno_location() #8
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #7
  %1050 = call ptr @__errno_location() #8
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef @.str.2, i32 noundef %1040, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 55, ptr noundef %1043, ptr noundef %1046, ptr noundef %1049, i32 noundef %1051) #7
  br label %1070

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

1070:                                             ; preds = %1053, %1036
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

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

1073:                                             ; No predecessors!
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074, %1002
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = add nsw i32 %1079, 1
  store i32 %1080, ptr @test_count, align 4, !tbaa !5
  %1081 = load ptr, ptr %14, align 8, !tbaa !9
  %1082 = call i32 @s2n_client_cert_recv(ptr noundef %1081)
  %1083 = icmp eq i32 %1082, -1
  br i1 %1083, label %1084, label %1137

1084:                                             ; preds = %1078
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %1087 = call ptr @__errno_location() #8
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  store i32 %1088, ptr %26, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @s2n_print_stacktrace(ptr noundef %1089)
  %1091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1092 = trunc i8 %1091 to i1
  br i1 %1092, label %1093, label %1115

1093:                                             ; preds = %1086
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @fileno(ptr noundef %1094) #7
  %1096 = call i32 @isatty(i32 noundef %1095) #7
  %1097 = icmp ne i32 %1096, 0
  br i1 %1097, label %1098, label %1115

1098:                                             ; preds = %1093
  %1099 = load i32, ptr %26, align 4, !tbaa !5
  %1100 = call ptr @__errno_location() #8
  store i32 %1099, ptr %1100, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef @.str.4)
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror_debug(i32 noundef %1107, ptr noundef @.str.4)
  %1109 = call ptr @__errno_location() #8
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #7
  %1112 = call ptr @__errno_location() #8
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef @.str.2, i32 noundef %1102, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1105, ptr noundef %1108, ptr noundef %1111, i32 noundef %1113) #7
  br label %1132

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

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

1133:                                             ; preds = %1132
  br label %1134

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

1135:                                             ; No predecessors!
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136, %1078
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = add nsw i32 %1141, 1
  store i32 %1142, ptr @test_count, align 4, !tbaa !5
  %1143 = call i32 (...) @s2n_disable_tls13_in_test()
  %1144 = icmp eq i32 %1143, -1
  br i1 %1144, label %1145, label %1198

1145:                                             ; preds = %1140
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %1148 = call ptr @__errno_location() #8
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  store i32 %1149, ptr %27, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @s2n_print_stacktrace(ptr noundef %1150)
  %1152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1153 = trunc i8 %1152 to i1
  br i1 %1153, label %1154, label %1176

1154:                                             ; preds = %1147
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = call i32 @fileno(ptr noundef %1155) #7
  %1157 = call i32 @isatty(i32 noundef %1156) #7
  %1158 = icmp ne i32 %1157, 0
  br i1 %1158, label %1159, label %1176

1159:                                             ; preds = %1154
  %1160 = load i32, ptr %27, align 4, !tbaa !5
  %1161 = call ptr @__errno_location() #8
  store i32 %1160, ptr %1161, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef @.str.4)
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef @.str.4)
  %1170 = call ptr @__errno_location() #8
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #7
  %1173 = call ptr @__errno_location() #8
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef @.str.2, i32 noundef %1163, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1166, ptr noundef %1169, ptr noundef %1172, i32 noundef %1174) #7
  br label %1193

1176:                                             ; preds = %1154, %1147
  %1177 = load i32, ptr %27, align 4, !tbaa !5
  %1178 = call ptr @__errno_location() #8
  store i32 %1177, ptr %1178, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1182, ptr noundef @.str.4)
  %1184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror_debug(i32 noundef %1185, ptr noundef @.str.4)
  %1187 = call ptr @__errno_location() #8
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @strerror(i32 noundef %1188) #7
  %1190 = call ptr @__errno_location() #8
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef @.str.5, i32 noundef %1180, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 57, ptr noundef %1183, ptr noundef %1186, ptr noundef %1189, i32 noundef %1191) #7
  br label %1193

1193:                                             ; preds = %1176, %1159
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

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

1196:                                             ; No predecessors!
  br label %1197

1197:                                             ; preds = %1196
  br label %1198

1198:                                             ; preds = %1197, %1140
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

1201:                                             ; preds = %1200
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = load ptr, ptr %14, align 8, !tbaa !9
  %1205 = call i32 @s2n_connection_free(ptr noundef %1204)
  %1206 = icmp eq i32 %1205, -1
  br i1 %1206, label %1207, label %1260

1207:                                             ; preds = %1201
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  %1210 = call ptr @__errno_location() #8
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  store i32 %1211, ptr %28, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @s2n_print_stacktrace(ptr noundef %1212)
  %1214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1215 = trunc i8 %1214 to i1
  br i1 %1215, label %1216, label %1238

1216:                                             ; preds = %1209
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @fileno(ptr noundef %1217) #7
  %1219 = call i32 @isatty(i32 noundef %1218) #7
  %1220 = icmp ne i32 %1219, 0
  br i1 %1220, label %1221, label %1238

1221:                                             ; preds = %1216
  %1222 = load i32, ptr %28, align 4, !tbaa !5
  %1223 = call ptr @__errno_location() #8
  store i32 %1222, ptr %1223, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror(i32 noundef %1227, ptr noundef @.str.4)
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror_debug(i32 noundef %1230, ptr noundef @.str.4)
  %1232 = call ptr @__errno_location() #8
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @strerror(i32 noundef %1233) #7
  %1235 = call ptr @__errno_location() #8
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef @.str.2, i32 noundef %1225, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1228, ptr noundef %1231, ptr noundef %1234, i32 noundef %1236) #7
  br label %1255

1238:                                             ; preds = %1216, %1209
  %1239 = load i32, ptr %28, align 4, !tbaa !5
  %1240 = call ptr @__errno_location() #8
  store i32 %1239, ptr %1240, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = load i32, ptr @test_count, align 4, !tbaa !5
  %1243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror(i32 noundef %1244, ptr noundef @.str.4)
  %1246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror_debug(i32 noundef %1247, ptr noundef @.str.4)
  %1249 = call ptr @__errno_location() #8
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call ptr @strerror(i32 noundef %1250) #7
  %1252 = call ptr @__errno_location() #8
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1241, ptr noundef @.str.5, i32 noundef %1242, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1245, ptr noundef %1248, ptr noundef %1251, i32 noundef %1253) #7
  br label %1255

1255:                                             ; preds = %1238, %1221
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1256

1256:                                             ; preds = %1255
  br label %1257

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

1258:                                             ; No predecessors!
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

1260:                                             ; preds = %1259, %1201
  br label %1261

1261:                                             ; preds = %1260
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

1263:                                             ; preds = %1262
  %1264 = load i32, ptr @test_count, align 4, !tbaa !5
  %1265 = add nsw i32 %1264, 1
  store i32 %1265, ptr @test_count, align 4, !tbaa !5
  %1266 = load ptr, ptr %12, align 8, !tbaa !9
  %1267 = call i32 @s2n_config_free(ptr noundef %1266)
  %1268 = icmp eq i32 %1267, -1
  br i1 %1268, label %1269, label %1322

1269:                                             ; preds = %1263
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %1272 = call ptr @__errno_location() #8
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  store i32 %1273, ptr %29, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = call i32 @s2n_print_stacktrace(ptr noundef %1274)
  %1276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1277 = trunc i8 %1276 to i1
  br i1 %1277, label %1278, label %1300

1278:                                             ; preds = %1271
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @fileno(ptr noundef %1279) #7
  %1281 = call i32 @isatty(i32 noundef %1280) #7
  %1282 = icmp ne i32 %1281, 0
  br i1 %1282, label %1283, label %1300

1283:                                             ; preds = %1278
  %1284 = load i32, ptr %29, align 4, !tbaa !5
  %1285 = call ptr @__errno_location() #8
  store i32 %1284, ptr %1285, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror(i32 noundef %1289, ptr noundef @.str.4)
  %1291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror_debug(i32 noundef %1292, ptr noundef @.str.4)
  %1294 = call ptr @__errno_location() #8
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @strerror(i32 noundef %1295) #7
  %1297 = call ptr @__errno_location() #8
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef @.str.2, i32 noundef %1287, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1290, ptr noundef %1293, ptr noundef %1296, i32 noundef %1298) #7
  br label %1317

1300:                                             ; preds = %1278, %1271
  %1301 = load i32, ptr %29, align 4, !tbaa !5
  %1302 = call ptr @__errno_location() #8
  store i32 %1301, ptr %1302, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef @.str.4)
  %1311 = call ptr @__errno_location() #8
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #7
  %1314 = call ptr @__errno_location() #8
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1303, ptr noundef @.str.5, i32 noundef %1304, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1307, ptr noundef %1310, ptr noundef %1313, i32 noundef %1315) #7
  br label %1317

1317:                                             ; preds = %1300, %1283
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

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

1320:                                             ; No predecessors!
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321, %1263
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

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

1325:                                             ; preds = %1324
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = add nsw i32 %1326, 1
  store i32 %1327, ptr @test_count, align 4, !tbaa !5
  %1328 = call i32 (...) @s2n_enable_tls13_in_test()
  %1329 = icmp eq i32 %1328, -1
  br i1 %1329, label %1330, label %1383

1330:                                             ; preds = %1325
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %1333 = call ptr @__errno_location() #8
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  store i32 %1334, ptr %30, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @s2n_print_stacktrace(ptr noundef %1335)
  %1337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1338 = trunc i8 %1337 to i1
  br i1 %1338, label %1339, label %1361

1339:                                             ; preds = %1332
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = call i32 @fileno(ptr noundef %1340) #7
  %1342 = call i32 @isatty(i32 noundef %1341) #7
  %1343 = icmp ne i32 %1342, 0
  br i1 %1343, label %1344, label %1361

1344:                                             ; preds = %1339
  %1345 = load i32, ptr %30, align 4, !tbaa !5
  %1346 = call ptr @__errno_location() #8
  store i32 %1345, ptr %1346, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror(i32 noundef %1350, ptr noundef @.str.4)
  %1352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef @.str.4)
  %1355 = call ptr @__errno_location() #8
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @strerror(i32 noundef %1356) #7
  %1358 = call ptr @__errno_location() #8
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef @.str.2, i32 noundef %1348, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1351, ptr noundef %1354, ptr noundef %1357, i32 noundef %1359) #7
  br label %1378

1361:                                             ; preds = %1339, %1332
  %1362 = load i32, ptr %30, align 4, !tbaa !5
  %1363 = call ptr @__errno_location() #8
  store i32 %1362, ptr %1363, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = load i32, ptr @test_count, align 4, !tbaa !5
  %1366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror(i32 noundef %1367, ptr noundef @.str.4)
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef @.str.4)
  %1372 = call ptr @__errno_location() #8
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call ptr @strerror(i32 noundef %1373) #7
  %1375 = call ptr @__errno_location() #8
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1364, ptr noundef @.str.5, i32 noundef %1365, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1368, ptr noundef %1371, ptr noundef %1374, i32 noundef %1376) #7
  br label %1378

1378:                                             ; preds = %1361, %1344
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

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

1381:                                             ; No predecessors!
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

1383:                                             ; preds = %1382, %1325
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

1385:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  store ptr null, ptr %31, align 8, !tbaa !9
  br label %1386

1386:                                             ; preds = %1385
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = add nsw i32 %1387, 1
  store i32 %1388, ptr @test_count, align 4, !tbaa !5
  %1389 = call ptr @s2n_config_new()
  store ptr %1389, ptr %31, align 8, !tbaa !9
  %1390 = icmp eq ptr %1389, null
  br i1 %1390, label %1391, label %1444

1391:                                             ; preds = %1386
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

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

1400:                                             ; preds = %1393
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = call i32 @fileno(ptr noundef %1401) #7
  %1403 = call i32 @isatty(i32 noundef %1402) #7
  %1404 = icmp ne i32 %1403, 0
  br i1 %1404, label %1405, label %1422

1405:                                             ; preds = %1400
  %1406 = load i32, ptr %32, align 4, !tbaa !5
  %1407 = call ptr @__errno_location() #8
  store i32 %1406, ptr %1407, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef @.str.4)
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef @.str.4)
  %1416 = call ptr @__errno_location() #8
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #7
  %1419 = call ptr @__errno_location() #8
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef @.str.2, i32 noundef %1409, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, i32 noundef %1420) #7
  br label %1439

1422:                                             ; preds = %1400, %1393
  %1423 = load i32, ptr %32, align 4, !tbaa !5
  %1424 = call ptr @__errno_location() #8
  store i32 %1423, ptr %1424, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror(i32 noundef %1428, ptr noundef @.str.4)
  %1430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef @.str.4)
  %1433 = call ptr @__errno_location() #8
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #7
  %1436 = call ptr @__errno_location() #8
  %1437 = load i32, ptr %1436, align 4, !tbaa !5
  %1438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1425, ptr noundef @.str.5, i32 noundef %1426, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1429, ptr noundef %1432, ptr noundef %1435, i32 noundef %1437) #7
  br label %1439

1439:                                             ; preds = %1422, %1405
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

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

1442:                                             ; No predecessors!
  br label %1443

1443:                                             ; preds = %1442
  br label %1444

1444:                                             ; preds = %1443, %1386
  br label %1445

1445:                                             ; preds = %1444
  br label %1446

1446:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  store ptr null, ptr %33, align 8, !tbaa !9
  br label %1447

1447:                                             ; preds = %1446
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = add nsw i32 %1448, 1
  store i32 %1449, ptr @test_count, align 4, !tbaa !5
  %1450 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1450, ptr %33, align 8, !tbaa !9
  %1451 = icmp eq ptr %1450, null
  br i1 %1451, label %1452, label %1505

1452:                                             ; preds = %1447
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

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

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

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

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

1500:                                             ; preds = %1483, %1466
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

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

1503:                                             ; No predecessors!
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504, %1447
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  br label %1508

1508:                                             ; preds = %1507
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = add nsw i32 %1509, 1
  store i32 %1510, ptr @test_count, align 4, !tbaa !5
  %1511 = load ptr, ptr %33, align 8, !tbaa !9
  %1512 = load ptr, ptr %31, align 8, !tbaa !9
  %1513 = call i32 @s2n_connection_set_config(ptr noundef %1511, ptr noundef %1512)
  %1514 = icmp eq i32 %1513, -1
  br i1 %1514, label %1515, label %1568

1515:                                             ; preds = %1508
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

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

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

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

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

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

1564:                                             ; preds = %1563
  br label %1565

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

1566:                                             ; No predecessors!
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

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

1569:                                             ; preds = %1568
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = add nsw i32 %1572, 1
  store i32 %1573, ptr @test_count, align 4, !tbaa !5
  %1574 = load ptr, ptr %33, align 8, !tbaa !9
  %1575 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1574, i32 noundef 2)
  %1576 = icmp eq i32 %1575, -1
  br i1 %1576, label %1577, label %1630

1577:                                             ; preds = %1571
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

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

1586:                                             ; preds = %1579
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @fileno(ptr noundef %1587) #7
  %1589 = call i32 @isatty(i32 noundef %1588) #7
  %1590 = icmp ne i32 %1589, 0
  br i1 %1590, label %1591, label %1608

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

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

1625:                                             ; preds = %1608, %1591
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  br label %1626

1626:                                             ; preds = %1625
  br label %1627

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

1628:                                             ; No predecessors!
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629, %1571
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631
  %1633 = load ptr, ptr %33, align 8, !tbaa !9
  %1634 = getelementptr inbounds %struct.s2n_connection, ptr %1633, i32 0, i32 23
  store i8 34, ptr %1634, align 4, !tbaa !44
  br label %1635

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

1641:                                             ; preds = %1635
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

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

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

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

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

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

1690:                                             ; preds = %1689
  br label %1691

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

1692:                                             ; No predecessors!
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

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

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = add nsw i32 %1698, 1
  store i32 %1699, ptr @test_count, align 4, !tbaa !5
  %1700 = load ptr, ptr %33, align 8, !tbaa !9
  %1701 = getelementptr inbounds %struct.s2n_connection, ptr %1700, i32 0, i32 52
  %1702 = getelementptr inbounds %struct.s2n_handshake, ptr %1701, i32 0, i32 0
  %1703 = getelementptr inbounds %struct.s2n_stuffer, ptr %1702, i32 0, i32 2
  %1704 = load i32, ptr %1703, align 4, !tbaa !16
  %1705 = load ptr, ptr %33, align 8, !tbaa !9
  %1706 = getelementptr inbounds %struct.s2n_connection, ptr %1705, i32 0, i32 52
  %1707 = getelementptr inbounds %struct.s2n_handshake, ptr %1706, i32 0, i32 0
  %1708 = getelementptr inbounds %struct.s2n_stuffer, ptr %1707, i32 0, i32 1
  %1709 = load i32, ptr %1708, align 8, !tbaa !43
  %1710 = sub i32 %1704, %1709
  %1711 = load i8, ptr %10, align 1, !tbaa !15
  %1712 = zext i8 %1711 to i32
  %1713 = load i8, ptr %11, align 1, !tbaa !15
  %1714 = zext i8 %1713 to i32
  %1715 = add nsw i32 %1712, %1714
  %1716 = icmp eq i32 %1710, %1715
  br i1 %1716, label %1770, label %1717

1717:                                             ; preds = %1697
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %1720 = call ptr @__errno_location() #8
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  store i32 %1721, ptr %38, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @s2n_print_stacktrace(ptr noundef %1722)
  %1724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1725 = trunc i8 %1724 to i1
  br i1 %1725, label %1726, label %1748

1726:                                             ; preds = %1719
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @fileno(ptr noundef %1727) #7
  %1729 = call i32 @isatty(i32 noundef %1728) #7
  %1730 = icmp ne i32 %1729, 0
  br i1 %1730, label %1731, label %1748

1731:                                             ; preds = %1726
  %1732 = load i32, ptr %38, align 4, !tbaa !5
  %1733 = call ptr @__errno_location() #8
  store i32 %1732, ptr %1733, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef @.str.4)
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef @.str.4)
  %1742 = call ptr @__errno_location() #8
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #7
  %1745 = call ptr @__errno_location() #8
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef @.str.2, i32 noundef %1735, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1738, ptr noundef %1741, ptr noundef %1744, i32 noundef %1746) #7
  br label %1765

1748:                                             ; preds = %1726, %1719
  %1749 = load i32, ptr %38, align 4, !tbaa !5
  %1750 = call ptr @__errno_location() #8
  store i32 %1749, ptr %1750, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = load i32, ptr @test_count, align 4, !tbaa !5
  %1753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror(i32 noundef %1754, ptr noundef @.str.4)
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror_debug(i32 noundef %1757, ptr noundef @.str.4)
  %1759 = call ptr @__errno_location() #8
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @strerror(i32 noundef %1760) #7
  %1762 = call ptr @__errno_location() #8
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1751, ptr noundef @.str.5, i32 noundef %1752, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1755, ptr noundef %1758, ptr noundef %1761, i32 noundef %1763) #7
  br label %1765

1765:                                             ; preds = %1748, %1731
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %1766

1766:                                             ; preds = %1765
  br label %1767

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

1768:                                             ; No predecessors!
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769, %1697
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

1772:                                             ; preds = %1771
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #7
  store i8 0, ptr %39, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #7
  store i8 0, ptr %40, align 1, !tbaa !15
  br label %1773

1773:                                             ; preds = %1772
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %1775 = add nsw i32 %1774, 1
  store i32 %1775, ptr @test_count, align 4, !tbaa !5
  %1776 = load ptr, ptr %33, align 8, !tbaa !9
  %1777 = getelementptr inbounds %struct.s2n_connection, ptr %1776, i32 0, i32 52
  %1778 = getelementptr inbounds %struct.s2n_handshake, ptr %1777, i32 0, i32 0
  %1779 = call i32 @s2n_stuffer_read_uint8(ptr noundef %1778, ptr noundef %40)
  %1780 = icmp eq i32 %1779, -1
  br i1 %1780, label %1781, label %1834

1781:                                             ; preds = %1773
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  %1784 = call ptr @__errno_location() #8
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  store i32 %1785, ptr %41, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = call i32 @s2n_print_stacktrace(ptr noundef %1786)
  %1788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1789 = trunc i8 %1788 to i1
  br i1 %1789, label %1790, label %1812

1790:                                             ; preds = %1783
  %1791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1792 = call i32 @fileno(ptr noundef %1791) #7
  %1793 = call i32 @isatty(i32 noundef %1792) #7
  %1794 = icmp ne i32 %1793, 0
  br i1 %1794, label %1795, label %1812

1795:                                             ; preds = %1790
  %1796 = load i32, ptr %41, align 4, !tbaa !5
  %1797 = call ptr @__errno_location() #8
  store i32 %1796, ptr %1797, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror(i32 noundef %1801, ptr noundef @.str.4)
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call ptr @__errno_location() #8
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #7
  %1809 = call ptr @__errno_location() #8
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef @.str.2, i32 noundef %1799, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1802, ptr noundef %1805, ptr noundef %1808, i32 noundef %1810) #7
  br label %1829

1812:                                             ; preds = %1790, %1783
  %1813 = load i32, ptr %41, align 4, !tbaa !5
  %1814 = call ptr @__errno_location() #8
  store i32 %1813, ptr %1814, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef @.str.4)
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.4)
  %1823 = call ptr @__errno_location() #8
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #7
  %1826 = call ptr @__errno_location() #8
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef @.str.5, i32 noundef %1816, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1819, ptr noundef %1822, ptr noundef %1825, i32 noundef %1827) #7
  br label %1829

1829:                                             ; preds = %1812, %1795
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %1830

1830:                                             ; preds = %1829
  br label %1831

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

1832:                                             ; No predecessors!
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833, %1773
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = add nsw i32 %1838, 1
  store i32 %1839, ptr @test_count, align 4, !tbaa !5
  %1840 = load i8, ptr %39, align 1, !tbaa !15
  %1841 = zext i8 %1840 to i32
  %1842 = load i8, ptr %40, align 1, !tbaa !15
  %1843 = zext i8 %1842 to i32
  %1844 = icmp eq i32 %1841, %1843
  br i1 %1844, label %1898, label %1845

1845:                                             ; preds = %1837
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %1848 = call ptr @__errno_location() #8
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  store i32 %1849, ptr %42, align 4, !tbaa !5
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = call i32 @s2n_print_stacktrace(ptr noundef %1850)
  %1852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1853 = trunc i8 %1852 to i1
  br i1 %1853, label %1854, label %1876

1854:                                             ; preds = %1847
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @fileno(ptr noundef %1855) #7
  %1857 = call i32 @isatty(i32 noundef %1856) #7
  %1858 = icmp ne i32 %1857, 0
  br i1 %1858, label %1859, label %1876

1859:                                             ; preds = %1854
  %1860 = load i32, ptr %42, align 4, !tbaa !5
  %1861 = call ptr @__errno_location() #8
  store i32 %1860, ptr %1861, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = load i32, ptr @test_count, align 4, !tbaa !5
  %1864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1865 = load i32, ptr %1864, align 4, !tbaa !5
  %1866 = call ptr @s2n_strerror(i32 noundef %1865, ptr noundef @.str.4)
  %1867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1868 = load i32, ptr %1867, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror_debug(i32 noundef %1868, ptr noundef @.str.4)
  %1870 = call ptr @__errno_location() #8
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @strerror(i32 noundef %1871) #7
  %1873 = call ptr @__errno_location() #8
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1862, ptr noundef @.str.2, i32 noundef %1863, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1866, ptr noundef %1869, ptr noundef %1872, i32 noundef %1874) #7
  br label %1893

1876:                                             ; preds = %1854, %1847
  %1877 = load i32, ptr %42, align 4, !tbaa !5
  %1878 = call ptr @__errno_location() #8
  store i32 %1877, ptr %1878, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror_debug(i32 noundef %1885, ptr noundef @.str.4)
  %1887 = call ptr @__errno_location() #8
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @strerror(i32 noundef %1888) #7
  %1890 = call ptr @__errno_location() #8
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef @.str.5, i32 noundef %1880, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1883, ptr noundef %1886, ptr noundef %1889, i32 noundef %1891) #7
  br label %1893

1893:                                             ; preds = %1876, %1859
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %1894

1894:                                             ; preds = %1893
  br label %1895

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

1896:                                             ; No predecessors!
  br label %1897

1897:                                             ; preds = %1896
  br label %1898

1898:                                             ; preds = %1897, %1837
  br label %1899

1899:                                             ; preds = %1898
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  %1902 = load i32, ptr @test_count, align 4, !tbaa !5
  %1903 = add nsw i32 %1902, 1
  store i32 %1903, ptr @test_count, align 4, !tbaa !5
  %1904 = load ptr, ptr %33, align 8, !tbaa !9
  %1905 = call i32 @s2n_connection_free(ptr noundef %1904)
  %1906 = icmp eq i32 %1905, -1
  br i1 %1906, label %1907, label %1960

1907:                                             ; preds = %1901
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

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

1916:                                             ; preds = %1909
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = call i32 @fileno(ptr noundef %1917) #7
  %1919 = call i32 @isatty(i32 noundef %1918) #7
  %1920 = icmp ne i32 %1919, 0
  br i1 %1920, label %1921, label %1938

1921:                                             ; preds = %1916
  %1922 = load i32, ptr %43, align 4, !tbaa !5
  %1923 = call ptr @__errno_location() #8
  store i32 %1922, ptr %1923, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call ptr @__errno_location() #8
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #7
  %1935 = call ptr @__errno_location() #8
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef @.str.2, i32 noundef %1925, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1928, ptr noundef %1931, ptr noundef %1934, i32 noundef %1936) #7
  br label %1955

1938:                                             ; preds = %1916, %1909
  %1939 = load i32, ptr %43, align 4, !tbaa !5
  %1940 = call ptr @__errno_location() #8
  store i32 %1939, ptr %1940, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef @.str.4)
  %1949 = call ptr @__errno_location() #8
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call ptr @strerror(i32 noundef %1950) #7
  %1952 = call ptr @__errno_location() #8
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1941, ptr noundef @.str.5, i32 noundef %1942, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1945, ptr noundef %1948, ptr noundef %1951, i32 noundef %1953) #7
  br label %1955

1955:                                             ; preds = %1938, %1921
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

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

1958:                                             ; No predecessors!
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959, %1901
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961
  br label %1963

1963:                                             ; preds = %1962
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr @test_count, align 4, !tbaa !5
  %1966 = load ptr, ptr %31, align 8, !tbaa !9
  %1967 = call i32 @s2n_config_free(ptr noundef %1966)
  %1968 = icmp eq i32 %1967, -1
  br i1 %1968, label %1969, label %2022

1969:                                             ; preds = %1963
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

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

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

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

2000:                                             ; preds = %1978, %1971
  %2001 = load i32, ptr %44, align 4, !tbaa !5
  %2002 = call ptr @__errno_location() #8
  store i32 %2001, ptr %2002, align 4, !tbaa !5
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = load i32, ptr @test_count, align 4, !tbaa !5
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror(i32 noundef %2006, ptr noundef @.str.4)
  %2008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror_debug(i32 noundef %2009, ptr noundef @.str.4)
  %2011 = call ptr @__errno_location() #8
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @strerror(i32 noundef %2012) #7
  %2014 = call ptr @__errno_location() #8
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2003, ptr noundef @.str.5, i32 noundef %2004, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 87, ptr noundef %2007, ptr noundef %2010, ptr noundef %2013, i32 noundef %2015) #7
  br label %2017

2017:                                             ; preds = %2000, %1983
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

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

2020:                                             ; No predecessors!
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

2022:                                             ; preds = %2021, %1963
  br label %2023

2023:                                             ; preds = %2022
  br label %2024

2024:                                             ; preds = %2023
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  store ptr null, ptr %45, align 8, !tbaa !9
  br label %2025

2025:                                             ; preds = %2024
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = add nsw i32 %2026, 1
  store i32 %2027, ptr @test_count, align 4, !tbaa !5
  %2028 = call ptr @s2n_config_new()
  store ptr %2028, ptr %45, align 8, !tbaa !9
  %2029 = icmp eq ptr %2028, null
  br i1 %2029, label %2030, label %2083

2030:                                             ; preds = %2025
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %2033 = call ptr @__errno_location() #8
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  store i32 %2034, ptr %46, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = call i32 @s2n_print_stacktrace(ptr noundef %2035)
  %2037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2038 = trunc i8 %2037 to i1
  br i1 %2038, label %2039, label %2061

2039:                                             ; preds = %2032
  %2040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2041 = call i32 @fileno(ptr noundef %2040) #7
  %2042 = call i32 @isatty(i32 noundef %2041) #7
  %2043 = icmp ne i32 %2042, 0
  br i1 %2043, label %2044, label %2061

2044:                                             ; preds = %2039
  %2045 = load i32, ptr %46, align 4, !tbaa !5
  %2046 = call ptr @__errno_location() #8
  store i32 %2045, ptr %2046, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror(i32 noundef %2050, ptr noundef @.str.4)
  %2052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call ptr @s2n_strerror_debug(i32 noundef %2053, ptr noundef @.str.4)
  %2055 = call ptr @__errno_location() #8
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @strerror(i32 noundef %2056) #7
  %2058 = call ptr @__errno_location() #8
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2047, ptr noundef @.str.2, i32 noundef %2048, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 93, ptr noundef %2051, ptr noundef %2054, ptr noundef %2057, i32 noundef %2059) #7
  br label %2078

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

2078:                                             ; preds = %2061, %2044
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

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

2081:                                             ; No predecessors!
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082, %2025
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  store ptr null, ptr %47, align 8, !tbaa !9
  br label %2086

2086:                                             ; preds = %2085
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = add nsw i32 %2087, 1
  store i32 %2088, ptr @test_count, align 4, !tbaa !5
  %2089 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2089, ptr %47, align 8, !tbaa !9
  %2090 = icmp eq ptr %2089, null
  br i1 %2090, label %2091, label %2144

2091:                                             ; preds = %2086
  br label %2092

2092:                                             ; preds = %2091
  br label %2093

2093:                                             ; preds = %2092
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  %2094 = call ptr @__errno_location() #8
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  store i32 %2095, ptr %48, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @s2n_print_stacktrace(ptr noundef %2096)
  %2098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2099 = trunc i8 %2098 to i1
  br i1 %2099, label %2100, label %2122

2100:                                             ; preds = %2093
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @fileno(ptr noundef %2101) #7
  %2103 = call i32 @isatty(i32 noundef %2102) #7
  %2104 = icmp ne i32 %2103, 0
  br i1 %2104, label %2105, label %2122

2105:                                             ; preds = %2100
  %2106 = load i32, ptr %48, align 4, !tbaa !5
  %2107 = call ptr @__errno_location() #8
  store i32 %2106, ptr %2107, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call ptr @s2n_strerror(i32 noundef %2111, ptr noundef @.str.4)
  %2113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call ptr @s2n_strerror_debug(i32 noundef %2114, ptr noundef @.str.4)
  %2116 = call ptr @__errno_location() #8
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  %2118 = call ptr @strerror(i32 noundef %2117) #7
  %2119 = call ptr @__errno_location() #8
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2108, ptr noundef @.str.2, i32 noundef %2109, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2112, ptr noundef %2115, ptr noundef %2118, i32 noundef %2120) #7
  br label %2139

2122:                                             ; preds = %2100, %2093
  %2123 = load i32, ptr %48, align 4, !tbaa !5
  %2124 = call ptr @__errno_location() #8
  store i32 %2123, ptr %2124, align 4, !tbaa !5
  %2125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror(i32 noundef %2128, ptr noundef @.str.4)
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror_debug(i32 noundef %2131, ptr noundef @.str.4)
  %2133 = call ptr @__errno_location() #8
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @strerror(i32 noundef %2134) #7
  %2136 = call ptr @__errno_location() #8
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2125, ptr noundef @.str.5, i32 noundef %2126, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 96, ptr noundef %2129, ptr noundef %2132, ptr noundef %2135, i32 noundef %2137) #7
  br label %2139

2139:                                             ; preds = %2122, %2105
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

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

2142:                                             ; No predecessors!
  br label %2143

2143:                                             ; preds = %2142
  br label %2144

2144:                                             ; preds = %2143, %2086
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

2147:                                             ; preds = %2146
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = add nsw i32 %2148, 1
  store i32 %2149, ptr @test_count, align 4, !tbaa !5
  %2150 = load ptr, ptr %47, align 8, !tbaa !9
  %2151 = load ptr, ptr %45, align 8, !tbaa !9
  %2152 = call i32 @s2n_connection_set_config(ptr noundef %2150, ptr noundef %2151)
  %2153 = icmp eq i32 %2152, -1
  br i1 %2153, label %2154, label %2207

2154:                                             ; preds = %2147
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  %2157 = call ptr @__errno_location() #8
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  store i32 %2158, ptr %49, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @s2n_print_stacktrace(ptr noundef %2159)
  %2161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2162 = trunc i8 %2161 to i1
  br i1 %2162, label %2163, label %2185

2163:                                             ; preds = %2156
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = call i32 @fileno(ptr noundef %2164) #7
  %2166 = call i32 @isatty(i32 noundef %2165) #7
  %2167 = icmp ne i32 %2166, 0
  br i1 %2167, label %2168, label %2185

2168:                                             ; preds = %2163
  %2169 = load i32, ptr %49, align 4, !tbaa !5
  %2170 = call ptr @__errno_location() #8
  store i32 %2169, ptr %2170, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = load i32, ptr @test_count, align 4, !tbaa !5
  %2173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror(i32 noundef %2174, ptr noundef @.str.4)
  %2176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call ptr @s2n_strerror_debug(i32 noundef %2177, ptr noundef @.str.4)
  %2179 = call ptr @__errno_location() #8
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #7
  %2182 = call ptr @__errno_location() #8
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2171, ptr noundef @.str.2, i32 noundef %2172, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2175, ptr noundef %2178, ptr noundef %2181, i32 noundef %2183) #7
  br label %2202

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

2202:                                             ; preds = %2185, %2168
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %2203

2203:                                             ; preds = %2202
  br label %2204

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

2205:                                             ; No predecessors!
  br label %2206

2206:                                             ; preds = %2205
  br label %2207

2207:                                             ; preds = %2206, %2147
  br label %2208

2208:                                             ; preds = %2207
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

2210:                                             ; preds = %2209
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = add nsw i32 %2211, 1
  store i32 %2212, ptr @test_count, align 4, !tbaa !5
  %2213 = load ptr, ptr %47, align 8, !tbaa !9
  %2214 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %2213, i32 noundef 2)
  %2215 = icmp eq i32 %2214, -1
  br i1 %2215, label %2216, label %2269

2216:                                             ; preds = %2210
  br label %2217

2217:                                             ; preds = %2216
  br label %2218

2218:                                             ; preds = %2217
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %2219 = call ptr @__errno_location() #8
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  store i32 %2220, ptr %50, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = call i32 @s2n_print_stacktrace(ptr noundef %2221)
  %2223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2224 = trunc i8 %2223 to i1
  br i1 %2224, label %2225, label %2247

2225:                                             ; preds = %2218
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @fileno(ptr noundef %2226) #7
  %2228 = call i32 @isatty(i32 noundef %2227) #7
  %2229 = icmp ne i32 %2228, 0
  br i1 %2229, label %2230, label %2247

2230:                                             ; preds = %2225
  %2231 = load i32, ptr %50, align 4, !tbaa !5
  %2232 = call ptr @__errno_location() #8
  store i32 %2231, ptr %2232, align 4, !tbaa !5
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror(i32 noundef %2236, ptr noundef @.str.4)
  %2238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror_debug(i32 noundef %2239, ptr noundef @.str.4)
  %2241 = call ptr @__errno_location() #8
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  %2243 = call ptr @strerror(i32 noundef %2242) #7
  %2244 = call ptr @__errno_location() #8
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2233, ptr noundef @.str.2, i32 noundef %2234, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2237, ptr noundef %2240, ptr noundef %2243, i32 noundef %2245) #7
  br label %2264

2247:                                             ; preds = %2225, %2218
  %2248 = load i32, ptr %50, align 4, !tbaa !5
  %2249 = call ptr @__errno_location() #8
  store i32 %2248, ptr %2249, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @s2n_strerror(i32 noundef %2253, ptr noundef @.str.4)
  %2255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call ptr @s2n_strerror_debug(i32 noundef %2256, ptr noundef @.str.4)
  %2258 = call ptr @__errno_location() #8
  %2259 = load i32, ptr %2258, align 4, !tbaa !5
  %2260 = call ptr @strerror(i32 noundef %2259) #7
  %2261 = call ptr @__errno_location() #8
  %2262 = load i32, ptr %2261, align 4, !tbaa !5
  %2263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2250, ptr noundef @.str.5, i32 noundef %2251, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2254, ptr noundef %2257, ptr noundef %2260, i32 noundef %2262) #7
  br label %2264

2264:                                             ; preds = %2247, %2230
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

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

2267:                                             ; No predecessors!
  br label %2268

2268:                                             ; preds = %2267
  br label %2269

2269:                                             ; preds = %2268, %2210
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

2271:                                             ; preds = %2270
  %2272 = load ptr, ptr %47, align 8, !tbaa !9
  %2273 = getelementptr inbounds %struct.s2n_connection, ptr %2272, i32 0, i32 23
  store i8 34, ptr %2273, align 4, !tbaa !44
  br label %2274

2274:                                             ; preds = %2271
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = add nsw i32 %2275, 1
  store i32 %2276, ptr @test_count, align 4, !tbaa !5
  %2277 = load ptr, ptr %47, align 8, !tbaa !9
  %2278 = getelementptr inbounds %struct.s2n_connection, ptr %2277, i32 0, i32 52
  %2279 = getelementptr inbounds %struct.s2n_handshake, ptr %2278, i32 0, i32 0
  %2280 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2279, i8 noundef zeroext 2)
  %2281 = icmp eq i32 %2280, -1
  br i1 %2281, label %2282, label %2335

2282:                                             ; preds = %2274
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

2284:                                             ; preds = %2283
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  %2285 = call ptr @__errno_location() #8
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  store i32 %2286, ptr %51, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = call i32 @s2n_print_stacktrace(ptr noundef %2287)
  %2289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2290 = trunc i8 %2289 to i1
  br i1 %2290, label %2291, label %2313

2291:                                             ; preds = %2284
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @fileno(ptr noundef %2292) #7
  %2294 = call i32 @isatty(i32 noundef %2293) #7
  %2295 = icmp ne i32 %2294, 0
  br i1 %2295, label %2296, label %2313

2296:                                             ; preds = %2291
  %2297 = load i32, ptr %51, align 4, !tbaa !5
  %2298 = call ptr @__errno_location() #8
  store i32 %2297, ptr %2298, align 4, !tbaa !5
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror(i32 noundef %2302, ptr noundef @.str.4)
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror_debug(i32 noundef %2305, ptr noundef @.str.4)
  %2307 = call ptr @__errno_location() #8
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @strerror(i32 noundef %2308) #7
  %2310 = call ptr @__errno_location() #8
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2299, ptr noundef @.str.2, i32 noundef %2300, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2303, ptr noundef %2306, ptr noundef %2309, i32 noundef %2311) #7
  br label %2330

2313:                                             ; preds = %2291, %2284
  %2314 = load i32, ptr %51, align 4, !tbaa !5
  %2315 = call ptr @__errno_location() #8
  store i32 %2314, ptr %2315, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef @.str.4)
  %2321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2322 = load i32, ptr %2321, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef @.str.4)
  %2324 = call ptr @__errno_location() #8
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #7
  %2327 = call ptr @__errno_location() #8
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef @.str.5, i32 noundef %2317, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2320, ptr noundef %2323, ptr noundef %2326, i32 noundef %2328) #7
  br label %2330

2330:                                             ; preds = %2313, %2296
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

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

2333:                                             ; No predecessors!
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334, %2274
  br label %2336

2336:                                             ; preds = %2335
  br label %2337

2337:                                             ; preds = %2336
  br label %2338

2338:                                             ; preds = %2337
  %2339 = load i32, ptr @test_count, align 4, !tbaa !5
  %2340 = add nsw i32 %2339, 1
  store i32 %2340, ptr @test_count, align 4, !tbaa !5
  %2341 = load ptr, ptr %47, align 8, !tbaa !9
  %2342 = getelementptr inbounds %struct.s2n_connection, ptr %2341, i32 0, i32 52
  %2343 = getelementptr inbounds %struct.s2n_handshake, ptr %2342, i32 0, i32 0
  %2344 = call i32 @s2n_stuffer_write_uint24(ptr noundef %2343, i32 noundef 0)
  %2345 = icmp eq i32 %2344, -1
  br i1 %2345, label %2346, label %2399

2346:                                             ; preds = %2338
  br label %2347

2347:                                             ; preds = %2346
  br label %2348

2348:                                             ; preds = %2347
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  %2349 = call ptr @__errno_location() #8
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  store i32 %2350, ptr %52, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = call i32 @s2n_print_stacktrace(ptr noundef %2351)
  %2353 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2354 = trunc i8 %2353 to i1
  br i1 %2354, label %2355, label %2377

2355:                                             ; preds = %2348
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @fileno(ptr noundef %2356) #7
  %2358 = call i32 @isatty(i32 noundef %2357) #7
  %2359 = icmp ne i32 %2358, 0
  br i1 %2359, label %2360, label %2377

2360:                                             ; preds = %2355
  %2361 = load i32, ptr %52, align 4, !tbaa !5
  %2362 = call ptr @__errno_location() #8
  store i32 %2361, ptr %2362, align 4, !tbaa !5
  %2363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror(i32 noundef %2366, ptr noundef @.str.4)
  %2368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef @.str.4)
  %2371 = call ptr @__errno_location() #8
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #7
  %2374 = call ptr @__errno_location() #8
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2363, ptr noundef @.str.2, i32 noundef %2364, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2367, ptr noundef %2370, ptr noundef %2373, i32 noundef %2375) #7
  br label %2394

2377:                                             ; preds = %2355, %2348
  %2378 = load i32, ptr %52, align 4, !tbaa !5
  %2379 = call ptr @__errno_location() #8
  store i32 %2378, ptr %2379, align 4, !tbaa !5
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror(i32 noundef %2383, ptr noundef @.str.4)
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror_debug(i32 noundef %2386, ptr noundef @.str.4)
  %2388 = call ptr @__errno_location() #8
  %2389 = load i32, ptr %2388, align 4, !tbaa !5
  %2390 = call ptr @strerror(i32 noundef %2389) #7
  %2391 = call ptr @__errno_location() #8
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2380, ptr noundef @.str.5, i32 noundef %2381, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 103, ptr noundef %2384, ptr noundef %2387, ptr noundef %2390, i32 noundef %2392) #7
  br label %2394

2394:                                             ; preds = %2377, %2360
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %2395

2395:                                             ; preds = %2394
  br label %2396

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

2397:                                             ; No predecessors!
  br label %2398

2398:                                             ; preds = %2397
  br label %2399

2399:                                             ; preds = %2398, %2338
  br label %2400

2400:                                             ; preds = %2399
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

2402:                                             ; preds = %2401
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

2404:                                             ; preds = %2403
  %2405 = load i32, ptr @test_count, align 4, !tbaa !5
  %2406 = add nsw i32 %2405, 1
  store i32 %2406, ptr @test_count, align 4, !tbaa !5
  %2407 = load ptr, ptr %47, align 8, !tbaa !9
  %2408 = call i32 @s2n_client_cert_recv(ptr noundef %2407)
  %2409 = icmp eq i32 %2408, -1
  br i1 %2409, label %2463, label %2410

2410:                                             ; preds = %2404
  br label %2411

2411:                                             ; preds = %2410
  br label %2412

2412:                                             ; preds = %2411
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  %2413 = call ptr @__errno_location() #8
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  store i32 %2414, ptr %53, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @s2n_print_stacktrace(ptr noundef %2415)
  %2417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2418 = trunc i8 %2417 to i1
  br i1 %2418, label %2419, label %2441

2419:                                             ; preds = %2412
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = call i32 @fileno(ptr noundef %2420) #7
  %2422 = call i32 @isatty(i32 noundef %2421) #7
  %2423 = icmp ne i32 %2422, 0
  br i1 %2423, label %2424, label %2441

2424:                                             ; preds = %2419
  %2425 = load i32, ptr %53, align 4, !tbaa !5
  %2426 = call ptr @__errno_location() #8
  store i32 %2425, ptr %2426, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror_debug(i32 noundef %2433, ptr noundef @.str.4)
  %2435 = call ptr @__errno_location() #8
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @strerror(i32 noundef %2436) #7
  %2438 = call ptr @__errno_location() #8
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2427, ptr noundef @.str.2, i32 noundef %2428, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2431, ptr noundef %2434, ptr noundef %2437, i32 noundef %2439) #7
  br label %2458

2441:                                             ; preds = %2419, %2412
  %2442 = load i32, ptr %53, align 4, !tbaa !5
  %2443 = call ptr @__errno_location() #8
  store i32 %2442, ptr %2443, align 4, !tbaa !5
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2447 = load i32, ptr %2446, align 4, !tbaa !5
  %2448 = call ptr @s2n_strerror(i32 noundef %2447, ptr noundef @.str.4)
  %2449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror_debug(i32 noundef %2450, ptr noundef @.str.4)
  %2452 = call ptr @__errno_location() #8
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @strerror(i32 noundef %2453) #7
  %2455 = call ptr @__errno_location() #8
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2444, ptr noundef @.str.5, i32 noundef %2445, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2448, ptr noundef %2451, ptr noundef %2454, i32 noundef %2456) #7
  br label %2458

2458:                                             ; preds = %2441, %2424
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %2459

2459:                                             ; preds = %2458
  br label %2460

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

2461:                                             ; No predecessors!
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

2463:                                             ; preds = %2462, %2404
  br label %2464

2464:                                             ; preds = %2463
  br label %2465

2465:                                             ; preds = %2464
  br label %2466

2466:                                             ; preds = %2465
  %2467 = load i32, ptr @test_count, align 4, !tbaa !5
  %2468 = add nsw i32 %2467, 1
  store i32 %2468, ptr @test_count, align 4, !tbaa !5
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = icmp eq i32 %2470, 335544322
  br i1 %2471, label %2525, label %2472

2472:                                             ; preds = %2466
  br label %2473

2473:                                             ; preds = %2472
  br label %2474

2474:                                             ; preds = %2473
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  %2475 = call ptr @__errno_location() #8
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  store i32 %2476, ptr %54, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = call i32 @s2n_print_stacktrace(ptr noundef %2477)
  %2479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2480 = trunc i8 %2479 to i1
  br i1 %2480, label %2481, label %2503

2481:                                             ; preds = %2474
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = call i32 @fileno(ptr noundef %2482) #7
  %2484 = call i32 @isatty(i32 noundef %2483) #7
  %2485 = icmp ne i32 %2484, 0
  br i1 %2485, label %2486, label %2503

2486:                                             ; preds = %2481
  %2487 = load i32, ptr %54, align 4, !tbaa !5
  %2488 = call ptr @__errno_location() #8
  store i32 %2487, ptr %2488, align 4, !tbaa !5
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = call ptr @s2n_strerror(i32 noundef %2492, ptr noundef @.str.4)
  %2494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2495 = load i32, ptr %2494, align 4, !tbaa !5
  %2496 = call ptr @s2n_strerror_debug(i32 noundef %2495, ptr noundef @.str.4)
  %2497 = call ptr @__errno_location() #8
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @strerror(i32 noundef %2498) #7
  %2500 = call ptr @__errno_location() #8
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2489, ptr noundef @.str.2, i32 noundef %2490, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2493, ptr noundef %2496, ptr noundef %2499, i32 noundef %2501) #7
  br label %2520

2503:                                             ; preds = %2481, %2474
  %2504 = load i32, ptr %54, align 4, !tbaa !5
  %2505 = call ptr @__errno_location() #8
  store i32 %2504, ptr %2505, align 4, !tbaa !5
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  %2510 = call ptr @s2n_strerror(i32 noundef %2509, ptr noundef @.str.4)
  %2511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2512 = load i32, ptr %2511, align 4, !tbaa !5
  %2513 = call ptr @s2n_strerror_debug(i32 noundef %2512, ptr noundef @.str.4)
  %2514 = call ptr @__errno_location() #8
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = call ptr @strerror(i32 noundef %2515) #7
  %2517 = call ptr @__errno_location() #8
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2506, ptr noundef @.str.5, i32 noundef %2507, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2510, ptr noundef %2513, ptr noundef %2516, i32 noundef %2518) #7
  br label %2520

2520:                                             ; preds = %2503, %2486
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  br label %2521

2521:                                             ; preds = %2520
  br label %2522

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

2523:                                             ; No predecessors!
  br label %2524

2524:                                             ; preds = %2523
  br label %2525

2525:                                             ; preds = %2524, %2466
  br label %2526

2526:                                             ; preds = %2525
  br label %2527

2527:                                             ; preds = %2526
  br label %2528

2528:                                             ; preds = %2527
  %2529 = load i32, ptr @test_count, align 4, !tbaa !5
  %2530 = add nsw i32 %2529, 1
  store i32 %2530, ptr @test_count, align 4, !tbaa !5
  %2531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror_debug(i32 noundef %2532, ptr noundef @.str.4)
  %2534 = icmp eq ptr %2533, null
  br i1 %2534, label %2535, label %2588

2535:                                             ; preds = %2528
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

2537:                                             ; preds = %2536
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #7
  %2538 = call ptr @__errno_location() #8
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  store i32 %2539, ptr %55, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = call i32 @s2n_print_stacktrace(ptr noundef %2540)
  %2542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2543 = trunc i8 %2542 to i1
  br i1 %2543, label %2544, label %2566

2544:                                             ; preds = %2537
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = call i32 @fileno(ptr noundef %2545) #7
  %2547 = call i32 @isatty(i32 noundef %2546) #7
  %2548 = icmp ne i32 %2547, 0
  br i1 %2548, label %2549, label %2566

2549:                                             ; preds = %2544
  %2550 = load i32, ptr %55, align 4, !tbaa !5
  %2551 = call ptr @__errno_location() #8
  store i32 %2550, ptr %2551, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @s2n_strerror(i32 noundef %2555, ptr noundef @.str.4)
  %2557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef @.str.4)
  %2560 = call ptr @__errno_location() #8
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #7
  %2563 = call ptr @__errno_location() #8
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2552, ptr noundef @.str.2, i32 noundef %2553, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2556, ptr noundef %2559, ptr noundef %2562, i32 noundef %2564) #7
  br label %2583

2566:                                             ; preds = %2544, %2537
  %2567 = load i32, ptr %55, align 4, !tbaa !5
  %2568 = call ptr @__errno_location() #8
  store i32 %2567, ptr %2568, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror(i32 noundef %2572, ptr noundef @.str.4)
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef @.str.4)
  %2577 = call ptr @__errno_location() #8
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @strerror(i32 noundef %2578) #7
  %2580 = call ptr @__errno_location() #8
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2569, ptr noundef @.str.5, i32 noundef %2570, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 105, ptr noundef %2573, ptr noundef %2576, ptr noundef %2579, i32 noundef %2581) #7
  br label %2583

2583:                                             ; preds = %2566, %2549
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #7
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

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

2586:                                             ; No predecessors!
  br label %2587

2587:                                             ; preds = %2586
  br label %2588

2588:                                             ; preds = %2587, %2528
  br label %2589

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590
  br label %2592

2592:                                             ; preds = %2591
  br label %2593

2593:                                             ; preds = %2592
  %2594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2594, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2595 = call ptr @__errno_location() #8
  store i32 0, ptr %2595, align 4, !tbaa !5
  br label %2596

2596:                                             ; preds = %2593
  br label %2597

2597:                                             ; preds = %2596
  br label %2598

2598:                                             ; preds = %2597
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  %2601 = load i32, ptr @test_count, align 4, !tbaa !5
  %2602 = add nsw i32 %2601, 1
  store i32 %2602, ptr @test_count, align 4, !tbaa !5
  %2603 = load ptr, ptr %47, align 8, !tbaa !9
  %2604 = call i32 @s2n_connection_free(ptr noundef %2603)
  %2605 = icmp eq i32 %2604, -1
  br i1 %2605, label %2606, label %2659

2606:                                             ; preds = %2600
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

2608:                                             ; preds = %2607
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  %2609 = call ptr @__errno_location() #8
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  store i32 %2610, ptr %56, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = call i32 @s2n_print_stacktrace(ptr noundef %2611)
  %2613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2614 = trunc i8 %2613 to i1
  br i1 %2614, label %2615, label %2637

2615:                                             ; preds = %2608
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = call i32 @fileno(ptr noundef %2616) #7
  %2618 = call i32 @isatty(i32 noundef %2617) #7
  %2619 = icmp ne i32 %2618, 0
  br i1 %2619, label %2620, label %2637

2620:                                             ; preds = %2615
  %2621 = load i32, ptr %56, align 4, !tbaa !5
  %2622 = call ptr @__errno_location() #8
  store i32 %2621, ptr %2622, align 4, !tbaa !5
  %2623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2626 = load i32, ptr %2625, align 4, !tbaa !5
  %2627 = call ptr @s2n_strerror(i32 noundef %2626, ptr noundef @.str.4)
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef @.str.4)
  %2631 = call ptr @__errno_location() #8
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #7
  %2634 = call ptr @__errno_location() #8
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2623, ptr noundef @.str.2, i32 noundef %2624, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2627, ptr noundef %2630, ptr noundef %2633, i32 noundef %2635) #7
  br label %2654

2637:                                             ; preds = %2615, %2608
  %2638 = load i32, ptr %56, align 4, !tbaa !5
  %2639 = call ptr @__errno_location() #8
  store i32 %2638, ptr %2639, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef @.str.4)
  %2645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror_debug(i32 noundef %2646, ptr noundef @.str.4)
  %2648 = call ptr @__errno_location() #8
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #7
  %2651 = call ptr @__errno_location() #8
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2640, ptr noundef @.str.5, i32 noundef %2641, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2644, ptr noundef %2647, ptr noundef %2650, i32 noundef %2652) #7
  br label %2654

2654:                                             ; preds = %2637, %2620
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %2655

2655:                                             ; preds = %2654
  br label %2656

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

2657:                                             ; No predecessors!
  br label %2658

2658:                                             ; preds = %2657
  br label %2659

2659:                                             ; preds = %2658, %2600
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  %2663 = load i32, ptr @test_count, align 4, !tbaa !5
  %2664 = add nsw i32 %2663, 1
  store i32 %2664, ptr @test_count, align 4, !tbaa !5
  %2665 = load ptr, ptr %45, align 8, !tbaa !9
  %2666 = call i32 @s2n_config_free(ptr noundef %2665)
  %2667 = icmp eq i32 %2666, -1
  br i1 %2667, label %2668, label %2721

2668:                                             ; preds = %2662
  br label %2669

2669:                                             ; preds = %2668
  br label %2670

2670:                                             ; preds = %2669
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #7
  %2671 = call ptr @__errno_location() #8
  %2672 = load i32, ptr %2671, align 4, !tbaa !5
  store i32 %2672, ptr %57, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @s2n_print_stacktrace(ptr noundef %2673)
  %2675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2676 = trunc i8 %2675 to i1
  br i1 %2676, label %2677, label %2699

2677:                                             ; preds = %2670
  %2678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2679 = call i32 @fileno(ptr noundef %2678) #7
  %2680 = call i32 @isatty(i32 noundef %2679) #7
  %2681 = icmp ne i32 %2680, 0
  br i1 %2681, label %2682, label %2699

2682:                                             ; preds = %2677
  %2683 = load i32, ptr %57, align 4, !tbaa !5
  %2684 = call ptr @__errno_location() #8
  store i32 %2683, ptr %2684, align 4, !tbaa !5
  %2685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2686 = load i32, ptr @test_count, align 4, !tbaa !5
  %2687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2688 = load i32, ptr %2687, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror(i32 noundef %2688, ptr noundef @.str.4)
  %2690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = call ptr @s2n_strerror_debug(i32 noundef %2691, ptr noundef @.str.4)
  %2693 = call ptr @__errno_location() #8
  %2694 = load i32, ptr %2693, align 4, !tbaa !5
  %2695 = call ptr @strerror(i32 noundef %2694) #7
  %2696 = call ptr @__errno_location() #8
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2685, ptr noundef @.str.2, i32 noundef %2686, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2689, ptr noundef %2692, ptr noundef %2695, i32 noundef %2697) #7
  br label %2716

2699:                                             ; preds = %2677, %2670
  %2700 = load i32, ptr %57, align 4, !tbaa !5
  %2701 = call ptr @__errno_location() #8
  store i32 %2700, ptr %2701, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef @.str.4)
  %2707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror_debug(i32 noundef %2708, ptr noundef @.str.4)
  %2710 = call ptr @__errno_location() #8
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #7
  %2713 = call ptr @__errno_location() #8
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2702, ptr noundef @.str.5, i32 noundef %2703, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2706, ptr noundef %2709, ptr noundef %2712, i32 noundef %2714) #7
  br label %2716

2716:                                             ; preds = %2699, %2682
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #7
  br label %2717

2717:                                             ; preds = %2716
  br label %2718

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

2719:                                             ; No predecessors!
  br label %2720

2720:                                             ; preds = %2719
  br label %2721

2721:                                             ; preds = %2720, %2662
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %2724

2724:                                             ; preds = %2723
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = add nsw i32 %2725, 1
  store i32 %2726, ptr @test_count, align 4, !tbaa !5
  %2727 = call i32 (...) @s2n_disable_tls13_in_test()
  %2728 = icmp eq i32 %2727, -1
  br i1 %2728, label %2729, label %2782

2729:                                             ; preds = %2724
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

2731:                                             ; preds = %2730
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #7
  %2732 = call ptr @__errno_location() #8
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  store i32 %2733, ptr %58, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @s2n_print_stacktrace(ptr noundef %2734)
  %2736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2737 = trunc i8 %2736 to i1
  br i1 %2737, label %2738, label %2760

2738:                                             ; preds = %2731
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = call i32 @fileno(ptr noundef %2739) #7
  %2741 = call i32 @isatty(i32 noundef %2740) #7
  %2742 = icmp ne i32 %2741, 0
  br i1 %2742, label %2743, label %2760

2743:                                             ; preds = %2738
  %2744 = load i32, ptr %58, align 4, !tbaa !5
  %2745 = call ptr @__errno_location() #8
  store i32 %2744, ptr %2745, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call ptr @s2n_strerror(i32 noundef %2749, ptr noundef @.str.4)
  %2751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call ptr @s2n_strerror_debug(i32 noundef %2752, ptr noundef @.str.4)
  %2754 = call ptr @__errno_location() #8
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @strerror(i32 noundef %2755) #7
  %2757 = call ptr @__errno_location() #8
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2746, ptr noundef @.str.2, i32 noundef %2747, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2750, ptr noundef %2753, ptr noundef %2756, i32 noundef %2758) #7
  br label %2777

2760:                                             ; preds = %2738, %2731
  %2761 = load i32, ptr %58, align 4, !tbaa !5
  %2762 = call ptr @__errno_location() #8
  store i32 %2761, ptr %2762, align 4, !tbaa !5
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = load i32, ptr @test_count, align 4, !tbaa !5
  %2765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @s2n_strerror(i32 noundef %2766, ptr noundef @.str.4)
  %2768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror_debug(i32 noundef %2769, ptr noundef @.str.4)
  %2771 = call ptr @__errno_location() #8
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @strerror(i32 noundef %2772) #7
  %2774 = call ptr @__errno_location() #8
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2763, ptr noundef @.str.5, i32 noundef %2764, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2767, ptr noundef %2770, ptr noundef %2773, i32 noundef %2775) #7
  br label %2777

2777:                                             ; preds = %2760, %2743
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #7
  br label %2778

2778:                                             ; preds = %2777
  br label %2779

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

2780:                                             ; No predecessors!
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781, %2724
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  %2787 = call i32 @s2n_cleanup()
  %2788 = icmp eq i32 %2787, -1
  br i1 %2788, label %2789, label %2842

2789:                                             ; preds = %2786
  br label %2790

2790:                                             ; preds = %2789
  br label %2791

2791:                                             ; preds = %2790
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  %2792 = call ptr @__errno_location() #8
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  store i32 %2793, ptr %59, align 4, !tbaa !5
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = call i32 @s2n_print_stacktrace(ptr noundef %2794)
  %2796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2797 = trunc i8 %2796 to i1
  br i1 %2797, label %2798, label %2820

2798:                                             ; preds = %2791
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = call i32 @fileno(ptr noundef %2799) #7
  %2801 = call i32 @isatty(i32 noundef %2800) #7
  %2802 = icmp ne i32 %2801, 0
  br i1 %2802, label %2803, label %2820

2803:                                             ; preds = %2798
  %2804 = load i32, ptr %59, align 4, !tbaa !5
  %2805 = call ptr @__errno_location() #8
  store i32 %2804, ptr %2805, align 4, !tbaa !5
  %2806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2807 = load i32, ptr @test_count, align 4, !tbaa !5
  %2808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @s2n_strerror(i32 noundef %2809, ptr noundef @.str.4)
  %2811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror_debug(i32 noundef %2812, ptr noundef @.str.4)
  %2814 = call ptr @__errno_location() #8
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @strerror(i32 noundef %2815) #7
  %2817 = call ptr @__errno_location() #8
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2806, ptr noundef @.str.2, i32 noundef %2807, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2810, ptr noundef %2813, ptr noundef %2816, i32 noundef %2818) #7
  br label %2837

2820:                                             ; preds = %2798, %2791
  %2821 = load i32, ptr %59, align 4, !tbaa !5
  %2822 = call ptr @__errno_location() #8
  store i32 %2821, ptr %2822, align 4, !tbaa !5
  %2823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2824 = load i32, ptr @test_count, align 4, !tbaa !5
  %2825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror(i32 noundef %2826, ptr noundef @.str.4)
  %2828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror_debug(i32 noundef %2829, ptr noundef @.str.4)
  %2831 = call ptr @__errno_location() #8
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @strerror(i32 noundef %2832) #7
  %2834 = call ptr @__errno_location() #8
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2823, ptr noundef @.str.5, i32 noundef %2824, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2827, ptr noundef %2830, ptr noundef %2833, i32 noundef %2835) #7
  br label %2837

2837:                                             ; preds = %2820, %2803
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

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

2840:                                             ; No predecessors!
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

2842:                                             ; preds = %2841, %2786
  br label %2843

2843:                                             ; preds = %2842
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

2845:                                             ; preds = %2844
  br label %2846

2846:                                             ; preds = %2845
  %2847 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2848 = icmp eq i32 %2847, -1
  br i1 %2848, label %2849, label %2902

2849:                                             ; preds = %2846
  br label %2850

2850:                                             ; preds = %2849
  br label %2851

2851:                                             ; preds = %2850
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  %2852 = call ptr @__errno_location() #8
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  store i32 %2853, ptr %60, align 4, !tbaa !5
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @s2n_print_stacktrace(ptr noundef %2854)
  %2856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2857 = trunc i8 %2856 to i1
  br i1 %2857, label %2858, label %2880

2858:                                             ; preds = %2851
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = call i32 @fileno(ptr noundef %2859) #7
  %2861 = call i32 @isatty(i32 noundef %2860) #7
  %2862 = icmp ne i32 %2861, 0
  br i1 %2862, label %2863, label %2880

2863:                                             ; preds = %2858
  %2864 = load i32, ptr %60, align 4, !tbaa !5
  %2865 = call ptr @__errno_location() #8
  store i32 %2864, ptr %2865, align 4, !tbaa !5
  %2866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2867 = load i32, ptr @test_count, align 4, !tbaa !5
  %2868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror(i32 noundef %2869, ptr noundef @.str.4)
  %2871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call ptr @s2n_strerror_debug(i32 noundef %2872, ptr noundef @.str.4)
  %2874 = call ptr @__errno_location() #8
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @strerror(i32 noundef %2875) #7
  %2877 = call ptr @__errno_location() #8
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2866, ptr noundef @.str.2, i32 noundef %2867, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2870, ptr noundef %2873, ptr noundef %2876, i32 noundef %2878) #7
  br label %2897

2880:                                             ; preds = %2858, %2851
  %2881 = load i32, ptr %60, align 4, !tbaa !5
  %2882 = call ptr @__errno_location() #8
  store i32 %2881, ptr %2882, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef @.str.4)
  %2888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror_debug(i32 noundef %2889, ptr noundef @.str.4)
  %2891 = call ptr @__errno_location() #8
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @strerror(i32 noundef %2892) #7
  %2894 = call ptr @__errno_location() #8
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef @.str.5, i32 noundef %2884, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2887, ptr noundef %2890, ptr noundef %2893, i32 noundef %2895) #7
  br label %2897

2897:                                             ; preds = %2880, %2863
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

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

2900:                                             ; No predecessors!
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

2902:                                             ; preds = %2901, %2846
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903
  %2905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2906 = trunc i8 %2905 to i1
  br i1 %2906, label %2907, label %2923

2907:                                             ; preds = %2904
  %2908 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2909 = call i32 @fileno(ptr noundef %2908) #7
  %2910 = call i32 @isatty(i32 noundef %2909) #7
  %2911 = icmp ne i32 %2910, 0
  br i1 %2911, label %2912, label %2923

2912:                                             ; preds = %2907
  %2913 = load i32, ptr @test_count, align 4, !tbaa !5
  %2914 = icmp ne i32 %2913, 0
  br i1 %2914, label %2915, label %2919

2915:                                             ; preds = %2912
  %2916 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef @.str.37, i32 noundef %2917) #7
  br label %2922

2919:                                             ; preds = %2912
  %2920 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2920, ptr noundef @.str.38) #7
  br label %2922

2922:                                             ; preds = %2919, %2915
  br label %2934

2923:                                             ; preds = %2907, %2904
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = icmp ne i32 %2924, 0
  br i1 %2925, label %2926, label %2930

2926:                                             ; preds = %2923
  %2927 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2927, ptr noundef @.str.39, i32 noundef %2928) #7
  br label %2933

2930:                                             ; preds = %2923
  %2931 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2931, ptr noundef @.str.40) #7
  br label %2933

2933:                                             ; preds = %2930, %2926
  br label %2934

2934:                                             ; preds = %2933, %2922
  store i32 0, ptr %3, align 4
  store i32 1, ptr %61, align 4
  br label %2939

2935:                                             ; No predecessors!
  br label %2936

2936:                                             ; preds = %2935
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  store i32 0, ptr %61, align 4
  br label %2939

2939:                                             ; preds = %2938, %2934
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #7
  %2940 = load i32, ptr %61, align 4
  switch i32 %2940, label %2943 [
    i32 0, label %2941
    i32 1, label %2941
  ]

2941:                                             ; preds = %2939, %2939
  %2942 = load i32, ptr %3, align 4
  ret i32 %2942

2943:                                             ; preds = %2939
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_config_new() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

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

declare i32 @s2n_client_cert_send(ptr noundef) #2

declare i32 @s2n_client_cert_recv(ptr noundef) #2

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

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

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

declare void @s2n_debug_info_reset() #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 = !{!7, !7, i64 0}
!16 = !{!17, !6, i64 2044}
!17 = !{!"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, !18, i64 160, !19, i64 168, !19, 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, !20, i64 240, !10, i64 632, !10, i64 640, !21, i64 648, !27, i64 1144, !30, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !32, i64 2208, !6, i64 2212, !32, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !34, i64 2264, !34, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !26, i64 2792, !6, i64 2816, !26, i64 2824, !26, i64 2848, !26, i64 2872, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !26, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !26, i64 4032, !26, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !32, i64 4084, !32, i64 4086, !6, i64 4088, !6, i64 4092, !26, i64 4096, !6, i64 4120, !42, i64 4128, !34, i64 4176, !7, i64 4180, !7, i64 4181}
!18 = !{!"s2n_timer", !19, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!21 = !{!"s2n_kex_parameters", !22, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !24, i64 72, !24, i64 184, !7, i64 296, !25, i64 360, !26, i64 448, !26, i64 472}
!22 = !{!"s2n_dh_params", !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!"s2n_kem_group_params", !10, i64 0, !25, i64 8, !23, i64 96}
!25 = !{!"s2n_kem_params", !10, i64 0, !26, i64 8, !26, i64 32, !26, i64 56, !12, i64 80}
!26 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!27 = !{!"s2n_handshake_parameters", !28, i64 0, !28, i64 48, !26, i64 96, !6, i64 120, !29, 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}
!28 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!30 = !{!"s2n_psk_parameters", !6, i64 0, !31, i64 8, !32, i64 40, !32, i64 42, !10, i64 48, !6, i64 56}
!31 = !{!"s2n_array", !26, i64 0, !6, i64 24, !6, i64 28}
!32 = !{!"short", !7, i64 0}
!33 = !{!"s2n_stuffer", !26, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !26, i64 0, !38, i64 24, !26, i64 728, !26, i64 752, !26, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!38 = !{!"", !7, i64 0, !26, i64 672, !32, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !32, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !26, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!17, !6, i64 2040}
!44 = !{!17, !7, i64 220}


; 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 [95 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [150 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.40 = 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 {
  %3 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %4 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #8
  %6 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7 = tail call i32 @fflush(ptr noundef %6)
  %8 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #8
  %9 = icmp eq i32 %8, -1
  br i1 %9, label %10, label %34

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

119:                                              ; preds = %90
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = tail call ptr @s2n_config_new() #8
  %123 = icmp eq ptr %122, null
  br i1 %123, label %124, label %148

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

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

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

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

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

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

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

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

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

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

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

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

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

194:                                              ; preds = %189, %193
  %.str.5.sink251 = 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) #8
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = tail call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #8
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = tail call ptr @strerror(i32 noundef %202) #8
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink251, i32 noundef %196, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

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

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

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

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

223:                                              ; preds = %218, %222
  %.str.5.sink262 = 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) #8
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = tail call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #8
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = tail call ptr @strerror(i32 noundef %231) #8
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink262, i32 noundef %225, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = tail call i32 @s2n_client_cert_send(ptr noundef nonnull %151) #8
  %239 = icmp eq i32 %238, -1
  br i1 %239, label %240, label %264

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

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

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

252:                                              ; preds = %247, %251
  %.str.5.sink273 = 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) #8
  %258 = load i32, ptr %255, align 4, !tbaa !5
  %259 = tail call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #8
  %260 = load i32, ptr %241, align 4, !tbaa !5
  %261 = tail call ptr @strerror(i32 noundef %260) #8
  %262 = load i32, ptr %241, align 4, !tbaa !5
  %263 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef nonnull %.str.5.sink273, i32 noundef %254, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

264:                                              ; preds = %235
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = getelementptr inbounds i8, ptr %151, i64 2016
  %268 = getelementptr inbounds i8, ptr %151, i64 2044
  %269 = load i32, ptr %268, align 4, !tbaa !15
  %270 = getelementptr inbounds i8, ptr %151, i64 2040
  %271 = load i32, ptr %270, align 8, !tbaa !42
  %272 = sub i32 %269, %271
  %273 = icmp eq i32 %272, 3
  br i1 %273, label %298, label %274

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

281:                                              ; preds = %274
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = tail call i32 @fileno(ptr noundef %282) #8
  %284 = tail call i32 @isatty(i32 noundef %283) #8
  %.not = icmp eq i32 %284, 0
  br i1 %.not, label %285, label %286

285:                                              ; preds = %281, %274
  br label %286

286:                                              ; preds = %281, %285
  %.str.5.sink284 = phi ptr [ @.str.5, %285 ], [ @.str.2, %281 ]
  store i32 %276, ptr %275, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = tail call ptr @s2n_strerror(i32 noundef %290, ptr noundef nonnull @.str.4) #8
  %292 = load i32, ptr %289, align 4, !tbaa !5
  %293 = tail call ptr @s2n_strerror_debug(i32 noundef %292, ptr noundef nonnull @.str.4) #8
  %294 = load i32, ptr %275, align 4, !tbaa !5
  %295 = tail call ptr @strerror(i32 noundef %294) #8
  %296 = load i32, ptr %275, align 4, !tbaa !5
  %297 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %287, ptr noundef nonnull %.str.5.sink284, i32 noundef %288, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %291, ptr noundef %293, ptr noundef %295, i32 noundef %296) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

298:                                              ; preds = %264
  %299 = add nsw i32 %265, 2
  store i32 %299, ptr @test_count, align 4, !tbaa !5
  %300 = tail call i32 @s2n_client_cert_recv(ptr noundef nonnull %151) #8
  %301 = icmp eq i32 %300, -1
  br i1 %301, label %302, label %326

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

309:                                              ; preds = %302
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = tail call i32 @fileno(ptr noundef %310) #8
  %312 = tail call i32 @isatty(i32 noundef %311) #8
  %.not176 = icmp eq i32 %312, 0
  br i1 %.not176, label %313, label %314

313:                                              ; preds = %309, %302
  br label %314

314:                                              ; preds = %309, %313
  %.str.5.sink295 = phi ptr [ @.str.5, %313 ], [ @.str.2, %309 ]
  store i32 %304, ptr %303, align 4, !tbaa !5
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = tail call ptr @s2n_strerror(i32 noundef %318, ptr noundef nonnull @.str.4) #8
  %320 = load i32, ptr %317, align 4, !tbaa !5
  %321 = tail call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef nonnull @.str.4) #8
  %322 = load i32, ptr %303, align 4, !tbaa !5
  %323 = tail call ptr @strerror(i32 noundef %322) #8
  %324 = load i32, ptr %303, align 4, !tbaa !5
  %325 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef nonnull %.str.5.sink295, i32 noundef %316, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %319, ptr noundef %321, ptr noundef %323, i32 noundef %324) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

326:                                              ; preds = %298
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = tail call i32 @s2n_stuffer_wipe(ptr noundef nonnull %267) #8
  %330 = icmp eq i32 %329, -1
  br i1 %330, label %331, label %355

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

338:                                              ; preds = %331
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = tail call i32 @fileno(ptr noundef %339) #8
  %341 = tail call i32 @isatty(i32 noundef %340) #8
  %.not175 = icmp eq i32 %341, 0
  br i1 %.not175, label %342, label %343

342:                                              ; preds = %338, %331
  br label %343

343:                                              ; preds = %338, %342
  %.str.5.sink306 = phi ptr [ @.str.5, %342 ], [ @.str.2, %338 ]
  store i32 %333, ptr %332, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = tail call ptr @s2n_strerror(i32 noundef %347, ptr noundef nonnull @.str.4) #8
  %349 = load i32, ptr %346, align 4, !tbaa !5
  %350 = tail call ptr @s2n_strerror_debug(i32 noundef %349, ptr noundef nonnull @.str.4) #8
  %351 = load i32, ptr %332, align 4, !tbaa !5
  %352 = tail call ptr @strerror(i32 noundef %351) #8
  %353 = load i32, ptr %332, align 4, !tbaa !5
  %354 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef nonnull %.str.5.sink306, i32 noundef %345, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %348, ptr noundef %350, ptr noundef %352, i32 noundef %353) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

355:                                              ; preds = %326
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = load i32, ptr %268, align 4, !tbaa !15
  %359 = load i32, ptr %270, align 8, !tbaa !42
  %360 = icmp eq i32 %358, %359
  br i1 %360, label %385, label %361

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

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

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

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

385:                                              ; preds = %355
  %386 = add nsw i32 %356, 2
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = tail call i32 (...) @s2n_enable_tls13_in_test() #8
  %388 = icmp eq i32 %387, -1
  br i1 %388, label %389, label %413

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

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

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

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

413:                                              ; preds = %385
  %414 = getelementptr inbounds i8, ptr %151, i64 220
  store i8 34, ptr %414, align 4, !tbaa !43
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = add nsw i32 %415, 1
  store i32 %416, ptr @test_count, align 4, !tbaa !5
  %417 = tail call i32 @s2n_client_cert_send(ptr noundef nonnull %151) #8
  %418 = icmp eq i32 %417, -1
  br i1 %418, label %419, label %443

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

426:                                              ; preds = %419
  %427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %428 = tail call i32 @fileno(ptr noundef %427) #8
  %429 = tail call i32 @isatty(i32 noundef %428) #8
  %.not173 = icmp eq i32 %429, 0
  br i1 %.not173, label %430, label %431

430:                                              ; preds = %426, %419
  br label %431

431:                                              ; preds = %426, %430
  %.str.5.sink339 = phi ptr [ @.str.5, %430 ], [ @.str.2, %426 ]
  store i32 %421, ptr %420, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = tail call ptr @s2n_strerror(i32 noundef %435, ptr noundef nonnull @.str.4) #8
  %437 = load i32, ptr %434, align 4, !tbaa !5
  %438 = tail call ptr @s2n_strerror_debug(i32 noundef %437, ptr noundef nonnull @.str.4) #8
  %439 = load i32, ptr %420, align 4, !tbaa !5
  %440 = tail call ptr @strerror(i32 noundef %439) #8
  %441 = load i32, ptr %420, align 4, !tbaa !5
  %442 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %432, ptr noundef nonnull %.str.5.sink339, i32 noundef %433, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %436, ptr noundef %438, ptr noundef %440, i32 noundef %441) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

443:                                              ; preds = %413
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr @test_count, align 4, !tbaa !5
  %446 = load i32, ptr %268, align 4, !tbaa !15
  %447 = load i32, ptr %270, align 8, !tbaa !42
  %448 = sub i32 %446, %447
  %449 = icmp eq i32 %448, 4
  br i1 %449, label %474, label %450

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

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = tail call i32 @fileno(ptr noundef %458) #8
  %460 = tail call i32 @isatty(i32 noundef %459) #8
  %.not140 = icmp eq i32 %460, 0
  br i1 %.not140, label %461, label %462

461:                                              ; preds = %457, %450
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink350 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %451, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = tail call ptr @s2n_strerror(i32 noundef %466, ptr noundef nonnull @.str.4) #8
  %468 = load i32, ptr %465, align 4, !tbaa !5
  %469 = tail call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #8
  %470 = load i32, ptr %451, align 4, !tbaa !5
  %471 = tail call ptr @strerror(i32 noundef %470) #8
  %472 = load i32, ptr %451, align 4, !tbaa !5
  %473 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink350, i32 noundef %464, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

474:                                              ; preds = %443
  %475 = add nsw i32 %444, 2
  store i32 %475, ptr @test_count, align 4, !tbaa !5
  %476 = tail call i32 @s2n_client_cert_recv(ptr noundef nonnull %151) #8
  %477 = icmp eq i32 %476, -1
  br i1 %477, label %478, label %502

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

485:                                              ; preds = %478
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = tail call i32 @fileno(ptr noundef %486) #8
  %488 = tail call i32 @isatty(i32 noundef %487) #8
  %.not172 = icmp eq i32 %488, 0
  br i1 %.not172, label %489, label %490

489:                                              ; preds = %485, %478
  br label %490

490:                                              ; preds = %485, %489
  %.str.5.sink361 = phi ptr [ @.str.5, %489 ], [ @.str.2, %485 ]
  store i32 %480, ptr %479, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = tail call ptr @s2n_strerror(i32 noundef %494, ptr noundef nonnull @.str.4) #8
  %496 = load i32, ptr %493, align 4, !tbaa !5
  %497 = tail call ptr @s2n_strerror_debug(i32 noundef %496, ptr noundef nonnull @.str.4) #8
  %498 = load i32, ptr %479, align 4, !tbaa !5
  %499 = tail call ptr @strerror(i32 noundef %498) #8
  %500 = load i32, ptr %479, align 4, !tbaa !5
  %501 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %491, ptr noundef nonnull %.str.5.sink361, i32 noundef %492, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %495, ptr noundef %497, ptr noundef %499, i32 noundef %500) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

502:                                              ; preds = %474
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = tail call i32 (...) @s2n_disable_tls13_in_test() #8
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %531

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

514:                                              ; preds = %507
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = tail call i32 @fileno(ptr noundef %515) #8
  %517 = tail call i32 @isatty(i32 noundef %516) #8
  %.not171 = icmp eq i32 %517, 0
  br i1 %.not171, label %518, label %519

518:                                              ; preds = %514, %507
  br label %519

519:                                              ; preds = %514, %518
  %.str.5.sink372 = phi ptr [ @.str.5, %518 ], [ @.str.2, %514 ]
  store i32 %509, ptr %508, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = tail call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.4) #8
  %525 = load i32, ptr %522, align 4, !tbaa !5
  %526 = tail call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.4) #8
  %527 = load i32, ptr %508, align 4, !tbaa !5
  %528 = tail call ptr @strerror(i32 noundef %527) #8
  %529 = load i32, ptr %508, align 4, !tbaa !5
  %530 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef nonnull %.str.5.sink372, i32 noundef %521, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

531:                                              ; preds = %502
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = tail call i32 @s2n_connection_free(ptr noundef nonnull %151) #8
  %535 = icmp eq i32 %534, -1
  br i1 %535, label %536, label %560

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

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

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

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

560:                                              ; preds = %531
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr @test_count, align 4, !tbaa !5
  %563 = tail call i32 @s2n_config_free(ptr noundef nonnull %122) #8
  %564 = icmp eq i32 %563, -1
  br i1 %564, label %565, label %589

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

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

576:                                              ; preds = %572, %565
  br label %577

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

589:                                              ; preds = %560
  %590 = load i32, ptr @test_count, align 4, !tbaa !5
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr @test_count, align 4, !tbaa !5
  %592 = tail call i32 (...) @s2n_enable_tls13_in_test() #8
  %593 = icmp eq i32 %592, -1
  br i1 %593, label %594, label %618

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

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

605:                                              ; preds = %601, %594
  br label %606

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

618:                                              ; preds = %589
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = add nsw i32 %619, 1
  store i32 %620, ptr @test_count, align 4, !tbaa !5
  %621 = tail call ptr @s2n_config_new() #8
  %622 = icmp eq ptr %621, null
  br i1 %622, label %623, label %647

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

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

634:                                              ; preds = %630, %623
  br label %635

635:                                              ; preds = %630, %634
  %.str.5.sink416 = phi ptr [ @.str.5, %634 ], [ @.str.2, %630 ]
  store i32 %625, ptr %624, align 4, !tbaa !5
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = load i32, ptr @test_count, align 4, !tbaa !5
  %638 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = tail call ptr @s2n_strerror(i32 noundef %639, ptr noundef nonnull @.str.4) #8
  %641 = load i32, ptr %638, align 4, !tbaa !5
  %642 = tail call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef nonnull @.str.4) #8
  %643 = load i32, ptr %624, align 4, !tbaa !5
  %644 = tail call ptr @strerror(i32 noundef %643) #8
  %645 = load i32, ptr %624, align 4, !tbaa !5
  %646 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %636, ptr noundef nonnull %.str.5.sink416, i32 noundef %637, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %640, ptr noundef %642, ptr noundef %644, i32 noundef %645) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

647:                                              ; preds = %618
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %651 = icmp eq ptr %650, null
  br i1 %651, label %652, label %676

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

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

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

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

676:                                              ; preds = %647
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %650, ptr noundef nonnull %621) #8
  %680 = icmp eq i32 %679, -1
  br i1 %680, label %681, label %705

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

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

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

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

705:                                              ; preds = %676
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = tail call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %650, i32 noundef 2) #8
  %709 = icmp eq i32 %708, -1
  br i1 %709, label %710, label %734

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

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

721:                                              ; preds = %717, %710
  br label %722

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

734:                                              ; preds = %705
  %735 = getelementptr inbounds i8, ptr %650, i64 220
  store i8 34, ptr %735, align 4, !tbaa !43
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = tail call i32 @s2n_client_cert_send(ptr noundef nonnull %650) #8
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %740, label %764

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

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

751:                                              ; preds = %747, %740
  br label %752

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

764:                                              ; preds = %734
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = getelementptr inbounds i8, ptr %650, i64 2044
  %768 = load i32, ptr %767, align 4, !tbaa !15
  %769 = getelementptr inbounds i8, ptr %650, i64 2040
  %770 = load i32, ptr %769, align 8, !tbaa !42
  %771 = sub i32 %768, %770
  %772 = icmp eq i32 %771, 4
  br i1 %772, label %797, label %773

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

780:                                              ; preds = %773
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = tail call i32 @fileno(ptr noundef %781) #8
  %783 = tail call i32 @isatty(i32 noundef %782) #8
  %.not141 = icmp eq i32 %783, 0
  br i1 %.not141, label %784, label %785

784:                                              ; preds = %780, %773
  br label %785

785:                                              ; preds = %780, %784
  %.str.5.sink471 = phi ptr [ @.str.5, %784 ], [ @.str.2, %780 ]
  store i32 %775, ptr %774, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = tail call ptr @s2n_strerror(i32 noundef %789, ptr noundef nonnull @.str.4) #8
  %791 = load i32, ptr %788, align 4, !tbaa !5
  %792 = tail call ptr @s2n_strerror_debug(i32 noundef %791, ptr noundef nonnull @.str.4) #8
  %793 = load i32, ptr %774, align 4, !tbaa !5
  %794 = tail call ptr @strerror(i32 noundef %793) #8
  %795 = load i32, ptr %774, align 4, !tbaa !5
  %796 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef nonnull %.str.5.sink471, i32 noundef %787, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %790, ptr noundef %792, ptr noundef %794, i32 noundef %795) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

797:                                              ; preds = %764
  %798 = getelementptr inbounds i8, ptr %650, i64 2016
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #8
  store i8 0, ptr %3, align 1, !tbaa !44
  %799 = add nsw i32 %765, 2
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %798, ptr noundef nonnull %3) #8
  %801 = icmp eq i32 %800, -1
  br i1 %801, label %802, label %826

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

809:                                              ; preds = %802
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #8
  %812 = call i32 @isatty(i32 noundef %811) #8
  %.not162 = icmp eq i32 %812, 0
  br i1 %.not162, label %813, label %814

813:                                              ; preds = %809, %802
  br label %814

814:                                              ; preds = %809, %813
  %.str.5.sink482 = phi ptr [ @.str.5, %813 ], [ @.str.2, %809 ]
  store i32 %804, ptr %803, 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 nonnull @.str.4) #8
  %820 = load i32, ptr %817, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef nonnull @.str.4) #8
  %822 = load i32, ptr %803, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #8
  %824 = load i32, ptr %803, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef nonnull %.str.5.sink482, i32 noundef %816, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %819, ptr noundef %821, ptr noundef %823, i32 noundef %824) #10
  call void @exit(i32 noundef 1) #11
  unreachable

826:                                              ; preds = %797
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = add nsw i32 %827, 1
  store i32 %828, ptr @test_count, align 4, !tbaa !5
  %829 = load i8, ptr %3, align 1, !tbaa !44
  %830 = icmp eq i8 %829, 0
  br i1 %830, label %855, label %831

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

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

842:                                              ; preds = %838, %831
  br label %843

843:                                              ; preds = %838, %842
  %.str.5.sink493 = phi ptr [ @.str.5, %842 ], [ @.str.2, %838 ]
  store i32 %833, ptr %832, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef nonnull @.str.4) #8
  %849 = load i32, ptr %846, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror_debug(i32 noundef %849, ptr noundef nonnull @.str.4) #8
  %851 = load i32, ptr %832, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #8
  %853 = load i32, ptr %832, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef nonnull %.str.5.sink493, i32 noundef %845, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %848, ptr noundef %850, ptr noundef %852, i32 noundef %853) #10
  call void @exit(i32 noundef 1) #11
  unreachable

855:                                              ; preds = %826
  %856 = add nsw i32 %827, 2
  store i32 %856, ptr @test_count, align 4, !tbaa !5
  %857 = call i32 @s2n_connection_free(ptr noundef nonnull %650) #8
  %858 = icmp eq i32 %857, -1
  br i1 %858, label %859, label %883

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

866:                                              ; preds = %859
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @fileno(ptr noundef %867) #8
  %869 = call i32 @isatty(i32 noundef %868) #8
  %.not161 = icmp eq i32 %869, 0
  br i1 %.not161, label %870, label %871

870:                                              ; preds = %866, %859
  br label %871

871:                                              ; preds = %866, %870
  %.str.5.sink504 = phi ptr [ @.str.5, %870 ], [ @.str.2, %866 ]
  store i32 %861, ptr %860, align 4, !tbaa !5
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @s2n_strerror(i32 noundef %875, ptr noundef nonnull @.str.4) #8
  %877 = load i32, ptr %874, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef nonnull @.str.4) #8
  %879 = load i32, ptr %860, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #8
  %881 = load i32, ptr %860, align 4, !tbaa !5
  %882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %872, ptr noundef nonnull %.str.5.sink504, i32 noundef %873, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %876, ptr noundef %878, ptr noundef %880, i32 noundef %881) #10
  call void @exit(i32 noundef 1) #11
  unreachable

883:                                              ; preds = %855
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = add nsw i32 %884, 1
  store i32 %885, ptr @test_count, align 4, !tbaa !5
  %886 = call i32 @s2n_config_free(ptr noundef nonnull %621) #8
  %887 = icmp eq i32 %886, -1
  br i1 %887, label %888, label %912

888:                                              ; preds = %883
  %889 = tail call ptr @__errno_location() #9
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @s2n_print_stacktrace(ptr noundef %891) #8
  %893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %894 = trunc nuw i8 %893 to i1
  br i1 %894, label %895, label %899

895:                                              ; preds = %888
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = call i32 @fileno(ptr noundef %896) #8
  %898 = call i32 @isatty(i32 noundef %897) #8
  %.not160 = icmp eq i32 %898, 0
  br i1 %.not160, label %899, label %900

899:                                              ; preds = %895, %888
  br label %900

900:                                              ; preds = %895, %899
  %.str.5.sink515 = phi ptr [ @.str.5, %899 ], [ @.str.2, %895 ]
  store i32 %890, ptr %889, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef nonnull @.str.4) #8
  %906 = load i32, ptr %903, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef nonnull @.str.4) #8
  %908 = load i32, ptr %889, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #8
  %910 = load i32, ptr %889, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %901, ptr noundef nonnull %.str.5.sink515, i32 noundef %902, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %905, ptr noundef %907, ptr noundef %909, i32 noundef %910) #10
  call void @exit(i32 noundef 1) #11
  unreachable

912:                                              ; preds = %883
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #8
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr @test_count, align 4, !tbaa !5
  %915 = call ptr @s2n_config_new() #8
  %916 = icmp eq ptr %915, null
  br i1 %916, label %917, label %941

917:                                              ; preds = %912
  %918 = tail call ptr @__errno_location() #9
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @s2n_print_stacktrace(ptr noundef %920) #8
  %922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %923 = trunc nuw i8 %922 to i1
  br i1 %923, label %924, label %928

924:                                              ; preds = %917
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = call i32 @fileno(ptr noundef %925) #8
  %927 = call i32 @isatty(i32 noundef %926) #8
  %.not159 = icmp eq i32 %927, 0
  br i1 %.not159, label %928, label %929

928:                                              ; preds = %924, %917
  br label %929

929:                                              ; preds = %924, %928
  %.str.5.sink526 = phi ptr [ @.str.5, %928 ], [ @.str.2, %924 ]
  store i32 %919, ptr %918, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef nonnull @.str.4) #8
  %935 = load i32, ptr %932, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror_debug(i32 noundef %935, ptr noundef nonnull @.str.4) #8
  %937 = load i32, ptr %918, align 4, !tbaa !5
  %938 = call ptr @strerror(i32 noundef %937) #8
  %939 = load i32, ptr %918, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef nonnull %.str.5.sink526, i32 noundef %931, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %934, ptr noundef %936, ptr noundef %938, i32 noundef %939) #10
  call void @exit(i32 noundef 1) #11
  unreachable

941:                                              ; preds = %912
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = add nsw i32 %942, 1
  store i32 %943, ptr @test_count, align 4, !tbaa !5
  %944 = call ptr @s2n_connection_new(i32 noundef 0) #8
  %945 = icmp eq ptr %944, null
  br i1 %945, label %946, label %970

946:                                              ; preds = %941
  %947 = tail call ptr @__errno_location() #9
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = call i32 @s2n_print_stacktrace(ptr noundef %949) #8
  %951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %952 = trunc nuw i8 %951 to i1
  br i1 %952, label %953, label %957

953:                                              ; preds = %946
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @fileno(ptr noundef %954) #8
  %956 = call i32 @isatty(i32 noundef %955) #8
  %.not158 = icmp eq i32 %956, 0
  br i1 %.not158, label %957, label %958

957:                                              ; preds = %953, %946
  br label %958

958:                                              ; preds = %953, %957
  %.str.5.sink537 = phi ptr [ @.str.5, %957 ], [ @.str.2, %953 ]
  store i32 %948, ptr %947, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror(i32 noundef %962, ptr noundef nonnull @.str.4) #8
  %964 = load i32, ptr %961, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef nonnull @.str.4) #8
  %966 = load i32, ptr %947, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #8
  %968 = load i32, ptr %947, align 4, !tbaa !5
  %969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %959, ptr noundef nonnull %.str.5.sink537, i32 noundef %960, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %963, ptr noundef %965, ptr noundef %967, i32 noundef %968) #10
  call void @exit(i32 noundef 1) #11
  unreachable

970:                                              ; preds = %941
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = add nsw i32 %971, 1
  store i32 %972, ptr @test_count, align 4, !tbaa !5
  %973 = call i32 @s2n_connection_set_config(ptr noundef nonnull %944, ptr noundef nonnull %915) #8
  %974 = icmp eq i32 %973, -1
  br i1 %974, label %975, label %999

975:                                              ; preds = %970
  %976 = tail call ptr @__errno_location() #9
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978) #8
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc nuw i8 %980 to i1
  br i1 %981, label %982, label %986

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

986:                                              ; preds = %982, %975
  br label %987

987:                                              ; preds = %982, %986
  %.str.5.sink548 = phi ptr [ @.str.5, %986 ], [ @.str.2, %982 ]
  store i32 %977, ptr %976, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror(i32 noundef %991, ptr noundef nonnull @.str.4) #8
  %993 = load i32, ptr %990, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef nonnull @.str.4) #8
  %995 = load i32, ptr %976, align 4, !tbaa !5
  %996 = call ptr @strerror(i32 noundef %995) #8
  %997 = load i32, ptr %976, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef nonnull %.str.5.sink548, i32 noundef %989, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %992, ptr noundef %994, ptr noundef %996, i32 noundef %997) #10
  call void @exit(i32 noundef 1) #11
  unreachable

999:                                              ; preds = %970
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = add nsw i32 %1000, 1
  store i32 %1001, ptr @test_count, align 4, !tbaa !5
  %1002 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %944, i32 noundef 2) #8
  %1003 = icmp eq i32 %1002, -1
  br i1 %1003, label %1004, label %1028

1004:                                             ; preds = %999
  %1005 = tail call ptr @__errno_location() #9
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @s2n_print_stacktrace(ptr noundef %1007) #8
  %1009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1010 = trunc nuw i8 %1009 to i1
  br i1 %1010, label %1011, label %1015

1011:                                             ; preds = %1004
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @fileno(ptr noundef %1012) #8
  %1014 = call i32 @isatty(i32 noundef %1013) #8
  %.not156 = icmp eq i32 %1014, 0
  br i1 %.not156, label %1015, label %1016

1015:                                             ; preds = %1011, %1004
  br label %1016

1016:                                             ; preds = %1011, %1015
  %.str.5.sink559 = phi ptr [ @.str.5, %1015 ], [ @.str.2, %1011 ]
  store i32 %1006, ptr %1005, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef nonnull @.str.4) #8
  %1022 = load i32, ptr %1019, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror_debug(i32 noundef %1022, ptr noundef nonnull @.str.4) #8
  %1024 = load i32, ptr %1005, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #8
  %1026 = load i32, ptr %1005, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1017, ptr noundef nonnull %.str.5.sink559, i32 noundef %1018, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %1021, ptr noundef %1023, ptr noundef %1025, i32 noundef %1026) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1028:                                             ; preds = %999
  %1029 = getelementptr inbounds i8, ptr %944, i64 220
  store i8 34, ptr %1029, align 4, !tbaa !43
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = getelementptr inbounds i8, ptr %944, i64 2016
  %1033 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1032, i8 noundef zeroext 2) #8
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1059

1035:                                             ; preds = %1028
  %1036 = tail call ptr @__errno_location() #9
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038) #8
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc nuw i8 %1040 to i1
  br i1 %1041, label %1042, label %1046

1042:                                             ; preds = %1035
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @fileno(ptr noundef %1043) #8
  %1045 = call i32 @isatty(i32 noundef %1044) #8
  %.not155 = icmp eq i32 %1045, 0
  br i1 %.not155, label %1046, label %1047

1046:                                             ; preds = %1042, %1035
  br label %1047

1047:                                             ; preds = %1042, %1046
  %.str.5.sink570 = phi ptr [ @.str.5, %1046 ], [ @.str.2, %1042 ]
  store i32 %1037, ptr %1036, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.4) #8
  %1053 = load i32, ptr %1050, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.4) #8
  %1055 = load i32, ptr %1036, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #8
  %1057 = load i32, ptr %1036, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.5.sink570, i32 noundef %1049, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1059:                                             ; preds = %1028
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %1032, i32 noundef 0) #8
  %1063 = icmp eq i32 %1062, -1
  br i1 %1063, label %1064, label %1088

1064:                                             ; preds = %1059
  %1065 = tail call ptr @__errno_location() #9
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @s2n_print_stacktrace(ptr noundef %1067) #8
  %1069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1070 = trunc nuw i8 %1069 to i1
  br i1 %1070, label %1071, label %1075

1071:                                             ; preds = %1064
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @fileno(ptr noundef %1072) #8
  %1074 = call i32 @isatty(i32 noundef %1073) #8
  %.not154 = icmp eq i32 %1074, 0
  br i1 %.not154, label %1075, label %1076

1075:                                             ; preds = %1071, %1064
  br label %1076

1076:                                             ; preds = %1071, %1075
  %.str.5.sink581 = phi ptr [ @.str.5, %1075 ], [ @.str.2, %1071 ]
  store i32 %1066, ptr %1065, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.4) #8
  %1082 = load i32, ptr %1079, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.4) #8
  %1084 = load i32, ptr %1065, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #8
  %1086 = load i32, ptr %1065, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef nonnull %.str.5.sink581, i32 noundef %1078, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1088:                                             ; preds = %1059
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = call i32 @s2n_client_cert_recv(ptr noundef nonnull %944) #8
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1117, label %1093

1093:                                             ; preds = %1088
  %1094 = tail call ptr @__errno_location() #9
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #8
  %1098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1099 = trunc nuw i8 %1098 to i1
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #8
  %1103 = call i32 @isatty(i32 noundef %1102) #8
  %.not143 = icmp eq i32 %1103, 0
  br i1 %.not143, label %1104, label %1105

1104:                                             ; preds = %1100, %1093
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.5.sink592 = phi ptr [ @.str.5, %1104 ], [ @.str.2, %1100 ]
  store i32 %1095, ptr %1094, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef nonnull @.str.4) #8
  %1111 = load i32, ptr %1108, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef nonnull @.str.4) #8
  %1113 = load i32, ptr %1094, align 4, !tbaa !5
  %1114 = call ptr @strerror(i32 noundef %1113) #8
  %1115 = load i32, ptr %1094, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.5.sink592, i32 noundef %1107, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1110, ptr noundef %1112, ptr noundef %1114, i32 noundef %1115) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1117:                                             ; preds = %1088
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = icmp eq i32 %1121, 335544322
  br i1 %1122, label %1146, label %1123

1123:                                             ; preds = %1117
  %1124 = tail call ptr @__errno_location() #9
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = call i32 @s2n_print_stacktrace(ptr noundef %1126) #8
  %1128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1129 = trunc nuw i8 %1128 to i1
  br i1 %1129, label %1130, label %1134

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

1134:                                             ; preds = %1130, %1123
  br label %1135

1135:                                             ; preds = %1130, %1134
  %.str.5.sink603 = phi ptr [ @.str.5, %1134 ], [ @.str.2, %1130 ]
  store i32 %1125, ptr %1124, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = load i32, ptr %1120, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef nonnull @.str.4) #8
  %1140 = load i32, ptr %1120, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef nonnull @.str.4) #8
  %1142 = load i32, ptr %1124, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #8
  %1144 = load i32, ptr %1124, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef nonnull %.str.5.sink603, i32 noundef %1137, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1139, ptr noundef %1141, ptr noundef %1143, i32 noundef %1144) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1146:                                             ; preds = %1117
  %1147 = add nsw i32 %1118, 2
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #8
  %1149 = icmp eq ptr %1148, null
  br i1 %1149, label %1150, label %1173

1150:                                             ; preds = %1146
  %1151 = tail call ptr @__errno_location() #9
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153) #8
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

1157:                                             ; preds = %1150
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @fileno(ptr noundef %1158) #8
  %1160 = call i32 @isatty(i32 noundef %1159) #8
  %.not153 = icmp eq i32 %1160, 0
  br i1 %.not153, label %1161, label %1162

1161:                                             ; preds = %1157, %1150
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.5.sink612 = phi ptr [ @.str.5, %1161 ], [ @.str.2, %1157 ]
  store i32 %1152, ptr %1151, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = load i32, ptr %1120, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #8
  %1167 = load i32, ptr %1120, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #8
  %1169 = load i32, ptr %1151, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #8
  %1171 = load i32, ptr %1151, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.5.sink612, i32 noundef %1164, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1173:                                             ; preds = %1146
  store i32 0, ptr %1120, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #8
  %1174 = tail call ptr @__errno_location() #9
  store i32 0, ptr %1174, align 4, !tbaa !5
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = call i32 @s2n_connection_free(ptr noundef nonnull %944) #8
  %1178 = icmp eq i32 %1177, -1
  br i1 %1178, label %1179, label %1201

1179:                                             ; preds = %1173
  %1180 = load i32, ptr %1174, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181) #8
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1179
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #8
  %1188 = call i32 @isatty(i32 noundef %1187) #8
  %.not152 = icmp eq i32 %1188, 0
  br i1 %.not152, label %1189, label %1190

1189:                                             ; preds = %1185, %1179
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink621 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %1174, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %1120, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef nonnull @.str.4) #8
  %1195 = load i32, ptr %1120, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror_debug(i32 noundef %1195, ptr noundef nonnull @.str.4) #8
  %1197 = load i32, ptr %1174, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #8
  %1199 = load i32, ptr %1174, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink621, i32 noundef %1192, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %1194, ptr noundef %1196, ptr noundef %1198, i32 noundef %1199) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1201:                                             ; preds = %1173
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = call i32 @s2n_config_free(ptr noundef nonnull %915) #8
  %1205 = icmp eq i32 %1204, -1
  br i1 %1205, label %1206, label %1228

1206:                                             ; preds = %1201
  %1207 = load i32, ptr %1174, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #8
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1206
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #8
  %1215 = call i32 @isatty(i32 noundef %1214) #8
  %.not151 = icmp eq i32 %1215, 0
  br i1 %.not151, label %1216, label %1217

1216:                                             ; preds = %1212, %1206
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink630 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %1174, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %1120, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #8
  %1222 = load i32, ptr %1120, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #8
  %1224 = load i32, ptr %1174, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #8
  %1226 = load i32, ptr %1174, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink630, i32 noundef %1219, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1228:                                             ; preds = %1201
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr @test_count, align 4, !tbaa !5
  %1231 = call i32 (...) @s2n_disable_tls13_in_test() #8
  %1232 = icmp eq i32 %1231, -1
  br i1 %1232, label %1233, label %1255

1233:                                             ; preds = %1228
  %1234 = load i32, ptr %1174, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #8
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1233
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #8
  %1242 = call i32 @isatty(i32 noundef %1241) #8
  %.not150 = icmp eq i32 %1242, 0
  br i1 %.not150, label %1243, label %1244

1243:                                             ; preds = %1239, %1233
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.5.sink639 = phi ptr [ @.str.5, %1243 ], [ @.str.2, %1239 ]
  store i32 %1234, ptr %1174, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = load i32, ptr %1120, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef nonnull @.str.4) #8
  %1249 = load i32, ptr %1120, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef nonnull @.str.4) #8
  %1251 = load i32, ptr %1174, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #8
  %1253 = load i32, ptr %1174, align 4, !tbaa !5
  %1254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.5.sink639, i32 noundef %1246, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1248, ptr noundef %1250, ptr noundef %1252, i32 noundef %1253) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1255:                                             ; preds = %1228
  %1256 = call i32 @s2n_cleanup() #8
  %1257 = icmp eq i32 %1256, -1
  br i1 %1257, label %1258, label %1280

1258:                                             ; preds = %1255
  %1259 = load i32, ptr %1174, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @s2n_print_stacktrace(ptr noundef %1260) #8
  %1262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1263 = trunc nuw i8 %1262 to i1
  br i1 %1263, label %1264, label %1268

1264:                                             ; preds = %1258
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @fileno(ptr noundef %1265) #8
  %1267 = call i32 @isatty(i32 noundef %1266) #8
  %.not149 = icmp eq i32 %1267, 0
  br i1 %.not149, label %1268, label %1269

1268:                                             ; preds = %1264, %1258
  br label %1269

1269:                                             ; preds = %1264, %1268
  %.str.5.sink648 = phi ptr [ @.str.5, %1268 ], [ @.str.2, %1264 ]
  store i32 %1259, ptr %1174, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = load i32, ptr %1120, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror(i32 noundef %1272, ptr noundef nonnull @.str.4) #8
  %1274 = load i32, ptr %1120, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror_debug(i32 noundef %1274, ptr noundef nonnull @.str.4) #8
  %1276 = load i32, ptr %1174, align 4, !tbaa !5
  %1277 = call ptr @strerror(i32 noundef %1276) #8
  %1278 = load i32, ptr %1174, align 4, !tbaa !5
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef nonnull %.str.5.sink648, i32 noundef %1271, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %1273, ptr noundef %1275, ptr noundef %1277, i32 noundef %1278) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1280:                                             ; preds = %1255
  %1281 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #8
  %1282 = icmp eq i32 %1281, -1
  br i1 %1282, label %1283, label %1305

1283:                                             ; preds = %1280
  %1284 = load i32, ptr %1174, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @s2n_print_stacktrace(ptr noundef %1285) #8
  %1287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1288 = trunc nuw i8 %1287 to i1
  br i1 %1288, label %1289, label %1293

1289:                                             ; preds = %1283
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 @fileno(ptr noundef %1290) #8
  %1292 = call i32 @isatty(i32 noundef %1291) #8
  %.not148 = icmp eq i32 %1292, 0
  br i1 %.not148, label %1293, label %1294

1293:                                             ; preds = %1289, %1283
  br label %1294

1294:                                             ; preds = %1289, %1293
  %.str.5.sink657 = phi ptr [ @.str.5, %1293 ], [ @.str.2, %1289 ]
  store i32 %1284, ptr %1174, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = load i32, ptr %1120, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.4) #8
  %1299 = load i32, ptr %1120, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.4) #8
  %1301 = load i32, ptr %1174, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #8
  %1303 = load i32, ptr %1174, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef nonnull %.str.5.sink657, i32 noundef %1296, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #10
  call void @exit(i32 noundef 1) #11
  unreachable

1305:                                             ; preds = %1280
  %1306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1307 = trunc nuw i8 %1306 to i1
  br i1 %1307, label %1308, label %1319

1308:                                             ; preds = %1305
  %1309 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1310 = call i32 @fileno(ptr noundef %1309) #8
  %1311 = call i32 @isatty(i32 noundef %1310) #8
  %.not145 = icmp eq i32 %1311, 0
  br i1 %.not145, label %1319, label %1312

1312:                                             ; preds = %1308
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not147 = icmp eq i32 %1313, 0
  %1314 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not147, label %1317, label %1315

1315:                                             ; preds = %1312
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1314, ptr noundef nonnull @.str.37, i32 noundef %1313) #8
  br label %1326

1317:                                             ; preds = %1312
  %1318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1314, ptr noundef nonnull @.str.38) #8
  br label %1326

1319:                                             ; preds = %1308, %1305
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not146 = icmp eq i32 %1320, 0
  %1321 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not146, label %1324, label %1322

1322:                                             ; preds = %1319
  %1323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef nonnull @.str.39, i32 noundef %1320) #8
  br label %1326

1324:                                             ; preds = %1319
  %1325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef nonnull @.str.40) #8
  br label %1326

1326:                                             ; preds = %1322, %1324, %1315, %1317
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare ptr @s2n_config_new() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_client_cert_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_client_cert_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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


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