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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_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 [103 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [75 x i8], align 1
@s2n_server_supported_versions_extension = external constant %struct.s2n_extension_type, align 8
@.str.13 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1

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

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #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 ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i16, align 2
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i16, align 2
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i8, align 1
  %36 = alloca i16, align 2
  %37 = alloca %struct.s2n_stuffer, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i8, align 1
  %49 = alloca i16, align 2
  %50 = alloca %struct.s2n_stuffer, align 8
  %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 ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %struct.s2n_stuffer, align 8
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %struct.s2n_stuffer, align 8
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = 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 %84

84:                                               ; preds = %2
  br label %85

85:                                               ; preds = %84
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %86 = load ptr, ptr @stdout, align 8, !tbaa !9
  %87 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef @.str, ptr noundef @.str.1) #8
  %88 = load ptr, ptr @stdout, align 8, !tbaa !9
  %89 = call i32 @fflush(ptr noundef %88)
  br label %90

90:                                               ; preds = %85
  %91 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %92 = icmp eq i32 %91, -1
  br i1 %92, label %93, label %144

93:                                               ; preds = %90
  br label %94

94:                                               ; preds = %93
  br label %95

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

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

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

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

141:                                              ; preds = %124, %107
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %142

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

143:                                              ; No predecessors!
  br label %144

144:                                              ; preds = %143, %90
  br label %145

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145
  %147 = load i32, ptr @test_count, align 4, !tbaa !5
  %148 = add nsw i32 %147, 1
  store i32 %148, ptr @test_count, align 4, !tbaa !5
  %149 = call i32 @s2n_enable_atexit()
  %150 = icmp eq i32 %149, -1
  br i1 %150, label %151, label %202

151:                                              ; preds = %146
  br label %152

152:                                              ; preds = %151
  br label %153

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

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

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

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

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

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

201:                                              ; No predecessors!
  br label %202

202:                                              ; preds = %201, %146
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  %206 = call i32 @s2n_init()
  %207 = icmp eq i32 %206, -1
  br i1 %207, label %208, label %259

208:                                              ; preds = %205
  br label %209

209:                                              ; preds = %208
  br label %210

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

217:                                              ; preds = %210
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = call i32 @fileno(ptr noundef %218) #8
  %220 = call i32 @isatty(i32 noundef %219) #8
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %239

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

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

256:                                              ; preds = %239, %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %257

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

258:                                              ; No predecessors!
  br label %259

259:                                              ; preds = %258, %205
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  %263 = load i32, ptr @test_count, align 4, !tbaa !5
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr @test_count, align 4, !tbaa !5
  %265 = call i32 (...) @s2n_enable_tls13_in_test()
  %266 = icmp eq i32 %265, -1
  br i1 %266, label %267, label %318

267:                                              ; preds = %262
  br label %268

268:                                              ; preds = %267
  br label %269

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

276:                                              ; preds = %269
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @fileno(ptr noundef %277) #8
  %279 = call i32 @isatty(i32 noundef %278) #8
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %281, label %298

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

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

315:                                              ; preds = %298, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %316

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

317:                                              ; No predecessors!
  br label %318

318:                                              ; preds = %317, %262
  br label %319

319:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  store i8 34, ptr %10, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %320

320:                                              ; preds = %319
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = call ptr @s2n_config_new()
  store ptr %323, ptr %11, align 8, !tbaa !9
  %324 = icmp eq ptr %323, null
  br i1 %324, label %325, label %378

325:                                              ; preds = %320
  br label %326

326:                                              ; preds = %325
  br label %327

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %328 = call ptr @__errno_location() #9
  %329 = load i32, ptr %328, align 4, !tbaa !5
  store i32 %329, ptr %12, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @s2n_print_stacktrace(ptr noundef %330)
  %332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %333 = trunc i8 %332 to i1
  br i1 %333, label %334, label %356

334:                                              ; preds = %327
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @fileno(ptr noundef %335) #8
  %337 = call i32 @isatty(i32 noundef %336) #8
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %356

339:                                              ; preds = %334
  %340 = load i32, ptr %12, align 4, !tbaa !5
  %341 = call ptr @__errno_location() #9
  store i32 %340, ptr %341, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror(i32 noundef %345, ptr noundef @.str.4)
  %347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror_debug(i32 noundef %348, ptr noundef @.str.4)
  %350 = call ptr @__errno_location() #9
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call ptr @strerror(i32 noundef %351) #8
  %353 = call ptr @__errno_location() #9
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %342, ptr noundef @.str.2, i32 noundef %343, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 45, ptr noundef %346, ptr noundef %349, ptr noundef %352, i32 noundef %354) #8
  br label %373

356:                                              ; preds = %334, %327
  %357 = load i32, ptr %12, align 4, !tbaa !5
  %358 = call ptr @__errno_location() #9
  store i32 %357, ptr %358, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror(i32 noundef %362, ptr noundef @.str.4)
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef @.str.4)
  %367 = call ptr @__errno_location() #9
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @strerror(i32 noundef %368) #8
  %370 = call ptr @__errno_location() #9
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %359, ptr noundef @.str.5, i32 noundef %360, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 45, ptr noundef %363, ptr noundef %366, ptr noundef %369, i32 noundef %371) #8
  br label %373

373:                                              ; preds = %356, %339
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %374

374:                                              ; preds = %373
  br label %375

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

376:                                              ; No predecessors!
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377, %320
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %381

381:                                              ; preds = %380
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !5
  %384 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %384, ptr %13, align 8, !tbaa !9
  %385 = icmp eq ptr %384, null
  br i1 %385, label %386, label %439

386:                                              ; preds = %381
  br label %387

387:                                              ; preds = %386
  br label %388

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

395:                                              ; preds = %388
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @fileno(ptr noundef %396) #8
  %398 = call i32 @isatty(i32 noundef %397) #8
  %399 = icmp ne i32 %398, 0
  br i1 %399, label %400, label %417

400:                                              ; preds = %395
  %401 = load i32, ptr %14, align 4, !tbaa !5
  %402 = call ptr @__errno_location() #9
  store i32 %401, ptr %402, align 4, !tbaa !5
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror(i32 noundef %406, ptr noundef @.str.4)
  %408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror_debug(i32 noundef %409, ptr noundef @.str.4)
  %411 = call ptr @__errno_location() #9
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @strerror(i32 noundef %412) #8
  %414 = call ptr @__errno_location() #9
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %403, ptr noundef @.str.2, i32 noundef %404, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 50, ptr noundef %407, ptr noundef %410, ptr noundef %413, i32 noundef %415) #8
  br label %434

417:                                              ; preds = %395, %388
  %418 = load i32, ptr %14, align 4, !tbaa !5
  %419 = call ptr @__errno_location() #9
  store i32 %418, ptr %419, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror(i32 noundef %423, ptr noundef @.str.4)
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef @.str.4)
  %428 = call ptr @__errno_location() #9
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #8
  %431 = call ptr @__errno_location() #9
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %420, ptr noundef @.str.5, i32 noundef %421, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 50, ptr noundef %424, ptr noundef %427, ptr noundef %430, i32 noundef %432) #8
  br label %434

434:                                              ; preds = %417, %400
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %435

435:                                              ; preds = %434
  br label %436

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

437:                                              ; No predecessors!
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438, %381
  br label %440

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = load ptr, ptr %13, align 8, !tbaa !9
  %446 = load ptr, ptr %11, align 8, !tbaa !9
  %447 = call i32 @s2n_connection_set_config(ptr noundef %445, ptr noundef %446)
  %448 = icmp eq i32 %447, -1
  br i1 %448, label %449, label %502

449:                                              ; preds = %442
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %452 = call ptr @__errno_location() #9
  %453 = load i32, ptr %452, align 4, !tbaa !5
  store i32 %453, ptr %15, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @s2n_print_stacktrace(ptr noundef %454)
  %456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %480

458:                                              ; preds = %451
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @fileno(ptr noundef %459) #8
  %461 = call i32 @isatty(i32 noundef %460) #8
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %480

463:                                              ; preds = %458
  %464 = load i32, ptr %15, align 4, !tbaa !5
  %465 = call ptr @__errno_location() #9
  store i32 %464, ptr %465, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror(i32 noundef %469, ptr noundef @.str.4)
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror_debug(i32 noundef %472, ptr noundef @.str.4)
  %474 = call ptr @__errno_location() #9
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #8
  %477 = call ptr @__errno_location() #9
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %466, ptr noundef @.str.2, i32 noundef %467, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 51, ptr noundef %470, ptr noundef %473, ptr noundef %476, i32 noundef %478) #8
  br label %497

480:                                              ; preds = %458, %451
  %481 = load i32, ptr %15, align 4, !tbaa !5
  %482 = call ptr @__errno_location() #9
  store i32 %481, ptr %482, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror(i32 noundef %486, ptr noundef @.str.4)
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror_debug(i32 noundef %489, ptr noundef @.str.4)
  %491 = call ptr @__errno_location() #9
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @strerror(i32 noundef %492) #8
  %494 = call ptr @__errno_location() #9
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef @.str.5, i32 noundef %484, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 51, ptr noundef %487, ptr noundef %490, ptr noundef %493, i32 noundef %495) #8
  br label %497

497:                                              ; preds = %480, %463
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %498

498:                                              ; preds = %497
  br label %499

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

500:                                              ; No predecessors!
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501, %442
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 2, ptr %16) #8
  store i16 6, ptr %16, align 2, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 40, ptr %17) #8
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 40, i1 false)
  br label %505

505:                                              ; preds = %504
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = load i16, ptr %16, align 2, !tbaa !16
  %509 = zext i16 %508 to i32
  %510 = call i32 @s2n_stuffer_alloc(ptr noundef %17, i32 noundef %509)
  %511 = icmp eq i32 %510, -1
  br i1 %511, label %512, label %565

512:                                              ; preds = %505
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %515 = call ptr @__errno_location() #9
  %516 = load i32, ptr %515, align 4, !tbaa !5
  store i32 %516, ptr %18, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = call i32 @s2n_print_stacktrace(ptr noundef %517)
  %519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %520 = trunc i8 %519 to i1
  br i1 %520, label %521, label %543

521:                                              ; preds = %514
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 @fileno(ptr noundef %522) #8
  %524 = call i32 @isatty(i32 noundef %523) #8
  %525 = icmp ne i32 %524, 0
  br i1 %525, label %526, label %543

526:                                              ; preds = %521
  %527 = load i32, ptr %18, align 4, !tbaa !5
  %528 = call ptr @__errno_location() #9
  store i32 %527, ptr %528, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror(i32 noundef %532, ptr noundef @.str.4)
  %534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror_debug(i32 noundef %535, ptr noundef @.str.4)
  %537 = call ptr @__errno_location() #9
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @strerror(i32 noundef %538) #8
  %540 = call ptr @__errno_location() #9
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef @.str.2, i32 noundef %530, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 56, ptr noundef %533, ptr noundef %536, ptr noundef %539, i32 noundef %541) #8
  br label %560

543:                                              ; preds = %521, %514
  %544 = load i32, ptr %18, align 4, !tbaa !5
  %545 = call ptr @__errno_location() #9
  store i32 %544, ptr %545, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef @.str.4)
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef @.str.4)
  %554 = call ptr @__errno_location() #9
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #8
  %557 = call ptr @__errno_location() #9
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef @.str.5, i32 noundef %547, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 56, ptr noundef %550, ptr noundef %553, ptr noundef %556, i32 noundef %558) #8
  br label %560

560:                                              ; preds = %543, %526
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %561

561:                                              ; preds = %560
  br label %562

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

563:                                              ; No predecessors!
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564, %505
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_supported_versions_extension, i32 0, i32 3), align 8, !tbaa !18
  %572 = load ptr, ptr %13, align 8, !tbaa !9
  %573 = call i32 %571(ptr noundef %572, ptr noundef %17)
  %574 = icmp eq i32 %573, -1
  br i1 %574, label %575, label %628

575:                                              ; preds = %568
  br label %576

576:                                              ; preds = %575
  br label %577

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

584:                                              ; preds = %577
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = call i32 @fileno(ptr noundef %585) #8
  %587 = call i32 @isatty(i32 noundef %586) #8
  %588 = icmp ne i32 %587, 0
  br i1 %588, label %589, label %606

589:                                              ; preds = %584
  %590 = load i32, ptr %19, align 4, !tbaa !5
  %591 = call ptr @__errno_location() #9
  store i32 %590, ptr %591, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror(i32 noundef %595, ptr noundef @.str.4)
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror_debug(i32 noundef %598, ptr noundef @.str.4)
  %600 = call ptr @__errno_location() #9
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @strerror(i32 noundef %601) #8
  %603 = call ptr @__errno_location() #9
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %592, ptr noundef @.str.2, i32 noundef %593, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 58, ptr noundef %596, ptr noundef %599, ptr noundef %602, i32 noundef %604) #8
  br label %623

606:                                              ; preds = %584, %577
  %607 = load i32, ptr %19, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #9
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef @.str.4)
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef @.str.4)
  %617 = call ptr @__errno_location() #9
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #8
  %620 = call ptr @__errno_location() #9
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.5, i32 noundef %610, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 58, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #8
  br label %623

623:                                              ; preds = %606, %589
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %624

624:                                              ; preds = %623
  br label %625

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

626:                                              ; No predecessors!
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627, %568
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 2, ptr %20) #8
  %631 = load ptr, ptr %13, align 8, !tbaa !9
  %632 = call i32 @s2n_extensions_server_supported_versions_size(ptr noundef %631)
  %633 = sub nsw i32 %632, 2
  %634 = sub nsw i32 %633, 2
  %635 = trunc i32 %634 to i16
  store i16 %635, ptr %20, align 2, !tbaa !16
  br label %636

636:                                              ; preds = %630
  %637 = load i32, ptr @test_count, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  store i32 %638, ptr @test_count, align 4, !tbaa !5
  %639 = load i16, ptr %20, align 2, !tbaa !16
  %640 = zext i16 %639 to i32
  %641 = getelementptr inbounds %struct.s2n_stuffer, ptr %17, i32 0, i32 2
  %642 = load i32, ptr %641, align 4, !tbaa !20
  %643 = getelementptr inbounds %struct.s2n_stuffer, ptr %17, i32 0, i32 1
  %644 = load i32, ptr %643, align 8, !tbaa !23
  %645 = sub i32 %642, %644
  %646 = icmp eq i32 %640, %645
  br i1 %646, label %700, label %647

647:                                              ; preds = %636
  br label %648

648:                                              ; preds = %647
  br label %649

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

656:                                              ; preds = %649
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @fileno(ptr noundef %657) #8
  %659 = call i32 @isatty(i32 noundef %658) #8
  %660 = icmp ne i32 %659, 0
  br i1 %660, label %661, label %678

661:                                              ; preds = %656
  %662 = load i32, ptr %21, align 4, !tbaa !5
  %663 = call ptr @__errno_location() #9
  store i32 %662, ptr %663, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef @.str.4)
  %669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror_debug(i32 noundef %670, ptr noundef @.str.4)
  %672 = call ptr @__errno_location() #9
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #8
  %675 = call ptr @__errno_location() #9
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef @.str.2, i32 noundef %665, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 63, ptr noundef %668, ptr noundef %671, ptr noundef %674, i32 noundef %676) #8
  br label %695

678:                                              ; preds = %656, %649
  %679 = load i32, ptr %21, align 4, !tbaa !5
  %680 = call ptr @__errno_location() #9
  store i32 %679, ptr %680, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror(i32 noundef %684, ptr noundef @.str.4)
  %686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef @.str.4)
  %689 = call ptr @__errno_location() #9
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @strerror(i32 noundef %690) #8
  %692 = call ptr @__errno_location() #9
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %681, ptr noundef @.str.5, i32 noundef %682, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 63, ptr noundef %685, ptr noundef %688, ptr noundef %691, i32 noundef %693) #8
  br label %695

695:                                              ; preds = %678, %661
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %696

696:                                              ; preds = %695
  br label %697

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

698:                                              ; No predecessors!
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699, %636
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  store ptr null, ptr %22, align 8, !tbaa !9
  br label %703

703:                                              ; preds = %702
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = add nsw i32 %704, 1
  store i32 %705, ptr @test_count, align 4, !tbaa !5
  %706 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %706, ptr %22, align 8, !tbaa !9
  %707 = icmp eq ptr %706, null
  br i1 %707, label %708, label %761

708:                                              ; preds = %703
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %711 = call ptr @__errno_location() #9
  %712 = load i32, ptr %711, align 4, !tbaa !5
  store i32 %712, ptr %23, align 4, !tbaa !5
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @s2n_print_stacktrace(ptr noundef %713)
  %715 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %716 = trunc i8 %715 to i1
  br i1 %716, label %717, label %739

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

722:                                              ; preds = %717
  %723 = load i32, ptr %23, align 4, !tbaa !5
  %724 = call ptr @__errno_location() #9
  store i32 %723, ptr %724, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef @.str.4)
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef @.str.4)
  %733 = call ptr @__errno_location() #9
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #8
  %736 = call ptr @__errno_location() #9
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef @.str.2, i32 noundef %726, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 67, ptr noundef %729, ptr noundef %732, ptr noundef %735, i32 noundef %737) #8
  br label %756

739:                                              ; preds = %717, %710
  %740 = load i32, ptr %23, align 4, !tbaa !5
  %741 = call ptr @__errno_location() #9
  store i32 %740, ptr %741, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror(i32 noundef %745, ptr noundef @.str.4)
  %747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror_debug(i32 noundef %748, ptr noundef @.str.4)
  %750 = call ptr @__errno_location() #9
  %751 = load i32, ptr %750, align 4, !tbaa !5
  %752 = call ptr @strerror(i32 noundef %751) #8
  %753 = call ptr @__errno_location() #9
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef @.str.5, i32 noundef %743, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 67, ptr noundef %746, ptr noundef %749, ptr noundef %752, i32 noundef %754) #8
  br label %756

756:                                              ; preds = %739, %722
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %757

757:                                              ; preds = %756
  br label %758

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

759:                                              ; No predecessors!
  br label %760

760:                                              ; preds = %759
  br label %761

761:                                              ; preds = %760, %703
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  br label %764

764:                                              ; preds = %763
  %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 = load ptr, ptr %22, align 8, !tbaa !9
  %768 = load ptr, ptr %11, align 8, !tbaa !9
  %769 = call i32 @s2n_connection_set_config(ptr noundef %767, ptr noundef %768)
  %770 = icmp eq i32 %769, -1
  br i1 %770, label %771, label %824

771:                                              ; preds = %764
  br label %772

772:                                              ; preds = %771
  br label %773

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

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

785:                                              ; preds = %780
  %786 = load i32, ptr %24, align 4, !tbaa !5
  %787 = call ptr @__errno_location() #9
  store i32 %786, ptr %787, align 4, !tbaa !5
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %791 = load i32, ptr %790, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef @.str.4)
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef @.str.4)
  %796 = call ptr @__errno_location() #9
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @strerror(i32 noundef %797) #8
  %799 = call ptr @__errno_location() #9
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %788, ptr noundef @.str.2, i32 noundef %789, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 68, ptr noundef %792, ptr noundef %795, ptr noundef %798, i32 noundef %800) #8
  br label %819

802:                                              ; preds = %780, %773
  %803 = load i32, ptr %24, align 4, !tbaa !5
  %804 = call ptr @__errno_location() #9
  store i32 %803, ptr %804, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call ptr @s2n_strerror(i32 noundef %808, ptr noundef @.str.4)
  %810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror_debug(i32 noundef %811, ptr noundef @.str.4)
  %813 = call ptr @__errno_location() #9
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @strerror(i32 noundef %814) #8
  %816 = call ptr @__errno_location() #9
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef @.str.5, i32 noundef %806, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 68, ptr noundef %809, ptr noundef %812, ptr noundef %815, i32 noundef %817) #8
  br label %819

819:                                              ; preds = %802, %785
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %820

820:                                              ; preds = %819
  br label %821

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

822:                                              ; No predecessors!
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823, %764
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !24
  %831 = load ptr, ptr %22, align 8, !tbaa !9
  %832 = call i32 %830(ptr noundef %831, ptr noundef %17)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %887

834:                                              ; preds = %827
  br label %835

835:                                              ; preds = %834
  br label %836

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

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

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

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

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

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

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

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = load ptr, ptr %22, align 8, !tbaa !9
  %894 = getelementptr inbounds %struct.s2n_connection, ptr %893, i32 0, i32 21
  %895 = load i8, ptr %894, align 2, !tbaa !25
  %896 = zext i8 %895 to i32
  %897 = load i8, ptr %10, align 1, !tbaa !15
  %898 = zext i8 %897 to i32
  %899 = icmp eq i32 %896, %898
  br i1 %899, label %953, label %900

900:                                              ; preds = %890
  br label %901

901:                                              ; preds = %900
  br label %902

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

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

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

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

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

949:                                              ; preds = %948
  br label %950

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

951:                                              ; No predecessors!
  br label %952

952:                                              ; preds = %951
  br label %953

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

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = load ptr, ptr %22, align 8, !tbaa !9
  %960 = getelementptr inbounds %struct.s2n_connection, ptr %959, i32 0, i32 22
  %961 = load i8, ptr %960, align 1, !tbaa !49
  %962 = zext i8 %961 to i32
  %963 = load i8, ptr %10, align 1, !tbaa !15
  %964 = zext i8 %963 to i32
  %965 = icmp eq i32 %962, %964
  br i1 %965, label %1019, label %966

966:                                              ; preds = %956
  br label %967

967:                                              ; preds = %966
  br label %968

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

975:                                              ; preds = %968
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @fileno(ptr noundef %976) #8
  %978 = call i32 @isatty(i32 noundef %977) #8
  %979 = icmp ne i32 %978, 0
  br i1 %979, label %980, label %997

980:                                              ; preds = %975
  %981 = load i32, ptr %27, align 4, !tbaa !5
  %982 = call ptr @__errno_location() #9
  store i32 %981, ptr %982, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %986, ptr noundef @.str.4)
  %988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef @.str.4)
  %991 = call ptr @__errno_location() #9
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @strerror(i32 noundef %992) #8
  %994 = call ptr @__errno_location() #9
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %983, ptr noundef @.str.2, i32 noundef %984, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 72, ptr noundef %987, ptr noundef %990, ptr noundef %993, i32 noundef %995) #8
  br label %1014

997:                                              ; preds = %975, %968
  %998 = load i32, ptr %27, align 4, !tbaa !5
  %999 = call ptr @__errno_location() #9
  store i32 %998, ptr %999, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef @.str.4)
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror_debug(i32 noundef %1006, ptr noundef @.str.4)
  %1008 = call ptr @__errno_location() #9
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #8
  %1011 = call ptr @__errno_location() #9
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef @.str.5, i32 noundef %1001, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, i32 noundef %1012) #8
  br label %1014

1014:                                             ; preds = %997, %980
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

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

1017:                                             ; No predecessors!
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018, %956
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, 1
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = load ptr, ptr %22, align 8, !tbaa !9
  %1026 = getelementptr inbounds %struct.s2n_connection, ptr %1025, i32 0, i32 23
  %1027 = load i8, ptr %1026, align 4, !tbaa !50
  %1028 = zext i8 %1027 to i32
  %1029 = load i8, ptr %10, align 1, !tbaa !15
  %1030 = zext i8 %1029 to i32
  %1031 = icmp eq i32 %1028, %1030
  br i1 %1031, label %1085, label %1032

1032:                                             ; preds = %1022
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

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

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

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

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

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

1081:                                             ; preds = %1080
  br label %1082

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

1083:                                             ; No predecessors!
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

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

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  %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 = load ptr, ptr %22, align 8, !tbaa !9
  %1092 = call i32 @s2n_connection_free(ptr noundef %1091)
  %1093 = icmp eq i32 %1092, -1
  br i1 %1093, label %1094, label %1147

1094:                                             ; preds = %1088
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

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

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

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

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

1142:                                             ; preds = %1125, %1108
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

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

1145:                                             ; No predecessors!
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146, %1088
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = load ptr, ptr %13, align 8, !tbaa !9
  %1154 = call i32 @s2n_connection_free(ptr noundef %1153)
  %1155 = icmp eq i32 %1154, -1
  br i1 %1155, label %1156, label %1209

1156:                                             ; preds = %1150
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

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

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

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

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

1204:                                             ; preds = %1187, %1170
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

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

1207:                                             ; No predecessors!
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208, %1150
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = add nsw i32 %1213, 1
  store i32 %1214, ptr @test_count, align 4, !tbaa !5
  %1215 = call i32 @s2n_stuffer_free(ptr noundef %17)
  %1216 = icmp eq i32 %1215, -1
  br i1 %1216, label %1217, label %1270

1217:                                             ; preds = %1212
  br label %1218

1218:                                             ; preds = %1217
  br label %1219

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

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

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

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

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

1266:                                             ; preds = %1265
  br label %1267

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

1268:                                             ; No predecessors!
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269, %1212
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

1272:                                             ; preds = %1271
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  store ptr null, ptr %32, align 8, !tbaa !9
  br label %1273

1273:                                             ; preds = %1272
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = add nsw i32 %1274, 1
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1276, ptr %32, align 8, !tbaa !9
  %1277 = icmp eq ptr %1276, null
  br i1 %1277, label %1278, label %1331

1278:                                             ; preds = %1273
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

1280:                                             ; preds = %1279
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1281 = call ptr @__errno_location() #9
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  store i32 %1282, ptr %33, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @s2n_print_stacktrace(ptr noundef %1283)
  %1285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1286 = trunc i8 %1285 to i1
  br i1 %1286, label %1287, label %1309

1287:                                             ; preds = %1280
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @fileno(ptr noundef %1288) #8
  %1290 = call i32 @isatty(i32 noundef %1289) #8
  %1291 = icmp ne i32 %1290, 0
  br i1 %1291, label %1292, label %1309

1292:                                             ; preds = %1287
  %1293 = load i32, ptr %33, align 4, !tbaa !5
  %1294 = call ptr @__errno_location() #9
  store i32 %1293, ptr %1294, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror(i32 noundef %1298, ptr noundef @.str.4)
  %1300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef @.str.4)
  %1303 = call ptr @__errno_location() #9
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @strerror(i32 noundef %1304) #8
  %1306 = call ptr @__errno_location() #9
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef @.str.2, i32 noundef %1296, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1299, ptr noundef %1302, ptr noundef %1305, i32 noundef %1307) #8
  br label %1326

1309:                                             ; preds = %1287, %1280
  %1310 = load i32, ptr %33, align 4, !tbaa !5
  %1311 = call ptr @__errno_location() #9
  store i32 %1310, ptr %1311, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef @.str.4)
  %1317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror_debug(i32 noundef %1318, ptr noundef @.str.4)
  %1320 = call ptr @__errno_location() #9
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #8
  %1323 = call ptr @__errno_location() #9
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef @.str.5, i32 noundef %1313, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1316, ptr noundef %1319, ptr noundef %1322, i32 noundef %1324) #8
  br label %1326

1326:                                             ; preds = %1309, %1292
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

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

1329:                                             ; No predecessors!
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330, %1273
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

1334:                                             ; preds = %1333
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = load ptr, ptr %32, align 8, !tbaa !9
  %1338 = load ptr, ptr %11, align 8, !tbaa !9
  %1339 = call i32 @s2n_connection_set_config(ptr noundef %1337, ptr noundef %1338)
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1394

1341:                                             ; preds = %1334
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

1343:                                             ; preds = %1342
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1344 = call ptr @__errno_location() #9
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  store i32 %1345, ptr %34, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @s2n_print_stacktrace(ptr noundef %1346)
  %1348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1349 = trunc i8 %1348 to i1
  br i1 %1349, label %1350, label %1372

1350:                                             ; preds = %1343
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #8
  %1353 = call i32 @isatty(i32 noundef %1352) #8
  %1354 = icmp ne i32 %1353, 0
  br i1 %1354, label %1355, label %1372

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

1372:                                             ; preds = %1350, %1343
  %1373 = load i32, ptr %34, align 4, !tbaa !5
  %1374 = call ptr @__errno_location() #9
  store i32 %1373, ptr %1374, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror(i32 noundef %1378, ptr noundef @.str.4)
  %1380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef @.str.4)
  %1383 = call ptr @__errno_location() #9
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @strerror(i32 noundef %1384) #8
  %1386 = call ptr @__errno_location() #9
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1375, ptr noundef @.str.5, i32 noundef %1376, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1379, ptr noundef %1382, ptr noundef %1385, i32 noundef %1387) #8
  br label %1389

1389:                                             ; preds = %1372, %1355
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

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

1392:                                             ; No predecessors!
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393, %1334
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  store i8 0, ptr %35, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 2, ptr %36) #8
  store i16 6, ptr %36, align 2, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 40, ptr %37) #8
  call void @llvm.memset.p0.i64(ptr align 8 %37, i8 0, i64 40, i1 false)
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = add nsw i32 %1398, 1
  store i32 %1399, ptr @test_count, align 4, !tbaa !5
  %1400 = load i16, ptr %36, align 2, !tbaa !16
  %1401 = zext i16 %1400 to i32
  %1402 = call i32 @s2n_stuffer_alloc(ptr noundef %37, i32 noundef %1401)
  %1403 = icmp eq i32 %1402, -1
  br i1 %1403, label %1404, label %1457

1404:                                             ; preds = %1397
  br label %1405

1405:                                             ; preds = %1404
  br label %1406

1406:                                             ; preds = %1405
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1407 = call ptr @__errno_location() #9
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  store i32 %1408, ptr %38, align 4, !tbaa !5
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1410 = call i32 @s2n_print_stacktrace(ptr noundef %1409)
  %1411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1412 = trunc i8 %1411 to i1
  br i1 %1412, label %1413, label %1435

1413:                                             ; preds = %1406
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1415 = call i32 @fileno(ptr noundef %1414) #8
  %1416 = call i32 @isatty(i32 noundef %1415) #8
  %1417 = icmp ne i32 %1416, 0
  br i1 %1417, label %1418, label %1435

1418:                                             ; preds = %1413
  %1419 = load i32, ptr %38, align 4, !tbaa !5
  %1420 = call ptr @__errno_location() #9
  store i32 %1419, ptr %1420, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call ptr @__errno_location() #9
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #8
  %1432 = call ptr @__errno_location() #9
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1421, ptr noundef @.str.2, i32 noundef %1422, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1425, ptr noundef %1428, ptr noundef %1431, i32 noundef %1433) #8
  br label %1452

1435:                                             ; preds = %1413, %1406
  %1436 = load i32, ptr %38, align 4, !tbaa !5
  %1437 = call ptr @__errno_location() #9
  store i32 %1436, ptr %1437, align 4, !tbaa !5
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = load i32, ptr @test_count, align 4, !tbaa !5
  %1440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror(i32 noundef %1441, ptr noundef @.str.4)
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror_debug(i32 noundef %1444, ptr noundef @.str.4)
  %1446 = call ptr @__errno_location() #9
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @strerror(i32 noundef %1447) #8
  %1449 = call ptr @__errno_location() #9
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1438, ptr noundef @.str.5, i32 noundef %1439, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1442, ptr noundef %1445, ptr noundef %1448, i32 noundef %1450) #8
  br label %1452

1452:                                             ; preds = %1435, %1418
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

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

1455:                                             ; No predecessors!
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456, %1397
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr @test_count, align 4, !tbaa !5
  %1463 = load i8, ptr %35, align 1, !tbaa !15
  %1464 = call i32 @write_test_supported_version(ptr noundef %37, i8 noundef zeroext %1463)
  %1465 = icmp eq i32 %1464, -1
  br i1 %1465, label %1466, label %1519

1466:                                             ; preds = %1460
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

1468:                                             ; preds = %1467
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1469 = call ptr @__errno_location() #9
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  store i32 %1470, ptr %39, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @s2n_print_stacktrace(ptr noundef %1471)
  %1473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1474 = trunc i8 %1473 to i1
  br i1 %1474, label %1475, label %1497

1475:                                             ; preds = %1468
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @fileno(ptr noundef %1476) #8
  %1478 = call i32 @isatty(i32 noundef %1477) #8
  %1479 = icmp ne i32 %1478, 0
  br i1 %1479, label %1480, label %1497

1480:                                             ; preds = %1475
  %1481 = load i32, ptr %39, align 4, !tbaa !5
  %1482 = call ptr @__errno_location() #9
  store i32 %1481, ptr %1482, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef @.str.4)
  %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_debug(i32 noundef %1489, ptr noundef @.str.4)
  %1491 = call ptr @__errno_location() #9
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #8
  %1494 = call ptr @__errno_location() #9
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef @.str.2, i32 noundef %1484, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1487, ptr noundef %1490, ptr noundef %1493, i32 noundef %1495) #8
  br label %1514

1497:                                             ; preds = %1475, %1468
  %1498 = load i32, ptr %39, align 4, !tbaa !5
  %1499 = call ptr @__errno_location() #9
  store i32 %1498, ptr %1499, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror(i32 noundef %1503, ptr noundef @.str.4)
  %1505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @s2n_strerror_debug(i32 noundef %1506, ptr noundef @.str.4)
  %1508 = call ptr @__errno_location() #9
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #8
  %1511 = call ptr @__errno_location() #9
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1500, ptr noundef @.str.5, i32 noundef %1501, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1504, ptr noundef %1507, ptr noundef %1510, i32 noundef %1512) #8
  br label %1514

1514:                                             ; preds = %1497, %1480
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

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

1517:                                             ; No predecessors!
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518, %1460
  br label %1520

1520:                                             ; preds = %1519
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

1524:                                             ; preds = %1523
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = add nsw i32 %1525, 1
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !24
  %1528 = load ptr, ptr %32, align 8, !tbaa !9
  %1529 = call i32 %1527(ptr noundef %1528, ptr noundef %37)
  %1530 = icmp eq i32 %1529, -1
  br i1 %1530, label %1584, label %1531

1531:                                             ; preds = %1524
  br label %1532

1532:                                             ; preds = %1531
  br label %1533

1533:                                             ; preds = %1532
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1534 = call ptr @__errno_location() #9
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  store i32 %1535, ptr %40, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = call i32 @s2n_print_stacktrace(ptr noundef %1536)
  %1538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1539 = trunc i8 %1538 to i1
  br i1 %1539, label %1540, label %1562

1540:                                             ; preds = %1533
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @fileno(ptr noundef %1541) #8
  %1543 = call i32 @isatty(i32 noundef %1542) #8
  %1544 = icmp ne i32 %1543, 0
  br i1 %1544, label %1545, label %1562

1545:                                             ; preds = %1540
  %1546 = load i32, ptr %40, align 4, !tbaa !5
  %1547 = call ptr @__errno_location() #9
  store i32 %1546, ptr %1547, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = load i32, ptr @test_count, align 4, !tbaa !5
  %1550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef @.str.4)
  %1553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror_debug(i32 noundef %1554, ptr noundef @.str.4)
  %1556 = call ptr @__errno_location() #9
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call ptr @strerror(i32 noundef %1557) #8
  %1559 = call ptr @__errno_location() #9
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1548, ptr noundef @.str.2, i32 noundef %1549, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1552, ptr noundef %1555, ptr noundef %1558, i32 noundef %1560) #8
  br label %1579

1562:                                             ; preds = %1540, %1533
  %1563 = load i32, ptr %40, align 4, !tbaa !5
  %1564 = call ptr @__errno_location() #9
  store i32 %1563, ptr %1564, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef @.str.4)
  %1570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror_debug(i32 noundef %1571, ptr noundef @.str.4)
  %1573 = call ptr @__errno_location() #9
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #8
  %1576 = call ptr @__errno_location() #9
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef @.str.5, i32 noundef %1566, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1569, ptr noundef %1572, ptr noundef %1575, i32 noundef %1577) #8
  br label %1579

1579:                                             ; preds = %1562, %1545
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

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

1582:                                             ; No predecessors!
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583, %1524
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

1587:                                             ; preds = %1586
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = add nsw i32 %1588, 1
  store i32 %1589, ptr @test_count, align 4, !tbaa !5
  %1590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = icmp eq i32 %1591, 335544322
  br i1 %1592, label %1646, label %1593

1593:                                             ; preds = %1587
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1596 = call ptr @__errno_location() #9
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  store i32 %1597, ptr %41, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @s2n_print_stacktrace(ptr noundef %1598)
  %1600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1601 = trunc i8 %1600 to i1
  br i1 %1601, label %1602, label %1624

1602:                                             ; preds = %1595
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = call i32 @fileno(ptr noundef %1603) #8
  %1605 = call i32 @isatty(i32 noundef %1604) #8
  %1606 = icmp ne i32 %1605, 0
  br i1 %1606, label %1607, label %1624

1607:                                             ; preds = %1602
  %1608 = load i32, ptr %41, align 4, !tbaa !5
  %1609 = call ptr @__errno_location() #9
  store i32 %1608, ptr %1609, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror(i32 noundef %1613, ptr noundef @.str.4)
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef %1616, ptr noundef @.str.4)
  %1618 = call ptr @__errno_location() #9
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @strerror(i32 noundef %1619) #8
  %1621 = call ptr @__errno_location() #9
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1610, ptr noundef @.str.2, i32 noundef %1611, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1614, ptr noundef %1617, ptr noundef %1620, i32 noundef %1622) #8
  br label %1641

1624:                                             ; preds = %1602, %1595
  %1625 = load i32, ptr %41, align 4, !tbaa !5
  %1626 = call ptr @__errno_location() #9
  store i32 %1625, ptr %1626, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror(i32 noundef %1630, ptr noundef @.str.4)
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror_debug(i32 noundef %1633, ptr noundef @.str.4)
  %1635 = call ptr @__errno_location() #9
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @strerror(i32 noundef %1636) #8
  %1638 = call ptr @__errno_location() #9
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1627, ptr noundef @.str.5, i32 noundef %1628, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1631, ptr noundef %1634, ptr noundef %1637, i32 noundef %1639) #8
  br label %1641

1641:                                             ; preds = %1624, %1607
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

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

1644:                                             ; No predecessors!
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645, %1587
  br label %1647

1647:                                             ; preds = %1646
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = add nsw i32 %1650, 1
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror_debug(i32 noundef %1653, ptr noundef @.str.4)
  %1655 = icmp eq ptr %1654, null
  br i1 %1655, label %1656, label %1709

1656:                                             ; preds = %1649
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1659 = call ptr @__errno_location() #9
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  store i32 %1660, ptr %42, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = call i32 @s2n_print_stacktrace(ptr noundef %1661)
  %1663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1664 = trunc i8 %1663 to i1
  br i1 %1664, label %1665, label %1687

1665:                                             ; preds = %1658
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = call i32 @fileno(ptr noundef %1666) #8
  %1668 = call i32 @isatty(i32 noundef %1667) #8
  %1669 = icmp ne i32 %1668, 0
  br i1 %1669, label %1670, label %1687

1670:                                             ; preds = %1665
  %1671 = load i32, ptr %42, align 4, !tbaa !5
  %1672 = call ptr @__errno_location() #9
  store i32 %1671, ptr %1672, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = load i32, ptr @test_count, align 4, !tbaa !5
  %1675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror(i32 noundef %1676, ptr noundef @.str.4)
  %1678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror_debug(i32 noundef %1679, ptr noundef @.str.4)
  %1681 = call ptr @__errno_location() #9
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call ptr @strerror(i32 noundef %1682) #8
  %1684 = call ptr @__errno_location() #9
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1673, ptr noundef @.str.2, i32 noundef %1674, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1677, ptr noundef %1680, ptr noundef %1683, i32 noundef %1685) #8
  br label %1704

1687:                                             ; preds = %1665, %1658
  %1688 = load i32, ptr %42, align 4, !tbaa !5
  %1689 = call ptr @__errno_location() #9
  store i32 %1688, ptr %1689, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef @.str.4)
  %1695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @s2n_strerror_debug(i32 noundef %1696, ptr noundef @.str.4)
  %1698 = call ptr @__errno_location() #9
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call ptr @strerror(i32 noundef %1699) #8
  %1701 = call ptr @__errno_location() #9
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef @.str.5, i32 noundef %1691, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1694, ptr noundef %1697, ptr noundef %1700, i32 noundef %1702) #8
  br label %1704

1704:                                             ; preds = %1687, %1670
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1705

1705:                                             ; preds = %1704
  br label %1706

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

1707:                                             ; No predecessors!
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708, %1649
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

1711:                                             ; preds = %1710
  br label %1712

1712:                                             ; preds = %1711
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

1714:                                             ; preds = %1713
  %1715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1715, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1716 = call ptr @__errno_location() #9
  store i32 0, ptr %1716, align 4, !tbaa !5
  br label %1717

1717:                                             ; preds = %1714
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = add nsw i32 %1722, 1
  store i32 %1723, ptr @test_count, align 4, !tbaa !5
  %1724 = load ptr, ptr %32, align 8, !tbaa !9
  %1725 = call i32 @s2n_connection_free(ptr noundef %1724)
  %1726 = icmp eq i32 %1725, -1
  br i1 %1726, label %1727, label %1780

1727:                                             ; preds = %1721
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

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

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

1741:                                             ; preds = %1736
  %1742 = load i32, ptr %43, align 4, !tbaa !5
  %1743 = call ptr @__errno_location() #9
  store i32 %1742, ptr %1743, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror(i32 noundef %1747, ptr noundef @.str.4)
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror_debug(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call ptr @__errno_location() #9
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #8
  %1755 = call ptr @__errno_location() #9
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef @.str.2, i32 noundef %1745, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1748, ptr noundef %1751, ptr noundef %1754, i32 noundef %1756) #8
  br label %1775

1758:                                             ; preds = %1736, %1729
  %1759 = load i32, ptr %43, align 4, !tbaa !5
  %1760 = call ptr @__errno_location() #9
  store i32 %1759, ptr %1760, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef @.str.4)
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef @.str.4)
  %1769 = call ptr @__errno_location() #9
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @strerror(i32 noundef %1770) #8
  %1772 = call ptr @__errno_location() #9
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef @.str.5, i32 noundef %1762, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1765, ptr noundef %1768, ptr noundef %1771, i32 noundef %1773) #8
  br label %1775

1775:                                             ; preds = %1758, %1741
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

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

1778:                                             ; No predecessors!
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

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

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 1
  store i32 %1785, ptr @test_count, align 4, !tbaa !5
  %1786 = call i32 @s2n_stuffer_free(ptr noundef %37)
  %1787 = icmp eq i32 %1786, -1
  br i1 %1787, label %1788, label %1841

1788:                                             ; preds = %1783
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

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

1797:                                             ; preds = %1790
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @fileno(ptr noundef %1798) #8
  %1800 = call i32 @isatty(i32 noundef %1799) #8
  %1801 = icmp ne i32 %1800, 0
  br i1 %1801, label %1802, label %1819

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

1819:                                             ; preds = %1797, %1790
  %1820 = load i32, ptr %44, align 4, !tbaa !5
  %1821 = call ptr @__errno_location() #9
  store i32 %1820, ptr %1821, align 4, !tbaa !5
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror(i32 noundef %1825, ptr noundef @.str.4)
  %1827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror_debug(i32 noundef %1828, ptr noundef @.str.4)
  %1830 = call ptr @__errno_location() #9
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #8
  %1833 = call ptr @__errno_location() #9
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1822, ptr noundef @.str.5, i32 noundef %1823, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1826, ptr noundef %1829, ptr noundef %1832, i32 noundef %1834) #8
  br label %1836

1836:                                             ; preds = %1819, %1802
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

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

1839:                                             ; No predecessors!
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

1841:                                             ; preds = %1840, %1783
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  store ptr null, ptr %45, align 8, !tbaa !9
  br label %1844

1844:                                             ; preds = %1843
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = add nsw i32 %1845, 1
  store i32 %1846, ptr @test_count, align 4, !tbaa !5
  %1847 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1847, ptr %45, align 8, !tbaa !9
  %1848 = icmp eq ptr %1847, null
  br i1 %1848, label %1849, label %1902

1849:                                             ; preds = %1844
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

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

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

1863:                                             ; preds = %1858
  %1864 = load i32, ptr %46, align 4, !tbaa !5
  %1865 = call ptr @__errno_location() #9
  store i32 %1864, ptr %1865, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror_debug(i32 noundef %1872, ptr noundef @.str.4)
  %1874 = call ptr @__errno_location() #9
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #8
  %1877 = call ptr @__errno_location() #9
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1866, ptr noundef @.str.2, i32 noundef %1867, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1870, ptr noundef %1873, ptr noundef %1876, i32 noundef %1878) #8
  br label %1897

1880:                                             ; preds = %1858, %1851
  %1881 = load i32, ptr %46, align 4, !tbaa !5
  %1882 = call ptr @__errno_location() #9
  store i32 %1881, ptr %1882, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror(i32 noundef %1886, ptr noundef @.str.4)
  %1888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror_debug(i32 noundef %1889, ptr noundef @.str.4)
  %1891 = call ptr @__errno_location() #9
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @strerror(i32 noundef %1892) #8
  %1894 = call ptr @__errno_location() #9
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1883, ptr noundef @.str.5, i32 noundef %1884, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1887, ptr noundef %1890, ptr noundef %1893, i32 noundef %1895) #8
  br label %1897

1897:                                             ; preds = %1880, %1863
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

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

1900:                                             ; No predecessors!
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901, %1844
  br label %1903

1903:                                             ; preds = %1902
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = load ptr, ptr %45, align 8, !tbaa !9
  %1909 = load ptr, ptr %11, align 8, !tbaa !9
  %1910 = call i32 @s2n_connection_set_config(ptr noundef %1908, ptr noundef %1909)
  %1911 = icmp eq i32 %1910, -1
  br i1 %1911, label %1912, label %1965

1912:                                             ; preds = %1905
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

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

1921:                                             ; preds = %1914
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @fileno(ptr noundef %1922) #8
  %1924 = call i32 @isatty(i32 noundef %1923) #8
  %1925 = icmp ne i32 %1924, 0
  br i1 %1925, label %1926, label %1943

1926:                                             ; preds = %1921
  %1927 = load i32, ptr %47, align 4, !tbaa !5
  %1928 = call ptr @__errno_location() #9
  store i32 %1927, ptr %1928, align 4, !tbaa !5
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = load i32, ptr @test_count, align 4, !tbaa !5
  %1931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef @.str.4)
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror_debug(i32 noundef %1935, ptr noundef @.str.4)
  %1937 = call ptr @__errno_location() #9
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #8
  %1940 = call ptr @__errno_location() #9
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1929, ptr noundef @.str.2, i32 noundef %1930, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1933, ptr noundef %1936, ptr noundef %1939, i32 noundef %1941) #8
  br label %1960

1943:                                             ; preds = %1921, %1914
  %1944 = load i32, ptr %47, align 4, !tbaa !5
  %1945 = call ptr @__errno_location() #9
  store i32 %1944, ptr %1945, align 4, !tbaa !5
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = load i32, ptr @test_count, align 4, !tbaa !5
  %1948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror(i32 noundef %1949, ptr noundef @.str.4)
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror_debug(i32 noundef %1952, ptr noundef @.str.4)
  %1954 = call ptr @__errno_location() #9
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @strerror(i32 noundef %1955) #8
  %1957 = call ptr @__errno_location() #9
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1946, ptr noundef @.str.5, i32 noundef %1947, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1950, ptr noundef %1953, ptr noundef %1956, i32 noundef %1958) #8
  br label %1960

1960:                                             ; preds = %1943, %1926
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

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

1963:                                             ; No predecessors!
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964, %1905
  br label %1966

1966:                                             ; preds = %1965
  br label %1967

1967:                                             ; preds = %1966
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #8
  store i8 -1, ptr %48, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 2, ptr %49) #8
  store i16 6, ptr %49, align 2, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 40, ptr %50) #8
  call void @llvm.memset.p0.i64(ptr align 8 %50, i8 0, i64 40, i1 false)
  br label %1968

1968:                                             ; preds = %1967
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = add nsw i32 %1969, 1
  store i32 %1970, ptr @test_count, align 4, !tbaa !5
  %1971 = load i16, ptr %49, align 2, !tbaa !16
  %1972 = zext i16 %1971 to i32
  %1973 = call i32 @s2n_stuffer_alloc(ptr noundef %50, i32 noundef %1972)
  %1974 = icmp eq i32 %1973, -1
  br i1 %1974, label %1975, label %2028

1975:                                             ; preds = %1968
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %1978 = call ptr @__errno_location() #9
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  store i32 %1979, ptr %51, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @s2n_print_stacktrace(ptr noundef %1980)
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc i8 %1982 to i1
  br i1 %1983, label %1984, label %2006

1984:                                             ; preds = %1977
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @fileno(ptr noundef %1985) #8
  %1987 = call i32 @isatty(i32 noundef %1986) #8
  %1988 = icmp ne i32 %1987, 0
  br i1 %1988, label %1989, label %2006

1989:                                             ; preds = %1984
  %1990 = load i32, ptr %51, align 4, !tbaa !5
  %1991 = call ptr @__errno_location() #9
  store i32 %1990, ptr %1991, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = load i32, ptr @test_count, align 4, !tbaa !5
  %1994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  %1996 = call ptr @s2n_strerror(i32 noundef %1995, ptr noundef @.str.4)
  %1997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror_debug(i32 noundef %1998, ptr noundef @.str.4)
  %2000 = call ptr @__errno_location() #9
  %2001 = load i32, ptr %2000, align 4, !tbaa !5
  %2002 = call ptr @strerror(i32 noundef %2001) #8
  %2003 = call ptr @__errno_location() #9
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1992, ptr noundef @.str.2, i32 noundef %1993, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1996, ptr noundef %1999, ptr noundef %2002, i32 noundef %2004) #8
  br label %2023

2006:                                             ; preds = %1984, %1977
  %2007 = load i32, ptr %51, align 4, !tbaa !5
  %2008 = call ptr @__errno_location() #9
  store i32 %2007, ptr %2008, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror(i32 noundef %2012, ptr noundef @.str.4)
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror_debug(i32 noundef %2015, ptr noundef @.str.4)
  %2017 = call ptr @__errno_location() #9
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #8
  %2020 = call ptr @__errno_location() #9
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef @.str.5, i32 noundef %2010, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2013, ptr noundef %2016, ptr noundef %2019, i32 noundef %2021) #8
  br label %2023

2023:                                             ; preds = %2006, %1989
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2024

2024:                                             ; preds = %2023
  br label %2025

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

2026:                                             ; No predecessors!
  br label %2027

2027:                                             ; preds = %2026
  br label %2028

2028:                                             ; preds = %2027, %1968
  br label %2029

2029:                                             ; preds = %2028
  br label %2030

2030:                                             ; preds = %2029
  br label %2031

2031:                                             ; preds = %2030
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = add nsw i32 %2032, 1
  store i32 %2033, ptr @test_count, align 4, !tbaa !5
  %2034 = load i8, ptr %48, align 1, !tbaa !15
  %2035 = call i32 @write_test_supported_version(ptr noundef %50, i8 noundef zeroext %2034)
  %2036 = icmp eq i32 %2035, -1
  br i1 %2036, label %2037, label %2090

2037:                                             ; preds = %2031
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

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

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

2051:                                             ; preds = %2046
  %2052 = load i32, ptr %52, align 4, !tbaa !5
  %2053 = call ptr @__errno_location() #9
  store i32 %2052, ptr %2053, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  %2058 = call ptr @s2n_strerror(i32 noundef %2057, ptr noundef @.str.4)
  %2059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror_debug(i32 noundef %2060, ptr noundef @.str.4)
  %2062 = call ptr @__errno_location() #9
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @strerror(i32 noundef %2063) #8
  %2065 = call ptr @__errno_location() #9
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  %2067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2054, ptr noundef @.str.2, i32 noundef %2055, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2058, ptr noundef %2061, ptr noundef %2064, i32 noundef %2066) #8
  br label %2085

2068:                                             ; preds = %2046, %2039
  %2069 = load i32, ptr %52, align 4, !tbaa !5
  %2070 = call ptr @__errno_location() #9
  store i32 %2069, ptr %2070, align 4, !tbaa !5
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = load i32, ptr @test_count, align 4, !tbaa !5
  %2073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2074 = load i32, ptr %2073, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror(i32 noundef %2074, ptr noundef @.str.4)
  %2076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2077 = load i32, ptr %2076, align 4, !tbaa !5
  %2078 = call ptr @s2n_strerror_debug(i32 noundef %2077, ptr noundef @.str.4)
  %2079 = call ptr @__errno_location() #9
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @strerror(i32 noundef %2080) #8
  %2082 = call ptr @__errno_location() #9
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2071, ptr noundef @.str.5, i32 noundef %2072, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2075, ptr noundef %2078, ptr noundef %2081, i32 noundef %2083) #8
  br label %2085

2085:                                             ; preds = %2068, %2051
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2086

2086:                                             ; preds = %2085
  br label %2087

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

2088:                                             ; No predecessors!
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089, %2031
  br label %2091

2091:                                             ; preds = %2090
  br label %2092

2092:                                             ; preds = %2091
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

2095:                                             ; preds = %2094
  %2096 = load i32, ptr @test_count, align 4, !tbaa !5
  %2097 = add nsw i32 %2096, 1
  store i32 %2097, ptr @test_count, align 4, !tbaa !5
  %2098 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !24
  %2099 = load ptr, ptr %45, align 8, !tbaa !9
  %2100 = call i32 %2098(ptr noundef %2099, ptr noundef %50)
  %2101 = icmp eq i32 %2100, -1
  br i1 %2101, label %2155, label %2102

2102:                                             ; preds = %2095
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

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

2111:                                             ; preds = %2104
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = call i32 @fileno(ptr noundef %2112) #8
  %2114 = call i32 @isatty(i32 noundef %2113) #8
  %2115 = icmp ne i32 %2114, 0
  br i1 %2115, label %2116, label %2133

2116:                                             ; preds = %2111
  %2117 = load i32, ptr %53, align 4, !tbaa !5
  %2118 = call ptr @__errno_location() #9
  store i32 %2117, ptr %2118, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror(i32 noundef %2122, ptr noundef @.str.4)
  %2124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef @.str.4)
  %2127 = call ptr @__errno_location() #9
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #8
  %2130 = call ptr @__errno_location() #9
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2119, ptr noundef @.str.2, i32 noundef %2120, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2123, ptr noundef %2126, ptr noundef %2129, i32 noundef %2131) #8
  br label %2150

2133:                                             ; preds = %2111, %2104
  %2134 = load i32, ptr %53, align 4, !tbaa !5
  %2135 = call ptr @__errno_location() #9
  store i32 %2134, ptr %2135, align 4, !tbaa !5
  %2136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror(i32 noundef %2139, ptr noundef @.str.4)
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call ptr @__errno_location() #9
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @strerror(i32 noundef %2145) #8
  %2147 = call ptr @__errno_location() #9
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2136, ptr noundef @.str.5, i32 noundef %2137, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2140, ptr noundef %2143, ptr noundef %2146, i32 noundef %2148) #8
  br label %2150

2150:                                             ; preds = %2133, %2116
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2151

2151:                                             ; preds = %2150
  br label %2152

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

2153:                                             ; No predecessors!
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154, %2095
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  br label %2158

2158:                                             ; preds = %2157
  %2159 = load i32, ptr @test_count, align 4, !tbaa !5
  %2160 = add nsw i32 %2159, 1
  store i32 %2160, ptr @test_count, align 4, !tbaa !5
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = icmp eq i32 %2162, 335544322
  br i1 %2163, label %2217, label %2164

2164:                                             ; preds = %2158
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %2167 = call ptr @__errno_location() #9
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  store i32 %2168, ptr %54, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @s2n_print_stacktrace(ptr noundef %2169)
  %2171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2172 = trunc i8 %2171 to i1
  br i1 %2172, label %2173, label %2195

2173:                                             ; preds = %2166
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = call i32 @fileno(ptr noundef %2174) #8
  %2176 = call i32 @isatty(i32 noundef %2175) #8
  %2177 = icmp ne i32 %2176, 0
  br i1 %2177, label %2178, label %2195

2178:                                             ; preds = %2173
  %2179 = load i32, ptr %54, align 4, !tbaa !5
  %2180 = call ptr @__errno_location() #9
  store i32 %2179, ptr %2180, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = load i32, ptr @test_count, align 4, !tbaa !5
  %2183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror(i32 noundef %2184, ptr noundef @.str.4)
  %2186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2187 = load i32, ptr %2186, align 4, !tbaa !5
  %2188 = call ptr @s2n_strerror_debug(i32 noundef %2187, ptr noundef @.str.4)
  %2189 = call ptr @__errno_location() #9
  %2190 = load i32, ptr %2189, align 4, !tbaa !5
  %2191 = call ptr @strerror(i32 noundef %2190) #8
  %2192 = call ptr @__errno_location() #9
  %2193 = load i32, ptr %2192, align 4, !tbaa !5
  %2194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2181, ptr noundef @.str.2, i32 noundef %2182, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2185, ptr noundef %2188, ptr noundef %2191, i32 noundef %2193) #8
  br label %2212

2195:                                             ; preds = %2173, %2166
  %2196 = load i32, ptr %54, align 4, !tbaa !5
  %2197 = call ptr @__errno_location() #9
  store i32 %2196, ptr %2197, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef @.str.4)
  %2203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror_debug(i32 noundef %2204, ptr noundef @.str.4)
  %2206 = call ptr @__errno_location() #9
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @strerror(i32 noundef %2207) #8
  %2209 = call ptr @__errno_location() #9
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef @.str.5, i32 noundef %2199, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2202, ptr noundef %2205, ptr noundef %2208, i32 noundef %2210) #8
  br label %2212

2212:                                             ; preds = %2195, %2178
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2213

2213:                                             ; preds = %2212
  br label %2214

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

2215:                                             ; No predecessors!
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216, %2158
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218
  br label %2220

2220:                                             ; preds = %2219
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = add nsw i32 %2221, 1
  store i32 %2222, ptr @test_count, align 4, !tbaa !5
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror_debug(i32 noundef %2224, ptr noundef @.str.4)
  %2226 = icmp eq ptr %2225, null
  br i1 %2226, label %2227, label %2280

2227:                                             ; preds = %2220
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2230 = call ptr @__errno_location() #9
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  store i32 %2231, ptr %55, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @s2n_print_stacktrace(ptr noundef %2232)
  %2234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2235 = trunc i8 %2234 to i1
  br i1 %2235, label %2236, label %2258

2236:                                             ; preds = %2229
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @fileno(ptr noundef %2237) #8
  %2239 = call i32 @isatty(i32 noundef %2238) #8
  %2240 = icmp ne i32 %2239, 0
  br i1 %2240, label %2241, label %2258

2241:                                             ; preds = %2236
  %2242 = load i32, ptr %55, align 4, !tbaa !5
  %2243 = call ptr @__errno_location() #9
  store i32 %2242, ptr %2243, align 4, !tbaa !5
  %2244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2245 = load i32, ptr @test_count, align 4, !tbaa !5
  %2246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror_debug(i32 noundef %2250, ptr noundef @.str.4)
  %2252 = call ptr @__errno_location() #9
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #8
  %2255 = call ptr @__errno_location() #9
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2244, ptr noundef @.str.2, i32 noundef %2245, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2248, ptr noundef %2251, ptr noundef %2254, i32 noundef %2256) #8
  br label %2275

2258:                                             ; preds = %2236, %2229
  %2259 = load i32, ptr %55, align 4, !tbaa !5
  %2260 = call ptr @__errno_location() #9
  store i32 %2259, ptr %2260, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef @.str.4)
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef @.str.4)
  %2269 = call ptr @__errno_location() #9
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @strerror(i32 noundef %2270) #8
  %2272 = call ptr @__errno_location() #9
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef @.str.5, i32 noundef %2262, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2265, ptr noundef %2268, ptr noundef %2271, i32 noundef %2273) #8
  br label %2275

2275:                                             ; preds = %2258, %2241
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

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

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278
  br label %2280

2280:                                             ; preds = %2279, %2220
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

2284:                                             ; preds = %2283
  br label %2285

2285:                                             ; preds = %2284
  %2286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2286, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2287 = call ptr @__errno_location() #9
  store i32 0, ptr %2287, align 4, !tbaa !5
  br label %2288

2288:                                             ; preds = %2285
  br label %2289

2289:                                             ; preds = %2288
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  br label %2292

2292:                                             ; preds = %2291
  %2293 = load i32, ptr @test_count, align 4, !tbaa !5
  %2294 = add nsw i32 %2293, 1
  store i32 %2294, ptr @test_count, align 4, !tbaa !5
  %2295 = load ptr, ptr %45, align 8, !tbaa !9
  %2296 = call i32 @s2n_connection_free(ptr noundef %2295)
  %2297 = icmp eq i32 %2296, -1
  br i1 %2297, label %2298, label %2351

2298:                                             ; preds = %2292
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %2301 = call ptr @__errno_location() #9
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  store i32 %2302, ptr %56, align 4, !tbaa !5
  %2303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2304 = call i32 @s2n_print_stacktrace(ptr noundef %2303)
  %2305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2306 = trunc i8 %2305 to i1
  br i1 %2306, label %2307, label %2329

2307:                                             ; preds = %2300
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = call i32 @fileno(ptr noundef %2308) #8
  %2310 = call i32 @isatty(i32 noundef %2309) #8
  %2311 = icmp ne i32 %2310, 0
  br i1 %2311, label %2312, label %2329

2312:                                             ; preds = %2307
  %2313 = load i32, ptr %56, align 4, !tbaa !5
  %2314 = call ptr @__errno_location() #9
  store i32 %2313, ptr %2314, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror(i32 noundef %2318, ptr noundef @.str.4)
  %2320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror_debug(i32 noundef %2321, ptr noundef @.str.4)
  %2323 = call ptr @__errno_location() #9
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = call ptr @strerror(i32 noundef %2324) #8
  %2326 = call ptr @__errno_location() #9
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef @.str.2, i32 noundef %2316, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2319, ptr noundef %2322, ptr noundef %2325, i32 noundef %2327) #8
  br label %2346

2329:                                             ; preds = %2307, %2300
  %2330 = load i32, ptr %56, align 4, !tbaa !5
  %2331 = call ptr @__errno_location() #9
  store i32 %2330, ptr %2331, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror_debug(i32 noundef %2338, ptr noundef @.str.4)
  %2340 = call ptr @__errno_location() #9
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @strerror(i32 noundef %2341) #8
  %2343 = call ptr @__errno_location() #9
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef @.str.5, i32 noundef %2333, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2336, ptr noundef %2339, ptr noundef %2342, i32 noundef %2344) #8
  br label %2346

2346:                                             ; preds = %2329, %2312
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2347

2347:                                             ; preds = %2346
  br label %2348

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

2349:                                             ; No predecessors!
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2350, %2292
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  br label %2354

2354:                                             ; preds = %2353
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = add nsw i32 %2355, 1
  store i32 %2356, ptr @test_count, align 4, !tbaa !5
  %2357 = call i32 @s2n_stuffer_free(ptr noundef %50)
  %2358 = icmp eq i32 %2357, -1
  br i1 %2358, label %2359, label %2412

2359:                                             ; preds = %2354
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

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

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

2373:                                             ; preds = %2368
  %2374 = load i32, ptr %57, align 4, !tbaa !5
  %2375 = call ptr @__errno_location() #9
  store i32 %2374, ptr %2375, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call ptr @s2n_strerror(i32 noundef %2379, ptr noundef @.str.4)
  %2381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror_debug(i32 noundef %2382, ptr noundef @.str.4)
  %2384 = call ptr @__errno_location() #9
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  %2386 = call ptr @strerror(i32 noundef %2385) #8
  %2387 = call ptr @__errno_location() #9
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2376, ptr noundef @.str.2, i32 noundef %2377, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2380, ptr noundef %2383, ptr noundef %2386, i32 noundef %2388) #8
  br label %2407

2390:                                             ; preds = %2368, %2361
  %2391 = load i32, ptr %57, align 4, !tbaa !5
  %2392 = call ptr @__errno_location() #9
  store i32 %2391, ptr %2392, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef @.str.4)
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call ptr @__errno_location() #9
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #8
  %2404 = call ptr @__errno_location() #9
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef @.str.5, i32 noundef %2394, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2397, ptr noundef %2400, ptr noundef %2403, i32 noundef %2405) #8
  br label %2407

2407:                                             ; preds = %2390, %2373
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %2408

2408:                                             ; preds = %2407
  br label %2409

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

2410:                                             ; No predecessors!
  br label %2411

2411:                                             ; preds = %2410
  br label %2412

2412:                                             ; preds = %2411, %2354
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 2, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  store ptr null, ptr %58, align 8, !tbaa !9
  br label %2415

2415:                                             ; preds = %2414
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = add nsw i32 %2416, 1
  store i32 %2417, ptr @test_count, align 4, !tbaa !5
  %2418 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2418, ptr %58, align 8, !tbaa !9
  %2419 = icmp eq ptr %2418, null
  br i1 %2419, label %2420, label %2473

2420:                                             ; preds = %2415
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

2422:                                             ; preds = %2421
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %2423 = call ptr @__errno_location() #9
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  store i32 %2424, ptr %59, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = call i32 @s2n_print_stacktrace(ptr noundef %2425)
  %2427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2428 = trunc i8 %2427 to i1
  br i1 %2428, label %2429, label %2451

2429:                                             ; preds = %2422
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @fileno(ptr noundef %2430) #8
  %2432 = call i32 @isatty(i32 noundef %2431) #8
  %2433 = icmp ne i32 %2432, 0
  br i1 %2433, label %2434, label %2451

2434:                                             ; preds = %2429
  %2435 = load i32, ptr %59, align 4, !tbaa !5
  %2436 = call ptr @__errno_location() #9
  store i32 %2435, ptr %2436, align 4, !tbaa !5
  %2437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror_debug(i32 noundef %2443, ptr noundef @.str.4)
  %2445 = call ptr @__errno_location() #9
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @strerror(i32 noundef %2446) #8
  %2448 = call ptr @__errno_location() #9
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2437, ptr noundef @.str.2, i32 noundef %2438, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2441, ptr noundef %2444, ptr noundef %2447, i32 noundef %2449) #8
  br label %2468

2451:                                             ; preds = %2429, %2422
  %2452 = load i32, ptr %59, align 4, !tbaa !5
  %2453 = call ptr @__errno_location() #9
  store i32 %2452, ptr %2453, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = load i32, ptr @test_count, align 4, !tbaa !5
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @s2n_strerror_debug(i32 noundef %2460, ptr noundef @.str.4)
  %2462 = call ptr @__errno_location() #9
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #8
  %2465 = call ptr @__errno_location() #9
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef @.str.5, i32 noundef %2455, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2458, ptr noundef %2461, ptr noundef %2464, i32 noundef %2466) #8
  br label %2468

2468:                                             ; preds = %2451, %2434
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

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

2471:                                             ; No predecessors!
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472, %2415
  br label %2474

2474:                                             ; preds = %2473
  br label %2475

2475:                                             ; preds = %2474
  br label %2476

2476:                                             ; preds = %2475
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = add nsw i32 %2477, 1
  store i32 %2478, ptr @test_count, align 4, !tbaa !5
  %2479 = load ptr, ptr %58, align 8, !tbaa !9
  %2480 = load ptr, ptr %11, align 8, !tbaa !9
  %2481 = call i32 @s2n_connection_set_config(ptr noundef %2479, ptr noundef %2480)
  %2482 = icmp eq i32 %2481, -1
  br i1 %2482, label %2483, label %2536

2483:                                             ; preds = %2476
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

2485:                                             ; preds = %2484
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %2486 = call ptr @__errno_location() #9
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  store i32 %2487, ptr %60, align 4, !tbaa !5
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = call i32 @s2n_print_stacktrace(ptr noundef %2488)
  %2490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2491 = trunc i8 %2490 to i1
  br i1 %2491, label %2492, label %2514

2492:                                             ; preds = %2485
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = call i32 @fileno(ptr noundef %2493) #8
  %2495 = call i32 @isatty(i32 noundef %2494) #8
  %2496 = icmp ne i32 %2495, 0
  br i1 %2496, label %2497, label %2514

2497:                                             ; preds = %2492
  %2498 = load i32, ptr %60, align 4, !tbaa !5
  %2499 = call ptr @__errno_location() #9
  store i32 %2498, ptr %2499, align 4, !tbaa !5
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call ptr @s2n_strerror(i32 noundef %2503, ptr noundef @.str.4)
  %2505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = call ptr @s2n_strerror_debug(i32 noundef %2506, ptr noundef @.str.4)
  %2508 = call ptr @__errno_location() #9
  %2509 = load i32, ptr %2508, align 4, !tbaa !5
  %2510 = call ptr @strerror(i32 noundef %2509) #8
  %2511 = call ptr @__errno_location() #9
  %2512 = load i32, ptr %2511, align 4, !tbaa !5
  %2513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2500, ptr noundef @.str.2, i32 noundef %2501, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2504, ptr noundef %2507, ptr noundef %2510, i32 noundef %2512) #8
  br label %2531

2514:                                             ; preds = %2492, %2485
  %2515 = load i32, ptr %60, align 4, !tbaa !5
  %2516 = call ptr @__errno_location() #9
  store i32 %2515, ptr %2516, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror(i32 noundef %2520, ptr noundef @.str.4)
  %2522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2523 = load i32, ptr %2522, align 4, !tbaa !5
  %2524 = call ptr @s2n_strerror_debug(i32 noundef %2523, ptr noundef @.str.4)
  %2525 = call ptr @__errno_location() #9
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = call ptr @strerror(i32 noundef %2526) #8
  %2528 = call ptr @__errno_location() #9
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef @.str.5, i32 noundef %2518, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2521, ptr noundef %2524, ptr noundef %2527, i32 noundef %2529) #8
  br label %2531

2531:                                             ; preds = %2514, %2497
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %2532

2532:                                             ; preds = %2531
  br label %2533

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

2534:                                             ; No predecessors!
  br label %2535

2535:                                             ; preds = %2534
  br label %2536

2536:                                             ; preds = %2535, %2476
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

2538:                                             ; preds = %2537
  call void @llvm.lifetime.start.p0(i64 40, ptr %61) #8
  call void @llvm.memset.p0.i64(ptr align 8 %61, i8 0, i64 40, i1 false)
  br label %2539

2539:                                             ; preds = %2538
  %2540 = load i32, ptr @test_count, align 4, !tbaa !5
  %2541 = add nsw i32 %2540, 1
  store i32 %2541, ptr @test_count, align 4, !tbaa !5
  %2542 = call i32 @s2n_stuffer_alloc(ptr noundef %61, i32 noundef 1)
  %2543 = icmp eq i32 %2542, -1
  br i1 %2543, label %2544, label %2597

2544:                                             ; preds = %2539
  br label %2545

2545:                                             ; preds = %2544
  br label %2546

2546:                                             ; preds = %2545
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %2547 = call ptr @__errno_location() #9
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  store i32 %2548, ptr %62, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @s2n_print_stacktrace(ptr noundef %2549)
  %2551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2552 = trunc i8 %2551 to i1
  br i1 %2552, label %2553, label %2575

2553:                                             ; preds = %2546
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = call i32 @fileno(ptr noundef %2554) #8
  %2556 = call i32 @isatty(i32 noundef %2555) #8
  %2557 = icmp ne i32 %2556, 0
  br i1 %2557, label %2558, label %2575

2558:                                             ; preds = %2553
  %2559 = load i32, ptr %62, align 4, !tbaa !5
  %2560 = call ptr @__errno_location() #9
  store i32 %2559, ptr %2560, align 4, !tbaa !5
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = load i32, ptr @test_count, align 4, !tbaa !5
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror(i32 noundef %2564, ptr noundef @.str.4)
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror_debug(i32 noundef %2567, ptr noundef @.str.4)
  %2569 = call ptr @__errno_location() #9
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call ptr @strerror(i32 noundef %2570) #8
  %2572 = call ptr @__errno_location() #9
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2561, ptr noundef @.str.2, i32 noundef %2562, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2565, ptr noundef %2568, ptr noundef %2571, i32 noundef %2573) #8
  br label %2592

2575:                                             ; preds = %2553, %2546
  %2576 = load i32, ptr %62, align 4, !tbaa !5
  %2577 = call ptr @__errno_location() #9
  store i32 %2576, ptr %2577, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror(i32 noundef %2581, ptr noundef @.str.4)
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror_debug(i32 noundef %2584, ptr noundef @.str.4)
  %2586 = call ptr @__errno_location() #9
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @strerror(i32 noundef %2587) #8
  %2589 = call ptr @__errno_location() #9
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2578, ptr noundef @.str.5, i32 noundef %2579, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2582, ptr noundef %2585, ptr noundef %2588, i32 noundef %2590) #8
  br label %2592

2592:                                             ; preds = %2575, %2558
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

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

2595:                                             ; No predecessors!
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

2597:                                             ; preds = %2596, %2539
  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 = call i32 @s2n_stuffer_write_uint8(ptr noundef %61, i8 noundef zeroext 0)
  %2604 = icmp eq i32 %2603, -1
  br i1 %2604, label %2605, label %2658

2605:                                             ; preds = %2600
  br label %2606

2606:                                             ; preds = %2605
  br label %2607

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

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

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

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

2653:                                             ; preds = %2636, %2619
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %2654

2654:                                             ; preds = %2653
  br label %2655

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

2656:                                             ; No predecessors!
  br label %2657

2657:                                             ; preds = %2656
  br label %2658

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

2659:                                             ; preds = %2658
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  br label %2663

2663:                                             ; preds = %2662
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = add nsw i32 %2664, 1
  store i32 %2665, ptr @test_count, align 4, !tbaa !5
  %2666 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !24
  %2667 = load ptr, ptr %58, align 8, !tbaa !9
  %2668 = call i32 %2666(ptr noundef %2667, ptr noundef %61)
  %2669 = icmp eq i32 %2668, -1
  br i1 %2669, label %2723, label %2670

2670:                                             ; preds = %2663
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

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

2679:                                             ; preds = %2672
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = call i32 @fileno(ptr noundef %2680) #8
  %2682 = call i32 @isatty(i32 noundef %2681) #8
  %2683 = icmp ne i32 %2682, 0
  br i1 %2683, label %2684, label %2701

2684:                                             ; preds = %2679
  %2685 = load i32, ptr %64, align 4, !tbaa !5
  %2686 = call ptr @__errno_location() #9
  store i32 %2685, ptr %2686, align 4, !tbaa !5
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror(i32 noundef %2690, ptr noundef @.str.4)
  %2692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call ptr @s2n_strerror_debug(i32 noundef %2693, ptr noundef @.str.4)
  %2695 = call ptr @__errno_location() #9
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call ptr @strerror(i32 noundef %2696) #8
  %2698 = call ptr @__errno_location() #9
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  %2700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2687, ptr noundef @.str.2, i32 noundef %2688, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2691, ptr noundef %2694, ptr noundef %2697, i32 noundef %2699) #8
  br label %2718

2701:                                             ; preds = %2679, %2672
  %2702 = load i32, ptr %64, align 4, !tbaa !5
  %2703 = call ptr @__errno_location() #9
  store i32 %2702, ptr %2703, align 4, !tbaa !5
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = load i32, ptr @test_count, align 4, !tbaa !5
  %2706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror(i32 noundef %2707, ptr noundef @.str.4)
  %2709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call ptr @s2n_strerror_debug(i32 noundef %2710, ptr noundef @.str.4)
  %2712 = call ptr @__errno_location() #9
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @strerror(i32 noundef %2713) #8
  %2715 = call ptr @__errno_location() #9
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2704, ptr noundef @.str.5, i32 noundef %2705, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2708, ptr noundef %2711, ptr noundef %2714, i32 noundef %2716) #8
  br label %2718

2718:                                             ; preds = %2701, %2684
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %2719

2719:                                             ; preds = %2718
  br label %2720

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

2721:                                             ; No predecessors!
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722, %2663
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724
  br label %2726

2726:                                             ; preds = %2725
  %2727 = load i32, ptr @test_count, align 4, !tbaa !5
  %2728 = add nsw i32 %2727, 1
  store i32 %2728, ptr @test_count, align 4, !tbaa !5
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = icmp eq i32 %2730, 335544322
  br i1 %2731, label %2785, label %2732

2732:                                             ; preds = %2726
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

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

2741:                                             ; preds = %2734
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = call i32 @fileno(ptr noundef %2742) #8
  %2744 = call i32 @isatty(i32 noundef %2743) #8
  %2745 = icmp ne i32 %2744, 0
  br i1 %2745, label %2746, label %2763

2746:                                             ; preds = %2741
  %2747 = load i32, ptr %65, align 4, !tbaa !5
  %2748 = call ptr @__errno_location() #9
  store i32 %2747, ptr %2748, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2752, ptr noundef @.str.4)
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef @.str.4)
  %2757 = call ptr @__errno_location() #9
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #8
  %2760 = call ptr @__errno_location() #9
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2749, ptr noundef @.str.2, i32 noundef %2750, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2753, ptr noundef %2756, ptr noundef %2759, i32 noundef %2761) #8
  br label %2780

2763:                                             ; preds = %2741, %2734
  %2764 = load i32, ptr %65, align 4, !tbaa !5
  %2765 = call ptr @__errno_location() #9
  store i32 %2764, ptr %2765, align 4, !tbaa !5
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2769, ptr noundef @.str.4)
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror_debug(i32 noundef %2772, ptr noundef @.str.4)
  %2774 = call ptr @__errno_location() #9
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @strerror(i32 noundef %2775) #8
  %2777 = call ptr @__errno_location() #9
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2766, ptr noundef @.str.5, i32 noundef %2767, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2770, ptr noundef %2773, ptr noundef %2776, i32 noundef %2778) #8
  br label %2780

2780:                                             ; preds = %2763, %2746
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

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

2783:                                             ; No predecessors!
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784, %2726
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  br label %2788

2788:                                             ; preds = %2787
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = add nsw i32 %2789, 1
  store i32 %2790, ptr @test_count, align 4, !tbaa !5
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror_debug(i32 noundef %2792, ptr noundef @.str.4)
  %2794 = icmp eq ptr %2793, null
  br i1 %2794, label %2795, label %2848

2795:                                             ; preds = %2788
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %2798 = call ptr @__errno_location() #9
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  store i32 %2799, ptr %66, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @s2n_print_stacktrace(ptr noundef %2800)
  %2802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc i8 %2802 to i1
  br i1 %2803, label %2804, label %2826

2804:                                             ; preds = %2797
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @fileno(ptr noundef %2805) #8
  %2807 = call i32 @isatty(i32 noundef %2806) #8
  %2808 = icmp ne i32 %2807, 0
  br i1 %2808, label %2809, label %2826

2809:                                             ; preds = %2804
  %2810 = load i32, ptr %66, align 4, !tbaa !5
  %2811 = call ptr @__errno_location() #9
  store i32 %2810, ptr %2811, align 4, !tbaa !5
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = load i32, ptr @test_count, align 4, !tbaa !5
  %2814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @s2n_strerror(i32 noundef %2815, ptr noundef @.str.4)
  %2817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @s2n_strerror_debug(i32 noundef %2818, ptr noundef @.str.4)
  %2820 = call ptr @__errno_location() #9
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @strerror(i32 noundef %2821) #8
  %2823 = call ptr @__errno_location() #9
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2812, ptr noundef @.str.2, i32 noundef %2813, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2816, ptr noundef %2819, ptr noundef %2822, i32 noundef %2824) #8
  br label %2843

2826:                                             ; preds = %2804, %2797
  %2827 = load i32, ptr %66, align 4, !tbaa !5
  %2828 = call ptr @__errno_location() #9
  store i32 %2827, ptr %2828, align 4, !tbaa !5
  %2829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2830 = load i32, ptr @test_count, align 4, !tbaa !5
  %2831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror(i32 noundef %2832, ptr noundef @.str.4)
  %2834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror_debug(i32 noundef %2835, ptr noundef @.str.4)
  %2837 = call ptr @__errno_location() #9
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @strerror(i32 noundef %2838) #8
  %2840 = call ptr @__errno_location() #9
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2829, ptr noundef @.str.5, i32 noundef %2830, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2833, ptr noundef %2836, ptr noundef %2839, i32 noundef %2841) #8
  br label %2843

2843:                                             ; preds = %2826, %2809
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

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

2846:                                             ; No predecessors!
  br label %2847

2847:                                             ; preds = %2846
  br label %2848

2848:                                             ; preds = %2847, %2788
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

2850:                                             ; preds = %2849
  br label %2851

2851:                                             ; preds = %2850
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

2853:                                             ; preds = %2852
  %2854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2854, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2855 = call ptr @__errno_location() #9
  store i32 0, ptr %2855, align 4, !tbaa !5
  br label %2856

2856:                                             ; preds = %2853
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858
  br label %2860

2860:                                             ; preds = %2859
  %2861 = load i32, ptr @test_count, align 4, !tbaa !5
  %2862 = add nsw i32 %2861, 1
  store i32 %2862, ptr @test_count, align 4, !tbaa !5
  %2863 = load ptr, ptr %58, align 8, !tbaa !9
  %2864 = call i32 @s2n_connection_free(ptr noundef %2863)
  %2865 = icmp eq i32 %2864, -1
  br i1 %2865, label %2866, label %2919

2866:                                             ; preds = %2860
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %2869 = call ptr @__errno_location() #9
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  store i32 %2870, ptr %67, align 4, !tbaa !5
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @s2n_print_stacktrace(ptr noundef %2871)
  %2873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2874 = trunc i8 %2873 to i1
  br i1 %2874, label %2875, label %2897

2875:                                             ; preds = %2868
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = call i32 @fileno(ptr noundef %2876) #8
  %2878 = call i32 @isatty(i32 noundef %2877) #8
  %2879 = icmp ne i32 %2878, 0
  br i1 %2879, label %2880, label %2897

2880:                                             ; preds = %2875
  %2881 = load i32, ptr %67, align 4, !tbaa !5
  %2882 = call ptr @__errno_location() #9
  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() #9
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @strerror(i32 noundef %2892) #8
  %2894 = call ptr @__errno_location() #9
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef @.str.2, i32 noundef %2884, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2887, ptr noundef %2890, ptr noundef %2893, i32 noundef %2895) #8
  br label %2914

2897:                                             ; preds = %2875, %2868
  %2898 = load i32, ptr %67, align 4, !tbaa !5
  %2899 = call ptr @__errno_location() #9
  store i32 %2898, ptr %2899, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror(i32 noundef %2903, ptr noundef @.str.4)
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror_debug(i32 noundef %2906, ptr noundef @.str.4)
  %2908 = call ptr @__errno_location() #9
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #8
  %2911 = call ptr @__errno_location() #9
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2900, ptr noundef @.str.5, i32 noundef %2901, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2904, ptr noundef %2907, ptr noundef %2910, i32 noundef %2912) #8
  br label %2914

2914:                                             ; preds = %2897, %2880
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

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

2917:                                             ; No predecessors!
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918, %2860
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = add nsw i32 %2923, 1
  store i32 %2924, ptr @test_count, align 4, !tbaa !5
  %2925 = call i32 @s2n_stuffer_free(ptr noundef %61)
  %2926 = icmp eq i32 %2925, -1
  br i1 %2926, label %2927, label %2980

2927:                                             ; preds = %2922
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  %2930 = call ptr @__errno_location() #9
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  store i32 %2931, ptr %68, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = call i32 @s2n_print_stacktrace(ptr noundef %2932)
  %2934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2935 = trunc i8 %2934 to i1
  br i1 %2935, label %2936, label %2958

2936:                                             ; preds = %2929
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = call i32 @fileno(ptr noundef %2937) #8
  %2939 = call i32 @isatty(i32 noundef %2938) #8
  %2940 = icmp ne i32 %2939, 0
  br i1 %2940, label %2941, label %2958

2941:                                             ; preds = %2936
  %2942 = load i32, ptr %68, align 4, !tbaa !5
  %2943 = call ptr @__errno_location() #9
  store i32 %2942, ptr %2943, align 4, !tbaa !5
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2947 = load i32, ptr %2946, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror(i32 noundef %2947, ptr noundef @.str.4)
  %2949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  %2951 = call ptr @s2n_strerror_debug(i32 noundef %2950, ptr noundef @.str.4)
  %2952 = call ptr @__errno_location() #9
  %2953 = load i32, ptr %2952, align 4, !tbaa !5
  %2954 = call ptr @strerror(i32 noundef %2953) #8
  %2955 = call ptr @__errno_location() #9
  %2956 = load i32, ptr %2955, align 4, !tbaa !5
  %2957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef @.str.2, i32 noundef %2945, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2948, ptr noundef %2951, ptr noundef %2954, i32 noundef %2956) #8
  br label %2975

2958:                                             ; preds = %2936, %2929
  %2959 = load i32, ptr %68, align 4, !tbaa !5
  %2960 = call ptr @__errno_location() #9
  store i32 %2959, ptr %2960, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2964 = load i32, ptr %2963, align 4, !tbaa !5
  %2965 = call ptr @s2n_strerror(i32 noundef %2964, ptr noundef @.str.4)
  %2966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2967 = load i32, ptr %2966, align 4, !tbaa !5
  %2968 = call ptr @s2n_strerror_debug(i32 noundef %2967, ptr noundef @.str.4)
  %2969 = call ptr @__errno_location() #9
  %2970 = load i32, ptr %2969, align 4, !tbaa !5
  %2971 = call ptr @strerror(i32 noundef %2970) #8
  %2972 = call ptr @__errno_location() #9
  %2973 = load i32, ptr %2972, align 4, !tbaa !5
  %2974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef @.str.5, i32 noundef %2962, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2965, ptr noundef %2968, ptr noundef %2971, i32 noundef %2973) #8
  br label %2975

2975:                                             ; preds = %2958, %2941
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %2976

2976:                                             ; preds = %2975
  br label %2977

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

2978:                                             ; No predecessors!
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979, %2922
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981
  call void @llvm.lifetime.end.p0(i64 40, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  store ptr null, ptr %69, align 8, !tbaa !9
  br label %2983

2983:                                             ; preds = %2982
  %2984 = load i32, ptr @test_count, align 4, !tbaa !5
  %2985 = add nsw i32 %2984, 1
  store i32 %2985, ptr @test_count, align 4, !tbaa !5
  %2986 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2986, ptr %69, align 8, !tbaa !9
  %2987 = icmp eq ptr %2986, null
  br i1 %2987, label %2988, label %3041

2988:                                             ; preds = %2983
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

2990:                                             ; preds = %2989
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  %2991 = call ptr @__errno_location() #9
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  store i32 %2992, ptr %70, align 4, !tbaa !5
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = call i32 @s2n_print_stacktrace(ptr noundef %2993)
  %2995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2996 = trunc i8 %2995 to i1
  br i1 %2996, label %2997, label %3019

2997:                                             ; preds = %2990
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @fileno(ptr noundef %2998) #8
  %3000 = call i32 @isatty(i32 noundef %2999) #8
  %3001 = icmp ne i32 %3000, 0
  br i1 %3001, label %3002, label %3019

3002:                                             ; preds = %2997
  %3003 = load i32, ptr %70, align 4, !tbaa !5
  %3004 = call ptr @__errno_location() #9
  store i32 %3003, ptr %3004, align 4, !tbaa !5
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror(i32 noundef %3008, ptr noundef @.str.4)
  %3010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @s2n_strerror_debug(i32 noundef %3011, ptr noundef @.str.4)
  %3013 = call ptr @__errno_location() #9
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call ptr @strerror(i32 noundef %3014) #8
  %3016 = call ptr @__errno_location() #9
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3005, ptr noundef @.str.2, i32 noundef %3006, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3009, ptr noundef %3012, ptr noundef %3015, i32 noundef %3017) #8
  br label %3036

3019:                                             ; preds = %2997, %2990
  %3020 = load i32, ptr %70, align 4, !tbaa !5
  %3021 = call ptr @__errno_location() #9
  store i32 %3020, ptr %3021, align 4, !tbaa !5
  %3022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3023 = load i32, ptr @test_count, align 4, !tbaa !5
  %3024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror(i32 noundef %3025, ptr noundef @.str.4)
  %3027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror_debug(i32 noundef %3028, ptr noundef @.str.4)
  %3030 = call ptr @__errno_location() #9
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #8
  %3033 = call ptr @__errno_location() #9
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3022, ptr noundef @.str.5, i32 noundef %3023, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3026, ptr noundef %3029, ptr noundef %3032, i32 noundef %3034) #8
  br label %3036

3036:                                             ; preds = %3019, %3002
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

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

3039:                                             ; No predecessors!
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

3041:                                             ; preds = %3040, %2983
  br label %3042

3042:                                             ; preds = %3041
  br label %3043

3043:                                             ; preds = %3042
  br label %3044

3044:                                             ; preds = %3043
  %3045 = load i32, ptr @test_count, align 4, !tbaa !5
  %3046 = add nsw i32 %3045, 1
  store i32 %3046, ptr @test_count, align 4, !tbaa !5
  %3047 = load ptr, ptr %69, align 8, !tbaa !9
  %3048 = load ptr, ptr %11, align 8, !tbaa !9
  %3049 = call i32 @s2n_connection_set_config(ptr noundef %3047, ptr noundef %3048)
  %3050 = icmp eq i32 %3049, -1
  br i1 %3050, label %3051, label %3104

3051:                                             ; preds = %3044
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

3053:                                             ; preds = %3052
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  %3054 = call ptr @__errno_location() #9
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  store i32 %3055, ptr %71, align 4, !tbaa !5
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = call i32 @s2n_print_stacktrace(ptr noundef %3056)
  %3058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3059 = trunc i8 %3058 to i1
  br i1 %3059, label %3060, label %3082

3060:                                             ; preds = %3053
  %3061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3062 = call i32 @fileno(ptr noundef %3061) #8
  %3063 = call i32 @isatty(i32 noundef %3062) #8
  %3064 = icmp ne i32 %3063, 0
  br i1 %3064, label %3065, label %3082

3065:                                             ; preds = %3060
  %3066 = load i32, ptr %71, align 4, !tbaa !5
  %3067 = call ptr @__errno_location() #9
  store i32 %3066, ptr %3067, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror_debug(i32 noundef %3074, ptr noundef @.str.4)
  %3076 = call ptr @__errno_location() #9
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @strerror(i32 noundef %3077) #8
  %3079 = call ptr @__errno_location() #9
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3068, ptr noundef @.str.2, i32 noundef %3069, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3072, ptr noundef %3075, ptr noundef %3078, i32 noundef %3080) #8
  br label %3099

3082:                                             ; preds = %3060, %3053
  %3083 = load i32, ptr %71, align 4, !tbaa !5
  %3084 = call ptr @__errno_location() #9
  store i32 %3083, ptr %3084, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef @.str.4)
  %3090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call ptr @s2n_strerror_debug(i32 noundef %3091, ptr noundef @.str.4)
  %3093 = call ptr @__errno_location() #9
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call ptr @strerror(i32 noundef %3094) #8
  %3096 = call ptr @__errno_location() #9
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef @.str.5, i32 noundef %3086, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3089, ptr noundef %3092, ptr noundef %3095, i32 noundef %3097) #8
  br label %3099

3099:                                             ; preds = %3082, %3065
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

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

3102:                                             ; No predecessors!
  br label %3103

3103:                                             ; preds = %3102
  br label %3104

3104:                                             ; preds = %3103, %3044
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

3106:                                             ; preds = %3105
  call void @llvm.lifetime.start.p0(i64 40, ptr %72) #8
  call void @llvm.memset.p0.i64(ptr align 8 %72, i8 0, i64 40, i1 false)
  br label %3107

3107:                                             ; preds = %3106
  %3108 = load i32, ptr @test_count, align 4, !tbaa !5
  %3109 = add nsw i32 %3108, 1
  store i32 %3109, ptr @test_count, align 4, !tbaa !5
  %3110 = call i32 @s2n_stuffer_alloc(ptr noundef %72, i32 noundef 1)
  %3111 = icmp eq i32 %3110, -1
  br i1 %3111, label %3112, label %3165

3112:                                             ; preds = %3107
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

3114:                                             ; preds = %3113
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #8
  %3115 = call ptr @__errno_location() #9
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  store i32 %3116, ptr %73, align 4, !tbaa !5
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = call i32 @s2n_print_stacktrace(ptr noundef %3117)
  %3119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3120 = trunc i8 %3119 to i1
  br i1 %3120, label %3121, label %3143

3121:                                             ; preds = %3114
  %3122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3123 = call i32 @fileno(ptr noundef %3122) #8
  %3124 = call i32 @isatty(i32 noundef %3123) #8
  %3125 = icmp ne i32 %3124, 0
  br i1 %3125, label %3126, label %3143

3126:                                             ; preds = %3121
  %3127 = load i32, ptr %73, align 4, !tbaa !5
  %3128 = call ptr @__errno_location() #9
  store i32 %3127, ptr %3128, align 4, !tbaa !5
  %3129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3130 = load i32, ptr @test_count, align 4, !tbaa !5
  %3131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror(i32 noundef %3132, ptr noundef @.str.4)
  %3134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror_debug(i32 noundef %3135, ptr noundef @.str.4)
  %3137 = call ptr @__errno_location() #9
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call ptr @strerror(i32 noundef %3138) #8
  %3140 = call ptr @__errno_location() #9
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3129, ptr noundef @.str.2, i32 noundef %3130, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 144, ptr noundef %3133, ptr noundef %3136, ptr noundef %3139, i32 noundef %3141) #8
  br label %3160

3143:                                             ; preds = %3121, %3114
  %3144 = load i32, ptr %73, align 4, !tbaa !5
  %3145 = call ptr @__errno_location() #9
  store i32 %3144, ptr %3145, align 4, !tbaa !5
  %3146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3149 = load i32, ptr %3148, align 4, !tbaa !5
  %3150 = call ptr @s2n_strerror(i32 noundef %3149, ptr noundef @.str.4)
  %3151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror_debug(i32 noundef %3152, ptr noundef @.str.4)
  %3154 = call ptr @__errno_location() #9
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @strerror(i32 noundef %3155) #8
  %3157 = call ptr @__errno_location() #9
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3146, ptr noundef @.str.5, i32 noundef %3147, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 144, ptr noundef %3150, ptr noundef %3153, ptr noundef %3156, i32 noundef %3158) #8
  br label %3160

3160:                                             ; preds = %3143, %3126
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %3161

3161:                                             ; preds = %3160
  br label %3162

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

3163:                                             ; No predecessors!
  br label %3164

3164:                                             ; preds = %3163
  br label %3165

3165:                                             ; preds = %3164, %3107
  br label %3166

3166:                                             ; preds = %3165
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

3168:                                             ; preds = %3167
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = add nsw i32 %3169, 1
  store i32 %3170, ptr @test_count, align 4, !tbaa !5
  %3171 = call i32 @s2n_stuffer_write_uint8(ptr noundef %72, i8 noundef zeroext 13)
  %3172 = icmp eq i32 %3171, -1
  br i1 %3172, label %3173, label %3226

3173:                                             ; preds = %3168
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

3175:                                             ; preds = %3174
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  %3176 = call ptr @__errno_location() #9
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  store i32 %3177, ptr %74, align 4, !tbaa !5
  %3178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3179 = call i32 @s2n_print_stacktrace(ptr noundef %3178)
  %3180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3181 = trunc i8 %3180 to i1
  br i1 %3181, label %3182, label %3204

3182:                                             ; preds = %3175
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = call i32 @fileno(ptr noundef %3183) #8
  %3185 = call i32 @isatty(i32 noundef %3184) #8
  %3186 = icmp ne i32 %3185, 0
  br i1 %3186, label %3187, label %3204

3187:                                             ; preds = %3182
  %3188 = load i32, ptr %74, align 4, !tbaa !5
  %3189 = call ptr @__errno_location() #9
  store i32 %3188, ptr %3189, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %3192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror(i32 noundef %3193, ptr noundef @.str.4)
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3196, ptr noundef @.str.4)
  %3198 = call ptr @__errno_location() #9
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @strerror(i32 noundef %3199) #8
  %3201 = call ptr @__errno_location() #9
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3190, ptr noundef @.str.2, i32 noundef %3191, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 146, ptr noundef %3194, ptr noundef %3197, ptr noundef %3200, i32 noundef %3202) #8
  br label %3221

3204:                                             ; preds = %3182, %3175
  %3205 = load i32, ptr %74, align 4, !tbaa !5
  %3206 = call ptr @__errno_location() #9
  store i32 %3205, ptr %3206, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef @.str.4)
  %3212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror_debug(i32 noundef %3213, ptr noundef @.str.4)
  %3215 = call ptr @__errno_location() #9
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @strerror(i32 noundef %3216) #8
  %3218 = call ptr @__errno_location() #9
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef @.str.5, i32 noundef %3208, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 146, ptr noundef %3211, ptr noundef %3214, ptr noundef %3217, i32 noundef %3219) #8
  br label %3221

3221:                                             ; preds = %3204, %3187
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

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

3224:                                             ; No predecessors!
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225, %3168
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

3229:                                             ; preds = %3228
  br label %3230

3230:                                             ; preds = %3229
  br label %3231

3231:                                             ; preds = %3230
  %3232 = load i32, ptr @test_count, align 4, !tbaa !5
  %3233 = add nsw i32 %3232, 1
  store i32 %3233, ptr @test_count, align 4, !tbaa !5
  %3234 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_supported_versions_extension, i32 0, i32 4), align 8, !tbaa !24
  %3235 = load ptr, ptr %69, align 8, !tbaa !9
  %3236 = call i32 %3234(ptr noundef %3235, ptr noundef %72)
  %3237 = icmp eq i32 %3236, -1
  br i1 %3237, label %3291, label %3238

3238:                                             ; preds = %3231
  br label %3239

3239:                                             ; preds = %3238
  br label %3240

3240:                                             ; preds = %3239
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %3241 = call ptr @__errno_location() #9
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  store i32 %3242, ptr %75, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = call i32 @s2n_print_stacktrace(ptr noundef %3243)
  %3245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3246 = trunc i8 %3245 to i1
  br i1 %3246, label %3247, label %3269

3247:                                             ; preds = %3240
  %3248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3249 = call i32 @fileno(ptr noundef %3248) #8
  %3250 = call i32 @isatty(i32 noundef %3249) #8
  %3251 = icmp ne i32 %3250, 0
  br i1 %3251, label %3252, label %3269

3252:                                             ; preds = %3247
  %3253 = load i32, ptr %75, align 4, !tbaa !5
  %3254 = call ptr @__errno_location() #9
  store i32 %3253, ptr %3254, align 4, !tbaa !5
  %3255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3256 = load i32, ptr @test_count, align 4, !tbaa !5
  %3257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @s2n_strerror(i32 noundef %3258, ptr noundef @.str.4)
  %3260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror_debug(i32 noundef %3261, ptr noundef @.str.4)
  %3263 = call ptr @__errno_location() #9
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call ptr @strerror(i32 noundef %3264) #8
  %3266 = call ptr @__errno_location() #9
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3255, ptr noundef @.str.2, i32 noundef %3256, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3259, ptr noundef %3262, ptr noundef %3265, i32 noundef %3267) #8
  br label %3286

3269:                                             ; preds = %3247, %3240
  %3270 = load i32, ptr %75, align 4, !tbaa !5
  %3271 = call ptr @__errno_location() #9
  store i32 %3270, ptr %3271, align 4, !tbaa !5
  %3272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3273 = load i32, ptr @test_count, align 4, !tbaa !5
  %3274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror(i32 noundef %3275, ptr noundef @.str.4)
  %3277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call ptr @s2n_strerror_debug(i32 noundef %3278, ptr noundef @.str.4)
  %3280 = call ptr @__errno_location() #9
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call ptr @strerror(i32 noundef %3281) #8
  %3283 = call ptr @__errno_location() #9
  %3284 = load i32, ptr %3283, align 4, !tbaa !5
  %3285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3272, ptr noundef @.str.5, i32 noundef %3273, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3276, ptr noundef %3279, ptr noundef %3282, i32 noundef %3284) #8
  br label %3286

3286:                                             ; preds = %3269, %3252
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

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

3289:                                             ; No predecessors!
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290, %3231
  br label %3292

3292:                                             ; preds = %3291
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293
  %3295 = load i32, ptr @test_count, align 4, !tbaa !5
  %3296 = add nsw i32 %3295, 1
  store i32 %3296, ptr @test_count, align 4, !tbaa !5
  %3297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  %3299 = icmp eq i32 %3298, 335544322
  br i1 %3299, label %3353, label %3300

3300:                                             ; preds = %3294
  br label %3301

3301:                                             ; preds = %3300
  br label %3302

3302:                                             ; preds = %3301
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %3303 = call ptr @__errno_location() #9
  %3304 = load i32, ptr %3303, align 4, !tbaa !5
  store i32 %3304, ptr %76, align 4, !tbaa !5
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = call i32 @s2n_print_stacktrace(ptr noundef %3305)
  %3307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3308 = trunc i8 %3307 to i1
  br i1 %3308, label %3309, label %3331

3309:                                             ; preds = %3302
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = call i32 @fileno(ptr noundef %3310) #8
  %3312 = call i32 @isatty(i32 noundef %3311) #8
  %3313 = icmp ne i32 %3312, 0
  br i1 %3313, label %3314, label %3331

3314:                                             ; preds = %3309
  %3315 = load i32, ptr %76, align 4, !tbaa !5
  %3316 = call ptr @__errno_location() #9
  store i32 %3315, ptr %3316, align 4, !tbaa !5
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = load i32, ptr @test_count, align 4, !tbaa !5
  %3319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call ptr @s2n_strerror(i32 noundef %3320, ptr noundef @.str.4)
  %3322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror_debug(i32 noundef %3323, ptr noundef @.str.4)
  %3325 = call ptr @__errno_location() #9
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @strerror(i32 noundef %3326) #8
  %3328 = call ptr @__errno_location() #9
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef @.str.2, i32 noundef %3318, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3321, ptr noundef %3324, ptr noundef %3327, i32 noundef %3329) #8
  br label %3348

3331:                                             ; preds = %3309, %3302
  %3332 = load i32, ptr %76, align 4, !tbaa !5
  %3333 = call ptr @__errno_location() #9
  store i32 %3332, ptr %3333, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = load i32, ptr @test_count, align 4, !tbaa !5
  %3336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @s2n_strerror(i32 noundef %3337, ptr noundef @.str.4)
  %3339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call ptr @s2n_strerror_debug(i32 noundef %3340, ptr noundef @.str.4)
  %3342 = call ptr @__errno_location() #9
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call ptr @strerror(i32 noundef %3343) #8
  %3345 = call ptr @__errno_location() #9
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3334, ptr noundef @.str.5, i32 noundef %3335, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3338, ptr noundef %3341, ptr noundef %3344, i32 noundef %3346) #8
  br label %3348

3348:                                             ; preds = %3331, %3314
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

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

3351:                                             ; No predecessors!
  br label %3352

3352:                                             ; preds = %3351
  br label %3353

3353:                                             ; preds = %3352, %3294
  br label %3354

3354:                                             ; preds = %3353
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

3356:                                             ; preds = %3355
  %3357 = load i32, ptr @test_count, align 4, !tbaa !5
  %3358 = add nsw i32 %3357, 1
  store i32 %3358, ptr @test_count, align 4, !tbaa !5
  %3359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call ptr @s2n_strerror_debug(i32 noundef %3360, ptr noundef @.str.4)
  %3362 = icmp eq ptr %3361, null
  br i1 %3362, label %3363, label %3416

3363:                                             ; preds = %3356
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

3365:                                             ; preds = %3364
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %3366 = call ptr @__errno_location() #9
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  store i32 %3367, ptr %77, align 4, !tbaa !5
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = call i32 @s2n_print_stacktrace(ptr noundef %3368)
  %3370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3371 = trunc i8 %3370 to i1
  br i1 %3371, label %3372, label %3394

3372:                                             ; preds = %3365
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = call i32 @fileno(ptr noundef %3373) #8
  %3375 = call i32 @isatty(i32 noundef %3374) #8
  %3376 = icmp ne i32 %3375, 0
  br i1 %3376, label %3377, label %3394

3377:                                             ; preds = %3372
  %3378 = load i32, ptr %77, align 4, !tbaa !5
  %3379 = call ptr @__errno_location() #9
  store i32 %3378, ptr %3379, align 4, !tbaa !5
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = load i32, ptr @test_count, align 4, !tbaa !5
  %3382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @s2n_strerror(i32 noundef %3383, ptr noundef @.str.4)
  %3385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call ptr @s2n_strerror_debug(i32 noundef %3386, ptr noundef @.str.4)
  %3388 = call ptr @__errno_location() #9
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @strerror(i32 noundef %3389) #8
  %3391 = call ptr @__errno_location() #9
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3380, ptr noundef @.str.2, i32 noundef %3381, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3384, ptr noundef %3387, ptr noundef %3390, i32 noundef %3392) #8
  br label %3411

3394:                                             ; preds = %3372, %3365
  %3395 = load i32, ptr %77, align 4, !tbaa !5
  %3396 = call ptr @__errno_location() #9
  store i32 %3395, ptr %3396, align 4, !tbaa !5
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = load i32, ptr @test_count, align 4, !tbaa !5
  %3399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef @.str.4)
  %3402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call ptr @s2n_strerror_debug(i32 noundef %3403, ptr noundef @.str.4)
  %3405 = call ptr @__errno_location() #9
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call ptr @strerror(i32 noundef %3406) #8
  %3408 = call ptr @__errno_location() #9
  %3409 = load i32, ptr %3408, align 4, !tbaa !5
  %3410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3397, ptr noundef @.str.5, i32 noundef %3398, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3401, ptr noundef %3404, ptr noundef %3407, i32 noundef %3409) #8
  br label %3411

3411:                                             ; preds = %3394, %3377
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

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

3414:                                             ; No predecessors!
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415, %3356
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

3418:                                             ; preds = %3417
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

3421:                                             ; preds = %3420
  %3422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3422, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3423 = call ptr @__errno_location() #9
  store i32 0, ptr %3423, align 4, !tbaa !5
  br label %3424

3424:                                             ; preds = %3421
  br label %3425

3425:                                             ; preds = %3424
  br label %3426

3426:                                             ; preds = %3425
  br label %3427

3427:                                             ; preds = %3426
  br label %3428

3428:                                             ; preds = %3427
  %3429 = load i32, ptr @test_count, align 4, !tbaa !5
  %3430 = add nsw i32 %3429, 1
  store i32 %3430, ptr @test_count, align 4, !tbaa !5
  %3431 = load ptr, ptr %69, align 8, !tbaa !9
  %3432 = call i32 @s2n_connection_free(ptr noundef %3431)
  %3433 = icmp eq i32 %3432, -1
  br i1 %3433, label %3434, label %3487

3434:                                             ; preds = %3428
  br label %3435

3435:                                             ; preds = %3434
  br label %3436

3436:                                             ; preds = %3435
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  %3437 = call ptr @__errno_location() #9
  %3438 = load i32, ptr %3437, align 4, !tbaa !5
  store i32 %3438, ptr %78, align 4, !tbaa !5
  %3439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3440 = call i32 @s2n_print_stacktrace(ptr noundef %3439)
  %3441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3442 = trunc i8 %3441 to i1
  br i1 %3442, label %3443, label %3465

3443:                                             ; preds = %3436
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = call i32 @fileno(ptr noundef %3444) #8
  %3446 = call i32 @isatty(i32 noundef %3445) #8
  %3447 = icmp ne i32 %3446, 0
  br i1 %3447, label %3448, label %3465

3448:                                             ; preds = %3443
  %3449 = load i32, ptr %78, align 4, !tbaa !5
  %3450 = call ptr @__errno_location() #9
  store i32 %3449, ptr %3450, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef @.str.4)
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror_debug(i32 noundef %3457, ptr noundef @.str.4)
  %3459 = call ptr @__errno_location() #9
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @strerror(i32 noundef %3460) #8
  %3462 = call ptr @__errno_location() #9
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3451, ptr noundef @.str.2, i32 noundef %3452, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3455, ptr noundef %3458, ptr noundef %3461, i32 noundef %3463) #8
  br label %3482

3465:                                             ; preds = %3443, %3436
  %3466 = load i32, ptr %78, align 4, !tbaa !5
  %3467 = call ptr @__errno_location() #9
  store i32 %3466, ptr %3467, align 4, !tbaa !5
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3471 = load i32, ptr %3470, align 4, !tbaa !5
  %3472 = call ptr @s2n_strerror(i32 noundef %3471, ptr noundef @.str.4)
  %3473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3474 = load i32, ptr %3473, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror_debug(i32 noundef %3474, ptr noundef @.str.4)
  %3476 = call ptr @__errno_location() #9
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @strerror(i32 noundef %3477) #8
  %3479 = call ptr @__errno_location() #9
  %3480 = load i32, ptr %3479, align 4, !tbaa !5
  %3481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3468, ptr noundef @.str.5, i32 noundef %3469, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3472, ptr noundef %3475, ptr noundef %3478, i32 noundef %3480) #8
  br label %3482

3482:                                             ; preds = %3465, %3448
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

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

3485:                                             ; No predecessors!
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486, %3428
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

3490:                                             ; preds = %3489
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = add nsw i32 %3491, 1
  store i32 %3492, ptr @test_count, align 4, !tbaa !5
  %3493 = call i32 @s2n_stuffer_free(ptr noundef %72)
  %3494 = icmp eq i32 %3493, -1
  br i1 %3494, label %3495, label %3548

3495:                                             ; preds = %3490
  br label %3496

3496:                                             ; preds = %3495
  br label %3497

3497:                                             ; preds = %3496
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  %3498 = call ptr @__errno_location() #9
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  store i32 %3499, ptr %79, align 4, !tbaa !5
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = call i32 @s2n_print_stacktrace(ptr noundef %3500)
  %3502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3503 = trunc i8 %3502 to i1
  br i1 %3503, label %3504, label %3526

3504:                                             ; preds = %3497
  %3505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3506 = call i32 @fileno(ptr noundef %3505) #8
  %3507 = call i32 @isatty(i32 noundef %3506) #8
  %3508 = icmp ne i32 %3507, 0
  br i1 %3508, label %3509, label %3526

3509:                                             ; preds = %3504
  %3510 = load i32, ptr %79, align 4, !tbaa !5
  %3511 = call ptr @__errno_location() #9
  store i32 %3510, ptr %3511, align 4, !tbaa !5
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = load i32, ptr @test_count, align 4, !tbaa !5
  %3514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call ptr @s2n_strerror(i32 noundef %3515, ptr noundef @.str.4)
  %3517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3518 = load i32, ptr %3517, align 4, !tbaa !5
  %3519 = call ptr @s2n_strerror_debug(i32 noundef %3518, ptr noundef @.str.4)
  %3520 = call ptr @__errno_location() #9
  %3521 = load i32, ptr %3520, align 4, !tbaa !5
  %3522 = call ptr @strerror(i32 noundef %3521) #8
  %3523 = call ptr @__errno_location() #9
  %3524 = load i32, ptr %3523, align 4, !tbaa !5
  %3525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3512, ptr noundef @.str.2, i32 noundef %3513, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 151, ptr noundef %3516, ptr noundef %3519, ptr noundef %3522, i32 noundef %3524) #8
  br label %3543

3526:                                             ; preds = %3504, %3497
  %3527 = load i32, ptr %79, align 4, !tbaa !5
  %3528 = call ptr @__errno_location() #9
  store i32 %3527, ptr %3528, align 4, !tbaa !5
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror(i32 noundef %3532, ptr noundef @.str.4)
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror_debug(i32 noundef %3535, ptr noundef @.str.4)
  %3537 = call ptr @__errno_location() #9
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call ptr @strerror(i32 noundef %3538) #8
  %3540 = call ptr @__errno_location() #9
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3529, ptr noundef @.str.5, i32 noundef %3530, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 151, ptr noundef %3533, ptr noundef %3536, ptr noundef %3539, i32 noundef %3541) #8
  br label %3543

3543:                                             ; preds = %3526, %3509
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

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

3546:                                             ; No predecessors!
  br label %3547

3547:                                             ; preds = %3546
  br label %3548

3548:                                             ; preds = %3547, %3490
  br label %3549

3549:                                             ; preds = %3548
  br label %3550

3550:                                             ; preds = %3549
  call void @llvm.lifetime.end.p0(i64 40, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %3551

3551:                                             ; preds = %3550
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = add nsw i32 %3552, 1
  store i32 %3553, ptr @test_count, align 4, !tbaa !5
  %3554 = load ptr, ptr %11, align 8, !tbaa !9
  %3555 = call i32 @s2n_config_free(ptr noundef %3554)
  %3556 = icmp eq i32 %3555, -1
  br i1 %3556, label %3557, label %3610

3557:                                             ; preds = %3551
  br label %3558

3558:                                             ; preds = %3557
  br label %3559

3559:                                             ; preds = %3558
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  %3560 = call ptr @__errno_location() #9
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  store i32 %3561, ptr %80, align 4, !tbaa !5
  %3562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3563 = call i32 @s2n_print_stacktrace(ptr noundef %3562)
  %3564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3565 = trunc i8 %3564 to i1
  br i1 %3565, label %3566, label %3588

3566:                                             ; preds = %3559
  %3567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3568 = call i32 @fileno(ptr noundef %3567) #8
  %3569 = call i32 @isatty(i32 noundef %3568) #8
  %3570 = icmp ne i32 %3569, 0
  br i1 %3570, label %3571, label %3588

3571:                                             ; preds = %3566
  %3572 = load i32, ptr %80, align 4, !tbaa !5
  %3573 = call ptr @__errno_location() #9
  store i32 %3572, ptr %3573, align 4, !tbaa !5
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call ptr @s2n_strerror(i32 noundef %3577, ptr noundef @.str.4)
  %3579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror_debug(i32 noundef %3580, ptr noundef @.str.4)
  %3582 = call ptr @__errno_location() #9
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call ptr @strerror(i32 noundef %3583) #8
  %3585 = call ptr @__errno_location() #9
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3574, ptr noundef @.str.2, i32 noundef %3575, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3578, ptr noundef %3581, ptr noundef %3584, i32 noundef %3586) #8
  br label %3605

3588:                                             ; preds = %3566, %3559
  %3589 = load i32, ptr %80, align 4, !tbaa !5
  %3590 = call ptr @__errno_location() #9
  store i32 %3589, ptr %3590, align 4, !tbaa !5
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = load i32, ptr @test_count, align 4, !tbaa !5
  %3593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror(i32 noundef %3594, ptr noundef @.str.4)
  %3596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call ptr @s2n_strerror_debug(i32 noundef %3597, ptr noundef @.str.4)
  %3599 = call ptr @__errno_location() #9
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call ptr @strerror(i32 noundef %3600) #8
  %3602 = call ptr @__errno_location() #9
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3591, ptr noundef @.str.5, i32 noundef %3592, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3595, ptr noundef %3598, ptr noundef %3601, i32 noundef %3603) #8
  br label %3605

3605:                                             ; preds = %3588, %3571
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %3606

3606:                                             ; preds = %3605
  br label %3607

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

3608:                                             ; No predecessors!
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

3610:                                             ; preds = %3609, %3551
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

3614:                                             ; preds = %3613
  %3615 = call i32 @s2n_cleanup()
  %3616 = icmp eq i32 %3615, -1
  br i1 %3616, label %3617, label %3670

3617:                                             ; preds = %3614
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %3620 = call ptr @__errno_location() #9
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  store i32 %3621, ptr %81, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = call i32 @s2n_print_stacktrace(ptr noundef %3622)
  %3624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3625 = trunc i8 %3624 to i1
  br i1 %3625, label %3626, label %3648

3626:                                             ; preds = %3619
  %3627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3628 = call i32 @fileno(ptr noundef %3627) #8
  %3629 = call i32 @isatty(i32 noundef %3628) #8
  %3630 = icmp ne i32 %3629, 0
  br i1 %3630, label %3631, label %3648

3631:                                             ; preds = %3626
  %3632 = load i32, ptr %81, align 4, !tbaa !5
  %3633 = call ptr @__errno_location() #9
  store i32 %3632, ptr %3633, align 4, !tbaa !5
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = load i32, ptr @test_count, align 4, !tbaa !5
  %3636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = call ptr @s2n_strerror(i32 noundef %3637, ptr noundef @.str.4)
  %3639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  %3641 = call ptr @s2n_strerror_debug(i32 noundef %3640, ptr noundef @.str.4)
  %3642 = call ptr @__errno_location() #9
  %3643 = load i32, ptr %3642, align 4, !tbaa !5
  %3644 = call ptr @strerror(i32 noundef %3643) #8
  %3645 = call ptr @__errno_location() #9
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  %3647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3634, ptr noundef @.str.2, i32 noundef %3635, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3638, ptr noundef %3641, ptr noundef %3644, i32 noundef %3646) #8
  br label %3665

3648:                                             ; preds = %3626, %3619
  %3649 = load i32, ptr %81, align 4, !tbaa !5
  %3650 = call ptr @__errno_location() #9
  store i32 %3649, ptr %3650, align 4, !tbaa !5
  %3651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3652 = load i32, ptr @test_count, align 4, !tbaa !5
  %3653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  %3655 = call ptr @s2n_strerror(i32 noundef %3654, ptr noundef @.str.4)
  %3656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror_debug(i32 noundef %3657, ptr noundef @.str.4)
  %3659 = call ptr @__errno_location() #9
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @strerror(i32 noundef %3660) #8
  %3662 = call ptr @__errno_location() #9
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3651, ptr noundef @.str.5, i32 noundef %3652, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3655, ptr noundef %3658, ptr noundef %3661, i32 noundef %3663) #8
  br label %3665

3665:                                             ; preds = %3648, %3631
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

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

3668:                                             ; No predecessors!
  br label %3669

3669:                                             ; preds = %3668
  br label %3670

3670:                                             ; preds = %3669, %3614
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  %3675 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3676 = icmp eq i32 %3675, -1
  br i1 %3676, label %3677, label %3730

3677:                                             ; preds = %3674
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

3679:                                             ; preds = %3678
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %3680 = call ptr @__errno_location() #9
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  store i32 %3681, ptr %82, align 4, !tbaa !5
  %3682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3683 = call i32 @s2n_print_stacktrace(ptr noundef %3682)
  %3684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3685 = trunc i8 %3684 to i1
  br i1 %3685, label %3686, label %3708

3686:                                             ; preds = %3679
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = call i32 @fileno(ptr noundef %3687) #8
  %3689 = call i32 @isatty(i32 noundef %3688) #8
  %3690 = icmp ne i32 %3689, 0
  br i1 %3690, label %3691, label %3708

3691:                                             ; preds = %3686
  %3692 = load i32, ptr %82, align 4, !tbaa !5
  %3693 = call ptr @__errno_location() #9
  store i32 %3692, ptr %3693, align 4, !tbaa !5
  %3694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3697 = load i32, ptr %3696, align 4, !tbaa !5
  %3698 = call ptr @s2n_strerror(i32 noundef %3697, ptr noundef @.str.4)
  %3699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror_debug(i32 noundef %3700, ptr noundef @.str.4)
  %3702 = call ptr @__errno_location() #9
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @strerror(i32 noundef %3703) #8
  %3705 = call ptr @__errno_location() #9
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3694, ptr noundef @.str.2, i32 noundef %3695, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3698, ptr noundef %3701, ptr noundef %3704, i32 noundef %3706) #8
  br label %3725

3708:                                             ; preds = %3686, %3679
  %3709 = load i32, ptr %82, align 4, !tbaa !5
  %3710 = call ptr @__errno_location() #9
  store i32 %3709, ptr %3710, align 4, !tbaa !5
  %3711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3712 = load i32, ptr @test_count, align 4, !tbaa !5
  %3713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror(i32 noundef %3714, ptr noundef @.str.4)
  %3716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror_debug(i32 noundef %3717, ptr noundef @.str.4)
  %3719 = call ptr @__errno_location() #9
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @strerror(i32 noundef %3720) #8
  %3722 = call ptr @__errno_location() #9
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3711, ptr noundef @.str.5, i32 noundef %3712, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3715, ptr noundef %3718, ptr noundef %3721, i32 noundef %3723) #8
  br label %3725

3725:                                             ; preds = %3708, %3691
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %3726

3726:                                             ; preds = %3725
  br label %3727

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

3728:                                             ; No predecessors!
  br label %3729

3729:                                             ; preds = %3728
  br label %3730

3730:                                             ; preds = %3729, %3674
  br label %3731

3731:                                             ; preds = %3730
  br label %3732

3732:                                             ; preds = %3731
  %3733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3734 = trunc i8 %3733 to i1
  br i1 %3734, label %3735, label %3751

3735:                                             ; preds = %3732
  %3736 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3737 = call i32 @fileno(ptr noundef %3736) #8
  %3738 = call i32 @isatty(i32 noundef %3737) #8
  %3739 = icmp ne i32 %3738, 0
  br i1 %3739, label %3740, label %3751

3740:                                             ; preds = %3735
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = icmp ne i32 %3741, 0
  br i1 %3742, label %3743, label %3747

3743:                                             ; preds = %3740
  %3744 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3745 = load i32, ptr @test_count, align 4, !tbaa !5
  %3746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3744, ptr noundef @.str.36, i32 noundef %3745) #8
  br label %3750

3747:                                             ; preds = %3740
  %3748 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3748, ptr noundef @.str.37) #8
  br label %3750

3750:                                             ; preds = %3747, %3743
  br label %3762

3751:                                             ; preds = %3735, %3732
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = icmp ne i32 %3752, 0
  br i1 %3753, label %3754, label %3758

3754:                                             ; preds = %3751
  %3755 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef @.str.38, i32 noundef %3756) #8
  br label %3761

3758:                                             ; preds = %3751
  %3759 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3759, ptr noundef @.str.39) #8
  br label %3761

3761:                                             ; preds = %3758, %3754
  br label %3762

3762:                                             ; preds = %3761, %3750
  store i32 0, ptr %3, align 4
  store i32 1, ptr %83, align 4
  br label %3767

3763:                                             ; No predecessors!
  br label %3764

3764:                                             ; preds = %3763
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

3766:                                             ; preds = %3765
  store i32 0, ptr %83, align 4
  br label %3767

3767:                                             ; preds = %3766, %3762
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  %3768 = load i32, ptr %83, align 4
  switch i32 %3768, label %3771 [
    i32 0, label %3769
    i32 1, label %3769
  ]

3769:                                             ; preds = %3767, %3767
  %3770 = load i32, ptr %3, align 4
  ret i32 %3770

3771:                                             ; preds = %3767
  unreachable
}

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

declare i32 @fflush(ptr noundef) #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #1

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

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

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

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

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

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

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

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

declare i32 @s2n_init() #1

declare i32 @s2n_enable_tls13_in_test(...) #1

declare ptr @s2n_config_new() #1

declare ptr @s2n_connection_new(i32 noundef) #1

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

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

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

declare i32 @s2n_extensions_server_supported_versions_size(ptr noundef) #1

declare i32 @s2n_connection_free(ptr noundef) #1

declare i32 @s2n_stuffer_free(ptr noundef) #1

declare void @s2n_debug_info_reset() #1

declare i32 @s2n_config_free(ptr noundef) #1

declare i32 @s2n_cleanup() #1

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

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

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

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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [103 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [75 x i8], align 1
@s2n_server_supported_versions_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.13 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1

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

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #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 %struct.s2n_stuffer, align 8
  %4 = alloca %struct.s2n_stuffer, align 8
  %5 = alloca %struct.s2n_stuffer, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %8 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %10 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11 = tail call i32 @fflush(ptr noundef %10)
  %12 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %13 = icmp eq i32 %12, -1
  br i1 %13, label %14, label %38

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

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

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

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

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

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

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

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

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

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

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

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

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

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

94:                                               ; preds = %67
  %95 = load i32, ptr @test_count, align 4, !tbaa !5
  %96 = add nsw i32 %95, 1
  store i32 %96, ptr @test_count, align 4, !tbaa !5
  %97 = tail call i32 (...) @s2n_enable_tls13_in_test() #9
  %98 = icmp eq i32 %97, -1
  br i1 %98, label %99, label %123

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

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

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

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

123:                                              ; preds = %94
  %124 = load i32, ptr @test_count, align 4, !tbaa !5
  %125 = add nsw i32 %124, 1
  store i32 %125, ptr @test_count, align 4, !tbaa !5
  %126 = tail call ptr @s2n_config_new() #9
  %127 = icmp eq ptr %126, null
  br i1 %127, label %128, label %152

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

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

139:                                              ; preds = %135, %128
  br label %140

140:                                              ; preds = %135, %139
  %.str.5.sink265 = phi ptr [ @.str.5, %139 ], [ @.str.2, %135 ]
  store i32 %130, ptr %129, align 4, !tbaa !5
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = load i32, ptr @test_count, align 4, !tbaa !5
  %143 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = tail call ptr @s2n_strerror(i32 noundef %144, ptr noundef nonnull @.str.4) #9
  %146 = load i32, ptr %143, align 4, !tbaa !5
  %147 = tail call ptr @s2n_strerror_debug(i32 noundef %146, ptr noundef nonnull @.str.4) #9
  %148 = load i32, ptr %129, align 4, !tbaa !5
  %149 = tail call ptr @strerror(i32 noundef %148) #9
  %150 = load i32, ptr %129, align 4, !tbaa !5
  %151 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %141, ptr noundef nonnull %.str.5.sink265, i32 noundef %142, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %145, ptr noundef %147, ptr noundef %149, i32 noundef %150) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

152:                                              ; preds = %123
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr @test_count, align 4, !tbaa !5
  %155 = tail call ptr @s2n_connection_new(i32 noundef 0) #9
  %156 = icmp eq ptr %155, null
  br i1 %156, label %157, label %181

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

164:                                              ; preds = %157
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = tail call i32 @fileno(ptr noundef %165) #9
  %167 = tail call i32 @isatty(i32 noundef %166) #9
  %.not216 = icmp eq i32 %167, 0
  br i1 %.not216, label %168, label %169

168:                                              ; preds = %164, %157
  br label %169

169:                                              ; preds = %164, %168
  %.str.5.sink276 = phi ptr [ @.str.5, %168 ], [ @.str.2, %164 ]
  store i32 %159, ptr %158, align 4, !tbaa !5
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = load i32, ptr @test_count, align 4, !tbaa !5
  %172 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = tail call ptr @s2n_strerror(i32 noundef %173, ptr noundef nonnull @.str.4) #9
  %175 = load i32, ptr %172, align 4, !tbaa !5
  %176 = tail call ptr @s2n_strerror_debug(i32 noundef %175, ptr noundef nonnull @.str.4) #9
  %177 = load i32, ptr %158, align 4, !tbaa !5
  %178 = tail call ptr @strerror(i32 noundef %177) #9
  %179 = load i32, ptr %158, align 4, !tbaa !5
  %180 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef nonnull %.str.5.sink276, i32 noundef %171, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %174, ptr noundef %176, ptr noundef %178, i32 noundef %179) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

181:                                              ; preds = %152
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = add nsw i32 %182, 1
  store i32 %183, ptr @test_count, align 4, !tbaa !5
  %184 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %155, ptr noundef nonnull %126) #9
  %185 = icmp eq i32 %184, -1
  br i1 %185, label %186, label %210

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

193:                                              ; preds = %186
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = tail call i32 @fileno(ptr noundef %194) #9
  %196 = tail call i32 @isatty(i32 noundef %195) #9
  %.not215 = icmp eq i32 %196, 0
  br i1 %.not215, label %197, label %198

197:                                              ; preds = %193, %186
  br label %198

198:                                              ; preds = %193, %197
  %.str.5.sink287 = phi ptr [ @.str.5, %197 ], [ @.str.2, %193 ]
  store i32 %188, ptr %187, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = load i32, ptr @test_count, align 4, !tbaa !5
  %201 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = tail call ptr @s2n_strerror(i32 noundef %202, ptr noundef nonnull @.str.4) #9
  %204 = load i32, ptr %201, align 4, !tbaa !5
  %205 = tail call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef nonnull @.str.4) #9
  %206 = load i32, ptr %187, align 4, !tbaa !5
  %207 = tail call ptr @strerror(i32 noundef %206) #9
  %208 = load i32, ptr %187, align 4, !tbaa !5
  %209 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %199, ptr noundef nonnull %.str.5.sink287, i32 noundef %200, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %203, ptr noundef %205, ptr noundef %207, i32 noundef %208) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

210:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %211 = load i32, ptr @test_count, align 4, !tbaa !5
  %212 = add nsw i32 %211, 1
  store i32 %212, ptr @test_count, align 4, !tbaa !5
  %213 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %3, i32 noundef 6) #9
  %214 = icmp eq i32 %213, -1
  br i1 %214, label %215, label %239

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

222:                                              ; preds = %215
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 @fileno(ptr noundef %223) #9
  %225 = call i32 @isatty(i32 noundef %224) #9
  %.not214 = icmp eq i32 %225, 0
  br i1 %.not214, label %226, label %227

226:                                              ; preds = %222, %215
  br label %227

227:                                              ; preds = %222, %226
  %.str.5.sink298 = phi ptr [ @.str.5, %226 ], [ @.str.2, %222 ]
  store i32 %217, ptr %216, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #9
  %233 = load i32, ptr %230, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #9
  %235 = load i32, ptr %216, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #9
  %237 = load i32, ptr %216, align 4, !tbaa !5
  %238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef nonnull %.str.5.sink298, i32 noundef %229, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #11
  call void @exit(i32 noundef 1) #12
  unreachable

239:                                              ; preds = %210
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr @test_count, align 4, !tbaa !5
  %242 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_supported_versions_extension, i64 8), align 8, !tbaa !15
  %243 = call i32 %242(ptr noundef nonnull %155, ptr noundef nonnull %3) #9
  %244 = icmp eq i32 %243, -1
  br i1 %244, label %245, label %269

245:                                              ; preds = %239
  %246 = tail call ptr @__errno_location() #10
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = call i32 @s2n_print_stacktrace(ptr noundef %248) #9
  %250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %251 = trunc nuw i8 %250 to i1
  br i1 %251, label %252, label %256

252:                                              ; preds = %245
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @fileno(ptr noundef %253) #9
  %255 = call i32 @isatty(i32 noundef %254) #9
  %.not213 = icmp eq i32 %255, 0
  br i1 %.not213, label %256, label %257

256:                                              ; preds = %252, %245
  br label %257

257:                                              ; preds = %252, %256
  %.str.5.sink309 = phi ptr [ @.str.5, %256 ], [ @.str.2, %252 ]
  store i32 %247, ptr %246, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = load i32, ptr @test_count, align 4, !tbaa !5
  %260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @s2n_strerror(i32 noundef %261, ptr noundef nonnull @.str.4) #9
  %263 = load i32, ptr %260, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror_debug(i32 noundef %263, ptr noundef nonnull @.str.4) #9
  %265 = load i32, ptr %246, align 4, !tbaa !5
  %266 = call ptr @strerror(i32 noundef %265) #9
  %267 = load i32, ptr %246, align 4, !tbaa !5
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %258, ptr noundef nonnull %.str.5.sink309, i32 noundef %259, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %262, ptr noundef %264, ptr noundef %266, i32 noundef %267) #11
  call void @exit(i32 noundef 1) #12
  unreachable

269:                                              ; preds = %239
  %270 = call i32 @s2n_extensions_server_supported_versions_size(ptr noundef nonnull %155) #9
  %271 = add i32 %270, 65532
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr @test_count, align 4, !tbaa !5
  %274 = and i32 %271, 65535
  %275 = getelementptr inbounds i8, ptr %3, i64 28
  %276 = load i32, ptr %275, align 4, !tbaa !18
  %277 = getelementptr inbounds i8, ptr %3, i64 24
  %278 = load i32, ptr %277, align 8, !tbaa !21
  %279 = sub i32 %276, %278
  %280 = icmp eq i32 %274, %279
  br i1 %280, label %305, label %281

281:                                              ; preds = %269
  %282 = tail call ptr @__errno_location() #10
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = call i32 @s2n_print_stacktrace(ptr noundef %284) #9
  %286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %287 = trunc nuw i8 %286 to i1
  br i1 %287, label %288, label %292

288:                                              ; preds = %281
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = call i32 @fileno(ptr noundef %289) #9
  %291 = call i32 @isatty(i32 noundef %290) #9
  %.not = icmp eq i32 %291, 0
  br i1 %.not, label %292, label %293

292:                                              ; preds = %288, %281
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink320 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %282, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror(i32 noundef %297, ptr noundef nonnull @.str.4) #9
  %299 = load i32, ptr %296, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef nonnull @.str.4) #9
  %301 = load i32, ptr %282, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #9
  %303 = load i32, ptr %282, align 4, !tbaa !5
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink320, i32 noundef %295, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %298, ptr noundef %300, ptr noundef %302, i32 noundef %303) #11
  call void @exit(i32 noundef 1) #12
  unreachable

305:                                              ; preds = %269
  %306 = add nsw i32 %272, 2
  store i32 %306, ptr @test_count, align 4, !tbaa !5
  %307 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %308 = icmp eq ptr %307, null
  br i1 %308, label %309, label %333

309:                                              ; preds = %305
  %310 = tail call ptr @__errno_location() #10
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @s2n_print_stacktrace(ptr noundef %312) #9
  %314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %315 = trunc nuw i8 %314 to i1
  br i1 %315, label %316, label %320

316:                                              ; preds = %309
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @fileno(ptr noundef %317) #9
  %319 = call i32 @isatty(i32 noundef %318) #9
  %.not212 = icmp eq i32 %319, 0
  br i1 %.not212, label %320, label %321

320:                                              ; preds = %316, %309
  br label %321

321:                                              ; preds = %316, %320
  %.str.5.sink331 = phi ptr [ @.str.5, %320 ], [ @.str.2, %316 ]
  store i32 %311, ptr %310, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef nonnull @.str.4) #9
  %327 = load i32, ptr %324, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror_debug(i32 noundef %327, ptr noundef nonnull @.str.4) #9
  %329 = load i32, ptr %310, align 4, !tbaa !5
  %330 = call ptr @strerror(i32 noundef %329) #9
  %331 = load i32, ptr %310, align 4, !tbaa !5
  %332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef nonnull %.str.5.sink331, i32 noundef %323, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %326, ptr noundef %328, ptr noundef %330, i32 noundef %331) #11
  call void @exit(i32 noundef 1) #12
  unreachable

333:                                              ; preds = %305
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr @test_count, align 4, !tbaa !5
  %336 = call i32 @s2n_connection_set_config(ptr noundef nonnull %307, ptr noundef nonnull %126) #9
  %337 = icmp eq i32 %336, -1
  br i1 %337, label %338, label %362

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

345:                                              ; preds = %338
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @fileno(ptr noundef %346) #9
  %348 = call i32 @isatty(i32 noundef %347) #9
  %.not211 = icmp eq i32 %348, 0
  br i1 %.not211, label %349, label %350

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.5.sink342 = phi ptr [ @.str.5, %349 ], [ @.str.2, %345 ]
  store i32 %340, ptr %339, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef nonnull @.str.4) #9
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.4) #9
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #9
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.5.sink342, i32 noundef %352, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #11
  call void @exit(i32 noundef 1) #12
  unreachable

362:                                              ; preds = %333
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_supported_versions_extension, i64 16), align 8, !tbaa !22
  %366 = call i32 %365(ptr noundef nonnull %307, ptr noundef nonnull %3) #9
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %392

368:                                              ; preds = %362
  %369 = tail call ptr @__errno_location() #10
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @s2n_print_stacktrace(ptr noundef %371) #9
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %368
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @fileno(ptr noundef %376) #9
  %378 = call i32 @isatty(i32 noundef %377) #9
  %.not210 = icmp eq i32 %378, 0
  br i1 %.not210, label %379, label %380

379:                                              ; preds = %375, %368
  br label %380

380:                                              ; preds = %375, %379
  %.str.5.sink353 = phi ptr [ @.str.5, %379 ], [ @.str.2, %375 ]
  store i32 %370, ptr %369, 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 nonnull @.str.4) #9
  %386 = load i32, ptr %383, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef nonnull @.str.4) #9
  %388 = load i32, ptr %369, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #9
  %390 = load i32, ptr %369, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.5.sink353, i32 noundef %382, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %385, ptr noundef %387, ptr noundef %389, i32 noundef %390) #11
  call void @exit(i32 noundef 1) #12
  unreachable

392:                                              ; preds = %362
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %307, i64 218
  %396 = load i8, ptr %395, align 2, !tbaa !23
  %397 = icmp eq i8 %396, 34
  br i1 %397, label %422, label %398

398:                                              ; preds = %392
  %399 = tail call ptr @__errno_location() #10
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = call i32 @s2n_print_stacktrace(ptr noundef %401) #9
  %403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %404 = trunc nuw i8 %403 to i1
  br i1 %404, label %405, label %409

405:                                              ; preds = %398
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @fileno(ptr noundef %406) #9
  %408 = call i32 @isatty(i32 noundef %407) #9
  %.not162 = icmp eq i32 %408, 0
  br i1 %.not162, label %409, label %410

409:                                              ; preds = %405, %398
  br label %410

410:                                              ; preds = %405, %409
  %.str.5.sink364 = phi ptr [ @.str.5, %409 ], [ @.str.2, %405 ]
  store i32 %400, ptr %399, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef nonnull @.str.4) #9
  %416 = load i32, ptr %413, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef nonnull @.str.4) #9
  %418 = load i32, ptr %399, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #9
  %420 = load i32, ptr %399, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef nonnull %.str.5.sink364, i32 noundef %412, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %415, ptr noundef %417, ptr noundef %419, i32 noundef %420) #11
  call void @exit(i32 noundef 1) #12
  unreachable

422:                                              ; preds = %392
  %423 = add nsw i32 %393, 2
  store i32 %423, ptr @test_count, align 4, !tbaa !5
  %424 = getelementptr inbounds i8, ptr %307, i64 219
  %425 = load i8, ptr %424, align 1, !tbaa !47
  %426 = icmp eq i8 %425, 34
  br i1 %426, label %451, label %427

427:                                              ; preds = %422
  %428 = tail call ptr @__errno_location() #10
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @s2n_print_stacktrace(ptr noundef %430) #9
  %432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %433 = trunc nuw i8 %432 to i1
  br i1 %433, label %434, label %438

434:                                              ; preds = %427
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = call i32 @fileno(ptr noundef %435) #9
  %437 = call i32 @isatty(i32 noundef %436) #9
  %.not163 = icmp eq i32 %437, 0
  br i1 %.not163, label %438, label %439

438:                                              ; preds = %434, %427
  br label %439

439:                                              ; preds = %434, %438
  %.str.5.sink375 = phi ptr [ @.str.5, %438 ], [ @.str.2, %434 ]
  store i32 %429, ptr %428, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror(i32 noundef %443, ptr noundef nonnull @.str.4) #9
  %445 = load i32, ptr %442, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror_debug(i32 noundef %445, ptr noundef nonnull @.str.4) #9
  %447 = load i32, ptr %428, align 4, !tbaa !5
  %448 = call ptr @strerror(i32 noundef %447) #9
  %449 = load i32, ptr %428, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %440, ptr noundef nonnull %.str.5.sink375, i32 noundef %441, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %444, ptr noundef %446, ptr noundef %448, i32 noundef %449) #11
  call void @exit(i32 noundef 1) #12
  unreachable

451:                                              ; preds = %422
  %452 = add nsw i32 %393, 3
  store i32 %452, ptr @test_count, align 4, !tbaa !5
  %453 = getelementptr inbounds i8, ptr %307, i64 220
  %454 = load i8, ptr %453, align 4, !tbaa !48
  %455 = icmp eq i8 %454, 34
  br i1 %455, label %480, label %456

456:                                              ; preds = %451
  %457 = tail call ptr @__errno_location() #10
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459) #9
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc nuw i8 %461 to i1
  br i1 %462, label %463, label %467

463:                                              ; preds = %456
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #9
  %466 = call i32 @isatty(i32 noundef %465) #9
  %.not164 = icmp eq i32 %466, 0
  br i1 %.not164, label %467, label %468

467:                                              ; preds = %463, %456
  br label %468

468:                                              ; preds = %463, %467
  %.str.5.sink386 = phi ptr [ @.str.5, %467 ], [ @.str.2, %463 ]
  store i32 %458, ptr %457, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef nonnull @.str.4) #9
  %474 = load i32, ptr %471, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror_debug(i32 noundef %474, ptr noundef nonnull @.str.4) #9
  %476 = load i32, ptr %457, align 4, !tbaa !5
  %477 = call ptr @strerror(i32 noundef %476) #9
  %478 = load i32, ptr %457, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef nonnull %.str.5.sink386, i32 noundef %470, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %473, ptr noundef %475, ptr noundef %477, i32 noundef %478) #11
  call void @exit(i32 noundef 1) #12
  unreachable

480:                                              ; preds = %451
  %481 = add nsw i32 %393, 4
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = call i32 @s2n_connection_free(ptr noundef nonnull %307) #9
  %483 = icmp eq i32 %482, -1
  br i1 %483, label %484, label %508

484:                                              ; preds = %480
  %485 = tail call ptr @__errno_location() #10
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = call i32 @s2n_print_stacktrace(ptr noundef %487) #9
  %489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %490 = trunc nuw i8 %489 to i1
  br i1 %490, label %491, label %495

491:                                              ; preds = %484
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @fileno(ptr noundef %492) #9
  %494 = call i32 @isatty(i32 noundef %493) #9
  %.not209 = icmp eq i32 %494, 0
  br i1 %.not209, label %495, label %496

495:                                              ; preds = %491, %484
  br label %496

496:                                              ; preds = %491, %495
  %.str.5.sink397 = phi ptr [ @.str.5, %495 ], [ @.str.2, %491 ]
  store i32 %486, ptr %485, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef nonnull @.str.4) #9
  %502 = load i32, ptr %499, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef nonnull @.str.4) #9
  %504 = load i32, ptr %485, align 4, !tbaa !5
  %505 = call ptr @strerror(i32 noundef %504) #9
  %506 = load i32, ptr %485, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull %.str.5.sink397, i32 noundef %498, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %501, ptr noundef %503, ptr noundef %505, i32 noundef %506) #11
  call void @exit(i32 noundef 1) #12
  unreachable

508:                                              ; preds = %480
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  %511 = call i32 @s2n_connection_free(ptr noundef nonnull %155) #9
  %512 = icmp eq i32 %511, -1
  br i1 %512, label %513, label %537

513:                                              ; preds = %508
  %514 = tail call ptr @__errno_location() #10
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @s2n_print_stacktrace(ptr noundef %516) #9
  %518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %519 = trunc nuw i8 %518 to i1
  br i1 %519, label %520, label %524

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #9
  %523 = call i32 @isatty(i32 noundef %522) #9
  %.not208 = icmp eq i32 %523, 0
  br i1 %.not208, label %524, label %525

524:                                              ; preds = %520, %513
  br label %525

525:                                              ; preds = %520, %524
  %.str.5.sink408 = phi ptr [ @.str.5, %524 ], [ @.str.2, %520 ]
  store i32 %515, ptr %514, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %529, ptr noundef nonnull @.str.4) #9
  %531 = load i32, ptr %528, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.4) #9
  %533 = load i32, ptr %514, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #9
  %535 = load i32, ptr %514, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.5.sink408, i32 noundef %527, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #11
  call void @exit(i32 noundef 1) #12
  unreachable

537:                                              ; preds = %508
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #9
  %541 = icmp eq i32 %540, -1
  br i1 %541, label %542, label %566

542:                                              ; preds = %537
  %543 = tail call ptr @__errno_location() #10
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @s2n_print_stacktrace(ptr noundef %545) #9
  %547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %548 = trunc nuw i8 %547 to i1
  br i1 %548, label %549, label %553

549:                                              ; preds = %542
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @fileno(ptr noundef %550) #9
  %552 = call i32 @isatty(i32 noundef %551) #9
  %.not207 = icmp eq i32 %552, 0
  br i1 %.not207, label %553, label %554

553:                                              ; preds = %549, %542
  br label %554

554:                                              ; preds = %549, %553
  %.str.5.sink419 = phi ptr [ @.str.5, %553 ], [ @.str.2, %549 ]
  store i32 %544, ptr %543, align 4, !tbaa !5
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = load i32, ptr @test_count, align 4, !tbaa !5
  %557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror(i32 noundef %558, ptr noundef nonnull @.str.4) #9
  %560 = load i32, ptr %557, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef nonnull @.str.4) #9
  %562 = load i32, ptr %543, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #9
  %564 = load i32, ptr %543, align 4, !tbaa !5
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %555, ptr noundef nonnull %.str.5.sink419, i32 noundef %556, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %559, ptr noundef %561, ptr noundef %563, i32 noundef %564) #11
  call void @exit(i32 noundef 1) #12
  unreachable

566:                                              ; preds = %537
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr @test_count, align 4, !tbaa !5
  %569 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %570 = icmp eq ptr %569, null
  br i1 %570, label %571, label %595

571:                                              ; preds = %566
  %572 = tail call ptr @__errno_location() #10
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = call i32 @s2n_print_stacktrace(ptr noundef %574) #9
  %576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %577 = trunc nuw i8 %576 to i1
  br i1 %577, label %578, label %582

578:                                              ; preds = %571
  %579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %580 = call i32 @fileno(ptr noundef %579) #9
  %581 = call i32 @isatty(i32 noundef %580) #9
  %.not206 = icmp eq i32 %581, 0
  br i1 %.not206, label %582, label %583

582:                                              ; preds = %578, %571
  br label %583

583:                                              ; preds = %578, %582
  %.str.5.sink430 = phi ptr [ @.str.5, %582 ], [ @.str.2, %578 ]
  store i32 %573, ptr %572, align 4, !tbaa !5
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = load i32, ptr @test_count, align 4, !tbaa !5
  %586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %587 = load i32, ptr %586, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror(i32 noundef %587, ptr noundef nonnull @.str.4) #9
  %589 = load i32, ptr %586, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef nonnull @.str.4) #9
  %591 = load i32, ptr %572, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #9
  %593 = load i32, ptr %572, align 4, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %584, ptr noundef nonnull %.str.5.sink430, i32 noundef %585, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %588, ptr noundef %590, ptr noundef %592, i32 noundef %593) #11
  call void @exit(i32 noundef 1) #12
  unreachable

595:                                              ; preds = %566
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr @test_count, align 4, !tbaa !5
  %598 = call i32 @s2n_connection_set_config(ptr noundef nonnull %569, ptr noundef nonnull %126) #9
  %599 = icmp eq i32 %598, -1
  br i1 %599, label %600, label %624

600:                                              ; preds = %595
  %601 = tail call ptr @__errno_location() #10
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @s2n_print_stacktrace(ptr noundef %603) #9
  %605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %606 = trunc nuw i8 %605 to i1
  br i1 %606, label %607, label %611

607:                                              ; preds = %600
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = call i32 @fileno(ptr noundef %608) #9
  %610 = call i32 @isatty(i32 noundef %609) #9
  %.not205 = icmp eq i32 %610, 0
  br i1 %.not205, label %611, label %612

611:                                              ; preds = %607, %600
  br label %612

612:                                              ; preds = %607, %611
  %.str.5.sink441 = phi ptr [ @.str.5, %611 ], [ @.str.2, %607 ]
  store i32 %602, ptr %601, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef nonnull @.str.4) #9
  %618 = load i32, ptr %615, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef nonnull @.str.4) #9
  %620 = load i32, ptr %601, align 4, !tbaa !5
  %621 = call ptr @strerror(i32 noundef %620) #9
  %622 = load i32, ptr %601, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %613, ptr noundef nonnull %.str.5.sink441, i32 noundef %614, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %617, ptr noundef %619, ptr noundef %621, i32 noundef %622) #11
  call void @exit(i32 noundef 1) #12
  unreachable

624:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr @test_count, align 4, !tbaa !5
  %627 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %4, i32 noundef 6) #9
  %628 = icmp eq i32 %627, -1
  br i1 %628, label %629, label %653

629:                                              ; preds = %624
  %630 = tail call ptr @__errno_location() #10
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = call i32 @s2n_print_stacktrace(ptr noundef %632) #9
  %634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %635 = trunc nuw i8 %634 to i1
  br i1 %635, label %636, label %640

636:                                              ; preds = %629
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @fileno(ptr noundef %637) #9
  %639 = call i32 @isatty(i32 noundef %638) #9
  %.not204 = icmp eq i32 %639, 0
  br i1 %.not204, label %640, label %641

640:                                              ; preds = %636, %629
  br label %641

641:                                              ; preds = %636, %640
  %.str.5.sink452 = phi ptr [ @.str.5, %640 ], [ @.str.2, %636 ]
  store i32 %631, ptr %630, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef nonnull @.str.4) #9
  %647 = load i32, ptr %644, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef nonnull @.str.4) #9
  %649 = load i32, ptr %630, align 4, !tbaa !5
  %650 = call ptr @strerror(i32 noundef %649) #9
  %651 = load i32, ptr %630, align 4, !tbaa !5
  %652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef nonnull %.str.5.sink452, i32 noundef %643, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %646, ptr noundef %648, ptr noundef %650, i32 noundef %651) #11
  call void @exit(i32 noundef 1) #12
  unreachable

653:                                              ; preds = %624
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = call i32 @write_test_supported_version(ptr noundef nonnull %4, i8 noundef zeroext 0)
  %657 = icmp eq i32 %656, -1
  br i1 %657, label %658, label %682

658:                                              ; preds = %653
  %659 = tail call ptr @__errno_location() #10
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @s2n_print_stacktrace(ptr noundef %661) #9
  %663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %664 = trunc nuw i8 %663 to i1
  br i1 %664, label %665, label %669

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

669:                                              ; preds = %665, %658
  br label %670

670:                                              ; preds = %665, %669
  %.str.5.sink463 = phi ptr [ @.str.5, %669 ], [ @.str.2, %665 ]
  store i32 %660, ptr %659, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror(i32 noundef %674, ptr noundef nonnull @.str.4) #9
  %676 = load i32, ptr %673, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror_debug(i32 noundef %676, ptr noundef nonnull @.str.4) #9
  %678 = load i32, ptr %659, align 4, !tbaa !5
  %679 = call ptr @strerror(i32 noundef %678) #9
  %680 = load i32, ptr %659, align 4, !tbaa !5
  %681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef nonnull %.str.5.sink463, i32 noundef %672, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %675, ptr noundef %677, ptr noundef %679, i32 noundef %680) #11
  call void @exit(i32 noundef 1) #12
  unreachable

682:                                              ; preds = %653
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr @test_count, align 4, !tbaa !5
  %685 = call i32 %365(ptr noundef nonnull %569, ptr noundef nonnull %4) #9
  %686 = icmp eq i32 %685, -1
  br i1 %686, label %711, label %687

687:                                              ; preds = %682
  %688 = tail call ptr @__errno_location() #10
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = call i32 @s2n_print_stacktrace(ptr noundef %690) #9
  %692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %693 = trunc nuw i8 %692 to i1
  br i1 %693, label %694, label %698

694:                                              ; preds = %687
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = call i32 @fileno(ptr noundef %695) #9
  %697 = call i32 @isatty(i32 noundef %696) #9
  %.not165 = icmp eq i32 %697, 0
  br i1 %.not165, label %698, label %699

698:                                              ; preds = %694, %687
  br label %699

699:                                              ; preds = %694, %698
  %.str.5.sink474 = phi ptr [ @.str.5, %698 ], [ @.str.2, %694 ]
  store i32 %689, ptr %688, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef nonnull @.str.4) #9
  %705 = load i32, ptr %702, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef nonnull @.str.4) #9
  %707 = load i32, ptr %688, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #9
  %709 = load i32, ptr %688, align 4, !tbaa !5
  %710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef nonnull %.str.5.sink474, i32 noundef %701, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %704, ptr noundef %706, ptr noundef %708, i32 noundef %709) #11
  call void @exit(i32 noundef 1) #12
  unreachable

711:                                              ; preds = %682
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = icmp eq i32 %715, 335544322
  br i1 %716, label %740, label %717

717:                                              ; preds = %711
  %718 = tail call ptr @__errno_location() #10
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @s2n_print_stacktrace(ptr noundef %720) #9
  %722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %723 = trunc nuw i8 %722 to i1
  br i1 %723, label %724, label %728

724:                                              ; preds = %717
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = call i32 @fileno(ptr noundef %725) #9
  %727 = call i32 @isatty(i32 noundef %726) #9
  %.not166 = icmp eq i32 %727, 0
  br i1 %.not166, label %728, label %729

728:                                              ; preds = %724, %717
  br label %729

729:                                              ; preds = %724, %728
  %.str.5.sink485 = phi ptr [ @.str.5, %728 ], [ @.str.2, %724 ]
  store i32 %719, ptr %718, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = load i32, ptr %714, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef nonnull @.str.4) #9
  %734 = load i32, ptr %714, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef nonnull @.str.4) #9
  %736 = load i32, ptr %718, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #9
  %738 = load i32, ptr %718, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef nonnull %.str.5.sink485, i32 noundef %731, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %733, ptr noundef %735, ptr noundef %737, i32 noundef %738) #11
  call void @exit(i32 noundef 1) #12
  unreachable

740:                                              ; preds = %711
  %741 = add nsw i32 %712, 2
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #9
  %743 = icmp eq ptr %742, null
  br i1 %743, label %744, label %767

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

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

755:                                              ; preds = %751, %744
  br label %756

756:                                              ; preds = %751, %755
  %.str.5.sink494 = phi ptr [ @.str.5, %755 ], [ @.str.2, %751 ]
  store i32 %746, ptr %745, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = load i32, ptr %714, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror(i32 noundef %759, ptr noundef nonnull @.str.4) #9
  %761 = load i32, ptr %714, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef nonnull @.str.4) #9
  %763 = load i32, ptr %745, align 4, !tbaa !5
  %764 = call ptr @strerror(i32 noundef %763) #9
  %765 = load i32, ptr %745, align 4, !tbaa !5
  %766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef nonnull %.str.5.sink494, i32 noundef %758, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %760, ptr noundef %762, ptr noundef %764, i32 noundef %765) #11
  call void @exit(i32 noundef 1) #12
  unreachable

767:                                              ; preds = %740
  store i32 0, ptr %714, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %768 = tail call ptr @__errno_location() #10
  store i32 0, ptr %768, align 4, !tbaa !5
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call i32 @s2n_connection_free(ptr noundef nonnull %569) #9
  %772 = icmp eq i32 %771, -1
  br i1 %772, label %773, label %795

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

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

783:                                              ; preds = %779, %773
  br label %784

784:                                              ; preds = %779, %783
  %.str.5.sink503 = phi ptr [ @.str.5, %783 ], [ @.str.2, %779 ]
  store i32 %774, ptr %768, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = load i32, ptr @test_count, align 4, !tbaa !5
  %787 = load i32, ptr %714, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef nonnull @.str.4) #9
  %789 = load i32, ptr %714, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror_debug(i32 noundef %789, ptr noundef nonnull @.str.4) #9
  %791 = load i32, ptr %768, align 4, !tbaa !5
  %792 = call ptr @strerror(i32 noundef %791) #9
  %793 = load i32, ptr %768, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %785, ptr noundef nonnull %.str.5.sink503, i32 noundef %786, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %788, ptr noundef %790, ptr noundef %792, i32 noundef %793) #11
  call void @exit(i32 noundef 1) #12
  unreachable

795:                                              ; preds = %767
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr @test_count, align 4, !tbaa !5
  %798 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #9
  %799 = icmp eq i32 %798, -1
  br i1 %799, label %800, label %822

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

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

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

811:                                              ; preds = %806, %810
  %.str.5.sink512 = phi ptr [ @.str.5, %810 ], [ @.str.2, %806 ]
  store i32 %801, ptr %768, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = load i32, ptr %714, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror(i32 noundef %814, ptr noundef nonnull @.str.4) #9
  %816 = load i32, ptr %714, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror_debug(i32 noundef %816, ptr noundef nonnull @.str.4) #9
  %818 = load i32, ptr %768, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #9
  %820 = load i32, ptr %768, align 4, !tbaa !5
  %821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef nonnull %.str.5.sink512, i32 noundef %813, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %815, ptr noundef %817, ptr noundef %819, i32 noundef %820) #11
  call void @exit(i32 noundef 1) #12
  unreachable

822:                                              ; preds = %795
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #9
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr @test_count, align 4, !tbaa !5
  %825 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %826 = icmp eq ptr %825, null
  br i1 %826, label %827, label %849

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

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

837:                                              ; preds = %833, %827
  br label %838

838:                                              ; preds = %833, %837
  %.str.5.sink521 = phi ptr [ @.str.5, %837 ], [ @.str.2, %833 ]
  store i32 %828, ptr %768, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = load i32, ptr %714, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef nonnull @.str.4) #9
  %843 = load i32, ptr %714, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef nonnull @.str.4) #9
  %845 = load i32, ptr %768, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #9
  %847 = load i32, ptr %768, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %839, ptr noundef nonnull %.str.5.sink521, i32 noundef %840, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %842, ptr noundef %844, ptr noundef %846, i32 noundef %847) #11
  call void @exit(i32 noundef 1) #12
  unreachable

849:                                              ; preds = %822
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = add nsw i32 %850, 1
  store i32 %851, ptr @test_count, align 4, !tbaa !5
  %852 = call i32 @s2n_connection_set_config(ptr noundef nonnull %825, ptr noundef nonnull %126) #9
  %853 = icmp eq i32 %852, -1
  br i1 %853, label %854, label %876

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

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

864:                                              ; preds = %860, %854
  br label %865

865:                                              ; preds = %860, %864
  %.str.5.sink530 = phi ptr [ @.str.5, %864 ], [ @.str.2, %860 ]
  store i32 %855, ptr %768, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = load i32, ptr %714, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror(i32 noundef %868, ptr noundef nonnull @.str.4) #9
  %870 = load i32, ptr %714, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror_debug(i32 noundef %870, ptr noundef nonnull @.str.4) #9
  %872 = load i32, ptr %768, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #9
  %874 = load i32, ptr %768, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %866, ptr noundef nonnull %.str.5.sink530, i32 noundef %867, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %869, ptr noundef %871, ptr noundef %873, i32 noundef %874) #11
  call void @exit(i32 noundef 1) #12
  unreachable

876:                                              ; preds = %849
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %5, i32 noundef 6) #9
  %880 = icmp eq i32 %879, -1
  br i1 %880, label %881, label %903

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

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

891:                                              ; preds = %887, %881
  br label %892

892:                                              ; preds = %887, %891
  %.str.5.sink539 = phi ptr [ @.str.5, %891 ], [ @.str.2, %887 ]
  store i32 %882, ptr %768, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = load i32, ptr %714, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror(i32 noundef %895, ptr noundef nonnull @.str.4) #9
  %897 = load i32, ptr %714, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror_debug(i32 noundef %897, ptr noundef nonnull @.str.4) #9
  %899 = load i32, ptr %768, align 4, !tbaa !5
  %900 = call ptr @strerror(i32 noundef %899) #9
  %901 = load i32, ptr %768, align 4, !tbaa !5
  %902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef nonnull %.str.5.sink539, i32 noundef %894, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %896, ptr noundef %898, ptr noundef %900, i32 noundef %901) #11
  call void @exit(i32 noundef 1) #12
  unreachable

903:                                              ; preds = %876
  %904 = load i32, ptr @test_count, align 4, !tbaa !5
  %905 = add nsw i32 %904, 1
  store i32 %905, ptr @test_count, align 4, !tbaa !5
  %906 = call i32 @write_test_supported_version(ptr noundef nonnull %5, i8 noundef zeroext -1)
  %907 = icmp eq i32 %906, -1
  br i1 %907, label %908, label %930

908:                                              ; preds = %903
  %909 = load i32, ptr %768, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @s2n_print_stacktrace(ptr noundef %910) #9
  %912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc nuw i8 %912 to i1
  br i1 %913, label %914, label %918

914:                                              ; preds = %908
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @fileno(ptr noundef %915) #9
  %917 = call i32 @isatty(i32 noundef %916) #9
  %.not196 = icmp eq i32 %917, 0
  br i1 %.not196, label %918, label %919

918:                                              ; preds = %914, %908
  br label %919

919:                                              ; preds = %914, %918
  %.str.5.sink548 = phi ptr [ @.str.5, %918 ], [ @.str.2, %914 ]
  store i32 %909, ptr %768, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = load i32, ptr %714, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror(i32 noundef %922, ptr noundef nonnull @.str.4) #9
  %924 = load i32, ptr %714, align 4, !tbaa !5
  %925 = call ptr @s2n_strerror_debug(i32 noundef %924, ptr noundef nonnull @.str.4) #9
  %926 = load i32, ptr %768, align 4, !tbaa !5
  %927 = call ptr @strerror(i32 noundef %926) #9
  %928 = load i32, ptr %768, align 4, !tbaa !5
  %929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %920, ptr noundef nonnull %.str.5.sink548, i32 noundef %921, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %923, ptr noundef %925, ptr noundef %927, i32 noundef %928) #11
  call void @exit(i32 noundef 1) #12
  unreachable

930:                                              ; preds = %903
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = add nsw i32 %931, 1
  store i32 %932, ptr @test_count, align 4, !tbaa !5
  %933 = call i32 %365(ptr noundef nonnull %825, ptr noundef nonnull %5) #9
  %934 = icmp eq i32 %933, -1
  br i1 %934, label %957, label %935

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

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

945:                                              ; preds = %941, %935
  br label %946

946:                                              ; preds = %941, %945
  %.str.5.sink557 = phi ptr [ @.str.5, %945 ], [ @.str.2, %941 ]
  store i32 %936, ptr %768, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = load i32, ptr %714, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror(i32 noundef %949, ptr noundef nonnull @.str.4) #9
  %951 = load i32, ptr %714, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror_debug(i32 noundef %951, ptr noundef nonnull @.str.4) #9
  %953 = load i32, ptr %768, align 4, !tbaa !5
  %954 = call ptr @strerror(i32 noundef %953) #9
  %955 = load i32, ptr %768, align 4, !tbaa !5
  %956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull %.str.5.sink557, i32 noundef %948, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %950, ptr noundef %952, ptr noundef %954, i32 noundef %955) #11
  call void @exit(i32 noundef 1) #12
  unreachable

957:                                              ; preds = %930
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr @test_count, align 4, !tbaa !5
  %960 = load i32, ptr %714, align 4, !tbaa !5
  %961 = icmp eq i32 %960, 335544322
  br i1 %961, label %984, label %962

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

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

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

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

984:                                              ; preds = %957
  %985 = add nsw i32 %958, 2
  store i32 %985, ptr @test_count, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #9
  %987 = icmp eq ptr %986, null
  br i1 %987, label %988, label %1010

988:                                              ; preds = %984
  %989 = load i32, ptr %768, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @s2n_print_stacktrace(ptr noundef %990) #9
  %992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %993 = trunc nuw i8 %992 to i1
  br i1 %993, label %994, label %998

994:                                              ; preds = %988
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = call i32 @fileno(ptr noundef %995) #9
  %997 = call i32 @isatty(i32 noundef %996) #9
  %.not195 = icmp eq i32 %997, 0
  br i1 %.not195, label %998, label %999

998:                                              ; preds = %994, %988
  br label %999

999:                                              ; preds = %994, %998
  %.str.5.sink575 = phi ptr [ @.str.5, %998 ], [ @.str.2, %994 ]
  store i32 %989, ptr %768, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = load i32, ptr %714, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.4) #9
  %1004 = load i32, ptr %714, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.4) #9
  %1006 = load i32, ptr %768, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #9
  %1008 = load i32, ptr %768, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef nonnull %.str.5.sink575, i32 noundef %1001, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1010:                                             ; preds = %984
  store i32 0, ptr %714, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %768, align 4, !tbaa !5
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = add nsw i32 %1011, 1
  store i32 %1012, ptr @test_count, align 4, !tbaa !5
  %1013 = call i32 @s2n_connection_free(ptr noundef nonnull %825) #9
  %1014 = icmp eq i32 %1013, -1
  br i1 %1014, label %1015, label %1037

1015:                                             ; preds = %1010
  %1016 = load i32, ptr %768, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #9
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

1021:                                             ; preds = %1015
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @fileno(ptr noundef %1022) #9
  %1024 = call i32 @isatty(i32 noundef %1023) #9
  %.not194 = icmp eq i32 %1024, 0
  br i1 %.not194, label %1025, label %1026

1025:                                             ; preds = %1021, %1015
  br label %1026

1026:                                             ; preds = %1021, %1025
  %.str.5.sink584 = phi ptr [ @.str.5, %1025 ], [ @.str.2, %1021 ]
  store i32 %1016, ptr %768, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = load i32, ptr %714, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.4) #9
  %1031 = load i32, ptr %714, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.4) #9
  %1033 = load i32, ptr %768, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #9
  %1035 = load i32, ptr %768, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.5.sink584, i32 noundef %1028, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1037:                                             ; preds = %1010
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #9
  %1041 = icmp eq i32 %1040, -1
  br i1 %1041, label %1042, label %1064

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %768, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @s2n_print_stacktrace(ptr noundef %1044) #9
  %1046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1047 = trunc nuw i8 %1046 to i1
  br i1 %1047, label %1048, label %1052

1048:                                             ; preds = %1042
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @fileno(ptr noundef %1049) #9
  %1051 = call i32 @isatty(i32 noundef %1050) #9
  %.not193 = icmp eq i32 %1051, 0
  br i1 %.not193, label %1052, label %1053

1052:                                             ; preds = %1048, %1042
  br label %1053

1053:                                             ; preds = %1048, %1052
  %.str.5.sink593 = phi ptr [ @.str.5, %1052 ], [ @.str.2, %1048 ]
  store i32 %1043, ptr %768, align 4, !tbaa !5
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = load i32, ptr %714, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef nonnull @.str.4) #9
  %1058 = load i32, ptr %714, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef nonnull @.str.4) #9
  %1060 = load i32, ptr %768, align 4, !tbaa !5
  %1061 = call ptr @strerror(i32 noundef %1060) #9
  %1062 = load i32, ptr %768, align 4, !tbaa !5
  %1063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1054, ptr noundef nonnull %.str.5.sink593, i32 noundef %1055, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1057, ptr noundef %1059, ptr noundef %1061, i32 noundef %1062) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1064:                                             ; preds = %1037
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #9
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr @test_count, align 4, !tbaa !5
  %1067 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1068 = icmp eq ptr %1067, null
  br i1 %1068, label %1069, label %1091

1069:                                             ; preds = %1064
  %1070 = load i32, ptr %768, align 4, !tbaa !5
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = call i32 @s2n_print_stacktrace(ptr noundef %1071) #9
  %1073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1074 = trunc nuw i8 %1073 to i1
  br i1 %1074, label %1075, label %1079

1075:                                             ; preds = %1069
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = call i32 @fileno(ptr noundef %1076) #9
  %1078 = call i32 @isatty(i32 noundef %1077) #9
  %.not192 = icmp eq i32 %1078, 0
  br i1 %.not192, label %1079, label %1080

1079:                                             ; preds = %1075, %1069
  br label %1080

1080:                                             ; preds = %1075, %1079
  %.str.5.sink602 = phi ptr [ @.str.5, %1079 ], [ @.str.2, %1075 ]
  store i32 %1070, ptr %768, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = load i32, ptr %714, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror(i32 noundef %1083, ptr noundef nonnull @.str.4) #9
  %1085 = load i32, ptr %714, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror_debug(i32 noundef %1085, ptr noundef nonnull @.str.4) #9
  %1087 = load i32, ptr %768, align 4, !tbaa !5
  %1088 = call ptr @strerror(i32 noundef %1087) #9
  %1089 = load i32, ptr %768, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef nonnull %.str.5.sink602, i32 noundef %1082, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1084, ptr noundef %1086, ptr noundef %1088, i32 noundef %1089) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1091:                                             ; preds = %1064
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr @test_count, align 4, !tbaa !5
  %1094 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1067, ptr noundef nonnull %126) #9
  %1095 = icmp eq i32 %1094, -1
  br i1 %1095, label %1096, label %1118

1096:                                             ; preds = %1091
  %1097 = load i32, ptr %768, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @s2n_print_stacktrace(ptr noundef %1098) #9
  %1100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1101 = trunc nuw i8 %1100 to i1
  br i1 %1101, label %1102, label %1106

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

1106:                                             ; preds = %1102, %1096
  br label %1107

1107:                                             ; preds = %1102, %1106
  %.str.5.sink611 = phi ptr [ @.str.5, %1106 ], [ @.str.2, %1102 ]
  store i32 %1097, ptr %768, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = load i32, ptr %714, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef nonnull @.str.4) #9
  %1112 = load i32, ptr %714, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef nonnull @.str.4) #9
  %1114 = load i32, ptr %768, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #9
  %1116 = load i32, ptr %768, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1108, ptr noundef nonnull %.str.5.sink611, i32 noundef %1109, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1111, ptr noundef %1113, ptr noundef %1115, i32 noundef %1116) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1118:                                             ; preds = %1091
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr @test_count, align 4, !tbaa !5
  %1121 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %6, i32 noundef 1) #9
  %1122 = icmp eq i32 %1121, -1
  br i1 %1122, label %1123, label %1145

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

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

1133:                                             ; preds = %1129, %1123
  br label %1134

1134:                                             ; preds = %1129, %1133
  %.str.5.sink620 = phi ptr [ @.str.5, %1133 ], [ @.str.2, %1129 ]
  store i32 %1124, ptr %768, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = load i32, ptr %714, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror(i32 noundef %1137, ptr noundef nonnull @.str.4) #9
  %1139 = load i32, ptr %714, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef nonnull @.str.4) #9
  %1141 = load i32, ptr %768, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #9
  %1143 = load i32, ptr %768, align 4, !tbaa !5
  %1144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef nonnull %.str.5.sink620, i32 noundef %1136, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1138, ptr noundef %1140, ptr noundef %1142, i32 noundef %1143) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1145:                                             ; preds = %1118
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = add nsw i32 %1146, 1
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %6, i8 noundef zeroext 0) #9
  %1149 = icmp eq i32 %1148, -1
  br i1 %1149, label %1150, label %1172

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

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

1160:                                             ; preds = %1156, %1150
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.5.sink629 = phi ptr [ @.str.5, %1160 ], [ @.str.2, %1156 ]
  store i32 %1151, ptr %768, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = load i32, ptr %714, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror(i32 noundef %1164, ptr noundef nonnull @.str.4) #9
  %1166 = load i32, ptr %714, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror_debug(i32 noundef %1166, ptr noundef nonnull @.str.4) #9
  %1168 = load i32, ptr %768, align 4, !tbaa !5
  %1169 = call ptr @strerror(i32 noundef %1168) #9
  %1170 = load i32, ptr %768, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.5.sink629, i32 noundef %1163, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1165, ptr noundef %1167, ptr noundef %1169, i32 noundef %1170) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1172:                                             ; preds = %1145
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = add nsw i32 %1173, 1
  store i32 %1174, ptr @test_count, align 4, !tbaa !5
  %1175 = call i32 %365(ptr noundef nonnull %1067, ptr noundef nonnull %6) #9
  %1176 = icmp eq i32 %1175, -1
  br i1 %1176, label %1199, label %1177

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

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

1187:                                             ; preds = %1183, %1177
  br label %1188

1188:                                             ; preds = %1183, %1187
  %.str.5.sink638 = phi ptr [ @.str.5, %1187 ], [ @.str.2, %1183 ]
  store i32 %1178, ptr %768, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = load i32, ptr %714, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef nonnull @.str.4) #9
  %1193 = load i32, ptr %714, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef nonnull @.str.4) #9
  %1195 = load i32, ptr %768, align 4, !tbaa !5
  %1196 = call ptr @strerror(i32 noundef %1195) #9
  %1197 = load i32, ptr %768, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1189, ptr noundef nonnull %.str.5.sink638, i32 noundef %1190, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1192, ptr noundef %1194, ptr noundef %1196, i32 noundef %1197) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1199:                                             ; preds = %1172
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = add nsw i32 %1200, 1
  store i32 %1201, ptr @test_count, align 4, !tbaa !5
  %1202 = load i32, ptr %714, align 4, !tbaa !5
  %1203 = icmp eq i32 %1202, 335544322
  br i1 %1203, label %1226, label %1204

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

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

1214:                                             ; preds = %1210, %1204
  br label %1215

1215:                                             ; preds = %1210, %1214
  %.str.5.sink647 = phi ptr [ @.str.5, %1214 ], [ @.str.2, %1210 ]
  store i32 %1205, ptr %768, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = load i32, ptr %714, align 4, !tbaa !5
  %1219 = call ptr @s2n_strerror(i32 noundef %1218, ptr noundef nonnull @.str.4) #9
  %1220 = load i32, ptr %714, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror_debug(i32 noundef %1220, ptr noundef nonnull @.str.4) #9
  %1222 = load i32, ptr %768, align 4, !tbaa !5
  %1223 = call ptr @strerror(i32 noundef %1222) #9
  %1224 = load i32, ptr %768, align 4, !tbaa !5
  %1225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1216, ptr noundef nonnull %.str.5.sink647, i32 noundef %1217, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1219, ptr noundef %1221, ptr noundef %1223, i32 noundef %1224) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1226:                                             ; preds = %1199
  %1227 = add nsw i32 %1200, 2
  store i32 %1227, ptr @test_count, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #9
  %1229 = icmp eq ptr %1228, null
  br i1 %1229, label %1230, label %1252

1230:                                             ; preds = %1226
  %1231 = load i32, ptr %768, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = call i32 @s2n_print_stacktrace(ptr noundef %1232) #9
  %1234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1235 = trunc nuw i8 %1234 to i1
  br i1 %1235, label %1236, label %1240

1236:                                             ; preds = %1230
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @fileno(ptr noundef %1237) #9
  %1239 = call i32 @isatty(i32 noundef %1238) #9
  %.not188 = icmp eq i32 %1239, 0
  br i1 %.not188, label %1240, label %1241

1240:                                             ; preds = %1236, %1230
  br label %1241

1241:                                             ; preds = %1236, %1240
  %.str.5.sink656 = phi ptr [ @.str.5, %1240 ], [ @.str.2, %1236 ]
  store i32 %1231, ptr %768, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = load i32, ptr %714, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror(i32 noundef %1244, ptr noundef nonnull @.str.4) #9
  %1246 = load i32, ptr %714, align 4, !tbaa !5
  %1247 = call ptr @s2n_strerror_debug(i32 noundef %1246, ptr noundef nonnull @.str.4) #9
  %1248 = load i32, ptr %768, align 4, !tbaa !5
  %1249 = call ptr @strerror(i32 noundef %1248) #9
  %1250 = load i32, ptr %768, align 4, !tbaa !5
  %1251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1242, ptr noundef nonnull %.str.5.sink656, i32 noundef %1243, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1245, ptr noundef %1247, ptr noundef %1249, i32 noundef %1250) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1252:                                             ; preds = %1226
  store i32 0, ptr %714, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %768, align 4, !tbaa !5
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = add nsw i32 %1253, 1
  store i32 %1254, ptr @test_count, align 4, !tbaa !5
  %1255 = call i32 @s2n_connection_free(ptr noundef nonnull %1067) #9
  %1256 = icmp eq i32 %1255, -1
  br i1 %1256, label %1257, label %1279

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

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

1267:                                             ; preds = %1263, %1257
  br label %1268

1268:                                             ; preds = %1263, %1267
  %.str.5.sink665 = phi ptr [ @.str.5, %1267 ], [ @.str.2, %1263 ]
  store i32 %1258, ptr %768, align 4, !tbaa !5
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = load i32, ptr %714, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror(i32 noundef %1271, ptr noundef nonnull @.str.4) #9
  %1273 = load i32, ptr %714, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror_debug(i32 noundef %1273, ptr noundef nonnull @.str.4) #9
  %1275 = load i32, ptr %768, align 4, !tbaa !5
  %1276 = call ptr @strerror(i32 noundef %1275) #9
  %1277 = load i32, ptr %768, align 4, !tbaa !5
  %1278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1269, ptr noundef nonnull %.str.5.sink665, i32 noundef %1270, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1272, ptr noundef %1274, ptr noundef %1276, i32 noundef %1277) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1279:                                             ; preds = %1252
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = add nsw i32 %1280, 1
  store i32 %1281, ptr @test_count, align 4, !tbaa !5
  %1282 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #9
  %1283 = icmp eq i32 %1282, -1
  br i1 %1283, label %1284, label %1306

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

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

1294:                                             ; preds = %1290, %1284
  br label %1295

1295:                                             ; preds = %1290, %1294
  %.str.5.sink674 = phi ptr [ @.str.5, %1294 ], [ @.str.2, %1290 ]
  store i32 %1285, ptr %768, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = load i32, ptr %714, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror(i32 noundef %1298, ptr noundef nonnull @.str.4) #9
  %1300 = load i32, ptr %714, align 4, !tbaa !5
  %1301 = call ptr @s2n_strerror_debug(i32 noundef %1300, ptr noundef nonnull @.str.4) #9
  %1302 = load i32, ptr %768, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #9
  %1304 = load i32, ptr %768, align 4, !tbaa !5
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef nonnull %.str.5.sink674, i32 noundef %1297, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1299, ptr noundef %1301, ptr noundef %1303, i32 noundef %1304) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1306:                                             ; preds = %1279
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = add nsw i32 %1307, 1
  store i32 %1308, ptr @test_count, align 4, !tbaa !5
  %1309 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1310 = icmp eq ptr %1309, null
  br i1 %1310, label %1311, label %1333

1311:                                             ; preds = %1306
  %1312 = load i32, ptr %768, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @s2n_print_stacktrace(ptr noundef %1313) #9
  %1315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1316 = trunc nuw i8 %1315 to i1
  br i1 %1316, label %1317, label %1321

1317:                                             ; preds = %1311
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @fileno(ptr noundef %1318) #9
  %1320 = call i32 @isatty(i32 noundef %1319) #9
  %.not185 = icmp eq i32 %1320, 0
  br i1 %.not185, label %1321, label %1322

1321:                                             ; preds = %1317, %1311
  br label %1322

1322:                                             ; preds = %1317, %1321
  %.str.5.sink683 = phi ptr [ @.str.5, %1321 ], [ @.str.2, %1317 ]
  store i32 %1312, ptr %768, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = load i32, ptr %714, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef nonnull @.str.4) #9
  %1327 = load i32, ptr %714, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef nonnull @.str.4) #9
  %1329 = load i32, ptr %768, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #9
  %1331 = load i32, ptr %768, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1323, ptr noundef nonnull %.str.5.sink683, i32 noundef %1324, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1326, ptr noundef %1328, ptr noundef %1330, i32 noundef %1331) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1333:                                             ; preds = %1306
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1309, ptr noundef nonnull %126) #9
  %1337 = icmp eq i32 %1336, -1
  br i1 %1337, label %1338, label %1360

1338:                                             ; preds = %1333
  %1339 = load i32, ptr %768, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = call i32 @s2n_print_stacktrace(ptr noundef %1340) #9
  %1342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1343 = trunc nuw i8 %1342 to i1
  br i1 %1343, label %1344, label %1348

1344:                                             ; preds = %1338
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 @fileno(ptr noundef %1345) #9
  %1347 = call i32 @isatty(i32 noundef %1346) #9
  %.not184 = icmp eq i32 %1347, 0
  br i1 %.not184, label %1348, label %1349

1348:                                             ; preds = %1344, %1338
  br label %1349

1349:                                             ; preds = %1344, %1348
  %.str.5.sink692 = phi ptr [ @.str.5, %1348 ], [ @.str.2, %1344 ]
  store i32 %1339, ptr %768, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = load i32, ptr %714, align 4, !tbaa !5
  %1353 = call ptr @s2n_strerror(i32 noundef %1352, ptr noundef nonnull @.str.4) #9
  %1354 = load i32, ptr %714, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror_debug(i32 noundef %1354, ptr noundef nonnull @.str.4) #9
  %1356 = load i32, ptr %768, align 4, !tbaa !5
  %1357 = call ptr @strerror(i32 noundef %1356) #9
  %1358 = load i32, ptr %768, align 4, !tbaa !5
  %1359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1350, ptr noundef nonnull %.str.5.sink692, i32 noundef %1351, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1353, ptr noundef %1355, ptr noundef %1357, i32 noundef %1358) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1360:                                             ; preds = %1333
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr @test_count, align 4, !tbaa !5
  %1363 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %7, i32 noundef 1) #9
  %1364 = icmp eq i32 %1363, -1
  br i1 %1364, label %1365, label %1387

1365:                                             ; preds = %1360
  %1366 = load i32, ptr %768, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = call i32 @s2n_print_stacktrace(ptr noundef %1367) #9
  %1369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1370 = trunc nuw i8 %1369 to i1
  br i1 %1370, label %1371, label %1375

1371:                                             ; preds = %1365
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = call i32 @fileno(ptr noundef %1372) #9
  %1374 = call i32 @isatty(i32 noundef %1373) #9
  %.not183 = icmp eq i32 %1374, 0
  br i1 %.not183, label %1375, label %1376

1375:                                             ; preds = %1371, %1365
  br label %1376

1376:                                             ; preds = %1371, %1375
  %.str.5.sink701 = phi ptr [ @.str.5, %1375 ], [ @.str.2, %1371 ]
  store i32 %1366, ptr %768, align 4, !tbaa !5
  %1377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = load i32, ptr %714, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef nonnull @.str.4) #9
  %1381 = load i32, ptr %714, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef nonnull @.str.4) #9
  %1383 = load i32, ptr %768, align 4, !tbaa !5
  %1384 = call ptr @strerror(i32 noundef %1383) #9
  %1385 = load i32, ptr %768, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1377, ptr noundef nonnull %.str.5.sink701, i32 noundef %1378, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %1380, ptr noundef %1382, ptr noundef %1384, i32 noundef %1385) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1387:                                             ; preds = %1360
  %1388 = load i32, ptr @test_count, align 4, !tbaa !5
  %1389 = add nsw i32 %1388, 1
  store i32 %1389, ptr @test_count, align 4, !tbaa !5
  %1390 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %7, i8 noundef zeroext 13) #9
  %1391 = icmp eq i32 %1390, -1
  br i1 %1391, label %1392, label %1414

1392:                                             ; preds = %1387
  %1393 = load i32, ptr %768, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @s2n_print_stacktrace(ptr noundef %1394) #9
  %1396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1402

1398:                                             ; preds = %1392
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @fileno(ptr noundef %1399) #9
  %1401 = call i32 @isatty(i32 noundef %1400) #9
  %.not182 = icmp eq i32 %1401, 0
  br i1 %.not182, label %1402, label %1403

1402:                                             ; preds = %1398, %1392
  br label %1403

1403:                                             ; preds = %1398, %1402
  %.str.5.sink710 = phi ptr [ @.str.5, %1402 ], [ @.str.2, %1398 ]
  store i32 %1393, ptr %768, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = load i32, ptr %714, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef nonnull @.str.4) #9
  %1408 = load i32, ptr %714, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef nonnull @.str.4) #9
  %1410 = load i32, ptr %768, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #9
  %1412 = load i32, ptr %768, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef nonnull %.str.5.sink710, i32 noundef %1405, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i32 noundef %1412) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1414:                                             ; preds = %1387
  %1415 = load i32, ptr @test_count, align 4, !tbaa !5
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr @test_count, align 4, !tbaa !5
  %1417 = call i32 %365(ptr noundef nonnull %1309, ptr noundef nonnull %7) #9
  %1418 = icmp eq i32 %1417, -1
  br i1 %1418, label %1441, label %1419

1419:                                             ; preds = %1414
  %1420 = load i32, ptr %768, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @s2n_print_stacktrace(ptr noundef %1421) #9
  %1423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1424 = trunc nuw i8 %1423 to i1
  br i1 %1424, label %1425, label %1429

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

1429:                                             ; preds = %1425, %1419
  br label %1430

1430:                                             ; preds = %1425, %1429
  %.str.5.sink719 = phi ptr [ @.str.5, %1429 ], [ @.str.2, %1425 ]
  store i32 %1420, ptr %768, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = load i32, ptr %714, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror(i32 noundef %1433, ptr noundef nonnull @.str.4) #9
  %1435 = load i32, ptr %714, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef nonnull @.str.4) #9
  %1437 = load i32, ptr %768, align 4, !tbaa !5
  %1438 = call ptr @strerror(i32 noundef %1437) #9
  %1439 = load i32, ptr %768, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1431, ptr noundef nonnull %.str.5.sink719, i32 noundef %1432, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1434, ptr noundef %1436, ptr noundef %1438, i32 noundef %1439) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1441:                                             ; preds = %1414
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = add nsw i32 %1442, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = load i32, ptr %714, align 4, !tbaa !5
  %1445 = icmp eq i32 %1444, 335544322
  br i1 %1445, label %1468, label %1446

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

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

1456:                                             ; preds = %1452, %1446
  br label %1457

1457:                                             ; preds = %1452, %1456
  %.str.5.sink728 = phi ptr [ @.str.5, %1456 ], [ @.str.2, %1452 ]
  store i32 %1447, ptr %768, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = load i32, ptr %714, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror(i32 noundef %1460, ptr noundef nonnull @.str.4) #9
  %1462 = load i32, ptr %714, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror_debug(i32 noundef %1462, ptr noundef nonnull @.str.4) #9
  %1464 = load i32, ptr %768, align 4, !tbaa !5
  %1465 = call ptr @strerror(i32 noundef %1464) #9
  %1466 = load i32, ptr %768, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1458, ptr noundef nonnull %.str.5.sink728, i32 noundef %1459, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1461, ptr noundef %1463, ptr noundef %1465, i32 noundef %1466) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1468:                                             ; preds = %1441
  %1469 = add nsw i32 %1442, 2
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #9
  %1471 = icmp eq ptr %1470, null
  br i1 %1471, label %1472, label %1494

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

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

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

1483:                                             ; preds = %1478, %1482
  %.str.5.sink737 = phi ptr [ @.str.5, %1482 ], [ @.str.2, %1478 ]
  store i32 %1473, ptr %768, align 4, !tbaa !5
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = load i32, ptr @test_count, align 4, !tbaa !5
  %1486 = load i32, ptr %714, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef nonnull @.str.4) #9
  %1488 = load i32, ptr %714, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror_debug(i32 noundef %1488, ptr noundef nonnull @.str.4) #9
  %1490 = load i32, ptr %768, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #9
  %1492 = load i32, ptr %768, align 4, !tbaa !5
  %1493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1484, ptr noundef nonnull %.str.5.sink737, i32 noundef %1485, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1487, ptr noundef %1489, ptr noundef %1491, i32 noundef %1492) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1494:                                             ; preds = %1468
  store i32 0, ptr %714, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %768, align 4, !tbaa !5
  %1495 = load i32, ptr @test_count, align 4, !tbaa !5
  %1496 = add nsw i32 %1495, 1
  store i32 %1496, ptr @test_count, align 4, !tbaa !5
  %1497 = call i32 @s2n_connection_free(ptr noundef nonnull %1309) #9
  %1498 = icmp eq i32 %1497, -1
  br i1 %1498, label %1499, label %1521

1499:                                             ; preds = %1494
  %1500 = load i32, ptr %768, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @s2n_print_stacktrace(ptr noundef %1501) #9
  %1503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1504 = trunc nuw i8 %1503 to i1
  br i1 %1504, label %1505, label %1509

1505:                                             ; preds = %1499
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #9
  %1508 = call i32 @isatty(i32 noundef %1507) #9
  %.not180 = icmp eq i32 %1508, 0
  br i1 %.not180, label %1509, label %1510

1509:                                             ; preds = %1505, %1499
  br label %1510

1510:                                             ; preds = %1505, %1509
  %.str.5.sink746 = phi ptr [ @.str.5, %1509 ], [ @.str.2, %1505 ]
  store i32 %1500, ptr %768, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = load i32, ptr %714, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror(i32 noundef %1513, ptr noundef nonnull @.str.4) #9
  %1515 = load i32, ptr %714, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror_debug(i32 noundef %1515, ptr noundef nonnull @.str.4) #9
  %1517 = load i32, ptr %768, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #9
  %1519 = load i32, ptr %768, align 4, !tbaa !5
  %1520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull %.str.5.sink746, i32 noundef %1512, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1514, ptr noundef %1516, ptr noundef %1518, i32 noundef %1519) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1521:                                             ; preds = %1494
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = add nsw i32 %1522, 1
  store i32 %1523, ptr @test_count, align 4, !tbaa !5
  %1524 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #9
  %1525 = icmp eq i32 %1524, -1
  br i1 %1525, label %1526, label %1548

1526:                                             ; preds = %1521
  %1527 = load i32, ptr %768, align 4, !tbaa !5
  %1528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1529 = call i32 @s2n_print_stacktrace(ptr noundef %1528) #9
  %1530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1531 = trunc nuw i8 %1530 to i1
  br i1 %1531, label %1532, label %1536

1532:                                             ; preds = %1526
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = call i32 @fileno(ptr noundef %1533) #9
  %1535 = call i32 @isatty(i32 noundef %1534) #9
  %.not179 = icmp eq i32 %1535, 0
  br i1 %.not179, label %1536, label %1537

1536:                                             ; preds = %1532, %1526
  br label %1537

1537:                                             ; preds = %1532, %1536
  %.str.5.sink755 = phi ptr [ @.str.5, %1536 ], [ @.str.2, %1532 ]
  store i32 %1527, ptr %768, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = load i32, ptr %714, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror(i32 noundef %1540, ptr noundef nonnull @.str.4) #9
  %1542 = load i32, ptr %714, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror_debug(i32 noundef %1542, ptr noundef nonnull @.str.4) #9
  %1544 = load i32, ptr %768, align 4, !tbaa !5
  %1545 = call ptr @strerror(i32 noundef %1544) #9
  %1546 = load i32, ptr %768, align 4, !tbaa !5
  %1547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1538, ptr noundef nonnull %.str.5.sink755, i32 noundef %1539, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1541, ptr noundef %1543, ptr noundef %1545, i32 noundef %1546) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1548:                                             ; preds = %1521
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #9
  %1549 = load i32, ptr @test_count, align 4, !tbaa !5
  %1550 = add nsw i32 %1549, 1
  store i32 %1550, ptr @test_count, align 4, !tbaa !5
  %1551 = call i32 @s2n_config_free(ptr noundef nonnull %126) #9
  %1552 = icmp eq i32 %1551, -1
  br i1 %1552, label %1553, label %1575

1553:                                             ; preds = %1548
  %1554 = load i32, ptr %768, align 4, !tbaa !5
  %1555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1556 = call i32 @s2n_print_stacktrace(ptr noundef %1555) #9
  %1557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc nuw i8 %1557 to i1
  br i1 %1558, label %1559, label %1563

1559:                                             ; preds = %1553
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @fileno(ptr noundef %1560) #9
  %1562 = call i32 @isatty(i32 noundef %1561) #9
  %.not178 = icmp eq i32 %1562, 0
  br i1 %.not178, label %1563, label %1564

1563:                                             ; preds = %1559, %1553
  br label %1564

1564:                                             ; preds = %1559, %1563
  %.str.5.sink764 = phi ptr [ @.str.5, %1563 ], [ @.str.2, %1559 ]
  store i32 %1554, ptr %768, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = load i32, ptr %714, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror(i32 noundef %1567, ptr noundef nonnull @.str.4) #9
  %1569 = load i32, ptr %714, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror_debug(i32 noundef %1569, ptr noundef nonnull @.str.4) #9
  %1571 = load i32, ptr %768, align 4, !tbaa !5
  %1572 = call ptr @strerror(i32 noundef %1571) #9
  %1573 = load i32, ptr %768, align 4, !tbaa !5
  %1574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef nonnull %.str.5.sink764, i32 noundef %1566, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1568, ptr noundef %1570, ptr noundef %1572, i32 noundef %1573) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1575:                                             ; preds = %1548
  %1576 = call i32 @s2n_cleanup() #9
  %1577 = icmp eq i32 %1576, -1
  br i1 %1577, label %1578, label %1600

1578:                                             ; preds = %1575
  %1579 = load i32, ptr %768, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @s2n_print_stacktrace(ptr noundef %1580) #9
  %1582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1583 = trunc nuw i8 %1582 to i1
  br i1 %1583, label %1584, label %1588

1584:                                             ; preds = %1578
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @fileno(ptr noundef %1585) #9
  %1587 = call i32 @isatty(i32 noundef %1586) #9
  %.not177 = icmp eq i32 %1587, 0
  br i1 %.not177, label %1588, label %1589

1588:                                             ; preds = %1584, %1578
  br label %1589

1589:                                             ; preds = %1584, %1588
  %.str.5.sink773 = phi ptr [ @.str.5, %1588 ], [ @.str.2, %1584 ]
  store i32 %1579, ptr %768, align 4, !tbaa !5
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = load i32, ptr @test_count, align 4, !tbaa !5
  %1592 = load i32, ptr %714, align 4, !tbaa !5
  %1593 = call ptr @s2n_strerror(i32 noundef %1592, ptr noundef nonnull @.str.4) #9
  %1594 = load i32, ptr %714, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror_debug(i32 noundef %1594, ptr noundef nonnull @.str.4) #9
  %1596 = load i32, ptr %768, align 4, !tbaa !5
  %1597 = call ptr @strerror(i32 noundef %1596) #9
  %1598 = load i32, ptr %768, align 4, !tbaa !5
  %1599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1590, ptr noundef nonnull %.str.5.sink773, i32 noundef %1591, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1593, ptr noundef %1595, ptr noundef %1597, i32 noundef %1598) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1600:                                             ; preds = %1575
  %1601 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %1602 = icmp eq i32 %1601, -1
  br i1 %1602, label %1603, label %1625

1603:                                             ; preds = %1600
  %1604 = load i32, ptr %768, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = call i32 @s2n_print_stacktrace(ptr noundef %1605) #9
  %1607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1608 = trunc nuw i8 %1607 to i1
  br i1 %1608, label %1609, label %1613

1609:                                             ; preds = %1603
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = call i32 @fileno(ptr noundef %1610) #9
  %1612 = call i32 @isatty(i32 noundef %1611) #9
  %.not176 = icmp eq i32 %1612, 0
  br i1 %.not176, label %1613, label %1614

1613:                                             ; preds = %1609, %1603
  br label %1614

1614:                                             ; preds = %1609, %1613
  %.str.5.sink782 = phi ptr [ @.str.5, %1613 ], [ @.str.2, %1609 ]
  store i32 %1604, ptr %768, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = load i32, ptr %714, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror(i32 noundef %1617, ptr noundef nonnull @.str.4) #9
  %1619 = load i32, ptr %714, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror_debug(i32 noundef %1619, ptr noundef nonnull @.str.4) #9
  %1621 = load i32, ptr %768, align 4, !tbaa !5
  %1622 = call ptr @strerror(i32 noundef %1621) #9
  %1623 = load i32, ptr %768, align 4, !tbaa !5
  %1624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1615, ptr noundef nonnull %.str.5.sink782, i32 noundef %1616, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1618, ptr noundef %1620, ptr noundef %1622, i32 noundef %1623) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1625:                                             ; preds = %1600
  %1626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1627 = trunc nuw i8 %1626 to i1
  br i1 %1627, label %1628, label %1639

1628:                                             ; preds = %1625
  %1629 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1630 = call i32 @fileno(ptr noundef %1629) #9
  %1631 = call i32 @isatty(i32 noundef %1630) #9
  %.not173 = icmp eq i32 %1631, 0
  br i1 %.not173, label %1639, label %1632

1632:                                             ; preds = %1628
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not175 = icmp eq i32 %1633, 0
  %1634 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not175, label %1637, label %1635

1635:                                             ; preds = %1632
  %1636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1634, ptr noundef nonnull @.str.36, i32 noundef %1633) #9
  br label %1646

1637:                                             ; preds = %1632
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1634, ptr noundef nonnull @.str.37) #9
  br label %1646

1639:                                             ; preds = %1628, %1625
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not174 = icmp eq i32 %1640, 0
  %1641 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not174, label %1644, label %1642

1642:                                             ; preds = %1639
  %1643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef nonnull @.str.38, i32 noundef %1640) #9
  br label %1646

1644:                                             ; preds = %1639
  %1645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef nonnull @.str.39) #9
  br label %1646

1646:                                             ; preds = %1642, %1644, %1635, %1637
  ret i32 0
}

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #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 #1

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

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

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

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

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #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 #1

declare i32 @s2n_init() local_unnamed_addr #1

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

declare ptr @s2n_config_new() local_unnamed_addr #1

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #1

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

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

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

declare i32 @s2n_extensions_server_supported_versions_size(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #1

declare void @s2n_debug_info_reset() local_unnamed_addr #1

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_cleanup() local_unnamed_addr #1

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

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

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


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