; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_alpn_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 [89 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.main.protocols = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_client_alpn_extension = external constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [3 x ptr], align 16
  %11 = alloca i8, align 1
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i16, align 2
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca [256 x i8], align 16
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %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 i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_stuffer, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_stuffer, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %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 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 %70

70:                                               ; preds = %2
  br label %71

71:                                               ; preds = %70
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %72 = load ptr, ptr @stdout, align 8, !tbaa !9
  %73 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %72, ptr noundef @.str, ptr noundef @.str.1) #10
  %74 = load ptr, ptr @stdout, align 8, !tbaa !9
  %75 = call i32 @fflush(ptr noundef %74)
  br label %76

76:                                               ; preds = %71
  %77 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %78 = icmp eq i32 %77, -1
  br i1 %78, label %79, label %130

79:                                               ; preds = %76
  br label %80

80:                                               ; preds = %79
  br label %81

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %82 = call ptr @__errno_location() #11
  %83 = load i32, ptr %82, align 4, !tbaa !5
  store i32 %83, ptr %6, align 4, !tbaa !5
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = call i32 @s2n_print_stacktrace(ptr noundef %84)
  %86 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %87 = trunc i8 %86 to i1
  br i1 %87, label %88, label %110

88:                                               ; preds = %81
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = call i32 @fileno(ptr noundef %89) #10
  %91 = call i32 @isatty(i32 noundef %90) #10
  %92 = icmp ne i32 %91, 0
  br i1 %92, label %93, label %110

93:                                               ; preds = %88
  %94 = load i32, ptr %6, align 4, !tbaa !5
  %95 = call ptr @__errno_location() #11
  store i32 %94, ptr %95, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = call ptr @s2n_strerror(i32 noundef %99, ptr noundef @.str.4)
  %101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = call ptr @s2n_strerror_debug(i32 noundef %102, ptr noundef @.str.4)
  %104 = call ptr @__errno_location() #11
  %105 = load i32, ptr %104, align 4, !tbaa !5
  %106 = call ptr @strerror(i32 noundef %105) #10
  %107 = call ptr @__errno_location() #11
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef @.str.2, i32 noundef %97, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 21, ptr noundef %100, ptr noundef %103, ptr noundef %106, i32 noundef %108) #10
  br label %127

110:                                              ; preds = %88, %81
  %111 = load i32, ptr %6, align 4, !tbaa !5
  %112 = call ptr @__errno_location() #11
  store i32 %111, ptr %112, align 4, !tbaa !5
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %116, ptr noundef @.str.4)
  %118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = call ptr @s2n_strerror_debug(i32 noundef %119, ptr noundef @.str.4)
  %121 = call ptr @__errno_location() #11
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = call ptr @strerror(i32 noundef %122) #10
  %124 = call ptr @__errno_location() #11
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef @.str.5, i32 noundef %114, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 21, ptr noundef %117, ptr noundef %120, ptr noundef %123, i32 noundef %125) #10
  br label %127

127:                                              ; preds = %110, %93
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %128

128:                                              ; preds = %127
  call void @exit(i32 noundef 1) #12
  unreachable

129:                                              ; No predecessors!
  br label %130

130:                                              ; preds = %129, %76
  br label %131

131:                                              ; preds = %130
  br label %132

132:                                              ; preds = %131
  %133 = load i32, ptr @test_count, align 4, !tbaa !5
  %134 = add nsw i32 %133, 1
  store i32 %134, ptr @test_count, align 4, !tbaa !5
  %135 = call i32 @s2n_enable_atexit()
  %136 = icmp eq i32 %135, -1
  br i1 %136, label %137, label %188

137:                                              ; preds = %132
  br label %138

138:                                              ; preds = %137
  br label %139

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %140 = call ptr @__errno_location() #11
  %141 = load i32, ptr %140, align 4, !tbaa !5
  store i32 %141, ptr %7, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = call i32 @s2n_print_stacktrace(ptr noundef %142)
  %144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %145 = trunc i8 %144 to i1
  br i1 %145, label %146, label %168

146:                                              ; preds = %139
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 @fileno(ptr noundef %147) #10
  %149 = call i32 @isatty(i32 noundef %148) #10
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %168

151:                                              ; preds = %146
  %152 = load i32, ptr %7, align 4, !tbaa !5
  %153 = call ptr @__errno_location() #11
  store i32 %152, ptr %153, align 4, !tbaa !5
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call ptr @s2n_strerror(i32 noundef %157, ptr noundef @.str.4)
  %159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef @.str.4)
  %162 = call ptr @__errno_location() #11
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @strerror(i32 noundef %163) #10
  %165 = call ptr @__errno_location() #11
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %154, ptr noundef @.str.2, i32 noundef %155, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 21, ptr noundef %158, ptr noundef %161, ptr noundef %164, i32 noundef %166) #10
  br label %185

168:                                              ; preds = %146, %139
  %169 = load i32, ptr %7, align 4, !tbaa !5
  %170 = call ptr @__errno_location() #11
  store i32 %169, ptr %170, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %174, ptr noundef @.str.4)
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef @.str.4)
  %179 = call ptr @__errno_location() #11
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call ptr @strerror(i32 noundef %180) #10
  %182 = call ptr @__errno_location() #11
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %171, ptr noundef @.str.5, i32 noundef %172, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 21, ptr noundef %175, ptr noundef %178, ptr noundef %181, i32 noundef %183) #10
  br label %185

185:                                              ; preds = %168, %151
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %186

186:                                              ; preds = %185
  call void @exit(i32 noundef 1) #12
  unreachable

187:                                              ; No predecessors!
  br label %188

188:                                              ; preds = %187, %132
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  %192 = call i32 @s2n_init()
  %193 = icmp eq i32 %192, -1
  br i1 %193, label %194, label %245

194:                                              ; preds = %191
  br label %195

195:                                              ; preds = %194
  br label %196

196:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %197 = call ptr @__errno_location() #11
  %198 = load i32, ptr %197, align 4, !tbaa !5
  store i32 %198, ptr %8, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @s2n_print_stacktrace(ptr noundef %199)
  %201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %202 = trunc i8 %201 to i1
  br i1 %202, label %203, label %225

203:                                              ; preds = %196
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @fileno(ptr noundef %204) #10
  %206 = call i32 @isatty(i32 noundef %205) #10
  %207 = icmp ne i32 %206, 0
  br i1 %207, label %208, label %225

208:                                              ; preds = %203
  %209 = load i32, ptr %8, align 4, !tbaa !5
  %210 = call ptr @__errno_location() #11
  store i32 %209, ptr %210, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call ptr @s2n_strerror(i32 noundef %214, ptr noundef @.str.4)
  %216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror_debug(i32 noundef %217, ptr noundef @.str.4)
  %219 = call ptr @__errno_location() #11
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call ptr @strerror(i32 noundef %220) #10
  %222 = call ptr @__errno_location() #11
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef @.str.2, i32 noundef %212, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 21, ptr noundef %215, ptr noundef %218, ptr noundef %221, i32 noundef %223) #10
  br label %242

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

242:                                              ; preds = %225, %208
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %243

243:                                              ; preds = %242
  call void @exit(i32 noundef 1) #12
  unreachable

244:                                              ; No predecessors!
  br label %245

245:                                              ; preds = %244, %191
  br label %246

246:                                              ; preds = %245
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = add nsw i32 %249, 1
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = call i32 (...) @s2n_disable_tls13_in_test()
  %252 = icmp eq i32 %251, -1
  br i1 %252, label %253, label %304

253:                                              ; preds = %248
  br label %254

254:                                              ; preds = %253
  br label %255

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

262:                                              ; preds = %255
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 @fileno(ptr noundef %263) #10
  %265 = call i32 @isatty(i32 noundef %264) #10
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %284

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

284:                                              ; preds = %262, %255
  %285 = load i32, ptr %9, align 4, !tbaa !5
  %286 = call ptr @__errno_location() #11
  store i32 %285, ptr %286, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %290, ptr noundef @.str.4)
  %292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @s2n_strerror_debug(i32 noundef %293, ptr noundef @.str.4)
  %295 = call ptr @__errno_location() #11
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #10
  %298 = call ptr @__errno_location() #11
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %287, ptr noundef @.str.5, i32 noundef %288, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 22, ptr noundef %291, ptr noundef %294, ptr noundef %297, i32 noundef %299) #10
  br label %301

301:                                              ; preds = %284, %267
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %302

302:                                              ; preds = %301
  call void @exit(i32 noundef 1) #12
  unreachable

303:                                              ; No predecessors!
  br label %304

304:                                              ; preds = %303, %248
  br label %305

305:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const.main.protocols, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  store i8 3, ptr %11, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  store ptr null, ptr %12, align 8, !tbaa !9
  br label %306

306:                                              ; preds = %305
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = add nsw i32 %307, 1
  store i32 %308, ptr @test_count, align 4, !tbaa !5
  %309 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %309, ptr %12, align 8, !tbaa !9
  %310 = icmp eq ptr %309, null
  br i1 %310, label %311, label %364

311:                                              ; preds = %306
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %314 = call ptr @__errno_location() #11
  %315 = load i32, ptr %314, align 4, !tbaa !5
  store i32 %315, ptr %13, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @s2n_print_stacktrace(ptr noundef %316)
  %318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %319 = trunc i8 %318 to i1
  br i1 %319, label %320, label %342

320:                                              ; preds = %313
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @fileno(ptr noundef %321) #10
  %323 = call i32 @isatty(i32 noundef %322) #10
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %325, label %342

325:                                              ; preds = %320
  %326 = load i32, ptr %13, align 4, !tbaa !5
  %327 = call ptr @__errno_location() #11
  store i32 %326, ptr %327, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror(i32 noundef %331, ptr noundef @.str.4)
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef @.str.4)
  %336 = call ptr @__errno_location() #11
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #10
  %339 = call ptr @__errno_location() #11
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef @.str.2, i32 noundef %329, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 30, ptr noundef %332, ptr noundef %335, ptr noundef %338, i32 noundef %340) #10
  br label %359

342:                                              ; preds = %320, %313
  %343 = load i32, ptr %13, align 4, !tbaa !5
  %344 = call ptr @__errno_location() #11
  store i32 %343, ptr %344, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %348, ptr noundef @.str.4)
  %350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call ptr @s2n_strerror_debug(i32 noundef %351, ptr noundef @.str.4)
  %353 = call ptr @__errno_location() #11
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @strerror(i32 noundef %354) #10
  %356 = call ptr @__errno_location() #11
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef @.str.5, i32 noundef %346, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 30, ptr noundef %349, ptr noundef %352, ptr noundef %355, i32 noundef %357) #10
  br label %359

359:                                              ; preds = %342, %325
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %360

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  call void @exit(i32 noundef 1) #12
  unreachable

362:                                              ; No predecessors!
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363, %306
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = load ptr, ptr %12, align 8, !tbaa !9
  %371 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %370, ptr noundef null, i32 noundef 0)
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %373, label %426

373:                                              ; preds = %367
  br label %374

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %376 = call ptr @__errno_location() #11
  %377 = load i32, ptr %376, align 4, !tbaa !5
  store i32 %377, ptr %14, align 4, !tbaa !5
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @s2n_print_stacktrace(ptr noundef %378)
  %380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %381 = trunc i8 %380 to i1
  br i1 %381, label %382, label %404

382:                                              ; preds = %375
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = call i32 @fileno(ptr noundef %383) #10
  %385 = call i32 @isatty(i32 noundef %384) #10
  %386 = icmp ne i32 %385, 0
  br i1 %386, label %387, label %404

387:                                              ; preds = %382
  %388 = load i32, ptr %14, align 4, !tbaa !5
  %389 = call ptr @__errno_location() #11
  store i32 %388, ptr %389, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %393 = load i32, ptr %392, align 4, !tbaa !5
  %394 = call ptr @s2n_strerror(i32 noundef %393, ptr noundef @.str.4)
  %395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call ptr @s2n_strerror_debug(i32 noundef %396, ptr noundef @.str.4)
  %398 = call ptr @__errno_location() #11
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #10
  %401 = call ptr @__errno_location() #11
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %390, ptr noundef @.str.2, i32 noundef %391, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 32, ptr noundef %394, ptr noundef %397, ptr noundef %400, i32 noundef %402) #10
  br label %421

404:                                              ; preds = %382, %375
  %405 = load i32, ptr %14, align 4, !tbaa !5
  %406 = call ptr @__errno_location() #11
  store i32 %405, ptr %406, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror(i32 noundef %410, ptr noundef @.str.4)
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror_debug(i32 noundef %413, ptr noundef @.str.4)
  %415 = call ptr @__errno_location() #11
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #10
  %418 = call ptr @__errno_location() #11
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef @.str.5, i32 noundef %408, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 32, ptr noundef %411, ptr noundef %414, ptr noundef %417, i32 noundef %419) #10
  br label %421

421:                                              ; preds = %404, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422
  call void @exit(i32 noundef 1) #12
  unreachable

424:                                              ; No predecessors!
  br label %425

425:                                              ; preds = %424
  br label %426

426:                                              ; preds = %425, %367
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = add nsw i32 %430, 1
  store i32 %431, ptr @test_count, align 4, !tbaa !5
  %432 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 5), align 8, !tbaa !16
  %433 = load ptr, ptr %12, align 8, !tbaa !9
  %434 = call zeroext i1 %432(ptr noundef %433)
  br i1 %434, label %435, label %488

435:                                              ; preds = %429
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %438 = call ptr @__errno_location() #11
  %439 = load i32, ptr %438, align 4, !tbaa !5
  store i32 %439, ptr %15, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = call i32 @s2n_print_stacktrace(ptr noundef %440)
  %442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %443 = trunc i8 %442 to i1
  br i1 %443, label %444, label %466

444:                                              ; preds = %437
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = call i32 @fileno(ptr noundef %445) #10
  %447 = call i32 @isatty(i32 noundef %446) #10
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %449, label %466

449:                                              ; preds = %444
  %450 = load i32, ptr %15, align 4, !tbaa !5
  %451 = call ptr @__errno_location() #11
  store i32 %450, ptr %451, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror(i32 noundef %455, ptr noundef @.str.4)
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef @.str.4)
  %460 = call ptr @__errno_location() #11
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #10
  %463 = call ptr @__errno_location() #11
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %452, ptr noundef @.str.2, i32 noundef %453, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 33, ptr noundef %456, ptr noundef %459, ptr noundef %462, i32 noundef %464) #10
  br label %483

466:                                              ; preds = %444, %437
  %467 = load i32, ptr %15, align 4, !tbaa !5
  %468 = call ptr @__errno_location() #11
  store i32 %467, ptr %468, 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 @.str.4)
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef %475, ptr noundef @.str.4)
  %477 = call ptr @__errno_location() #11
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #10
  %480 = call ptr @__errno_location() #11
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef @.str.5, i32 noundef %470, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 33, ptr noundef %473, ptr noundef %476, ptr noundef %479, i32 noundef %481) #10
  br label %483

483:                                              ; preds = %466, %449
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %484

484:                                              ; preds = %483
  br label %485

485:                                              ; preds = %484
  call void @exit(i32 noundef 1) #12
  unreachable

486:                                              ; No predecessors!
  br label %487

487:                                              ; preds = %486
  br label %488

488:                                              ; preds = %487, %429
  br label %489

489:                                              ; preds = %488
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = load ptr, ptr %12, align 8, !tbaa !9
  %495 = getelementptr inbounds [3 x ptr], ptr %10, i64 0, i64 0
  %496 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %494, ptr noundef %495, i32 noundef 3)
  %497 = icmp eq i32 %496, -1
  br i1 %497, label %498, label %551

498:                                              ; preds = %491
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %501 = call ptr @__errno_location() #11
  %502 = load i32, ptr %501, align 4, !tbaa !5
  store i32 %502, ptr %16, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = call i32 @s2n_print_stacktrace(ptr noundef %503)
  %505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %506 = trunc i8 %505 to i1
  br i1 %506, label %507, label %529

507:                                              ; preds = %500
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @fileno(ptr noundef %508) #10
  %510 = call i32 @isatty(i32 noundef %509) #10
  %511 = icmp ne i32 %510, 0
  br i1 %511, label %512, label %529

512:                                              ; preds = %507
  %513 = load i32, ptr %16, align 4, !tbaa !5
  %514 = call ptr @__errno_location() #11
  store i32 %513, ptr %514, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @s2n_strerror(i32 noundef %518, ptr noundef @.str.4)
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef @.str.4)
  %523 = call ptr @__errno_location() #11
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @strerror(i32 noundef %524) #10
  %526 = call ptr @__errno_location() #11
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %515, ptr noundef @.str.2, i32 noundef %516, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 35, ptr noundef %519, ptr noundef %522, ptr noundef %525, i32 noundef %527) #10
  br label %546

529:                                              ; preds = %507, %500
  %530 = load i32, ptr %16, align 4, !tbaa !5
  %531 = call ptr @__errno_location() #11
  store i32 %530, ptr %531, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %535, ptr noundef @.str.4)
  %537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror_debug(i32 noundef %538, ptr noundef @.str.4)
  %540 = call ptr @__errno_location() #11
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @strerror(i32 noundef %541) #10
  %543 = call ptr @__errno_location() #11
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %532, ptr noundef @.str.5, i32 noundef %533, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 35, ptr noundef %536, ptr noundef %539, ptr noundef %542, i32 noundef %544) #10
  br label %546

546:                                              ; preds = %529, %512
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %547

547:                                              ; preds = %546
  br label %548

548:                                              ; preds = %547
  call void @exit(i32 noundef 1) #12
  unreachable

549:                                              ; No predecessors!
  br label %550

550:                                              ; preds = %549
  br label %551

551:                                              ; preds = %550, %491
  br label %552

552:                                              ; preds = %551
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr @test_count, align 4, !tbaa !5
  %557 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 5), align 8, !tbaa !16
  %558 = load ptr, ptr %12, align 8, !tbaa !9
  %559 = call zeroext i1 %557(ptr noundef %558)
  br i1 %559, label %613, label %560

560:                                              ; preds = %554
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %563 = call ptr @__errno_location() #11
  %564 = load i32, ptr %563, align 4, !tbaa !5
  store i32 %564, ptr %17, align 4, !tbaa !5
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @s2n_print_stacktrace(ptr noundef %565)
  %567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %568 = trunc i8 %567 to i1
  br i1 %568, label %569, label %591

569:                                              ; preds = %562
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @fileno(ptr noundef %570) #10
  %572 = call i32 @isatty(i32 noundef %571) #10
  %573 = icmp ne i32 %572, 0
  br i1 %573, label %574, label %591

574:                                              ; preds = %569
  %575 = load i32, ptr %17, align 4, !tbaa !5
  %576 = call ptr @__errno_location() #11
  store i32 %575, ptr %576, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef @.str.4)
  %582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef @.str.4)
  %585 = call ptr @__errno_location() #11
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #10
  %588 = call ptr @__errno_location() #11
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef @.str.2, i32 noundef %578, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 36, ptr noundef %581, ptr noundef %584, ptr noundef %587, i32 noundef %589) #10
  br label %608

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

608:                                              ; preds = %591, %574
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609
  call void @exit(i32 noundef 1) #12
  unreachable

611:                                              ; No predecessors!
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612, %554
  br label %614

614:                                              ; preds = %613
  br label %615

615:                                              ; preds = %614
  br label %616

616:                                              ; preds = %615
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr @test_count, align 4, !tbaa !5
  %619 = load ptr, ptr %12, align 8, !tbaa !9
  %620 = call i32 @s2n_connection_free(ptr noundef %619)
  %621 = icmp eq i32 %620, -1
  br i1 %621, label %622, label %675

622:                                              ; preds = %616
  br label %623

623:                                              ; preds = %622
  br label %624

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

631:                                              ; preds = %624
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = call i32 @fileno(ptr noundef %632) #10
  %634 = call i32 @isatty(i32 noundef %633) #10
  %635 = icmp ne i32 %634, 0
  br i1 %635, label %636, label %653

636:                                              ; preds = %631
  %637 = load i32, ptr %18, align 4, !tbaa !5
  %638 = call ptr @__errno_location() #11
  store i32 %637, ptr %638, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %642 = load i32, ptr %641, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef @.str.4)
  %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_debug(i32 noundef %645, ptr noundef @.str.4)
  %647 = call ptr @__errno_location() #11
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = call ptr @strerror(i32 noundef %648) #10
  %650 = call ptr @__errno_location() #11
  %651 = load i32, ptr %650, align 4, !tbaa !5
  %652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %639, ptr noundef @.str.2, i32 noundef %640, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 38, ptr noundef %643, ptr noundef %646, ptr noundef %649, i32 noundef %651) #10
  br label %670

653:                                              ; preds = %631, %624
  %654 = load i32, ptr %18, align 4, !tbaa !5
  %655 = call ptr @__errno_location() #11
  store i32 %654, ptr %655, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %659 = load i32, ptr %658, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef @.str.4)
  %661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %662 = load i32, ptr %661, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef @.str.4)
  %664 = call ptr @__errno_location() #11
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @strerror(i32 noundef %665) #10
  %667 = call ptr @__errno_location() #11
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %656, ptr noundef @.str.5, i32 noundef %657, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 38, ptr noundef %660, ptr noundef %663, ptr noundef %666, i32 noundef %668) #10
  br label %670

670:                                              ; preds = %653, %636
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %671

671:                                              ; preds = %670
  br label %672

672:                                              ; preds = %671
  call void @exit(i32 noundef 1) #12
  unreachable

673:                                              ; No predecessors!
  br label %674

674:                                              ; preds = %673
  br label %675

675:                                              ; preds = %674, %616
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  store ptr null, ptr %19, align 8, !tbaa !9
  br label %678

678:                                              ; preds = %677
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr @test_count, align 4, !tbaa !5
  %681 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %681, ptr %19, align 8, !tbaa !9
  %682 = icmp eq ptr %681, null
  br i1 %682, label %683, label %736

683:                                              ; preds = %678
  br label %684

684:                                              ; preds = %683
  br label %685

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

692:                                              ; preds = %685
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @fileno(ptr noundef %693) #10
  %695 = call i32 @isatty(i32 noundef %694) #10
  %696 = icmp ne i32 %695, 0
  br i1 %696, label %697, label %714

697:                                              ; preds = %692
  %698 = load i32, ptr %20, align 4, !tbaa !5
  %699 = call ptr @__errno_location() #11
  store i32 %698, ptr %699, 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 @.str.4)
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef @.str.4)
  %708 = call ptr @__errno_location() #11
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #10
  %711 = call ptr @__errno_location() #11
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef @.str.2, i32 noundef %701, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 44, ptr noundef %704, ptr noundef %707, ptr noundef %710, i32 noundef %712) #10
  br label %731

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

731:                                              ; preds = %714, %697
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732
  call void @exit(i32 noundef 1) #12
  unreachable

734:                                              ; No predecessors!
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735, %678
  br label %737

737:                                              ; preds = %736
  br label %738

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = load ptr, ptr %19, align 8, !tbaa !9
  %743 = getelementptr inbounds [3 x ptr], ptr %10, i64 0, i64 0
  %744 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %742, ptr noundef %743, i32 noundef 3)
  %745 = icmp eq i32 %744, -1
  br i1 %745, label %746, label %799

746:                                              ; preds = %739
  br label %747

747:                                              ; preds = %746
  br label %748

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

755:                                              ; preds = %748
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #10
  %758 = call i32 @isatty(i32 noundef %757) #10
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %760, label %777

760:                                              ; preds = %755
  %761 = load i32, ptr %21, align 4, !tbaa !5
  %762 = call ptr @__errno_location() #11
  store i32 %761, ptr %762, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror(i32 noundef %766, ptr noundef @.str.4)
  %768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = call ptr @s2n_strerror_debug(i32 noundef %769, ptr noundef @.str.4)
  %771 = call ptr @__errno_location() #11
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @strerror(i32 noundef %772) #10
  %774 = call ptr @__errno_location() #11
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef @.str.2, i32 noundef %764, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 45, ptr noundef %767, ptr noundef %770, ptr noundef %773, i32 noundef %775) #10
  br label %794

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

794:                                              ; preds = %777, %760
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %795

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795
  call void @exit(i32 noundef 1) #12
  unreachable

797:                                              ; No predecessors!
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798, %739
  br label %800

800:                                              ; preds = %799
  br label %801

801:                                              ; preds = %800
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #10
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 40, i1 false)
  br label %802

802:                                              ; preds = %801
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = add nsw i32 %803, 1
  store i32 %804, ptr @test_count, align 4, !tbaa !5
  %805 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %22, i32 noundef 0)
  %806 = icmp eq i32 %805, -1
  br i1 %806, label %807, label %860

807:                                              ; preds = %802
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %810 = call ptr @__errno_location() #11
  %811 = load i32, ptr %810, align 4, !tbaa !5
  store i32 %811, ptr %23, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = call i32 @s2n_print_stacktrace(ptr noundef %812)
  %814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %815 = trunc i8 %814 to i1
  br i1 %815, label %816, label %838

816:                                              ; preds = %809
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @fileno(ptr noundef %817) #10
  %819 = call i32 @isatty(i32 noundef %818) #10
  %820 = icmp ne i32 %819, 0
  br i1 %820, label %821, label %838

821:                                              ; preds = %816
  %822 = load i32, ptr %23, align 4, !tbaa !5
  %823 = call ptr @__errno_location() #11
  store i32 %822, ptr %823, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef @.str.4)
  %829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror_debug(i32 noundef %830, ptr noundef @.str.4)
  %832 = call ptr @__errno_location() #11
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @strerror(i32 noundef %833) #10
  %835 = call ptr @__errno_location() #11
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef @.str.2, i32 noundef %825, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 48, ptr noundef %828, ptr noundef %831, ptr noundef %834, i32 noundef %836) #10
  br label %855

838:                                              ; preds = %816, %809
  %839 = load i32, ptr %23, align 4, !tbaa !5
  %840 = call ptr @__errno_location() #11
  store i32 %839, ptr %840, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef @.str.4)
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef @.str.4)
  %849 = call ptr @__errno_location() #11
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @strerror(i32 noundef %850) #10
  %852 = call ptr @__errno_location() #11
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef @.str.5, i32 noundef %842, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 48, ptr noundef %845, ptr noundef %848, ptr noundef %851, i32 noundef %853) #10
  br label %855

855:                                              ; preds = %838, %821
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %856

856:                                              ; preds = %855
  br label %857

857:                                              ; preds = %856
  call void @exit(i32 noundef 1) #12
  unreachable

858:                                              ; No predecessors!
  br label %859

859:                                              ; preds = %858
  br label %860

860:                                              ; preds = %859, %802
  br label %861

861:                                              ; preds = %860
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = add nsw i32 %864, 1
  store i32 %865, ptr @test_count, align 4, !tbaa !5
  %866 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 3), align 8, !tbaa !19
  %867 = load ptr, ptr %19, align 8, !tbaa !9
  %868 = call i32 %866(ptr noundef %867, ptr noundef %22)
  %869 = icmp eq i32 %868, -1
  br i1 %869, label %870, label %923

870:                                              ; preds = %863
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %873 = call ptr @__errno_location() #11
  %874 = load i32, ptr %873, align 4, !tbaa !5
  store i32 %874, ptr %24, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = call i32 @s2n_print_stacktrace(ptr noundef %875)
  %877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %878 = trunc i8 %877 to i1
  br i1 %878, label %879, label %901

879:                                              ; preds = %872
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @fileno(ptr noundef %880) #10
  %882 = call i32 @isatty(i32 noundef %881) #10
  %883 = icmp ne i32 %882, 0
  br i1 %883, label %884, label %901

884:                                              ; preds = %879
  %885 = load i32, ptr %24, align 4, !tbaa !5
  %886 = call ptr @__errno_location() #11
  store i32 %885, ptr %886, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror(i32 noundef %890, ptr noundef @.str.4)
  %892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call ptr @s2n_strerror_debug(i32 noundef %893, ptr noundef @.str.4)
  %895 = call ptr @__errno_location() #11
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @strerror(i32 noundef %896) #10
  %898 = call ptr @__errno_location() #11
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef @.str.2, i32 noundef %888, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 50, ptr noundef %891, ptr noundef %894, ptr noundef %897, i32 noundef %899) #10
  br label %918

901:                                              ; preds = %879, %872
  %902 = load i32, ptr %24, align 4, !tbaa !5
  %903 = call ptr @__errno_location() #11
  store i32 %902, ptr %903, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror(i32 noundef %907, ptr noundef @.str.4)
  %909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %910 = load i32, ptr %909, align 4, !tbaa !5
  %911 = call ptr @s2n_strerror_debug(i32 noundef %910, ptr noundef @.str.4)
  %912 = call ptr @__errno_location() #11
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call ptr @strerror(i32 noundef %913) #10
  %915 = call ptr @__errno_location() #11
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %904, ptr noundef @.str.5, i32 noundef %905, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 50, ptr noundef %908, ptr noundef %911, ptr noundef %914, i32 noundef %916) #10
  br label %918

918:                                              ; preds = %901, %884
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %919

919:                                              ; preds = %918
  br label %920

920:                                              ; preds = %919
  call void @exit(i32 noundef 1) #12
  unreachable

921:                                              ; No predecessors!
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %922, %863
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  call void @llvm.lifetime.start.p0(i64 2, ptr %25) #10
  store i16 0, ptr %25, align 2, !tbaa !20
  br label %926

926:                                              ; preds = %925
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr @test_count, align 4, !tbaa !5
  %929 = call i32 @s2n_stuffer_read_uint16(ptr noundef %22, ptr noundef %25)
  %930 = icmp eq i32 %929, -1
  br i1 %930, label %931, label %984

931:                                              ; preds = %926
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %934 = call ptr @__errno_location() #11
  %935 = load i32, ptr %934, align 4, !tbaa !5
  store i32 %935, ptr %26, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @s2n_print_stacktrace(ptr noundef %936)
  %938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %939 = trunc i8 %938 to i1
  br i1 %939, label %940, label %962

940:                                              ; preds = %933
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = call i32 @fileno(ptr noundef %941) #10
  %943 = call i32 @isatty(i32 noundef %942) #10
  %944 = icmp ne i32 %943, 0
  br i1 %944, label %945, label %962

945:                                              ; preds = %940
  %946 = load i32, ptr %26, align 4, !tbaa !5
  %947 = call ptr @__errno_location() #11
  store i32 %946, ptr %947, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror(i32 noundef %951, ptr noundef @.str.4)
  %953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef @.str.4)
  %956 = call ptr @__errno_location() #11
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @strerror(i32 noundef %957) #10
  %959 = call ptr @__errno_location() #11
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %948, ptr noundef @.str.2, i32 noundef %949, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 54, ptr noundef %952, ptr noundef %955, ptr noundef %958, i32 noundef %960) #10
  br label %979

962:                                              ; preds = %940, %933
  %963 = load i32, ptr %26, align 4, !tbaa !5
  %964 = call ptr @__errno_location() #11
  store i32 %963, ptr %964, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror(i32 noundef %968, ptr noundef @.str.4)
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef @.str.4)
  %973 = call ptr @__errno_location() #11
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #10
  %976 = call ptr @__errno_location() #11
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef @.str.5, i32 noundef %966, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 54, ptr noundef %969, ptr noundef %972, ptr noundef %975, i32 noundef %977) #10
  br label %979

979:                                              ; preds = %962, %945
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %980

980:                                              ; preds = %979
  br label %981

981:                                              ; preds = %980
  call void @exit(i32 noundef 1) #12
  unreachable

982:                                              ; No predecessors!
  br label %983

983:                                              ; preds = %982
  br label %984

984:                                              ; preds = %983, %926
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  br label %987

987:                                              ; preds = %986
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = add nsw i32 %988, 1
  store i32 %989, ptr @test_count, align 4, !tbaa !5
  %990 = load i16, ptr %25, align 2, !tbaa !20
  %991 = zext i16 %990 to i32
  %992 = getelementptr inbounds %struct.s2n_stuffer, ptr %22, i32 0, i32 2
  %993 = load i32, ptr %992, align 4, !tbaa !21
  %994 = getelementptr inbounds %struct.s2n_stuffer, ptr %22, i32 0, i32 1
  %995 = load i32, ptr %994, align 8, !tbaa !24
  %996 = sub i32 %993, %995
  %997 = icmp eq i32 %991, %996
  br i1 %997, label %1051, label %998

998:                                              ; preds = %987
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1001 = call ptr @__errno_location() #11
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  store i32 %1002, ptr %27, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003)
  %1005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1006 = trunc i8 %1005 to i1
  br i1 %1006, label %1007, label %1029

1007:                                             ; preds = %1000
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #10
  %1010 = call i32 @isatty(i32 noundef %1009) #10
  %1011 = icmp ne i32 %1010, 0
  br i1 %1011, label %1012, label %1029

1012:                                             ; preds = %1007
  %1013 = load i32, ptr %27, align 4, !tbaa !5
  %1014 = call ptr @__errno_location() #11
  store i32 %1013, ptr %1014, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = load i32, ptr @test_count, align 4, !tbaa !5
  %1017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1018 = load i32, ptr %1017, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror(i32 noundef %1018, ptr noundef @.str.4)
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror_debug(i32 noundef %1021, ptr noundef @.str.4)
  %1023 = call ptr @__errno_location() #11
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @strerror(i32 noundef %1024) #10
  %1026 = call ptr @__errno_location() #11
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1015, ptr noundef @.str.2, i32 noundef %1016, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 55, ptr noundef %1019, ptr noundef %1022, ptr noundef %1025, i32 noundef %1027) #10
  br label %1046

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

1046:                                             ; preds = %1029, %1012
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047
  call void @exit(i32 noundef 1) #12
  unreachable

1049:                                             ; No predecessors!
  br label %1050

1050:                                             ; preds = %1049
  br label %1051

1051:                                             ; preds = %1050, %987
  br label %1052

1052:                                             ; preds = %1051
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

1054:                                             ; preds = %1053
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = load i16, ptr %25, align 2, !tbaa !20
  %1058 = zext i16 %1057 to i32
  %1059 = load ptr, ptr %19, align 8, !tbaa !9
  %1060 = getelementptr inbounds %struct.s2n_connection, ptr %1059, i32 0, i32 82
  %1061 = getelementptr inbounds %struct.s2n_blob, ptr %1060, i32 0, i32 1
  %1062 = load i32, ptr %1061, align 8, !tbaa !25
  %1063 = icmp eq i32 %1058, %1062
  br i1 %1063, label %1117, label %1064

1064:                                             ; preds = %1054
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1067 = call ptr @__errno_location() #11
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  store i32 %1068, ptr %28, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069)
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc i8 %1071 to i1
  br i1 %1072, label %1073, label %1095

1073:                                             ; preds = %1066
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #10
  %1076 = call i32 @isatty(i32 noundef %1075) #10
  %1077 = icmp ne i32 %1076, 0
  br i1 %1077, label %1078, label %1095

1078:                                             ; preds = %1073
  %1079 = load i32, ptr %28, align 4, !tbaa !5
  %1080 = call ptr @__errno_location() #11
  store i32 %1079, ptr %1080, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call ptr @__errno_location() #11
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #10
  %1092 = call ptr @__errno_location() #11
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef @.str.2, i32 noundef %1082, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1085, ptr noundef %1088, ptr noundef %1091, i32 noundef %1093) #10
  br label %1112

1095:                                             ; preds = %1073, %1066
  %1096 = load i32, ptr %28, align 4, !tbaa !5
  %1097 = call ptr @__errno_location() #11
  store i32 %1096, ptr %1097, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = load i32, ptr @test_count, align 4, !tbaa !5
  %1100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror(i32 noundef %1101, ptr noundef @.str.4)
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror_debug(i32 noundef %1104, ptr noundef @.str.4)
  %1106 = call ptr @__errno_location() #11
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @strerror(i32 noundef %1107) #10
  %1109 = call ptr @__errno_location() #11
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1098, ptr noundef @.str.5, i32 noundef %1099, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 56, ptr noundef %1102, ptr noundef %1105, ptr noundef %1108, i32 noundef %1110) #10
  br label %1112

1112:                                             ; preds = %1095, %1078
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113
  call void @exit(i32 noundef 1) #12
  unreachable

1115:                                             ; No predecessors!
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116, %1054
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

1119:                                             ; preds = %1118
  call void @llvm.lifetime.start.p0(i64 256, ptr %29) #10
  br label %1120

1120:                                             ; preds = %1119
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = add nsw i32 %1121, 1
  store i32 %1122, ptr @test_count, align 4, !tbaa !5
  %1123 = getelementptr inbounds [256 x i8], ptr %29, i64 0, i64 0
  %1124 = load i16, ptr %25, align 2, !tbaa !20
  %1125 = zext i16 %1124 to i32
  %1126 = call i32 @s2n_stuffer_read_bytes(ptr noundef %22, ptr noundef %1123, i32 noundef %1125)
  %1127 = icmp eq i32 %1126, -1
  br i1 %1127, label %1128, label %1181

1128:                                             ; preds = %1120
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1131 = call ptr @__errno_location() #11
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  store i32 %1132, ptr %30, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @s2n_print_stacktrace(ptr noundef %1133)
  %1135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1136 = trunc i8 %1135 to i1
  br i1 %1136, label %1137, label %1159

1137:                                             ; preds = %1130
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = call i32 @fileno(ptr noundef %1138) #10
  %1140 = call i32 @isatty(i32 noundef %1139) #10
  %1141 = icmp ne i32 %1140, 0
  br i1 %1141, label %1142, label %1159

1142:                                             ; preds = %1137
  %1143 = load i32, ptr %30, align 4, !tbaa !5
  %1144 = call ptr @__errno_location() #11
  store i32 %1143, ptr %1144, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef @.str.4)
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror_debug(i32 noundef %1151, ptr noundef @.str.4)
  %1153 = call ptr @__errno_location() #11
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #10
  %1156 = call ptr @__errno_location() #11
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.2, i32 noundef %1146, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1149, ptr noundef %1152, ptr noundef %1155, i32 noundef %1157) #10
  br label %1176

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

1176:                                             ; preds = %1159, %1142
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  call void @exit(i32 noundef 1) #12
  unreachable

1179:                                             ; No predecessors!
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180, %1120
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183
  %1185 = load i16, ptr %25, align 2, !tbaa !20
  %1186 = zext i16 %1185 to i32
  %1187 = icmp ne i32 %1186, 0
  br i1 %1187, label %1188, label %1257

1188:                                             ; preds = %1184
  br label %1189

1189:                                             ; preds = %1188
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = getelementptr inbounds [256 x i8], ptr %29, i64 0, i64 0
  %1193 = load ptr, ptr %19, align 8, !tbaa !9
  %1194 = getelementptr inbounds %struct.s2n_connection, ptr %1193, i32 0, i32 82
  %1195 = getelementptr inbounds %struct.s2n_blob, ptr %1194, i32 0, i32 0
  %1196 = load ptr, ptr %1195, align 8, !tbaa !49
  %1197 = load i16, ptr %25, align 2, !tbaa !20
  %1198 = zext i16 %1197 to i64
  %1199 = call i32 @memcmp(ptr noundef %1192, ptr noundef %1196, i64 noundef %1198) #13
  %1200 = icmp eq i32 %1199, 0
  br i1 %1200, label %1254, label %1201

1201:                                             ; preds = %1189
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

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

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

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

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

1249:                                             ; preds = %1232, %1215
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

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

1252:                                             ; No predecessors!
  br label %1253

1253:                                             ; preds = %1252
  br label %1254

1254:                                             ; preds = %1253, %1189
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255
  br label %1257

1257:                                             ; preds = %1256, %1184
  br label %1258

1258:                                             ; preds = %1257
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

1260:                                             ; preds = %1259
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = add nsw i32 %1261, 1
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = call i32 @s2n_stuffer_free(ptr noundef %22)
  %1264 = icmp eq i32 %1263, -1
  br i1 %1264, label %1265, label %1318

1265:                                             ; preds = %1260
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

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

1274:                                             ; preds = %1267
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #10
  %1277 = call i32 @isatty(i32 noundef %1276) #10
  %1278 = icmp ne i32 %1277, 0
  br i1 %1278, label %1279, label %1296

1279:                                             ; preds = %1274
  %1280 = load i32, ptr %32, align 4, !tbaa !5
  %1281 = call ptr @__errno_location() #11
  store i32 %1280, ptr %1281, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror(i32 noundef %1285, ptr noundef @.str.4)
  %1287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror_debug(i32 noundef %1288, ptr noundef @.str.4)
  %1290 = call ptr @__errno_location() #11
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call ptr @strerror(i32 noundef %1291) #10
  %1293 = call ptr @__errno_location() #11
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1282, ptr noundef @.str.2, i32 noundef %1283, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1286, ptr noundef %1289, ptr noundef %1292, i32 noundef %1294) #10
  br label %1313

1296:                                             ; preds = %1274, %1267
  %1297 = load i32, ptr %32, align 4, !tbaa !5
  %1298 = call ptr @__errno_location() #11
  store i32 %1297, ptr %1298, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef @.str.4)
  %1307 = call ptr @__errno_location() #11
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #10
  %1310 = call ptr @__errno_location() #11
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.5, i32 noundef %1300, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1303, ptr noundef %1306, ptr noundef %1309, i32 noundef %1311) #10
  br label %1313

1313:                                             ; preds = %1296, %1279
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314
  call void @exit(i32 noundef 1) #12
  unreachable

1316:                                             ; No predecessors!
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317, %1260
  br label %1319

1319:                                             ; preds = %1318
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = add nsw i32 %1322, 1
  store i32 %1323, ptr @test_count, align 4, !tbaa !5
  %1324 = load ptr, ptr %19, align 8, !tbaa !9
  %1325 = call i32 @s2n_connection_free(ptr noundef %1324)
  %1326 = icmp eq i32 %1325, -1
  br i1 %1326, label %1327, label %1380

1327:                                             ; preds = %1321
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

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

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

1341:                                             ; preds = %1336
  %1342 = load i32, ptr %33, align 4, !tbaa !5
  %1343 = call ptr @__errno_location() #11
  store i32 %1342, ptr %1343, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = load i32, ptr @test_count, align 4, !tbaa !5
  %1346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @s2n_strerror(i32 noundef %1347, ptr noundef @.str.4)
  %1349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror_debug(i32 noundef %1350, ptr noundef @.str.4)
  %1352 = call ptr @__errno_location() #11
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call ptr @strerror(i32 noundef %1353) #10
  %1355 = call ptr @__errno_location() #11
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1344, ptr noundef @.str.2, i32 noundef %1345, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1348, ptr noundef %1351, ptr noundef %1354, i32 noundef %1356) #10
  br label %1375

1358:                                             ; preds = %1336, %1329
  %1359 = load i32, ptr %33, align 4, !tbaa !5
  %1360 = call ptr @__errno_location() #11
  store i32 %1359, ptr %1360, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1364, ptr noundef @.str.4)
  %1366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror_debug(i32 noundef %1367, ptr noundef @.str.4)
  %1369 = call ptr @__errno_location() #11
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @strerror(i32 noundef %1370) #10
  %1372 = call ptr @__errno_location() #11
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1361, ptr noundef @.str.5, i32 noundef %1362, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1365, ptr noundef %1368, ptr noundef %1371, i32 noundef %1373) #10
  br label %1375

1375:                                             ; preds = %1358, %1341
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  call void @exit(i32 noundef 1) #12
  unreachable

1378:                                             ; No predecessors!
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379, %1321
  br label %1381

1381:                                             ; preds = %1380
  br label %1382

1382:                                             ; preds = %1381
  call void @llvm.lifetime.end.p0(i64 256, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  store ptr null, ptr %34, align 8, !tbaa !9
  br label %1383

1383:                                             ; preds = %1382
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = add nsw i32 %1384, 1
  store i32 %1385, ptr @test_count, align 4, !tbaa !5
  %1386 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1386, ptr %34, align 8, !tbaa !9
  %1387 = icmp eq ptr %1386, null
  br i1 %1387, label %1388, label %1441

1388:                                             ; preds = %1383
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

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

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

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

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

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

1437:                                             ; preds = %1436
  br label %1438

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

1439:                                             ; No predecessors!
  br label %1440

1440:                                             ; preds = %1439
  br label %1441

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

1442:                                             ; preds = %1441
  br label %1443

1443:                                             ; preds = %1442
  br label %1444

1444:                                             ; preds = %1443
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = load ptr, ptr %34, align 8, !tbaa !9
  %1448 = getelementptr inbounds [3 x ptr], ptr %10, i64 0, i64 0
  %1449 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %1447, ptr noundef %1448, i32 noundef 3)
  %1450 = icmp eq i32 %1449, -1
  br i1 %1450, label %1451, label %1504

1451:                                             ; preds = %1444
  br label %1452

1452:                                             ; preds = %1451
  br label %1453

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

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

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

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

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

1500:                                             ; preds = %1499
  br label %1501

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

1502:                                             ; No predecessors!
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

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

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  call void @llvm.lifetime.start.p0(i64 40, ptr %37) #10
  call void @llvm.memset.p0.i64(ptr align 8 %37, i8 0, i64 40, i1 false)
  br label %1507

1507:                                             ; preds = %1506
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %37, i32 noundef 0)
  %1511 = icmp eq i32 %1510, -1
  br i1 %1511, label %1512, label %1565

1512:                                             ; preds = %1507
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

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

1521:                                             ; preds = %1514
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @fileno(ptr noundef %1522) #10
  %1524 = call i32 @isatty(i32 noundef %1523) #10
  %1525 = icmp ne i32 %1524, 0
  br i1 %1525, label %1526, label %1543

1526:                                             ; preds = %1521
  %1527 = load i32, ptr %38, align 4, !tbaa !5
  %1528 = call ptr @__errno_location() #11
  store i32 %1527, ptr %1528, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef @.str.4)
  %1534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror_debug(i32 noundef %1535, ptr noundef @.str.4)
  %1537 = call ptr @__errno_location() #11
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @strerror(i32 noundef %1538) #10
  %1540 = call ptr @__errno_location() #11
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1529, ptr noundef @.str.2, i32 noundef %1530, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1533, ptr noundef %1536, ptr noundef %1539, i32 noundef %1541) #10
  br label %1560

1543:                                             ; preds = %1521, %1514
  %1544 = load i32, ptr %38, align 4, !tbaa !5
  %1545 = call ptr @__errno_location() #11
  store i32 %1544, ptr %1545, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror(i32 noundef %1549, ptr noundef @.str.4)
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror_debug(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call ptr @__errno_location() #11
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #10
  %1557 = call ptr @__errno_location() #11
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef @.str.5, i32 noundef %1547, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1550, ptr noundef %1553, ptr noundef %1556, i32 noundef %1558) #10
  br label %1560

1560:                                             ; preds = %1543, %1526
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561
  call void @exit(i32 noundef 1) #12
  unreachable

1563:                                             ; No predecessors!
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564, %1507
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = add nsw i32 %1569, 1
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 3), align 8, !tbaa !19
  %1572 = load ptr, ptr %34, align 8, !tbaa !9
  %1573 = call i32 %1571(ptr noundef %1572, ptr noundef %37)
  %1574 = icmp eq i32 %1573, -1
  br i1 %1574, label %1575, label %1628

1575:                                             ; preds = %1568
  br label %1576

1576:                                             ; preds = %1575
  br label %1577

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

1584:                                             ; preds = %1577
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @fileno(ptr noundef %1585) #10
  %1587 = call i32 @isatty(i32 noundef %1586) #10
  %1588 = icmp ne i32 %1587, 0
  br i1 %1588, label %1589, label %1606

1589:                                             ; preds = %1584
  %1590 = load i32, ptr %39, align 4, !tbaa !5
  %1591 = call ptr @__errno_location() #11
  store i32 %1590, ptr %1591, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef @.str.4)
  %1597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef @.str.4)
  %1600 = call ptr @__errno_location() #11
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @strerror(i32 noundef %1601) #10
  %1603 = call ptr @__errno_location() #11
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1592, ptr noundef @.str.2, i32 noundef %1593, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1596, ptr noundef %1599, ptr noundef %1602, i32 noundef %1604) #10
  br label %1623

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

1623:                                             ; preds = %1606, %1589
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624
  call void @exit(i32 noundef 1) #12
  unreachable

1626:                                             ; No predecessors!
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627, %1568
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = add nsw i32 %1632, 1
  store i32 %1633, ptr @test_count, align 4, !tbaa !5
  %1634 = load ptr, ptr %34, align 8, !tbaa !9
  %1635 = call ptr @s2n_get_application_protocol(ptr noundef %1634)
  %1636 = icmp eq ptr %1635, null
  br i1 %1636, label %1690, label %1637

1637:                                             ; preds = %1631
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

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

1646:                                             ; preds = %1639
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = call i32 @fileno(ptr noundef %1647) #10
  %1649 = call i32 @isatty(i32 noundef %1648) #10
  %1650 = icmp ne i32 %1649, 0
  br i1 %1650, label %1651, label %1668

1651:                                             ; preds = %1646
  %1652 = load i32, ptr %40, align 4, !tbaa !5
  %1653 = call ptr @__errno_location() #11
  store i32 %1652, ptr %1653, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror(i32 noundef %1657, ptr noundef @.str.4)
  %1659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef @.str.4)
  %1662 = call ptr @__errno_location() #11
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @strerror(i32 noundef %1663) #10
  %1665 = call ptr @__errno_location() #11
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1654, ptr noundef @.str.2, i32 noundef %1655, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1658, ptr noundef %1661, ptr noundef %1664, i32 noundef %1666) #10
  br label %1685

1668:                                             ; preds = %1646, %1639
  %1669 = load i32, ptr %40, align 4, !tbaa !5
  %1670 = call ptr @__errno_location() #11
  store i32 %1669, ptr %1670, align 4, !tbaa !5
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror(i32 noundef %1674, ptr noundef @.str.4)
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror_debug(i32 noundef %1677, ptr noundef @.str.4)
  %1679 = call ptr @__errno_location() #11
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @strerror(i32 noundef %1680) #10
  %1682 = call ptr @__errno_location() #11
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1671, ptr noundef @.str.5, i32 noundef %1672, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1675, ptr noundef %1678, ptr noundef %1681, i32 noundef %1683) #10
  br label %1685

1685:                                             ; preds = %1668, %1651
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

1687:                                             ; preds = %1686
  call void @exit(i32 noundef 1) #12
  unreachable

1688:                                             ; No predecessors!
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689, %1631
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr @test_count, align 4, !tbaa !5
  %1695 = add nsw i32 %1694, 1
  store i32 %1695, ptr @test_count, align 4, !tbaa !5
  %1696 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 4), align 8, !tbaa !50
  %1697 = load ptr, ptr %34, align 8, !tbaa !9
  %1698 = call i32 %1696(ptr noundef %1697, ptr noundef %37)
  %1699 = icmp eq i32 %1698, -1
  br i1 %1699, label %1700, label %1753

1700:                                             ; preds = %1693
  br label %1701

1701:                                             ; preds = %1700
  br label %1702

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

1709:                                             ; preds = %1702
  %1710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1711 = call i32 @fileno(ptr noundef %1710) #10
  %1712 = call i32 @isatty(i32 noundef %1711) #10
  %1713 = icmp ne i32 %1712, 0
  br i1 %1713, label %1714, label %1731

1714:                                             ; preds = %1709
  %1715 = load i32, ptr %41, align 4, !tbaa !5
  %1716 = call ptr @__errno_location() #11
  store i32 %1715, ptr %1716, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef @.str.4)
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror_debug(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call ptr @__errno_location() #11
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #10
  %1728 = call ptr @__errno_location() #11
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1717, ptr noundef @.str.2, i32 noundef %1718, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1721, ptr noundef %1724, ptr noundef %1727, i32 noundef %1729) #10
  br label %1748

1731:                                             ; preds = %1709, %1702
  %1732 = load i32, ptr %41, align 4, !tbaa !5
  %1733 = call ptr @__errno_location() #11
  store i32 %1732, ptr %1733, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = load i32, ptr @test_count, align 4, !tbaa !5
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef @.str.4)
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef @.str.4)
  %1742 = call ptr @__errno_location() #11
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #10
  %1745 = call ptr @__errno_location() #11
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1734, ptr noundef @.str.5, i32 noundef %1735, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1738, ptr noundef %1741, ptr noundef %1744, i32 noundef %1746) #10
  br label %1748

1748:                                             ; preds = %1731, %1714
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1749

1749:                                             ; preds = %1748
  br label %1750

1750:                                             ; preds = %1749
  call void @exit(i32 noundef 1) #12
  unreachable

1751:                                             ; No predecessors!
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752, %1693
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = add nsw i32 %1757, 1
  store i32 %1758, ptr @test_count, align 4, !tbaa !5
  %1759 = load ptr, ptr %34, align 8, !tbaa !9
  %1760 = call ptr @s2n_get_application_protocol(ptr noundef %1759)
  %1761 = icmp eq ptr %1760, null
  br i1 %1761, label %1762, label %1815

1762:                                             ; preds = %1756
  br label %1763

1763:                                             ; preds = %1762
  br label %1764

1764:                                             ; preds = %1763
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %1765 = call ptr @__errno_location() #11
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  store i32 %1766, ptr %42, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @s2n_print_stacktrace(ptr noundef %1767)
  %1769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1770 = trunc i8 %1769 to i1
  br i1 %1770, label %1771, label %1793

1771:                                             ; preds = %1764
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @fileno(ptr noundef %1772) #10
  %1774 = call i32 @isatty(i32 noundef %1773) #10
  %1775 = icmp ne i32 %1774, 0
  br i1 %1775, label %1776, label %1793

1776:                                             ; preds = %1771
  %1777 = load i32, ptr %42, align 4, !tbaa !5
  %1778 = call ptr @__errno_location() #11
  store i32 %1777, ptr %1778, align 4, !tbaa !5
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = load i32, ptr @test_count, align 4, !tbaa !5
  %1781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call ptr @s2n_strerror(i32 noundef %1782, ptr noundef @.str.4)
  %1784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror_debug(i32 noundef %1785, ptr noundef @.str.4)
  %1787 = call ptr @__errno_location() #11
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call ptr @strerror(i32 noundef %1788) #10
  %1790 = call ptr @__errno_location() #11
  %1791 = load i32, ptr %1790, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1779, ptr noundef @.str.2, i32 noundef %1780, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1783, ptr noundef %1786, ptr noundef %1789, i32 noundef %1791) #10
  br label %1810

1793:                                             ; preds = %1771, %1764
  %1794 = load i32, ptr %42, align 4, !tbaa !5
  %1795 = call ptr @__errno_location() #11
  store i32 %1794, ptr %1795, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = load i32, ptr @test_count, align 4, !tbaa !5
  %1798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror(i32 noundef %1799, ptr noundef @.str.4)
  %1801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror_debug(i32 noundef %1802, ptr noundef @.str.4)
  %1804 = call ptr @__errno_location() #11
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = call ptr @strerror(i32 noundef %1805) #10
  %1807 = call ptr @__errno_location() #11
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1796, ptr noundef @.str.5, i32 noundef %1797, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1800, ptr noundef %1803, ptr noundef %1806, i32 noundef %1808) #10
  br label %1810

1810:                                             ; preds = %1793, %1776
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1811

1811:                                             ; preds = %1810
  br label %1812

1812:                                             ; preds = %1811
  call void @exit(i32 noundef 1) #12
  unreachable

1813:                                             ; No predecessors!
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814, %1756
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

1817:                                             ; preds = %1816
  br label %1818

1818:                                             ; preds = %1817
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = add nsw i32 %1819, 1
  store i32 %1820, ptr @test_count, align 4, !tbaa !5
  %1821 = load ptr, ptr %34, align 8, !tbaa !9
  %1822 = call ptr @s2n_get_application_protocol(ptr noundef %1821)
  %1823 = getelementptr inbounds [3 x ptr], ptr %10, i64 0, i64 0
  %1824 = load ptr, ptr %1823, align 16, !tbaa !9
  %1825 = call i32 @strcmp(ptr noundef %1822, ptr noundef %1824) #13
  %1826 = icmp eq i32 %1825, 0
  br i1 %1826, label %1880, label %1827

1827:                                             ; preds = %1818
  br label %1828

1828:                                             ; preds = %1827
  br label %1829

1829:                                             ; preds = %1828
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1830 = call ptr @__errno_location() #11
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  store i32 %1831, ptr %43, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @s2n_print_stacktrace(ptr noundef %1832)
  %1834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1835 = trunc i8 %1834 to i1
  br i1 %1835, label %1836, label %1858

1836:                                             ; preds = %1829
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @fileno(ptr noundef %1837) #10
  %1839 = call i32 @isatty(i32 noundef %1838) #10
  %1840 = icmp ne i32 %1839, 0
  br i1 %1840, label %1841, label %1858

1841:                                             ; preds = %1836
  %1842 = load i32, ptr %43, align 4, !tbaa !5
  %1843 = call ptr @__errno_location() #11
  store i32 %1842, ptr %1843, align 4, !tbaa !5
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror(i32 noundef %1847, ptr noundef @.str.4)
  %1849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef @.str.4)
  %1852 = call ptr @__errno_location() #11
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call ptr @strerror(i32 noundef %1853) #10
  %1855 = call ptr @__errno_location() #11
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1844, ptr noundef @.str.2, i32 noundef %1845, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1848, ptr noundef %1851, ptr noundef %1854, i32 noundef %1856) #10
  br label %1875

1858:                                             ; preds = %1836, %1829
  %1859 = load i32, ptr %43, align 4, !tbaa !5
  %1860 = call ptr @__errno_location() #11
  store i32 %1859, ptr %1860, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror_debug(i32 noundef %1867, ptr noundef @.str.4)
  %1869 = call ptr @__errno_location() #11
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call ptr @strerror(i32 noundef %1870) #10
  %1872 = call ptr @__errno_location() #11
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1861, ptr noundef @.str.5, i32 noundef %1862, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1865, ptr noundef %1868, ptr noundef %1871, i32 noundef %1873) #10
  br label %1875

1875:                                             ; preds = %1858, %1841
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876
  call void @exit(i32 noundef 1) #12
  unreachable

1878:                                             ; No predecessors!
  br label %1879

1879:                                             ; preds = %1878
  br label %1880

1880:                                             ; preds = %1879, %1818
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  br label %1883

1883:                                             ; preds = %1882
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = add nsw i32 %1884, 1
  store i32 %1885, ptr @test_count, align 4, !tbaa !5
  %1886 = load ptr, ptr %34, align 8, !tbaa !9
  %1887 = call i32 @s2n_connection_free(ptr noundef %1886)
  %1888 = icmp eq i32 %1887, -1
  br i1 %1888, label %1889, label %1942

1889:                                             ; preds = %1883
  br label %1890

1890:                                             ; preds = %1889
  br label %1891

1891:                                             ; preds = %1890
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1892 = call ptr @__errno_location() #11
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  store i32 %1893, ptr %44, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @s2n_print_stacktrace(ptr noundef %1894)
  %1896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1897 = trunc i8 %1896 to i1
  br i1 %1897, label %1898, label %1920

1898:                                             ; preds = %1891
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @fileno(ptr noundef %1899) #10
  %1901 = call i32 @isatty(i32 noundef %1900) #10
  %1902 = icmp ne i32 %1901, 0
  br i1 %1902, label %1903, label %1920

1903:                                             ; preds = %1898
  %1904 = load i32, ptr %44, align 4, !tbaa !5
  %1905 = call ptr @__errno_location() #11
  store i32 %1904, ptr %1905, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror(i32 noundef %1909, ptr noundef @.str.4)
  %1911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror_debug(i32 noundef %1912, ptr noundef @.str.4)
  %1914 = call ptr @__errno_location() #11
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @strerror(i32 noundef %1915) #10
  %1917 = call ptr @__errno_location() #11
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1906, ptr noundef @.str.2, i32 noundef %1907, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1910, ptr noundef %1913, ptr noundef %1916, i32 noundef %1918) #10
  br label %1937

1920:                                             ; preds = %1898, %1891
  %1921 = load i32, ptr %44, align 4, !tbaa !5
  %1922 = call ptr @__errno_location() #11
  store i32 %1921, ptr %1922, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = load i32, ptr @test_count, align 4, !tbaa !5
  %1925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror(i32 noundef %1926, ptr noundef @.str.4)
  %1928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call ptr @s2n_strerror_debug(i32 noundef %1929, ptr noundef @.str.4)
  %1931 = call ptr @__errno_location() #11
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call ptr @strerror(i32 noundef %1932) #10
  %1934 = call ptr @__errno_location() #11
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1923, ptr noundef @.str.5, i32 noundef %1924, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1927, ptr noundef %1930, ptr noundef %1933, i32 noundef %1935) #10
  br label %1937

1937:                                             ; preds = %1920, %1903
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1938

1938:                                             ; preds = %1937
  br label %1939

1939:                                             ; preds = %1938
  call void @exit(i32 noundef 1) #12
  unreachable

1940:                                             ; No predecessors!
  br label %1941

1941:                                             ; preds = %1940
  br label %1942

1942:                                             ; preds = %1941, %1883
  br label %1943

1943:                                             ; preds = %1942
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = call i32 @s2n_stuffer_free(ptr noundef %37)
  %1949 = icmp eq i32 %1948, -1
  br i1 %1949, label %1950, label %2003

1950:                                             ; preds = %1945
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

1952:                                             ; preds = %1951
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %1953 = call ptr @__errno_location() #11
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  store i32 %1954, ptr %45, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @s2n_print_stacktrace(ptr noundef %1955)
  %1957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1958 = trunc i8 %1957 to i1
  br i1 %1958, label %1959, label %1981

1959:                                             ; preds = %1952
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @fileno(ptr noundef %1960) #10
  %1962 = call i32 @isatty(i32 noundef %1961) #10
  %1963 = icmp ne i32 %1962, 0
  br i1 %1963, label %1964, label %1981

1964:                                             ; preds = %1959
  %1965 = load i32, ptr %45, align 4, !tbaa !5
  %1966 = call ptr @__errno_location() #11
  store i32 %1965, ptr %1966, align 4, !tbaa !5
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = load i32, ptr @test_count, align 4, !tbaa !5
  %1969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1970 = load i32, ptr %1969, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror(i32 noundef %1970, ptr noundef @.str.4)
  %1972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  %1974 = call ptr @s2n_strerror_debug(i32 noundef %1973, ptr noundef @.str.4)
  %1975 = call ptr @__errno_location() #11
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = call ptr @strerror(i32 noundef %1976) #10
  %1978 = call ptr @__errno_location() #11
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1967, ptr noundef @.str.2, i32 noundef %1968, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1971, ptr noundef %1974, ptr noundef %1977, i32 noundef %1979) #10
  br label %1998

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

1998:                                             ; preds = %1981, %1964
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  call void @exit(i32 noundef 1) #12
  unreachable

2001:                                             ; No predecessors!
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

2003:                                             ; preds = %2002, %1945
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

2005:                                             ; preds = %2004
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  store ptr null, ptr %46, align 8, !tbaa !9
  br label %2006

2006:                                             ; preds = %2005
  %2007 = load i32, ptr @test_count, align 4, !tbaa !5
  %2008 = add nsw i32 %2007, 1
  store i32 %2008, ptr @test_count, align 4, !tbaa !5
  %2009 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2009, ptr %46, align 8, !tbaa !9
  %2010 = icmp eq ptr %2009, null
  br i1 %2010, label %2011, label %2064

2011:                                             ; preds = %2006
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

2013:                                             ; preds = %2012
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %2014 = call ptr @__errno_location() #11
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  store i32 %2015, ptr %47, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = call i32 @s2n_print_stacktrace(ptr noundef %2016)
  %2018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2019 = trunc i8 %2018 to i1
  br i1 %2019, label %2020, label %2042

2020:                                             ; preds = %2013
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @fileno(ptr noundef %2021) #10
  %2023 = call i32 @isatty(i32 noundef %2022) #10
  %2024 = icmp ne i32 %2023, 0
  br i1 %2024, label %2025, label %2042

2025:                                             ; preds = %2020
  %2026 = load i32, ptr %47, align 4, !tbaa !5
  %2027 = call ptr @__errno_location() #11
  store i32 %2026, ptr %2027, align 4, !tbaa !5
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = load i32, ptr @test_count, align 4, !tbaa !5
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror(i32 noundef %2031, ptr noundef @.str.4)
  %2033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef @.str.4)
  %2036 = call ptr @__errno_location() #11
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #10
  %2039 = call ptr @__errno_location() #11
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2028, ptr noundef @.str.2, i32 noundef %2029, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2032, ptr noundef %2035, ptr noundef %2038, i32 noundef %2040) #10
  br label %2059

2042:                                             ; preds = %2020, %2013
  %2043 = load i32, ptr %47, align 4, !tbaa !5
  %2044 = call ptr @__errno_location() #11
  store i32 %2043, ptr %2044, align 4, !tbaa !5
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = load i32, ptr @test_count, align 4, !tbaa !5
  %2047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror(i32 noundef %2048, ptr noundef @.str.4)
  %2050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef @.str.4)
  %2053 = call ptr @__errno_location() #11
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call ptr @strerror(i32 noundef %2054) #10
  %2056 = call ptr @__errno_location() #11
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  %2058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2045, ptr noundef @.str.5, i32 noundef %2046, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 90, ptr noundef %2049, ptr noundef %2052, ptr noundef %2055, i32 noundef %2057) #10
  br label %2059

2059:                                             ; preds = %2042, %2025
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2060

2060:                                             ; preds = %2059
  br label %2061

2061:                                             ; preds = %2060
  call void @exit(i32 noundef 1) #12
  unreachable

2062:                                             ; No predecessors!
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063, %2006
  br label %2065

2065:                                             ; preds = %2064
  br label %2066

2066:                                             ; preds = %2065
  call void @llvm.lifetime.start.p0(i64 40, ptr %48) #10
  call void @llvm.memset.p0.i64(ptr align 8 %48, i8 0, i64 40, i1 false)
  br label %2067

2067:                                             ; preds = %2066
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = add nsw i32 %2068, 1
  store i32 %2069, ptr @test_count, align 4, !tbaa !5
  %2070 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %48, i32 noundef 0)
  %2071 = icmp eq i32 %2070, -1
  br i1 %2071, label %2072, label %2125

2072:                                             ; preds = %2067
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2075 = call ptr @__errno_location() #11
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  store i32 %2076, ptr %49, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077)
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc i8 %2079 to i1
  br i1 %2080, label %2081, label %2103

2081:                                             ; preds = %2074
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #10
  %2084 = call i32 @isatty(i32 noundef %2083) #10
  %2085 = icmp ne i32 %2084, 0
  br i1 %2085, label %2086, label %2103

2086:                                             ; preds = %2081
  %2087 = load i32, ptr %49, align 4, !tbaa !5
  %2088 = call ptr @__errno_location() #11
  store i32 %2087, ptr %2088, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef @.str.4)
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror_debug(i32 noundef %2095, ptr noundef @.str.4)
  %2097 = call ptr @__errno_location() #11
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @strerror(i32 noundef %2098) #10
  %2100 = call ptr @__errno_location() #11
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef @.str.2, i32 noundef %2090, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 93, ptr noundef %2093, ptr noundef %2096, ptr noundef %2099, i32 noundef %2101) #10
  br label %2120

2103:                                             ; preds = %2081, %2074
  %2104 = load i32, ptr %49, align 4, !tbaa !5
  %2105 = call ptr @__errno_location() #11
  store i32 %2104, ptr %2105, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror(i32 noundef %2109, ptr noundef @.str.4)
  %2111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef @.str.4)
  %2114 = call ptr @__errno_location() #11
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call ptr @strerror(i32 noundef %2115) #10
  %2117 = call ptr @__errno_location() #11
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2106, ptr noundef @.str.5, i32 noundef %2107, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 93, ptr noundef %2110, ptr noundef %2113, ptr noundef %2116, i32 noundef %2118) #10
  br label %2120

2120:                                             ; preds = %2103, %2086
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

2122:                                             ; preds = %2121
  call void @exit(i32 noundef 1) #12
  unreachable

2123:                                             ; No predecessors!
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124, %2067
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = add nsw i32 %2129, 1
  store i32 %2130, ptr @test_count, align 4, !tbaa !5
  %2131 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 3), align 8, !tbaa !19
  %2132 = load ptr, ptr %46, align 8, !tbaa !9
  %2133 = call i32 %2131(ptr noundef %2132, ptr noundef %48)
  %2134 = icmp eq i32 %2133, -1
  br i1 %2134, label %2135, label %2188

2135:                                             ; preds = %2128
  br label %2136

2136:                                             ; preds = %2135
  br label %2137

2137:                                             ; preds = %2136
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2138 = call ptr @__errno_location() #11
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  store i32 %2139, ptr %50, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @s2n_print_stacktrace(ptr noundef %2140)
  %2142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2143 = trunc i8 %2142 to i1
  br i1 %2143, label %2144, label %2166

2144:                                             ; preds = %2137
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @fileno(ptr noundef %2145) #10
  %2147 = call i32 @isatty(i32 noundef %2146) #10
  %2148 = icmp ne i32 %2147, 0
  br i1 %2148, label %2149, label %2166

2149:                                             ; preds = %2144
  %2150 = load i32, ptr %50, align 4, !tbaa !5
  %2151 = call ptr @__errno_location() #11
  store i32 %2150, ptr %2151, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2155 = load i32, ptr %2154, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror(i32 noundef %2155, ptr noundef @.str.4)
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror_debug(i32 noundef %2158, ptr noundef @.str.4)
  %2160 = call ptr @__errno_location() #11
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #10
  %2163 = call ptr @__errno_location() #11
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef @.str.2, i32 noundef %2153, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2156, ptr noundef %2159, ptr noundef %2162, i32 noundef %2164) #10
  br label %2183

2166:                                             ; preds = %2144, %2137
  %2167 = load i32, ptr %50, align 4, !tbaa !5
  %2168 = call ptr @__errno_location() #11
  store i32 %2167, ptr %2168, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror(i32 noundef %2172, ptr noundef @.str.4)
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror_debug(i32 noundef %2175, ptr noundef @.str.4)
  %2177 = call ptr @__errno_location() #11
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @strerror(i32 noundef %2178) #10
  %2180 = call ptr @__errno_location() #11
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2169, ptr noundef @.str.5, i32 noundef %2170, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 95, ptr noundef %2173, ptr noundef %2176, ptr noundef %2179, i32 noundef %2181) #10
  br label %2183

2183:                                             ; preds = %2166, %2149
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @exit(i32 noundef 1) #12
  unreachable

2186:                                             ; No predecessors!
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

2188:                                             ; preds = %2187, %2128
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

2191:                                             ; preds = %2190
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = add nsw i32 %2192, 1
  store i32 %2193, ptr @test_count, align 4, !tbaa !5
  %2194 = load ptr, ptr %46, align 8, !tbaa !9
  %2195 = call ptr @s2n_get_application_protocol(ptr noundef %2194)
  %2196 = icmp eq ptr %2195, null
  br i1 %2196, label %2250, label %2197

2197:                                             ; preds = %2191
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2200 = call ptr @__errno_location() #11
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  store i32 %2201, ptr %51, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = call i32 @s2n_print_stacktrace(ptr noundef %2202)
  %2204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2205 = trunc i8 %2204 to i1
  br i1 %2205, label %2206, label %2228

2206:                                             ; preds = %2199
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = call i32 @fileno(ptr noundef %2207) #10
  %2209 = call i32 @isatty(i32 noundef %2208) #10
  %2210 = icmp ne i32 %2209, 0
  br i1 %2210, label %2211, label %2228

2211:                                             ; preds = %2206
  %2212 = load i32, ptr %51, align 4, !tbaa !5
  %2213 = call ptr @__errno_location() #11
  store i32 %2212, ptr %2213, align 4, !tbaa !5
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = load i32, ptr @test_count, align 4, !tbaa !5
  %2216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror(i32 noundef %2217, ptr noundef @.str.4)
  %2219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror_debug(i32 noundef %2220, ptr noundef @.str.4)
  %2222 = call ptr @__errno_location() #11
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @strerror(i32 noundef %2223) #10
  %2225 = call ptr @__errno_location() #11
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2214, ptr noundef @.str.2, i32 noundef %2215, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2218, ptr noundef %2221, ptr noundef %2224, i32 noundef %2226) #10
  br label %2245

2228:                                             ; preds = %2206, %2199
  %2229 = load i32, ptr %51, align 4, !tbaa !5
  %2230 = call ptr @__errno_location() #11
  store i32 %2229, ptr %2230, align 4, !tbaa !5
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror(i32 noundef %2234, ptr noundef @.str.4)
  %2236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror_debug(i32 noundef %2237, ptr noundef @.str.4)
  %2239 = call ptr @__errno_location() #11
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @strerror(i32 noundef %2240) #10
  %2242 = call ptr @__errno_location() #11
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2231, ptr noundef @.str.5, i32 noundef %2232, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2235, ptr noundef %2238, ptr noundef %2241, i32 noundef %2243) #10
  br label %2245

2245:                                             ; preds = %2228, %2211
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246
  call void @exit(i32 noundef 1) #12
  unreachable

2248:                                             ; No predecessors!
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

2250:                                             ; preds = %2249, %2191
  br label %2251

2251:                                             ; preds = %2250
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = add nsw i32 %2254, 1
  store i32 %2255, ptr @test_count, align 4, !tbaa !5
  %2256 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 4), align 8, !tbaa !50
  %2257 = load ptr, ptr %46, align 8, !tbaa !9
  %2258 = call i32 %2256(ptr noundef %2257, ptr noundef %48)
  %2259 = icmp eq i32 %2258, -1
  br i1 %2259, label %2260, label %2313

2260:                                             ; preds = %2253
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2263 = call ptr @__errno_location() #11
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  store i32 %2264, ptr %52, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @s2n_print_stacktrace(ptr noundef %2265)
  %2267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2268 = trunc i8 %2267 to i1
  br i1 %2268, label %2269, label %2291

2269:                                             ; preds = %2262
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = call i32 @fileno(ptr noundef %2270) #10
  %2272 = call i32 @isatty(i32 noundef %2271) #10
  %2273 = icmp ne i32 %2272, 0
  br i1 %2273, label %2274, label %2291

2274:                                             ; preds = %2269
  %2275 = load i32, ptr %52, align 4, !tbaa !5
  %2276 = call ptr @__errno_location() #11
  store i32 %2275, ptr %2276, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef @.str.4)
  %2285 = call ptr @__errno_location() #11
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @strerror(i32 noundef %2286) #10
  %2288 = call ptr @__errno_location() #11
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef @.str.2, i32 noundef %2278, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2281, ptr noundef %2284, ptr noundef %2287, i32 noundef %2289) #10
  br label %2308

2291:                                             ; preds = %2269, %2262
  %2292 = load i32, ptr %52, align 4, !tbaa !5
  %2293 = call ptr @__errno_location() #11
  store i32 %2292, ptr %2293, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef @.str.4)
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef @.str.4)
  %2302 = call ptr @__errno_location() #11
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @strerror(i32 noundef %2303) #10
  %2305 = call ptr @__errno_location() #11
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2294, ptr noundef @.str.5, i32 noundef %2295, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2298, ptr noundef %2301, ptr noundef %2304, i32 noundef %2306) #10
  br label %2308

2308:                                             ; preds = %2291, %2274
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  call void @exit(i32 noundef 1) #12
  unreachable

2311:                                             ; No predecessors!
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

2313:                                             ; preds = %2312, %2253
  br label %2314

2314:                                             ; preds = %2313
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = add nsw i32 %2317, 1
  store i32 %2318, ptr @test_count, align 4, !tbaa !5
  %2319 = load ptr, ptr %46, align 8, !tbaa !9
  %2320 = call ptr @s2n_get_application_protocol(ptr noundef %2319)
  %2321 = icmp eq ptr %2320, null
  br i1 %2321, label %2375, label %2322

2322:                                             ; preds = %2316
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2325 = call ptr @__errno_location() #11
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  store i32 %2326, ptr %53, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @s2n_print_stacktrace(ptr noundef %2327)
  %2329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2330 = trunc i8 %2329 to i1
  br i1 %2330, label %2331, label %2353

2331:                                             ; preds = %2324
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @fileno(ptr noundef %2332) #10
  %2334 = call i32 @isatty(i32 noundef %2333) #10
  %2335 = icmp ne i32 %2334, 0
  br i1 %2335, label %2336, label %2353

2336:                                             ; preds = %2331
  %2337 = load i32, ptr %53, align 4, !tbaa !5
  %2338 = call ptr @__errno_location() #11
  store i32 %2337, ptr %2338, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = load i32, ptr @test_count, align 4, !tbaa !5
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror(i32 noundef %2342, ptr noundef @.str.4)
  %2344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror_debug(i32 noundef %2345, ptr noundef @.str.4)
  %2347 = call ptr @__errno_location() #11
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #10
  %2350 = call ptr @__errno_location() #11
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2339, ptr noundef @.str.2, i32 noundef %2340, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2343, ptr noundef %2346, ptr noundef %2349, i32 noundef %2351) #10
  br label %2370

2353:                                             ; preds = %2331, %2324
  %2354 = load i32, ptr %53, align 4, !tbaa !5
  %2355 = call ptr @__errno_location() #11
  store i32 %2354, ptr %2355, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror(i32 noundef %2359, ptr noundef @.str.4)
  %2361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror_debug(i32 noundef %2362, ptr noundef @.str.4)
  %2364 = call ptr @__errno_location() #11
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call ptr @strerror(i32 noundef %2365) #10
  %2367 = call ptr @__errno_location() #11
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2356, ptr noundef @.str.5, i32 noundef %2357, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2360, ptr noundef %2363, ptr noundef %2366, i32 noundef %2368) #10
  br label %2370

2370:                                             ; preds = %2353, %2336
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  call void @exit(i32 noundef 1) #12
  unreachable

2373:                                             ; No predecessors!
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

2375:                                             ; preds = %2374, %2316
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = add nsw i32 %2379, 1
  store i32 %2380, ptr @test_count, align 4, !tbaa !5
  %2381 = load ptr, ptr %46, align 8, !tbaa !9
  %2382 = call i32 @s2n_connection_free(ptr noundef %2381)
  %2383 = icmp eq i32 %2382, -1
  br i1 %2383, label %2384, label %2437

2384:                                             ; preds = %2378
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2387 = call ptr @__errno_location() #11
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  store i32 %2388, ptr %54, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @s2n_print_stacktrace(ptr noundef %2389)
  %2391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2392 = trunc i8 %2391 to i1
  br i1 %2392, label %2393, label %2415

2393:                                             ; preds = %2386
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = call i32 @fileno(ptr noundef %2394) #10
  %2396 = call i32 @isatty(i32 noundef %2395) #10
  %2397 = icmp ne i32 %2396, 0
  br i1 %2397, label %2398, label %2415

2398:                                             ; preds = %2393
  %2399 = load i32, ptr %54, align 4, !tbaa !5
  %2400 = call ptr @__errno_location() #11
  store i32 %2399, ptr %2400, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror(i32 noundef %2404, ptr noundef @.str.4)
  %2406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef @.str.4)
  %2409 = call ptr @__errno_location() #11
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @strerror(i32 noundef %2410) #10
  %2412 = call ptr @__errno_location() #11
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef @.str.2, i32 noundef %2402, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2405, ptr noundef %2408, ptr noundef %2411, i32 noundef %2413) #10
  br label %2432

2415:                                             ; preds = %2393, %2386
  %2416 = load i32, ptr %54, align 4, !tbaa !5
  %2417 = call ptr @__errno_location() #11
  store i32 %2416, ptr %2417, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror(i32 noundef %2421, ptr noundef @.str.4)
  %2423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror_debug(i32 noundef %2424, ptr noundef @.str.4)
  %2426 = call ptr @__errno_location() #11
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @strerror(i32 noundef %2427) #10
  %2429 = call ptr @__errno_location() #11
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2418, ptr noundef @.str.5, i32 noundef %2419, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2422, ptr noundef %2425, ptr noundef %2428, i32 noundef %2430) #10
  br label %2432

2432:                                             ; preds = %2415, %2398
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  call void @exit(i32 noundef 1) #12
  unreachable

2435:                                             ; No predecessors!
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436, %2378
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439
  %2441 = load i32, ptr @test_count, align 4, !tbaa !5
  %2442 = add nsw i32 %2441, 1
  store i32 %2442, ptr @test_count, align 4, !tbaa !5
  %2443 = call i32 @s2n_stuffer_free(ptr noundef %48)
  %2444 = icmp eq i32 %2443, -1
  br i1 %2444, label %2445, label %2498

2445:                                             ; preds = %2440
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

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

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

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

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

2493:                                             ; preds = %2476, %2459
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

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

2496:                                             ; No predecessors!
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

2498:                                             ; preds = %2497, %2440
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  store ptr null, ptr %56, align 8, !tbaa !9
  br label %2501

2501:                                             ; preds = %2500
  %2502 = load i32, ptr @test_count, align 4, !tbaa !5
  %2503 = add nsw i32 %2502, 1
  store i32 %2503, ptr @test_count, align 4, !tbaa !5
  %2504 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2504, ptr %56, align 8, !tbaa !9
  %2505 = icmp eq ptr %2504, null
  br i1 %2505, label %2506, label %2559

2506:                                             ; preds = %2501
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

2508:                                             ; preds = %2507
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2509 = call ptr @__errno_location() #11
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  store i32 %2510, ptr %57, align 4, !tbaa !5
  %2511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2512 = call i32 @s2n_print_stacktrace(ptr noundef %2511)
  %2513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2514 = trunc i8 %2513 to i1
  br i1 %2514, label %2515, label %2537

2515:                                             ; preds = %2508
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @fileno(ptr noundef %2516) #10
  %2518 = call i32 @isatty(i32 noundef %2517) #10
  %2519 = icmp ne i32 %2518, 0
  br i1 %2519, label %2520, label %2537

2520:                                             ; preds = %2515
  %2521 = load i32, ptr %57, align 4, !tbaa !5
  %2522 = call ptr @__errno_location() #11
  store i32 %2521, ptr %2522, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = load i32, ptr @test_count, align 4, !tbaa !5
  %2525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = call ptr @s2n_strerror(i32 noundef %2526, ptr noundef @.str.4)
  %2528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2529 = load i32, ptr %2528, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror_debug(i32 noundef %2529, ptr noundef @.str.4)
  %2531 = call ptr @__errno_location() #11
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #10
  %2534 = call ptr @__errno_location() #11
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2523, ptr noundef @.str.2, i32 noundef %2524, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2527, ptr noundef %2530, ptr noundef %2533, i32 noundef %2535) #10
  br label %2554

2537:                                             ; preds = %2515, %2508
  %2538 = load i32, ptr %57, align 4, !tbaa !5
  %2539 = call ptr @__errno_location() #11
  store i32 %2538, ptr %2539, align 4, !tbaa !5
  %2540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @s2n_strerror(i32 noundef %2543, ptr noundef @.str.4)
  %2545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call ptr @s2n_strerror_debug(i32 noundef %2546, ptr noundef @.str.4)
  %2548 = call ptr @__errno_location() #11
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @strerror(i32 noundef %2549) #10
  %2551 = call ptr @__errno_location() #11
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2540, ptr noundef @.str.5, i32 noundef %2541, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2544, ptr noundef %2547, ptr noundef %2550, i32 noundef %2552) #10
  br label %2554

2554:                                             ; preds = %2537, %2520
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2555

2555:                                             ; preds = %2554
  br label %2556

2556:                                             ; preds = %2555
  call void @exit(i32 noundef 1) #12
  unreachable

2557:                                             ; No predecessors!
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558, %2501
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 40, ptr %58) #10
  call void @llvm.memset.p0.i64(ptr align 8 %58, i8 0, i64 40, i1 false)
  br label %2562

2562:                                             ; preds = %2561
  %2563 = load i32, ptr @test_count, align 4, !tbaa !5
  %2564 = add nsw i32 %2563, 1
  store i32 %2564, ptr @test_count, align 4, !tbaa !5
  %2565 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %58, i32 noundef 0)
  %2566 = icmp eq i32 %2565, -1
  br i1 %2566, label %2567, label %2620

2567:                                             ; preds = %2562
  br label %2568

2568:                                             ; preds = %2567
  br label %2569

2569:                                             ; preds = %2568
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2570 = call ptr @__errno_location() #11
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  store i32 %2571, ptr %59, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @s2n_print_stacktrace(ptr noundef %2572)
  %2574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2575 = trunc i8 %2574 to i1
  br i1 %2575, label %2576, label %2598

2576:                                             ; preds = %2569
  %2577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2578 = call i32 @fileno(ptr noundef %2577) #10
  %2579 = call i32 @isatty(i32 noundef %2578) #10
  %2580 = icmp ne i32 %2579, 0
  br i1 %2580, label %2581, label %2598

2581:                                             ; preds = %2576
  %2582 = load i32, ptr %59, align 4, !tbaa !5
  %2583 = call ptr @__errno_location() #11
  store i32 %2582, ptr %2583, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef @.str.4)
  %2592 = call ptr @__errno_location() #11
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @strerror(i32 noundef %2593) #10
  %2595 = call ptr @__errno_location() #11
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef @.str.2, i32 noundef %2585, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2588, ptr noundef %2591, ptr noundef %2594, i32 noundef %2596) #10
  br label %2615

2598:                                             ; preds = %2576, %2569
  %2599 = load i32, ptr %59, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #11
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call ptr @__errno_location() #11
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #10
  %2612 = call ptr @__errno_location() #11
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.5, i32 noundef %2602, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #10
  br label %2615

2615:                                             ; preds = %2598, %2581
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616
  call void @exit(i32 noundef 1) #12
  unreachable

2618:                                             ; No predecessors!
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619, %2562
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = add nsw i32 %2624, 1
  store i32 %2625, ptr @test_count, align 4, !tbaa !5
  %2626 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 3), align 8, !tbaa !19
  %2627 = load ptr, ptr %56, align 8, !tbaa !9
  %2628 = call i32 %2626(ptr noundef %2627, ptr noundef %58)
  %2629 = icmp eq i32 %2628, -1
  br i1 %2629, label %2630, label %2683

2630:                                             ; preds = %2623
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2633 = call ptr @__errno_location() #11
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  store i32 %2634, ptr %60, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = call i32 @s2n_print_stacktrace(ptr noundef %2635)
  %2637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2638 = trunc i8 %2637 to i1
  br i1 %2638, label %2639, label %2661

2639:                                             ; preds = %2632
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = call i32 @fileno(ptr noundef %2640) #10
  %2642 = call i32 @isatty(i32 noundef %2641) #10
  %2643 = icmp ne i32 %2642, 0
  br i1 %2643, label %2644, label %2661

2644:                                             ; preds = %2639
  %2645 = load i32, ptr %60, align 4, !tbaa !5
  %2646 = call ptr @__errno_location() #11
  store i32 %2645, ptr %2646, align 4, !tbaa !5
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = load i32, ptr @test_count, align 4, !tbaa !5
  %2649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror(i32 noundef %2650, ptr noundef @.str.4)
  %2652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror_debug(i32 noundef %2653, ptr noundef @.str.4)
  %2655 = call ptr @__errno_location() #11
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @strerror(i32 noundef %2656) #10
  %2658 = call ptr @__errno_location() #11
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2647, ptr noundef @.str.2, i32 noundef %2648, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2651, ptr noundef %2654, ptr noundef %2657, i32 noundef %2659) #10
  br label %2678

2661:                                             ; preds = %2639, %2632
  %2662 = load i32, ptr %60, align 4, !tbaa !5
  %2663 = call ptr @__errno_location() #11
  store i32 %2662, ptr %2663, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef @.str.4)
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call ptr @__errno_location() #11
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @strerror(i32 noundef %2673) #10
  %2675 = call ptr @__errno_location() #11
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef @.str.5, i32 noundef %2665, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2668, ptr noundef %2671, ptr noundef %2674, i32 noundef %2676) #10
  br label %2678

2678:                                             ; preds = %2661, %2644
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2679

2679:                                             ; preds = %2678
  br label %2680

2680:                                             ; preds = %2679
  call void @exit(i32 noundef 1) #12
  unreachable

2681:                                             ; No predecessors!
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682, %2623
  br label %2684

2684:                                             ; preds = %2683
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = add nsw i32 %2687, 1
  store i32 %2688, ptr @test_count, align 4, !tbaa !5
  %2689 = call i32 @s2n_stuffer_wipe_n(ptr noundef %58, i32 noundef 1)
  %2690 = icmp eq i32 %2689, -1
  br i1 %2690, label %2691, label %2744

2691:                                             ; preds = %2686
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2694 = call ptr @__errno_location() #11
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  store i32 %2695, ptr %61, align 4, !tbaa !5
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = call i32 @s2n_print_stacktrace(ptr noundef %2696)
  %2698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2699 = trunc i8 %2698 to i1
  br i1 %2699, label %2700, label %2722

2700:                                             ; preds = %2693
  %2701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2702 = call i32 @fileno(ptr noundef %2701) #10
  %2703 = call i32 @isatty(i32 noundef %2702) #10
  %2704 = icmp ne i32 %2703, 0
  br i1 %2704, label %2705, label %2722

2705:                                             ; preds = %2700
  %2706 = load i32, ptr %61, align 4, !tbaa !5
  %2707 = call ptr @__errno_location() #11
  store i32 %2706, ptr %2707, align 4, !tbaa !5
  %2708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2709 = load i32, ptr @test_count, align 4, !tbaa !5
  %2710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror(i32 noundef %2711, ptr noundef @.str.4)
  %2713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror_debug(i32 noundef %2714, ptr noundef @.str.4)
  %2716 = call ptr @__errno_location() #11
  %2717 = load i32, ptr %2716, align 4, !tbaa !5
  %2718 = call ptr @strerror(i32 noundef %2717) #10
  %2719 = call ptr @__errno_location() #11
  %2720 = load i32, ptr %2719, align 4, !tbaa !5
  %2721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2708, ptr noundef @.str.2, i32 noundef %2709, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2712, ptr noundef %2715, ptr noundef %2718, i32 noundef %2720) #10
  br label %2739

2722:                                             ; preds = %2700, %2693
  %2723 = load i32, ptr %61, align 4, !tbaa !5
  %2724 = call ptr @__errno_location() #11
  store i32 %2723, ptr %2724, align 4, !tbaa !5
  %2725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2726 = load i32, ptr @test_count, align 4, !tbaa !5
  %2727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror(i32 noundef %2728, ptr noundef @.str.4)
  %2730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef @.str.4)
  %2733 = call ptr @__errno_location() #11
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @strerror(i32 noundef %2734) #10
  %2736 = call ptr @__errno_location() #11
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2725, ptr noundef @.str.5, i32 noundef %2726, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2729, ptr noundef %2732, ptr noundef %2735, i32 noundef %2737) #10
  br label %2739

2739:                                             ; preds = %2722, %2705
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2740

2740:                                             ; preds = %2739
  br label %2741

2741:                                             ; preds = %2740
  call void @exit(i32 noundef 1) #12
  unreachable

2742:                                             ; No predecessors!
  br label %2743

2743:                                             ; preds = %2742
  br label %2744

2744:                                             ; preds = %2743, %2686
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

2746:                                             ; preds = %2745
  br label %2747

2747:                                             ; preds = %2746
  %2748 = load i32, ptr @test_count, align 4, !tbaa !5
  %2749 = add nsw i32 %2748, 1
  store i32 %2749, ptr @test_count, align 4, !tbaa !5
  %2750 = load ptr, ptr %56, align 8, !tbaa !9
  %2751 = call ptr @s2n_get_application_protocol(ptr noundef %2750)
  %2752 = icmp eq ptr %2751, null
  br i1 %2752, label %2806, label %2753

2753:                                             ; preds = %2747
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

2755:                                             ; preds = %2754
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2756 = call ptr @__errno_location() #11
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  store i32 %2757, ptr %62, align 4, !tbaa !5
  %2758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2759 = call i32 @s2n_print_stacktrace(ptr noundef %2758)
  %2760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2761 = trunc i8 %2760 to i1
  br i1 %2761, label %2762, label %2784

2762:                                             ; preds = %2755
  %2763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2764 = call i32 @fileno(ptr noundef %2763) #10
  %2765 = call i32 @isatty(i32 noundef %2764) #10
  %2766 = icmp ne i32 %2765, 0
  br i1 %2766, label %2767, label %2784

2767:                                             ; preds = %2762
  %2768 = load i32, ptr %62, align 4, !tbaa !5
  %2769 = call ptr @__errno_location() #11
  store i32 %2768, ptr %2769, align 4, !tbaa !5
  %2770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2771 = load i32, ptr @test_count, align 4, !tbaa !5
  %2772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call ptr @s2n_strerror(i32 noundef %2773, ptr noundef @.str.4)
  %2775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror_debug(i32 noundef %2776, ptr noundef @.str.4)
  %2778 = call ptr @__errno_location() #11
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @strerror(i32 noundef %2779) #10
  %2781 = call ptr @__errno_location() #11
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2770, ptr noundef @.str.2, i32 noundef %2771, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2774, ptr noundef %2777, ptr noundef %2780, i32 noundef %2782) #10
  br label %2801

2784:                                             ; preds = %2762, %2755
  %2785 = load i32, ptr %62, align 4, !tbaa !5
  %2786 = call ptr @__errno_location() #11
  store i32 %2785, ptr %2786, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef @.str.4)
  %2792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef @.str.4)
  %2795 = call ptr @__errno_location() #11
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #10
  %2798 = call ptr @__errno_location() #11
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef @.str.5, i32 noundef %2788, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2791, ptr noundef %2794, ptr noundef %2797, i32 noundef %2799) #10
  br label %2801

2801:                                             ; preds = %2784, %2767
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2802

2802:                                             ; preds = %2801
  br label %2803

2803:                                             ; preds = %2802
  call void @exit(i32 noundef 1) #12
  unreachable

2804:                                             ; No predecessors!
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805, %2747
  br label %2807

2807:                                             ; preds = %2806
  br label %2808

2808:                                             ; preds = %2807
  br label %2809

2809:                                             ; preds = %2808
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr @test_count, align 4, !tbaa !5
  %2812 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 4), align 8, !tbaa !50
  %2813 = load ptr, ptr %56, align 8, !tbaa !9
  %2814 = call i32 %2812(ptr noundef %2813, ptr noundef %58)
  %2815 = icmp eq i32 %2814, -1
  br i1 %2815, label %2816, label %2869

2816:                                             ; preds = %2809
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

2818:                                             ; preds = %2817
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2819 = call ptr @__errno_location() #11
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  store i32 %2820, ptr %63, align 4, !tbaa !5
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = call i32 @s2n_print_stacktrace(ptr noundef %2821)
  %2823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2824 = trunc i8 %2823 to i1
  br i1 %2824, label %2825, label %2847

2825:                                             ; preds = %2818
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = call i32 @fileno(ptr noundef %2826) #10
  %2828 = call i32 @isatty(i32 noundef %2827) #10
  %2829 = icmp ne i32 %2828, 0
  br i1 %2829, label %2830, label %2847

2830:                                             ; preds = %2825
  %2831 = load i32, ptr %63, align 4, !tbaa !5
  %2832 = call ptr @__errno_location() #11
  store i32 %2831, ptr %2832, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror(i32 noundef %2836, ptr noundef @.str.4)
  %2838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2839 = load i32, ptr %2838, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror_debug(i32 noundef %2839, ptr noundef @.str.4)
  %2841 = call ptr @__errno_location() #11
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = call ptr @strerror(i32 noundef %2842) #10
  %2844 = call ptr @__errno_location() #11
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2833, ptr noundef @.str.2, i32 noundef %2834, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2837, ptr noundef %2840, ptr noundef %2843, i32 noundef %2845) #10
  br label %2864

2847:                                             ; preds = %2825, %2818
  %2848 = load i32, ptr %63, align 4, !tbaa !5
  %2849 = call ptr @__errno_location() #11
  store i32 %2848, ptr %2849, align 4, !tbaa !5
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror_debug(i32 noundef %2856, ptr noundef @.str.4)
  %2858 = call ptr @__errno_location() #11
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #10
  %2861 = call ptr @__errno_location() #11
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2850, ptr noundef @.str.5, i32 noundef %2851, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 117, ptr noundef %2854, ptr noundef %2857, ptr noundef %2860, i32 noundef %2862) #10
  br label %2864

2864:                                             ; preds = %2847, %2830
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2865

2865:                                             ; preds = %2864
  br label %2866

2866:                                             ; preds = %2865
  call void @exit(i32 noundef 1) #12
  unreachable

2867:                                             ; No predecessors!
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868, %2809
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

2872:                                             ; preds = %2871
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = add nsw i32 %2873, 1
  store i32 %2874, ptr @test_count, align 4, !tbaa !5
  %2875 = load ptr, ptr %56, align 8, !tbaa !9
  %2876 = call ptr @s2n_get_application_protocol(ptr noundef %2875)
  %2877 = icmp eq ptr %2876, null
  br i1 %2877, label %2931, label %2878

2878:                                             ; preds = %2872
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2881 = call ptr @__errno_location() #11
  %2882 = load i32, ptr %2881, align 4, !tbaa !5
  store i32 %2882, ptr %64, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = call i32 @s2n_print_stacktrace(ptr noundef %2883)
  %2885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2886 = trunc i8 %2885 to i1
  br i1 %2886, label %2887, label %2909

2887:                                             ; preds = %2880
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = call i32 @fileno(ptr noundef %2888) #10
  %2890 = call i32 @isatty(i32 noundef %2889) #10
  %2891 = icmp ne i32 %2890, 0
  br i1 %2891, label %2892, label %2909

2892:                                             ; preds = %2887
  %2893 = load i32, ptr %64, align 4, !tbaa !5
  %2894 = call ptr @__errno_location() #11
  store i32 %2893, ptr %2894, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = load i32, ptr @test_count, align 4, !tbaa !5
  %2897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call ptr @s2n_strerror(i32 noundef %2898, ptr noundef @.str.4)
  %2900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call ptr @s2n_strerror_debug(i32 noundef %2901, ptr noundef @.str.4)
  %2903 = call ptr @__errno_location() #11
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call ptr @strerror(i32 noundef %2904) #10
  %2906 = call ptr @__errno_location() #11
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2895, ptr noundef @.str.2, i32 noundef %2896, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2899, ptr noundef %2902, ptr noundef %2905, i32 noundef %2907) #10
  br label %2926

2909:                                             ; preds = %2887, %2880
  %2910 = load i32, ptr %64, align 4, !tbaa !5
  %2911 = call ptr @__errno_location() #11
  store i32 %2910, ptr %2911, align 4, !tbaa !5
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = load i32, ptr @test_count, align 4, !tbaa !5
  %2914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2915 = load i32, ptr %2914, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror(i32 noundef %2915, ptr noundef @.str.4)
  %2917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror_debug(i32 noundef %2918, ptr noundef @.str.4)
  %2920 = call ptr @__errno_location() #11
  %2921 = load i32, ptr %2920, align 4, !tbaa !5
  %2922 = call ptr @strerror(i32 noundef %2921) #10
  %2923 = call ptr @__errno_location() #11
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2912, ptr noundef @.str.5, i32 noundef %2913, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2916, ptr noundef %2919, ptr noundef %2922, i32 noundef %2924) #10
  br label %2926

2926:                                             ; preds = %2909, %2892
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

2928:                                             ; preds = %2927
  call void @exit(i32 noundef 1) #12
  unreachable

2929:                                             ; No predecessors!
  br label %2930

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930, %2872
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932
  br label %2934

2934:                                             ; preds = %2933
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = add nsw i32 %2935, 1
  store i32 %2936, ptr @test_count, align 4, !tbaa !5
  %2937 = load ptr, ptr %56, align 8, !tbaa !9
  %2938 = call i32 @s2n_connection_free(ptr noundef %2937)
  %2939 = icmp eq i32 %2938, -1
  br i1 %2939, label %2940, label %2993

2940:                                             ; preds = %2934
  br label %2941

2941:                                             ; preds = %2940
  br label %2942

2942:                                             ; preds = %2941
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2943 = call ptr @__errno_location() #11
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  store i32 %2944, ptr %65, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = call i32 @s2n_print_stacktrace(ptr noundef %2945)
  %2947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2948 = trunc i8 %2947 to i1
  br i1 %2948, label %2949, label %2971

2949:                                             ; preds = %2942
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @fileno(ptr noundef %2950) #10
  %2952 = call i32 @isatty(i32 noundef %2951) #10
  %2953 = icmp ne i32 %2952, 0
  br i1 %2953, label %2954, label %2971

2954:                                             ; preds = %2949
  %2955 = load i32, ptr %65, align 4, !tbaa !5
  %2956 = call ptr @__errno_location() #11
  store i32 %2955, ptr %2956, align 4, !tbaa !5
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = load i32, ptr @test_count, align 4, !tbaa !5
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror(i32 noundef %2960, ptr noundef @.str.4)
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror_debug(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call ptr @__errno_location() #11
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #10
  %2968 = call ptr @__errno_location() #11
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2957, ptr noundef @.str.2, i32 noundef %2958, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2961, ptr noundef %2964, ptr noundef %2967, i32 noundef %2969) #10
  br label %2988

2971:                                             ; preds = %2949, %2942
  %2972 = load i32, ptr %65, align 4, !tbaa !5
  %2973 = call ptr @__errno_location() #11
  store i32 %2972, ptr %2973, align 4, !tbaa !5
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror(i32 noundef %2977, ptr noundef @.str.4)
  %2979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror_debug(i32 noundef %2980, ptr noundef @.str.4)
  %2982 = call ptr @__errno_location() #11
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @strerror(i32 noundef %2983) #10
  %2985 = call ptr @__errno_location() #11
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2974, ptr noundef @.str.5, i32 noundef %2975, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2978, ptr noundef %2981, ptr noundef %2984, i32 noundef %2986) #10
  br label %2988

2988:                                             ; preds = %2971, %2954
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

2990:                                             ; preds = %2989
  call void @exit(i32 noundef 1) #12
  unreachable

2991:                                             ; No predecessors!
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992, %2934
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

2996:                                             ; preds = %2995
  %2997 = load i32, ptr @test_count, align 4, !tbaa !5
  %2998 = add nsw i32 %2997, 1
  store i32 %2998, ptr @test_count, align 4, !tbaa !5
  %2999 = call i32 @s2n_stuffer_free(ptr noundef %58)
  %3000 = icmp eq i32 %2999, -1
  br i1 %3000, label %3001, label %3054

3001:                                             ; preds = %2996
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

3003:                                             ; preds = %3002
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %3004 = call ptr @__errno_location() #11
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  store i32 %3005, ptr %66, align 4, !tbaa !5
  %3006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3007 = call i32 @s2n_print_stacktrace(ptr noundef %3006)
  %3008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3009 = trunc i8 %3008 to i1
  br i1 %3009, label %3010, label %3032

3010:                                             ; preds = %3003
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = call i32 @fileno(ptr noundef %3011) #10
  %3013 = call i32 @isatty(i32 noundef %3012) #10
  %3014 = icmp ne i32 %3013, 0
  br i1 %3014, label %3015, label %3032

3015:                                             ; preds = %3010
  %3016 = load i32, ptr %66, align 4, !tbaa !5
  %3017 = call ptr @__errno_location() #11
  store i32 %3016, ptr %3017, align 4, !tbaa !5
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call ptr @s2n_strerror(i32 noundef %3021, ptr noundef @.str.4)
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror_debug(i32 noundef %3024, ptr noundef @.str.4)
  %3026 = call ptr @__errno_location() #11
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @strerror(i32 noundef %3027) #10
  %3029 = call ptr @__errno_location() #11
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3018, ptr noundef @.str.2, i32 noundef %3019, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3022, ptr noundef %3025, ptr noundef %3028, i32 noundef %3030) #10
  br label %3049

3032:                                             ; preds = %3010, %3003
  %3033 = load i32, ptr %66, align 4, !tbaa !5
  %3034 = call ptr @__errno_location() #11
  store i32 %3033, ptr %3034, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call ptr @s2n_strerror(i32 noundef %3038, ptr noundef @.str.4)
  %3040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef @.str.4)
  %3043 = call ptr @__errno_location() #11
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #10
  %3046 = call ptr @__errno_location() #11
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3035, ptr noundef @.str.5, i32 noundef %3036, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 121, ptr noundef %3039, ptr noundef %3042, ptr noundef %3045, i32 noundef %3047) #10
  br label %3049

3049:                                             ; preds = %3032, %3015
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3050

3050:                                             ; preds = %3049
  br label %3051

3051:                                             ; preds = %3050
  call void @exit(i32 noundef 1) #12
  unreachable

3052:                                             ; No predecessors!
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

3054:                                             ; preds = %3053, %2996
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

3056:                                             ; preds = %3055
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

3058:                                             ; preds = %3057
  %3059 = call i32 @s2n_cleanup()
  %3060 = icmp eq i32 %3059, -1
  br i1 %3060, label %3061, label %3114

3061:                                             ; preds = %3058
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %3064 = call ptr @__errno_location() #11
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  store i32 %3065, ptr %67, align 4, !tbaa !5
  %3066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3067 = call i32 @s2n_print_stacktrace(ptr noundef %3066)
  %3068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3069 = trunc i8 %3068 to i1
  br i1 %3069, label %3070, label %3092

3070:                                             ; preds = %3063
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = call i32 @fileno(ptr noundef %3071) #10
  %3073 = call i32 @isatty(i32 noundef %3072) #10
  %3074 = icmp ne i32 %3073, 0
  br i1 %3074, label %3075, label %3092

3075:                                             ; preds = %3070
  %3076 = load i32, ptr %67, align 4, !tbaa !5
  %3077 = call ptr @__errno_location() #11
  store i32 %3076, ptr %3077, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror(i32 noundef %3081, ptr noundef @.str.4)
  %3083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror_debug(i32 noundef %3084, ptr noundef @.str.4)
  %3086 = call ptr @__errno_location() #11
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call ptr @strerror(i32 noundef %3087) #10
  %3089 = call ptr @__errno_location() #11
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef @.str.2, i32 noundef %3079, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 124, ptr noundef %3082, ptr noundef %3085, ptr noundef %3088, i32 noundef %3090) #10
  br label %3109

3092:                                             ; preds = %3070, %3063
  %3093 = load i32, ptr %67, align 4, !tbaa !5
  %3094 = call ptr @__errno_location() #11
  store i32 %3093, ptr %3094, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @s2n_strerror(i32 noundef %3098, ptr noundef @.str.4)
  %3100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror_debug(i32 noundef %3101, ptr noundef @.str.4)
  %3103 = call ptr @__errno_location() #11
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @strerror(i32 noundef %3104) #10
  %3106 = call ptr @__errno_location() #11
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3095, ptr noundef @.str.5, i32 noundef %3096, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 124, ptr noundef %3099, ptr noundef %3102, ptr noundef %3105, i32 noundef %3107) #10
  br label %3109

3109:                                             ; preds = %3092, %3075
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3110

3110:                                             ; preds = %3109
  br label %3111

3111:                                             ; preds = %3110
  call void @exit(i32 noundef 1) #12
  unreachable

3112:                                             ; No predecessors!
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

3114:                                             ; preds = %3113, %3058
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

3118:                                             ; preds = %3117
  %3119 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3120 = icmp eq i32 %3119, -1
  br i1 %3120, label %3121, label %3174

3121:                                             ; preds = %3118
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %3124 = call ptr @__errno_location() #11
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  store i32 %3125, ptr %68, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @s2n_print_stacktrace(ptr noundef %3126)
  %3128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3129 = trunc i8 %3128 to i1
  br i1 %3129, label %3130, label %3152

3130:                                             ; preds = %3123
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = call i32 @fileno(ptr noundef %3131) #10
  %3133 = call i32 @isatty(i32 noundef %3132) #10
  %3134 = icmp ne i32 %3133, 0
  br i1 %3134, label %3135, label %3152

3135:                                             ; preds = %3130
  %3136 = load i32, ptr %68, align 4, !tbaa !5
  %3137 = call ptr @__errno_location() #11
  store i32 %3136, ptr %3137, align 4, !tbaa !5
  %3138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3139 = load i32, ptr @test_count, align 4, !tbaa !5
  %3140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @s2n_strerror(i32 noundef %3141, ptr noundef @.str.4)
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror_debug(i32 noundef %3144, ptr noundef @.str.4)
  %3146 = call ptr @__errno_location() #11
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call ptr @strerror(i32 noundef %3147) #10
  %3149 = call ptr @__errno_location() #11
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3138, ptr noundef @.str.2, i32 noundef %3139, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 124, ptr noundef %3142, ptr noundef %3145, ptr noundef %3148, i32 noundef %3150) #10
  br label %3169

3152:                                             ; preds = %3130, %3123
  %3153 = load i32, ptr %68, align 4, !tbaa !5
  %3154 = call ptr @__errno_location() #11
  store i32 %3153, ptr %3154, align 4, !tbaa !5
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3156 = load i32, ptr @test_count, align 4, !tbaa !5
  %3157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @s2n_strerror(i32 noundef %3158, ptr noundef @.str.4)
  %3160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror_debug(i32 noundef %3161, ptr noundef @.str.4)
  %3163 = call ptr @__errno_location() #11
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call ptr @strerror(i32 noundef %3164) #10
  %3166 = call ptr @__errno_location() #11
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3155, ptr noundef @.str.5, i32 noundef %3156, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 124, ptr noundef %3159, ptr noundef %3162, ptr noundef %3165, i32 noundef %3167) #10
  br label %3169

3169:                                             ; preds = %3152, %3135
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3170

3170:                                             ; preds = %3169
  br label %3171

3171:                                             ; preds = %3170
  call void @exit(i32 noundef 1) #12
  unreachable

3172:                                             ; No predecessors!
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

3174:                                             ; preds = %3173, %3118
  br label %3175

3175:                                             ; preds = %3174
  br label %3176

3176:                                             ; preds = %3175
  %3177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3178 = trunc i8 %3177 to i1
  br i1 %3178, label %3179, label %3195

3179:                                             ; preds = %3176
  %3180 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3181 = call i32 @fileno(ptr noundef %3180) #10
  %3182 = call i32 @isatty(i32 noundef %3181) #10
  %3183 = icmp ne i32 %3182, 0
  br i1 %3183, label %3184, label %3195

3184:                                             ; preds = %3179
  %3185 = load i32, ptr @test_count, align 4, !tbaa !5
  %3186 = icmp ne i32 %3185, 0
  br i1 %3186, label %3187, label %3191

3187:                                             ; preds = %3184
  %3188 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3189 = load i32, ptr @test_count, align 4, !tbaa !5
  %3190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3188, ptr noundef @.str.33, i32 noundef %3189) #10
  br label %3194

3191:                                             ; preds = %3184
  %3192 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3192, ptr noundef @.str.34) #10
  br label %3194

3194:                                             ; preds = %3191, %3187
  br label %3206

3195:                                             ; preds = %3179, %3176
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = icmp ne i32 %3196, 0
  br i1 %3197, label %3198, label %3202

3198:                                             ; preds = %3195
  %3199 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %3201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3199, ptr noundef @.str.35, i32 noundef %3200) #10
  br label %3205

3202:                                             ; preds = %3195
  %3203 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3203, ptr noundef @.str.36) #10
  br label %3205

3205:                                             ; preds = %3202, %3198
  br label %3206

3206:                                             ; preds = %3205, %3194
  store i32 0, ptr %3, align 4
  store i32 1, ptr %69, align 4
  br label %3211

3207:                                             ; No predecessors!
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209
  store i32 0, ptr %69, align 4
  br label %3211

3211:                                             ; preds = %3210, %3206
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #10
  %3212 = load i32, ptr %69, align 4
  switch i32 %3212, label %3215 [
    i32 0, label %3213
    i32 1, label %3213
  ]

3213:                                             ; preds = %3211, %3211
  %3214 = load i32, ptr %3, align 4
  ret i32 %3214

3215:                                             ; preds = %3211
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_connection_free(ptr noundef) #2

; Function Attrs: 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_growable_alloc(ptr noundef, i32 noundef) #2

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare ptr @s2n_get_application_protocol(ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #9

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

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !10, i64 24}
!17 = !{!"", !18, i64 0, !6, i64 2, !18, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!18 = !{!"short", !7, i64 0}
!19 = !{!17, !10, i64 8}
!20 = !{!18, !18, i64 0}
!21 = !{!22, !6, i64 28}
!22 = !{!"s2n_stuffer", !23, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!23 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!24 = !{!22, !6, i64 24}
!25 = !{!26, !6, i64 4040}
!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, !22, i64 1776, !22, i64 1816, !22, i64 1856, !22, i64 1896, !6, i64 1936, !28, i64 1944, !7, i64 1952, !22, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !40, i64 2004, !40, i64 2008, !41, i64 2016, !18, i64 2208, !6, i64 2212, !18, 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, !23, i64 2792, !6, i64 2816, !23, i64 2824, !23, i64 2848, !23, i64 2872, !43, i64 2896, !45, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !23, i64 3784, !6, i64 3808, !47, i64 3816, !7, i64 3848, !22, i64 3992, !23, i64 4032, !23, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !18, i64 4084, !18, i64 4086, !6, i64 4088, !6, i64 4092, !23, 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, !23, i64 448, !23, 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, !23, i64 8, !23, i64 32, !23, i64 56, !12, i64 80}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !23, 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, !18, i64 40, !18, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !23, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"", !6, i64 0}
!41 = !{!"s2n_handshake", !22, 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", !23, i64 0, !44, i64 24, !23, i64 728, !23, i64 752, !23, 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, !23, i64 672, !18, i64 696}
!45 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !18, 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", !23, i64 0, !6, i64 24}
!48 = !{!"s2n_post_handshake", !22, i64 0, !7, i64 40}
!49 = !{!26, !10, i64 4032}
!50 = !{!17, !10, i64 16}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_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 [89 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.main.protocols = external hidden unnamed_addr constant [3 x ptr], align 16
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@s2n_client_alpn_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.14 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

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

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

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

69:                                               ; preds = %40
  %70 = tail call i32 @s2n_init() #12
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %72, label %96

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

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

83:                                               ; preds = %79, %72
  br label %84

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

96:                                               ; preds = %69
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr @test_count, align 4, !tbaa !5
  %99 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %100 = icmp eq i32 %99, -1
  br i1 %100, label %101, label %125

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

108:                                              ; preds = %101
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @fileno(ptr noundef %109) #12
  %111 = tail call i32 @isatty(i32 noundef %110) #12
  %.not182 = icmp eq i32 %111, 0
  br i1 %.not182, label %112, label %113

112:                                              ; preds = %108, %101
  br label %113

113:                                              ; preds = %108, %112
  %.str.5.sink218 = phi ptr [ @.str.5, %112 ], [ @.str.2, %108 ]
  store i32 %103, ptr %102, align 4, !tbaa !5
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = load i32, ptr @test_count, align 4, !tbaa !5
  %116 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = tail call ptr @s2n_strerror(i32 noundef %117, ptr noundef nonnull @.str.4) #12
  %119 = load i32, ptr %116, align 4, !tbaa !5
  %120 = tail call ptr @s2n_strerror_debug(i32 noundef %119, ptr noundef nonnull @.str.4) #12
  %121 = load i32, ptr %102, align 4, !tbaa !5
  %122 = tail call ptr @strerror(i32 noundef %121) #12
  %123 = load i32, ptr %102, align 4, !tbaa !5
  %124 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %114, ptr noundef nonnull %.str.5.sink218, i32 noundef %115, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %118, ptr noundef %120, ptr noundef %122, i32 noundef %123) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

125:                                              ; preds = %96
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %3, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.protocols, i64 24, i1 false)
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = tail call ptr @s2n_connection_new(i32 noundef 1) #12
  %129 = icmp eq ptr %128, null
  br i1 %129, label %130, label %154

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

137:                                              ; preds = %130
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = tail call i32 @fileno(ptr noundef %138) #12
  %140 = tail call i32 @isatty(i32 noundef %139) #12
  %.not181 = icmp eq i32 %140, 0
  br i1 %.not181, label %141, label %142

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.5.sink229 = phi ptr [ @.str.5, %141 ], [ @.str.2, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = tail call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.4) #12
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = tail call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.4) #12
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = tail call ptr @strerror(i32 noundef %150) #12
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.5.sink229, i32 noundef %144, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

154:                                              ; preds = %125
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = tail call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %128, ptr noundef null, i32 noundef 0) #12
  %158 = icmp eq i32 %157, -1
  br i1 %158, label %159, label %183

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

166:                                              ; preds = %159
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = tail call i32 @fileno(ptr noundef %167) #12
  %169 = tail call i32 @isatty(i32 noundef %168) #12
  %.not180 = icmp eq i32 %169, 0
  br i1 %.not180, label %170, label %171

170:                                              ; preds = %166, %159
  br label %171

171:                                              ; preds = %166, %170
  %.str.5.sink240 = phi ptr [ @.str.5, %170 ], [ @.str.2, %166 ]
  store i32 %161, ptr %160, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = load i32, ptr @test_count, align 4, !tbaa !5
  %174 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = tail call ptr @s2n_strerror(i32 noundef %175, ptr noundef nonnull @.str.4) #12
  %177 = load i32, ptr %174, align 4, !tbaa !5
  %178 = tail call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef nonnull @.str.4) #12
  %179 = load i32, ptr %160, align 4, !tbaa !5
  %180 = tail call ptr @strerror(i32 noundef %179) #12
  %181 = load i32, ptr %160, align 4, !tbaa !5
  %182 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %172, ptr noundef nonnull %.str.5.sink240, i32 noundef %173, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %176, ptr noundef %178, ptr noundef %180, i32 noundef %181) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

183:                                              ; preds = %154
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = add nsw i32 %184, 1
  store i32 %185, ptr @test_count, align 4, !tbaa !5
  %186 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_alpn_extension, i64 24), align 8, !tbaa !15
  %187 = tail call zeroext i1 %186(ptr noundef nonnull %128) #12
  br i1 %187, label %188, label %212

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

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

199:                                              ; preds = %195, %188
  br label %200

200:                                              ; preds = %195, %199
  %.str.5.sink251 = phi ptr [ @.str.5, %199 ], [ @.str.2, %195 ]
  store i32 %190, ptr %189, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = tail call ptr @s2n_strerror(i32 noundef %204, ptr noundef nonnull @.str.4) #12
  %206 = load i32, ptr %203, align 4, !tbaa !5
  %207 = tail call ptr @s2n_strerror_debug(i32 noundef %206, ptr noundef nonnull @.str.4) #12
  %208 = load i32, ptr %189, align 4, !tbaa !5
  %209 = tail call ptr @strerror(i32 noundef %208) #12
  %210 = load i32, ptr %189, align 4, !tbaa !5
  %211 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %201, ptr noundef nonnull %.str.5.sink251, i32 noundef %202, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %205, ptr noundef %207, ptr noundef %209, i32 noundef %210) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

212:                                              ; preds = %183
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = add nsw i32 %213, 1
  store i32 %214, ptr @test_count, align 4, !tbaa !5
  %215 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %128, ptr noundef nonnull %3, i32 noundef 3) #12
  %216 = icmp eq i32 %215, -1
  br i1 %216, label %217, label %241

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

224:                                              ; preds = %217
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = call i32 @fileno(ptr noundef %225) #12
  %227 = call i32 @isatty(i32 noundef %226) #12
  %.not178 = icmp eq i32 %227, 0
  br i1 %.not178, label %228, label %229

228:                                              ; preds = %224, %217
  br label %229

229:                                              ; preds = %224, %228
  %.str.5.sink262 = phi ptr [ @.str.5, %228 ], [ @.str.2, %224 ]
  store i32 %219, ptr %218, align 4, !tbaa !5
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = load i32, ptr @test_count, align 4, !tbaa !5
  %232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror(i32 noundef %233, ptr noundef nonnull @.str.4) #12
  %235 = load i32, ptr %232, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror_debug(i32 noundef %235, ptr noundef nonnull @.str.4) #12
  %237 = load i32, ptr %218, align 4, !tbaa !5
  %238 = call ptr @strerror(i32 noundef %237) #12
  %239 = load i32, ptr %218, align 4, !tbaa !5
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %230, ptr noundef nonnull %.str.5.sink262, i32 noundef %231, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %234, ptr noundef %236, ptr noundef %238, i32 noundef %239) #14
  call void @exit(i32 noundef 1) #15
  unreachable

241:                                              ; preds = %212
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr @test_count, align 4, !tbaa !5
  %244 = call zeroext i1 %186(ptr noundef nonnull %128) #12
  br i1 %244, label %269, label %245

245:                                              ; preds = %241
  %246 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %255 = call i32 @isatty(i32 noundef %254) #12
  %.not = icmp eq i32 %255, 0
  br i1 %.not, label %256, label %257

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

257:                                              ; preds = %252, %256
  %.str.5.sink273 = 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) #12
  %263 = load i32, ptr %260, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror_debug(i32 noundef %263, ptr noundef nonnull @.str.4) #12
  %265 = load i32, ptr %246, align 4, !tbaa !5
  %266 = call ptr @strerror(i32 noundef %265) #12
  %267 = load i32, ptr %246, align 4, !tbaa !5
  %268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %258, ptr noundef nonnull %.str.5.sink273, i32 noundef %259, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %262, ptr noundef %264, ptr noundef %266, i32 noundef %267) #14
  call void @exit(i32 noundef 1) #15
  unreachable

269:                                              ; preds = %241
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr @test_count, align 4, !tbaa !5
  %272 = call i32 @s2n_connection_free(ptr noundef nonnull %128) #12
  %273 = icmp eq i32 %272, -1
  br i1 %273, label %274, label %298

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

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

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

286:                                              ; preds = %281, %285
  %.str.5.sink284 = phi ptr [ @.str.5, %285 ], [ @.str.2, %281 ]
  store i32 %276, ptr %275, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = load i32, ptr @test_count, align 4, !tbaa !5
  %289 = 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(i32 noundef %290, ptr noundef nonnull @.str.4) #12
  %292 = load i32, ptr %289, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror_debug(i32 noundef %292, ptr noundef nonnull @.str.4) #12
  %294 = load i32, ptr %275, align 4, !tbaa !5
  %295 = call ptr @strerror(i32 noundef %294) #12
  %296 = load i32, ptr %275, align 4, !tbaa !5
  %297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %287, ptr noundef nonnull %.str.5.sink284, i32 noundef %288, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %291, ptr noundef %293, ptr noundef %295, i32 noundef %296) #14
  call void @exit(i32 noundef 1) #15
  unreachable

298:                                              ; preds = %269
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr @test_count, align 4, !tbaa !5
  %301 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %302 = icmp eq ptr %301, null
  br i1 %302, label %303, label %327

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

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

314:                                              ; preds = %310, %303
  br label %315

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

327:                                              ; preds = %298
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  store i32 %329, ptr @test_count, align 4, !tbaa !5
  %330 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %301, ptr noundef nonnull %3, i32 noundef 3) #12
  %331 = icmp eq i32 %330, -1
  br i1 %331, label %332, label %356

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

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

343:                                              ; preds = %339, %332
  br label %344

344:                                              ; preds = %339, %343
  %.str.5.sink306 = phi ptr [ @.str.5, %343 ], [ @.str.2, %339 ]
  store i32 %334, ptr %333, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %348, ptr noundef nonnull @.str.4) #12
  %350 = load i32, ptr %347, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror_debug(i32 noundef %350, ptr noundef nonnull @.str.4) #12
  %352 = load i32, ptr %333, align 4, !tbaa !5
  %353 = call ptr @strerror(i32 noundef %352) #12
  %354 = load i32, ptr %333, align 4, !tbaa !5
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef nonnull %.str.5.sink306, i32 noundef %346, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %349, ptr noundef %351, ptr noundef %353, i32 noundef %354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

356:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr @test_count, align 4, !tbaa !5
  %359 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #12
  %360 = icmp eq i32 %359, -1
  br i1 %360, label %361, label %385

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

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

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

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

385:                                              ; preds = %356
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_alpn_extension, i64 8), align 8, !tbaa !18
  %389 = call i32 %388(ptr noundef nonnull %301, ptr noundef nonnull %4) #12
  %390 = icmp eq i32 %389, -1
  br i1 %390, label %391, label %415

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

398:                                              ; preds = %391
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = call i32 @fileno(ptr noundef %399) #12
  %401 = call i32 @isatty(i32 noundef %400) #12
  %.not173 = icmp eq i32 %401, 0
  br i1 %.not173, label %402, label %403

402:                                              ; preds = %398, %391
  br label %403

403:                                              ; preds = %398, %402
  %.str.5.sink328 = phi ptr [ @.str.5, %402 ], [ @.str.2, %398 ]
  store i32 %393, ptr %392, align 4, !tbaa !5
  %404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %405 = load i32, ptr @test_count, align 4, !tbaa !5
  %406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %407 = load i32, ptr %406, align 4, !tbaa !5
  %408 = call ptr @s2n_strerror(i32 noundef %407, ptr noundef nonnull @.str.4) #12
  %409 = load i32, ptr %406, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror_debug(i32 noundef %409, ptr noundef nonnull @.str.4) #12
  %411 = load i32, ptr %392, align 4, !tbaa !5
  %412 = call ptr @strerror(i32 noundef %411) #12
  %413 = load i32, ptr %392, align 4, !tbaa !5
  %414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef nonnull %.str.5.sink328, i32 noundef %405, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %408, ptr noundef %410, ptr noundef %412, i32 noundef %413) #14
  call void @exit(i32 noundef 1) #15
  unreachable

415:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #12
  store i16 0, ptr %5, align 2, !tbaa !19
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %4, ptr noundef nonnull %5) #12
  %419 = icmp eq i32 %418, -1
  br i1 %419, label %420, label %444

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

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

431:                                              ; preds = %427, %420
  br label %432

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

444:                                              ; preds = %415
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = load i16, ptr %5, align 2, !tbaa !19
  %448 = zext i16 %447 to i32
  %449 = getelementptr inbounds i8, ptr %4, i64 28
  %450 = load i32, ptr %449, align 4, !tbaa !20
  %451 = getelementptr inbounds i8, ptr %4, i64 24
  %452 = load i32, ptr %451, align 8, !tbaa !23
  %453 = sub i32 %450, %452
  %454 = icmp eq i32 %453, %448
  br i1 %454, label %479, label %455

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

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

466:                                              ; preds = %462, %455
  br label %467

467:                                              ; preds = %462, %466
  %.str.5.sink350 = phi ptr [ @.str.5, %466 ], [ @.str.2, %462 ]
  store i32 %457, ptr %456, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.4) #12
  %473 = load i32, ptr %470, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.4) #12
  %475 = load i32, ptr %456, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #12
  %477 = load i32, ptr %456, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %468, ptr noundef nonnull %.str.5.sink350, i32 noundef %469, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #14
  call void @exit(i32 noundef 1) #15
  unreachable

479:                                              ; preds = %444
  %480 = add nsw i32 %445, 2
  store i32 %480, ptr @test_count, align 4, !tbaa !5
  %481 = getelementptr inbounds i8, ptr %301, i64 4032
  %482 = getelementptr inbounds i8, ptr %301, i64 4040
  %483 = load i32, ptr %482, align 8, !tbaa !24
  %484 = icmp eq i32 %483, %448
  br i1 %484, label %509, label %485

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

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

496:                                              ; preds = %492, %485
  br label %497

497:                                              ; preds = %492, %496
  %.str.5.sink361 = phi ptr [ @.str.5, %496 ], [ @.str.2, %492 ]
  store i32 %487, ptr %486, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror(i32 noundef %501, ptr noundef nonnull @.str.4) #12
  %503 = load i32, ptr %500, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror_debug(i32 noundef %503, ptr noundef nonnull @.str.4) #12
  %505 = load i32, ptr %486, align 4, !tbaa !5
  %506 = call ptr @strerror(i32 noundef %505) #12
  %507 = load i32, ptr %486, align 4, !tbaa !5
  %508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %498, ptr noundef nonnull %.str.5.sink361, i32 noundef %499, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %502, ptr noundef %504, ptr noundef %506, i32 noundef %507) #14
  call void @exit(i32 noundef 1) #15
  unreachable

509:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %6) #12
  %510 = add nsw i32 %445, 3
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  %511 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %4, ptr noundef nonnull %6, i32 noundef %448) #12
  %512 = icmp eq i32 %511, -1
  br i1 %512, label %513, label %537

513:                                              ; preds = %509
  %514 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %523 = call i32 @isatty(i32 noundef %522) #12
  %.not171 = icmp eq i32 %523, 0
  br i1 %.not171, label %524, label %525

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

525:                                              ; preds = %520, %524
  %.str.5.sink372 = 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) #12
  %531 = load i32, ptr %528, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.4) #12
  %533 = load i32, ptr %514, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #12
  %535 = load i32, ptr %514, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.5.sink372, i32 noundef %527, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #14
  call void @exit(i32 noundef 1) #15
  unreachable

537:                                              ; preds = %509
  %538 = load i16, ptr %5, align 2, !tbaa !19
  %.not135 = icmp eq i16 %538, 0
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not135, label %568, label %539

539:                                              ; preds = %537
  %540 = add nsw i32 %.pre, 1
  store i32 %540, ptr @test_count, align 4, !tbaa !5
  %541 = load ptr, ptr %481, align 8, !tbaa !48
  %542 = zext i16 %538 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %6, ptr %541, i64 %542)
  %543 = icmp eq i32 %bcmp, 0
  br i1 %543, label %568, label %544

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

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #12
  %554 = call i32 @isatty(i32 noundef %553) #12
  %.not136 = icmp eq i32 %554, 0
  br i1 %.not136, label %555, label %556

555:                                              ; preds = %551, %544
  br label %556

556:                                              ; preds = %551, %555
  %.str.5.sink383 = phi ptr [ @.str.5, %555 ], [ @.str.2, %551 ]
  store i32 %546, ptr %545, align 4, !tbaa !5
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror(i32 noundef %560, ptr noundef nonnull @.str.4) #12
  %562 = load i32, ptr %559, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror_debug(i32 noundef %562, ptr noundef nonnull @.str.4) #12
  %564 = load i32, ptr %545, align 4, !tbaa !5
  %565 = call ptr @strerror(i32 noundef %564) #12
  %566 = load i32, ptr %545, align 4, !tbaa !5
  %567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %557, ptr noundef nonnull %.str.5.sink383, i32 noundef %558, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %561, ptr noundef %563, ptr noundef %565, i32 noundef %566) #14
  call void @exit(i32 noundef 1) #15
  unreachable

568:                                              ; preds = %537, %539
  %569 = phi i32 [ %.pre, %537 ], [ %540, %539 ]
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #12
  %572 = icmp eq i32 %571, -1
  br i1 %572, label %573, label %597

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

580:                                              ; preds = %573
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @fileno(ptr noundef %581) #12
  %583 = call i32 @isatty(i32 noundef %582) #12
  %.not170 = icmp eq i32 %583, 0
  br i1 %.not170, label %584, label %585

584:                                              ; preds = %580, %573
  br label %585

585:                                              ; preds = %580, %584
  %.str.5.sink394 = phi ptr [ @.str.5, %584 ], [ @.str.2, %580 ]
  store i32 %575, ptr %574, align 4, !tbaa !5
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror(i32 noundef %589, ptr noundef nonnull @.str.4) #12
  %591 = load i32, ptr %588, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef nonnull @.str.4) #12
  %593 = load i32, ptr %574, align 4, !tbaa !5
  %594 = call ptr @strerror(i32 noundef %593) #12
  %595 = load i32, ptr %574, align 4, !tbaa !5
  %596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %586, ptr noundef nonnull %.str.5.sink394, i32 noundef %587, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %590, ptr noundef %592, ptr noundef %594, i32 noundef %595) #14
  call void @exit(i32 noundef 1) #15
  unreachable

597:                                              ; preds = %568
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr @test_count, align 4, !tbaa !5
  %600 = call i32 @s2n_connection_free(ptr noundef nonnull %301) #12
  %601 = icmp eq i32 %600, -1
  br i1 %601, label %602, label %626

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

609:                                              ; preds = %602
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = call i32 @fileno(ptr noundef %610) #12
  %612 = call i32 @isatty(i32 noundef %611) #12
  %.not169 = icmp eq i32 %612, 0
  br i1 %.not169, label %613, label %614

613:                                              ; preds = %609, %602
  br label %614

614:                                              ; preds = %609, %613
  %.str.5.sink405 = phi ptr [ @.str.5, %613 ], [ @.str.2, %609 ]
  store i32 %604, ptr %603, align 4, !tbaa !5
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror(i32 noundef %618, ptr noundef nonnull @.str.4) #12
  %620 = load i32, ptr %617, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror_debug(i32 noundef %620, ptr noundef nonnull @.str.4) #12
  %622 = load i32, ptr %603, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #12
  %624 = load i32, ptr %603, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %615, ptr noundef nonnull %.str.5.sink405, i32 noundef %616, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %619, ptr noundef %621, ptr noundef %623, i32 noundef %624) #14
  call void @exit(i32 noundef 1) #15
  unreachable

626:                                              ; preds = %597
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #12
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %630 = icmp eq ptr %629, null
  br i1 %630, label %631, label %655

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

638:                                              ; preds = %631
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = call i32 @fileno(ptr noundef %639) #12
  %641 = call i32 @isatty(i32 noundef %640) #12
  %.not168 = icmp eq i32 %641, 0
  br i1 %.not168, label %642, label %643

642:                                              ; preds = %638, %631
  br label %643

643:                                              ; preds = %638, %642
  %.str.5.sink416 = phi ptr [ @.str.5, %642 ], [ @.str.2, %638 ]
  store i32 %633, ptr %632, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror(i32 noundef %647, ptr noundef nonnull @.str.4) #12
  %649 = load i32, ptr %646, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef nonnull @.str.4) #12
  %651 = load i32, ptr %632, align 4, !tbaa !5
  %652 = call ptr @strerror(i32 noundef %651) #12
  %653 = load i32, ptr %632, align 4, !tbaa !5
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef nonnull %.str.5.sink416, i32 noundef %645, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %648, ptr noundef %650, ptr noundef %652, i32 noundef %653) #14
  call void @exit(i32 noundef 1) #15
  unreachable

655:                                              ; preds = %626
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = add nsw i32 %656, 1
  store i32 %657, ptr @test_count, align 4, !tbaa !5
  %658 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %629, ptr noundef nonnull %3, i32 noundef 3) #12
  %659 = icmp eq i32 %658, -1
  br i1 %659, label %660, label %684

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

667:                                              ; preds = %660
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = call i32 @fileno(ptr noundef %668) #12
  %670 = call i32 @isatty(i32 noundef %669) #12
  %.not167 = icmp eq i32 %670, 0
  br i1 %.not167, label %671, label %672

671:                                              ; preds = %667, %660
  br label %672

672:                                              ; preds = %667, %671
  %.str.5.sink427 = phi ptr [ @.str.5, %671 ], [ @.str.2, %667 ]
  store i32 %662, ptr %661, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = load i32, ptr @test_count, align 4, !tbaa !5
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @s2n_strerror(i32 noundef %676, ptr noundef nonnull @.str.4) #12
  %678 = load i32, ptr %675, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef nonnull @.str.4) #12
  %680 = load i32, ptr %661, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #12
  %682 = load i32, ptr %661, align 4, !tbaa !5
  %683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %673, ptr noundef nonnull %.str.5.sink427, i32 noundef %674, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %677, ptr noundef %679, ptr noundef %681, i32 noundef %682) #14
  call void @exit(i32 noundef 1) #15
  unreachable

684:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr @test_count, align 4, !tbaa !5
  %687 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #12
  %688 = icmp eq i32 %687, -1
  br i1 %688, label %689, label %713

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

696:                                              ; preds = %689
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @fileno(ptr noundef %697) #12
  %699 = call i32 @isatty(i32 noundef %698) #12
  %.not166 = icmp eq i32 %699, 0
  br i1 %.not166, label %700, label %701

700:                                              ; preds = %696, %689
  br label %701

701:                                              ; preds = %696, %700
  %.str.5.sink438 = phi ptr [ @.str.5, %700 ], [ @.str.2, %696 ]
  store i32 %691, ptr %690, align 4, !tbaa !5
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror(i32 noundef %705, ptr noundef nonnull @.str.4) #12
  %707 = load i32, ptr %704, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror_debug(i32 noundef %707, ptr noundef nonnull @.str.4) #12
  %709 = load i32, ptr %690, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #12
  %711 = load i32, ptr %690, align 4, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %702, ptr noundef nonnull %.str.5.sink438, i32 noundef %703, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %706, ptr noundef %708, ptr noundef %710, i32 noundef %711) #14
  call void @exit(i32 noundef 1) #15
  unreachable

713:                                              ; preds = %684
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr @test_count, align 4, !tbaa !5
  %716 = call i32 %388(ptr noundef nonnull %629, ptr noundef nonnull %7) #12
  %717 = icmp eq i32 %716, -1
  br i1 %717, label %718, label %742

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

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

729:                                              ; preds = %725, %718
  br label %730

730:                                              ; preds = %725, %729
  %.str.5.sink449 = phi ptr [ @.str.5, %729 ], [ @.str.2, %725 ]
  store i32 %720, ptr %719, align 4, !tbaa !5
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = load i32, ptr @test_count, align 4, !tbaa !5
  %733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror(i32 noundef %734, ptr noundef nonnull @.str.4) #12
  %736 = load i32, ptr %733, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef nonnull @.str.4) #12
  %738 = load i32, ptr %719, align 4, !tbaa !5
  %739 = call ptr @strerror(i32 noundef %738) #12
  %740 = load i32, ptr %719, align 4, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %731, ptr noundef nonnull %.str.5.sink449, i32 noundef %732, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %735, ptr noundef %737, ptr noundef %739, i32 noundef %740) #14
  call void @exit(i32 noundef 1) #15
  unreachable

742:                                              ; preds = %713
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr @test_count, align 4, !tbaa !5
  %745 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %629) #12
  %746 = icmp eq ptr %745, null
  br i1 %746, label %771, label %747

747:                                              ; preds = %742
  %748 = tail call ptr @__errno_location() #13
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = call i32 @s2n_print_stacktrace(ptr noundef %750) #12
  %752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %753 = trunc nuw i8 %752 to i1
  br i1 %753, label %754, label %758

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

758:                                              ; preds = %754, %747
  br label %759

759:                                              ; preds = %754, %758
  %.str.5.sink460 = phi ptr [ @.str.5, %758 ], [ @.str.2, %754 ]
  store i32 %749, ptr %748, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = load i32, ptr @test_count, align 4, !tbaa !5
  %762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %763 = load i32, ptr %762, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror(i32 noundef %763, ptr noundef nonnull @.str.4) #12
  %765 = load i32, ptr %762, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror_debug(i32 noundef %765, ptr noundef nonnull @.str.4) #12
  %767 = load i32, ptr %748, align 4, !tbaa !5
  %768 = call ptr @strerror(i32 noundef %767) #12
  %769 = load i32, ptr %748, align 4, !tbaa !5
  %770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %760, ptr noundef nonnull %.str.5.sink460, i32 noundef %761, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %764, ptr noundef %766, ptr noundef %768, i32 noundef %769) #14
  call void @exit(i32 noundef 1) #15
  unreachable

771:                                              ; preds = %742
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = add nsw i32 %772, 1
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_alpn_extension, i64 16), align 8, !tbaa !49
  %775 = call i32 %774(ptr noundef nonnull %629, ptr noundef nonnull %7) #12
  %776 = icmp eq i32 %775, -1
  br i1 %776, label %777, label %801

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

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

788:                                              ; preds = %784, %777
  br label %789

789:                                              ; preds = %784, %788
  %.str.5.sink471 = phi ptr [ @.str.5, %788 ], [ @.str.2, %784 ]
  store i32 %779, ptr %778, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror(i32 noundef %793, ptr noundef nonnull @.str.4) #12
  %795 = load i32, ptr %792, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror_debug(i32 noundef %795, ptr noundef nonnull @.str.4) #12
  %797 = load i32, ptr %778, align 4, !tbaa !5
  %798 = call ptr @strerror(i32 noundef %797) #12
  %799 = load i32, ptr %778, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef nonnull %.str.5.sink471, i32 noundef %791, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %794, ptr noundef %796, ptr noundef %798, i32 noundef %799) #14
  call void @exit(i32 noundef 1) #15
  unreachable

801:                                              ; preds = %771
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = add nsw i32 %802, 1
  store i32 %803, ptr @test_count, align 4, !tbaa !5
  %804 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %629) #12
  %805 = icmp eq ptr %804, null
  br i1 %805, label %806, label %830

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

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

817:                                              ; preds = %813, %806
  br label %818

818:                                              ; preds = %813, %817
  %.str.5.sink482 = phi ptr [ @.str.5, %817 ], [ @.str.2, %813 ]
  store i32 %808, ptr %807, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.4) #12
  %824 = load i32, ptr %821, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.4) #12
  %826 = load i32, ptr %807, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #12
  %828 = load i32, ptr %807, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %819, ptr noundef nonnull %.str.5.sink482, i32 noundef %820, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

830:                                              ; preds = %801
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr @test_count, align 4, !tbaa !5
  %833 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %629) #12
  %834 = load ptr, ptr %3, align 16, !tbaa !9
  %835 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %833, ptr noundef nonnull dereferenceable(1) %834) #16
  %836 = icmp eq i32 %835, 0
  br i1 %836, label %861, label %837

837:                                              ; preds = %830
  %838 = tail call ptr @__errno_location() #13
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %841 = call i32 @s2n_print_stacktrace(ptr noundef %840) #12
  %842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %843 = trunc nuw i8 %842 to i1
  br i1 %843, label %844, label %848

844:                                              ; preds = %837
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = call i32 @fileno(ptr noundef %845) #12
  %847 = call i32 @isatty(i32 noundef %846) #12
  %.not138 = icmp eq i32 %847, 0
  br i1 %.not138, label %848, label %849

848:                                              ; preds = %844, %837
  br label %849

849:                                              ; preds = %844, %848
  %.str.5.sink493 = phi ptr [ @.str.5, %848 ], [ @.str.2, %844 ]
  store i32 %839, ptr %838, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror(i32 noundef %853, ptr noundef nonnull @.str.4) #12
  %855 = load i32, ptr %852, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef nonnull @.str.4) #12
  %857 = load i32, ptr %838, align 4, !tbaa !5
  %858 = call ptr @strerror(i32 noundef %857) #12
  %859 = load i32, ptr %838, align 4, !tbaa !5
  %860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %850, ptr noundef nonnull %.str.5.sink493, i32 noundef %851, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %854, ptr noundef %856, ptr noundef %858, i32 noundef %859) #14
  call void @exit(i32 noundef 1) #15
  unreachable

861:                                              ; preds = %830
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = add nsw i32 %862, 1
  store i32 %863, ptr @test_count, align 4, !tbaa !5
  %864 = call i32 @s2n_connection_free(ptr noundef nonnull %629) #12
  %865 = icmp eq i32 %864, -1
  br i1 %865, label %866, label %890

866:                                              ; preds = %861
  %867 = tail call ptr @__errno_location() #13
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @s2n_print_stacktrace(ptr noundef %869) #12
  %871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %872 = trunc nuw i8 %871 to i1
  br i1 %872, label %873, label %877

873:                                              ; preds = %866
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @fileno(ptr noundef %874) #12
  %876 = call i32 @isatty(i32 noundef %875) #12
  %.not162 = icmp eq i32 %876, 0
  br i1 %.not162, label %877, label %878

877:                                              ; preds = %873, %866
  br label %878

878:                                              ; preds = %873, %877
  %.str.5.sink504 = phi ptr [ @.str.5, %877 ], [ @.str.2, %873 ]
  store i32 %868, ptr %867, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef nonnull @.str.4) #12
  %884 = load i32, ptr %881, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef nonnull @.str.4) #12
  %886 = load i32, ptr %867, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #12
  %888 = load i32, ptr %867, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef nonnull %.str.5.sink504, i32 noundef %880, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %883, ptr noundef %885, ptr noundef %887, i32 noundef %888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

890:                                              ; preds = %861
  %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 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #12
  %894 = icmp eq i32 %893, -1
  br i1 %894, label %895, label %919

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

902:                                              ; preds = %895
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @fileno(ptr noundef %903) #12
  %905 = call i32 @isatty(i32 noundef %904) #12
  %.not161 = icmp eq i32 %905, 0
  br i1 %.not161, label %906, label %907

906:                                              ; preds = %902, %895
  br label %907

907:                                              ; preds = %902, %906
  %.str.5.sink515 = phi ptr [ @.str.5, %906 ], [ @.str.2, %902 ]
  store i32 %897, ptr %896, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror(i32 noundef %911, ptr noundef nonnull @.str.4) #12
  %913 = load i32, ptr %910, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror_debug(i32 noundef %913, ptr noundef nonnull @.str.4) #12
  %915 = load i32, ptr %896, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #12
  %917 = load i32, ptr %896, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %908, ptr noundef nonnull %.str.5.sink515, i32 noundef %909, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %912, ptr noundef %914, ptr noundef %916, i32 noundef %917) #14
  call void @exit(i32 noundef 1) #15
  unreachable

919:                                              ; preds = %890
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #12
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %923 = icmp eq ptr %922, null
  br i1 %923, label %924, label %948

924:                                              ; preds = %919
  %925 = tail call ptr @__errno_location() #13
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @s2n_print_stacktrace(ptr noundef %927) #12
  %929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %930 = trunc nuw i8 %929 to i1
  br i1 %930, label %931, label %935

931:                                              ; preds = %924
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = call i32 @fileno(ptr noundef %932) #12
  %934 = call i32 @isatty(i32 noundef %933) #12
  %.not160 = icmp eq i32 %934, 0
  br i1 %.not160, label %935, label %936

935:                                              ; preds = %931, %924
  br label %936

936:                                              ; preds = %931, %935
  %.str.5.sink526 = phi ptr [ @.str.5, %935 ], [ @.str.2, %931 ]
  store i32 %926, ptr %925, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %940, ptr noundef nonnull @.str.4) #12
  %942 = load i32, ptr %939, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.4) #12
  %944 = load i32, ptr %925, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #12
  %946 = load i32, ptr %925, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %937, ptr noundef nonnull %.str.5.sink526, i32 noundef %938, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #14
  call void @exit(i32 noundef 1) #15
  unreachable

948:                                              ; preds = %919
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr @test_count, align 4, !tbaa !5
  %951 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #12
  %952 = icmp eq i32 %951, -1
  br i1 %952, label %953, label %977

953:                                              ; preds = %948
  %954 = tail call ptr @__errno_location() #13
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @s2n_print_stacktrace(ptr noundef %956) #12
  %958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %959 = trunc nuw i8 %958 to i1
  br i1 %959, label %960, label %964

960:                                              ; preds = %953
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @fileno(ptr noundef %961) #12
  %963 = call i32 @isatty(i32 noundef %962) #12
  %.not159 = icmp eq i32 %963, 0
  br i1 %.not159, label %964, label %965

964:                                              ; preds = %960, %953
  br label %965

965:                                              ; preds = %960, %964
  %.str.5.sink537 = phi ptr [ @.str.5, %964 ], [ @.str.2, %960 ]
  store i32 %955, ptr %954, align 4, !tbaa !5
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.4) #12
  %971 = load i32, ptr %968, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.4) #12
  %973 = load i32, ptr %954, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #12
  %975 = load i32, ptr %954, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %966, ptr noundef nonnull %.str.5.sink537, i32 noundef %967, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #14
  call void @exit(i32 noundef 1) #15
  unreachable

977:                                              ; preds = %948
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = call i32 %388(ptr noundef nonnull %922, ptr noundef nonnull %8) #12
  %981 = icmp eq i32 %980, -1
  br i1 %981, label %982, label %1006

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

989:                                              ; preds = %982
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @fileno(ptr noundef %990) #12
  %992 = call i32 @isatty(i32 noundef %991) #12
  %.not158 = icmp eq i32 %992, 0
  br i1 %.not158, label %993, label %994

993:                                              ; preds = %989, %982
  br label %994

994:                                              ; preds = %989, %993
  %.str.5.sink548 = phi ptr [ @.str.5, %993 ], [ @.str.2, %989 ]
  store i32 %984, ptr %983, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror(i32 noundef %998, ptr noundef nonnull @.str.4) #12
  %1000 = load i32, ptr %997, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef nonnull @.str.4) #12
  %1002 = load i32, ptr %983, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #12
  %1004 = load i32, ptr %983, align 4, !tbaa !5
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef nonnull %.str.5.sink548, i32 noundef %996, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %999, ptr noundef %1001, ptr noundef %1003, i32 noundef %1004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1006:                                             ; preds = %977
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %922) #12
  %1010 = icmp eq ptr %1009, null
  br i1 %1010, label %1035, label %1011

1011:                                             ; preds = %1006
  %1012 = tail call ptr @__errno_location() #13
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = call i32 @s2n_print_stacktrace(ptr noundef %1014) #12
  %1016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1017 = trunc nuw i8 %1016 to i1
  br i1 %1017, label %1018, label %1022

1018:                                             ; preds = %1011
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @fileno(ptr noundef %1019) #12
  %1021 = call i32 @isatty(i32 noundef %1020) #12
  %.not139 = icmp eq i32 %1021, 0
  br i1 %.not139, label %1022, label %1023

1022:                                             ; preds = %1018, %1011
  br label %1023

1023:                                             ; preds = %1018, %1022
  %.str.5.sink559 = phi ptr [ @.str.5, %1022 ], [ @.str.2, %1018 ]
  store i32 %1013, ptr %1012, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef nonnull @.str.4) #12
  %1029 = load i32, ptr %1026, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror_debug(i32 noundef %1029, ptr noundef nonnull @.str.4) #12
  %1031 = load i32, ptr %1012, align 4, !tbaa !5
  %1032 = call ptr @strerror(i32 noundef %1031) #12
  %1033 = load i32, ptr %1012, align 4, !tbaa !5
  %1034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef nonnull %.str.5.sink559, i32 noundef %1025, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %1028, ptr noundef %1030, ptr noundef %1032, i32 noundef %1033) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1035:                                             ; preds = %1006
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = add nsw i32 %1036, 1
  store i32 %1037, ptr @test_count, align 4, !tbaa !5
  %1038 = call i32 %774(ptr noundef nonnull %922, ptr noundef nonnull %8) #12
  %1039 = icmp eq i32 %1038, -1
  br i1 %1039, label %1040, label %1064

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

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

1051:                                             ; preds = %1047, %1040
  br label %1052

1052:                                             ; preds = %1047, %1051
  %.str.5.sink570 = phi ptr [ @.str.5, %1051 ], [ @.str.2, %1047 ]
  store i32 %1042, ptr %1041, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef nonnull @.str.4) #12
  %1058 = load i32, ptr %1055, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef nonnull @.str.4) #12
  %1060 = load i32, ptr %1041, align 4, !tbaa !5
  %1061 = call ptr @strerror(i32 noundef %1060) #12
  %1062 = load i32, ptr %1041, align 4, !tbaa !5
  %1063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1053, ptr noundef nonnull %.str.5.sink570, i32 noundef %1054, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %1057, ptr noundef %1059, ptr noundef %1061, i32 noundef %1062) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1064:                                             ; preds = %1035
  %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_get_application_protocol(ptr noundef nonnull %922) #12
  %1068 = icmp eq ptr %1067, null
  br i1 %1068, label %1093, label %1069

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

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

1080:                                             ; preds = %1076, %1069
  br label %1081

1081:                                             ; preds = %1076, %1080
  %.str.5.sink581 = phi ptr [ @.str.5, %1080 ], [ @.str.2, %1076 ]
  store i32 %1071, ptr %1070, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef nonnull @.str.4) #12
  %1087 = load i32, ptr %1084, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef nonnull @.str.4) #12
  %1089 = load i32, ptr %1070, align 4, !tbaa !5
  %1090 = call ptr @strerror(i32 noundef %1089) #12
  %1091 = load i32, ptr %1070, align 4, !tbaa !5
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1082, ptr noundef nonnull %.str.5.sink581, i32 noundef %1083, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %1086, ptr noundef %1088, ptr noundef %1090, i32 noundef %1091) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1093:                                             ; preds = %1064
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = add nsw i32 %1094, 1
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = call i32 @s2n_connection_free(ptr noundef nonnull %922) #12
  %1097 = icmp eq i32 %1096, -1
  br i1 %1097, label %1098, label %1122

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

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

1109:                                             ; preds = %1105, %1098
  br label %1110

1110:                                             ; preds = %1105, %1109
  %.str.5.sink592 = phi ptr [ @.str.5, %1109 ], [ @.str.2, %1105 ]
  store i32 %1100, ptr %1099, 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 nonnull @.str.4) #12
  %1116 = load i32, ptr %1113, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror_debug(i32 noundef %1116, ptr noundef nonnull @.str.4) #12
  %1118 = load i32, ptr %1099, align 4, !tbaa !5
  %1119 = call ptr @strerror(i32 noundef %1118) #12
  %1120 = load i32, ptr %1099, align 4, !tbaa !5
  %1121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef nonnull %.str.5.sink592, i32 noundef %1112, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %1115, ptr noundef %1117, ptr noundef %1119, i32 noundef %1120) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1122:                                             ; preds = %1093
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = add nsw i32 %1123, 1
  store i32 %1124, ptr @test_count, align 4, !tbaa !5
  %1125 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #12
  %1126 = icmp eq i32 %1125, -1
  br i1 %1126, label %1127, label %1151

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

1134:                                             ; preds = %1127
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @fileno(ptr noundef %1135) #12
  %1137 = call i32 @isatty(i32 noundef %1136) #12
  %.not155 = icmp eq i32 %1137, 0
  br i1 %.not155, label %1138, label %1139

1138:                                             ; preds = %1134, %1127
  br label %1139

1139:                                             ; preds = %1134, %1138
  %.str.5.sink603 = phi ptr [ @.str.5, %1138 ], [ @.str.2, %1134 ]
  store i32 %1129, ptr %1128, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror(i32 noundef %1143, ptr noundef nonnull @.str.4) #12
  %1145 = load i32, ptr %1142, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef nonnull @.str.4) #12
  %1147 = load i32, ptr %1128, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #12
  %1149 = load i32, ptr %1128, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef nonnull %.str.5.sink603, i32 noundef %1141, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1144, ptr noundef %1146, ptr noundef %1148, i32 noundef %1149) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1151:                                             ; preds = %1122
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #12
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = add nsw i32 %1152, 1
  store i32 %1153, ptr @test_count, align 4, !tbaa !5
  %1154 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1155 = icmp eq ptr %1154, null
  br i1 %1155, label %1156, label %1180

1156:                                             ; preds = %1151
  %1157 = tail call ptr @__errno_location() #13
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @s2n_print_stacktrace(ptr noundef %1159) #12
  %1161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1162 = trunc nuw i8 %1161 to i1
  br i1 %1162, label %1163, label %1167

1163:                                             ; preds = %1156
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @fileno(ptr noundef %1164) #12
  %1166 = call i32 @isatty(i32 noundef %1165) #12
  %.not154 = icmp eq i32 %1166, 0
  br i1 %.not154, label %1167, label %1168

1167:                                             ; preds = %1163, %1156
  br label %1168

1168:                                             ; preds = %1163, %1167
  %.str.5.sink614 = phi ptr [ @.str.5, %1167 ], [ @.str.2, %1163 ]
  store i32 %1158, ptr %1157, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror(i32 noundef %1172, ptr noundef nonnull @.str.4) #12
  %1174 = load i32, ptr %1171, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror_debug(i32 noundef %1174, ptr noundef nonnull @.str.4) #12
  %1176 = load i32, ptr %1157, align 4, !tbaa !5
  %1177 = call ptr @strerror(i32 noundef %1176) #12
  %1178 = load i32, ptr %1157, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1169, ptr noundef nonnull %.str.5.sink614, i32 noundef %1170, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %1173, ptr noundef %1175, ptr noundef %1177, i32 noundef %1178) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1180:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, ptr @test_count, align 4, !tbaa !5
  %1183 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #12
  %1184 = icmp eq i32 %1183, -1
  br i1 %1184, label %1185, label %1209

1185:                                             ; preds = %1180
  %1186 = tail call ptr @__errno_location() #13
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188) #12
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc nuw i8 %1190 to i1
  br i1 %1191, label %1192, label %1196

1192:                                             ; preds = %1185
  %1193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1194 = call i32 @fileno(ptr noundef %1193) #12
  %1195 = call i32 @isatty(i32 noundef %1194) #12
  %.not153 = icmp eq i32 %1195, 0
  br i1 %.not153, label %1196, label %1197

1196:                                             ; preds = %1192, %1185
  br label %1197

1197:                                             ; preds = %1192, %1196
  %.str.5.sink625 = phi ptr [ @.str.5, %1196 ], [ @.str.2, %1192 ]
  store i32 %1187, ptr %1186, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = load i32, ptr @test_count, align 4, !tbaa !5
  %1200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef nonnull @.str.4) #12
  %1203 = load i32, ptr %1200, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef nonnull @.str.4) #12
  %1205 = load i32, ptr %1186, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #12
  %1207 = load i32, ptr %1186, align 4, !tbaa !5
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1198, ptr noundef nonnull %.str.5.sink625, i32 noundef %1199, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, i32 noundef %1207) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1209:                                             ; preds = %1180
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = call i32 %388(ptr noundef nonnull %1154, ptr noundef nonnull %9) #12
  %1213 = icmp eq i32 %1212, -1
  br i1 %1213, label %1214, label %1238

1214:                                             ; preds = %1209
  %1215 = tail call ptr @__errno_location() #13
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @s2n_print_stacktrace(ptr noundef %1217) #12
  %1219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1220 = trunc nuw i8 %1219 to i1
  br i1 %1220, label %1221, label %1225

1221:                                             ; preds = %1214
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @fileno(ptr noundef %1222) #12
  %1224 = call i32 @isatty(i32 noundef %1223) #12
  %.not152 = icmp eq i32 %1224, 0
  br i1 %.not152, label %1225, label %1226

1225:                                             ; preds = %1221, %1214
  br label %1226

1226:                                             ; preds = %1221, %1225
  %.str.5.sink636 = phi ptr [ @.str.5, %1225 ], [ @.str.2, %1221 ]
  store i32 %1216, ptr %1215, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef nonnull @.str.4) #12
  %1232 = load i32, ptr %1229, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1232, ptr noundef nonnull @.str.4) #12
  %1234 = load i32, ptr %1215, align 4, !tbaa !5
  %1235 = call ptr @strerror(i32 noundef %1234) #12
  %1236 = load i32, ptr %1215, align 4, !tbaa !5
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef nonnull %.str.5.sink636, i32 noundef %1228, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %1231, ptr noundef %1233, ptr noundef %1235, i32 noundef %1236) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1238:                                             ; preds = %1209
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = add nsw i32 %1239, 1
  store i32 %1240, ptr @test_count, align 4, !tbaa !5
  %1241 = call i32 @s2n_stuffer_wipe_n(ptr noundef nonnull %9, i32 noundef 1) #12
  %1242 = icmp eq i32 %1241, -1
  br i1 %1242, label %1243, label %1267

1243:                                             ; preds = %1238
  %1244 = tail call ptr @__errno_location() #13
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @s2n_print_stacktrace(ptr noundef %1246) #12
  %1248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc nuw i8 %1248 to i1
  br i1 %1249, label %1250, label %1254

1250:                                             ; preds = %1243
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @fileno(ptr noundef %1251) #12
  %1253 = call i32 @isatty(i32 noundef %1252) #12
  %.not151 = icmp eq i32 %1253, 0
  br i1 %.not151, label %1254, label %1255

1254:                                             ; preds = %1250, %1243
  br label %1255

1255:                                             ; preds = %1250, %1254
  %.str.5.sink647 = phi ptr [ @.str.5, %1254 ], [ @.str.2, %1250 ]
  store i32 %1245, ptr %1244, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.4) #12
  %1261 = load i32, ptr %1258, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.4) #12
  %1263 = load i32, ptr %1244, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #12
  %1265 = load i32, ptr %1244, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1256, ptr noundef nonnull %.str.5.sink647, i32 noundef %1257, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1267:                                             ; preds = %1238
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %1154) #12
  %1271 = icmp eq ptr %1270, null
  br i1 %1271, label %1296, label %1272

1272:                                             ; preds = %1267
  %1273 = tail call ptr @__errno_location() #13
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @s2n_print_stacktrace(ptr noundef %1275) #12
  %1277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1278 = trunc nuw i8 %1277 to i1
  br i1 %1278, label %1279, label %1283

1279:                                             ; preds = %1272
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @fileno(ptr noundef %1280) #12
  %1282 = call i32 @isatty(i32 noundef %1281) #12
  %.not141 = icmp eq i32 %1282, 0
  br i1 %.not141, label %1283, label %1284

1283:                                             ; preds = %1279, %1272
  br label %1284

1284:                                             ; preds = %1279, %1283
  %.str.5.sink658 = phi ptr [ @.str.5, %1283 ], [ @.str.2, %1279 ]
  store i32 %1274, ptr %1273, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef nonnull @.str.4) #12
  %1290 = load i32, ptr %1287, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef nonnull @.str.4) #12
  %1292 = load i32, ptr %1273, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #12
  %1294 = load i32, ptr %1273, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1285, ptr noundef nonnull %.str.5.sink658, i32 noundef %1286, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, i32 noundef %1294) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1296:                                             ; preds = %1267
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = call i32 %774(ptr noundef nonnull %1154, ptr noundef nonnull %9) #12
  %1300 = icmp eq i32 %1299, -1
  br i1 %1300, label %1301, label %1325

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

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

1312:                                             ; preds = %1308, %1301
  br label %1313

1313:                                             ; preds = %1308, %1312
  %.str.5.sink669 = phi ptr [ @.str.5, %1312 ], [ @.str.2, %1308 ]
  store i32 %1303, ptr %1302, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = load i32, ptr @test_count, align 4, !tbaa !5
  %1316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror(i32 noundef %1317, ptr noundef nonnull @.str.4) #12
  %1319 = load i32, ptr %1316, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror_debug(i32 noundef %1319, ptr noundef nonnull @.str.4) #12
  %1321 = load i32, ptr %1302, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #12
  %1323 = load i32, ptr %1302, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1314, ptr noundef nonnull %.str.5.sink669, i32 noundef %1315, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1318, ptr noundef %1320, ptr noundef %1322, i32 noundef %1323) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1325:                                             ; preds = %1296
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = add nsw i32 %1326, 1
  store i32 %1327, ptr @test_count, align 4, !tbaa !5
  %1328 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %1154) #12
  %1329 = icmp eq ptr %1328, null
  br i1 %1329, label %1354, label %1330

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

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

1341:                                             ; preds = %1337, %1330
  br label %1342

1342:                                             ; preds = %1337, %1341
  %.str.5.sink680 = phi ptr [ @.str.5, %1341 ], [ @.str.2, %1337 ]
  store i32 %1332, ptr %1331, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = load i32, ptr @test_count, align 4, !tbaa !5
  %1345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror(i32 noundef %1346, ptr noundef nonnull @.str.4) #12
  %1348 = load i32, ptr %1345, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror_debug(i32 noundef %1348, ptr noundef nonnull @.str.4) #12
  %1350 = load i32, ptr %1331, align 4, !tbaa !5
  %1351 = call ptr @strerror(i32 noundef %1350) #12
  %1352 = load i32, ptr %1331, align 4, !tbaa !5
  %1353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1343, ptr noundef nonnull %.str.5.sink680, i32 noundef %1344, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1347, ptr noundef %1349, ptr noundef %1351, i32 noundef %1352) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1354:                                             ; preds = %1325
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr @test_count, align 4, !tbaa !5
  %1357 = call i32 @s2n_connection_free(ptr noundef nonnull %1154) #12
  %1358 = icmp eq i32 %1357, -1
  br i1 %1358, label %1359, label %1383

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

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

1370:                                             ; preds = %1366, %1359
  br label %1371

1371:                                             ; preds = %1366, %1370
  %.str.5.sink691 = phi ptr [ @.str.5, %1370 ], [ @.str.2, %1366 ]
  store i32 %1361, ptr %1360, align 4, !tbaa !5
  %1372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror(i32 noundef %1375, ptr noundef nonnull @.str.4) #12
  %1377 = load i32, ptr %1374, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef nonnull @.str.4) #12
  %1379 = load i32, ptr %1360, align 4, !tbaa !5
  %1380 = call ptr @strerror(i32 noundef %1379) #12
  %1381 = load i32, ptr %1360, align 4, !tbaa !5
  %1382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1372, ptr noundef nonnull %.str.5.sink691, i32 noundef %1373, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %1376, ptr noundef %1378, ptr noundef %1380, i32 noundef %1381) #14
  call void @exit(i32 noundef 1) #15
  unreachable

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

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

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

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

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

1412:                                             ; preds = %1383
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #12
  %1413 = call i32 @s2n_cleanup() #12
  %1414 = icmp eq i32 %1413, -1
  br i1 %1414, label %1415, label %1439

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

1422:                                             ; preds = %1415
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = call i32 @fileno(ptr noundef %1423) #12
  %1425 = call i32 @isatty(i32 noundef %1424) #12
  %.not147 = icmp eq i32 %1425, 0
  br i1 %.not147, label %1426, label %1427

1426:                                             ; preds = %1422, %1415
  br label %1427

1427:                                             ; preds = %1422, %1426
  %.str.5.sink713 = phi ptr [ @.str.5, %1426 ], [ @.str.2, %1422 ]
  store i32 %1417, ptr %1416, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror(i32 noundef %1431, ptr noundef nonnull @.str.4) #12
  %1433 = load i32, ptr %1430, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror_debug(i32 noundef %1433, ptr noundef nonnull @.str.4) #12
  %1435 = load i32, ptr %1416, align 4, !tbaa !5
  %1436 = call ptr @strerror(i32 noundef %1435) #12
  %1437 = load i32, ptr %1416, align 4, !tbaa !5
  %1438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef nonnull %.str.5.sink713, i32 noundef %1429, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1432, ptr noundef %1434, ptr noundef %1436, i32 noundef %1437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1439:                                             ; preds = %1412
  %1440 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1441 = icmp eq i32 %1440, -1
  br i1 %1441, label %1442, label %1466

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

1449:                                             ; preds = %1442
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = call i32 @fileno(ptr noundef %1450) #12
  %1452 = call i32 @isatty(i32 noundef %1451) #12
  %.not146 = icmp eq i32 %1452, 0
  br i1 %.not146, label %1453, label %1454

1453:                                             ; preds = %1449, %1442
  br label %1454

1454:                                             ; preds = %1449, %1453
  %.str.5.sink724 = phi ptr [ @.str.5, %1453 ], [ @.str.2, %1449 ]
  store i32 %1444, ptr %1443, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef nonnull @.str.4) #12
  %1460 = load i32, ptr %1457, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef nonnull @.str.4) #12
  %1462 = load i32, ptr %1443, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #12
  %1464 = load i32, ptr %1443, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull %.str.5.sink724, i32 noundef %1456, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1459, ptr noundef %1461, ptr noundef %1463, i32 noundef %1464) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1466:                                             ; preds = %1439
  %1467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1468 = trunc nuw i8 %1467 to i1
  br i1 %1468, label %1469, label %1480

1469:                                             ; preds = %1466
  %1470 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1471 = call i32 @fileno(ptr noundef %1470) #12
  %1472 = call i32 @isatty(i32 noundef %1471) #12
  %.not143 = icmp eq i32 %1472, 0
  br i1 %.not143, label %1480, label %1473

1473:                                             ; preds = %1469
  %1474 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not145 = icmp eq i32 %1474, 0
  %1475 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not145, label %1478, label %1476

1476:                                             ; preds = %1473
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1475, ptr noundef nonnull @.str.33, i32 noundef %1474) #12
  br label %1487

1478:                                             ; preds = %1473
  %1479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1475, ptr noundef nonnull @.str.34) #12
  br label %1487

1480:                                             ; preds = %1469, %1466
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not144 = icmp eq i32 %1481, 0
  %1482 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not144, label %1485, label %1483

1483:                                             ; preds = %1480
  %1484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef nonnull @.str.35, i32 noundef %1481) #12
  br label %1487

1485:                                             ; preds = %1480
  %1486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef nonnull @.str.36) #12
  br label %1487

1487:                                             ; preds = %1483, %1485, %1476, %1478
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_get_application_protocol(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #10

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 24}
!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 = !{!16, !10, i64 8}
!19 = !{!17, !17, i64 0}
!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 = !{!25, !6, i64 4040}
!25 = !{!"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, !26, i64 160, !27, i64 168, !27, 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, !28, i64 240, !10, i64 632, !10, i64 640, !29, i64 648, !34, i64 1144, !37, 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, !27, i64 1944, !7, i64 1952, !21, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !27, i64 2224, !7, i64 2232, !27, i64 2240, !27, i64 2248, !27, i64 2256, !39, i64 2264, !39, 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, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !46, 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, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !27, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!29 = !{!"s2n_kex_parameters", !30, i64 0, !31, i64 8, !7, i64 24, !31, i64 56, !32, i64 72, !32, i64 184, !7, i64 296, !33, i64 360, !22, i64 448, !22, i64 472}
!30 = !{!"s2n_dh_params", !10, i64 0}
!31 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!32 = !{!"s2n_kem_group_params", !10, i64 0, !33, i64 8, !31, i64 96}
!33 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !22, i64 96, !6, i64 120, !36, 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}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"", !6, i64 0}
!40 = !{!"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, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !10, i64 0}
!42 = !{!"s2n_client_hello", !22, i64 0, !43, 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}
!43 = !{!"", !7, i64 0, !22, i64 672, !17, i64 696}
!44 = !{!"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, !45, i64 48, !12, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !21, i64 0, !7, i64 40}
!48 = !{!25, !10, i64 4032}
!49 = !{!16, !10, i64 16}


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