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

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

%struct.s2n_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_result = type { i32 }
%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 [88 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_server_server_name_extension = external constant %struct.s2n_extension_type, align 8
@.str.24 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [60 x i8], align 1
@__const.main.long_alpn = external hidden unnamed_addr constant [24 x i8], align 16
@.str.52 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.75 = 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 i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %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 i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i16, align 2
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i16, align 2
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i16, align 2
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca 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 ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca ptr, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca ptr, align 8
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_stuffer, align 8
  %94 = alloca %struct.s2n_stuffer, align 8
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca [24 x i8], align 16
  %104 = alloca i32, align 4
  %105 = alloca i64, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i8, align 1
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = 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 %132

132:                                              ; preds = %2
  br label %133

133:                                              ; preds = %132
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %134 = load ptr, ptr @stdout, align 8, !tbaa !9
  %135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %134, ptr noundef @.str, ptr noundef @.str.1) #10
  %136 = load ptr, ptr @stdout, align 8, !tbaa !9
  %137 = call i32 @fflush(ptr noundef %136)
  br label %138

138:                                              ; preds = %133
  %139 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %140 = icmp eq i32 %139, -1
  br i1 %140, label %141, label %192

141:                                              ; preds = %138
  br label %142

142:                                              ; preds = %141
  br label %143

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

150:                                              ; preds = %143
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = call i32 @fileno(ptr noundef %151) #10
  %153 = call i32 @isatty(i32 noundef %152) #10
  %154 = icmp ne i32 %153, 0
  br i1 %154, label %155, label %172

155:                                              ; preds = %150
  %156 = load i32, ptr %6, align 4, !tbaa !5
  %157 = call ptr @__errno_location() #11
  store i32 %156, ptr %157, align 4, !tbaa !5
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call ptr @s2n_strerror(i32 noundef %161, ptr noundef @.str.4)
  %163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call ptr @s2n_strerror_debug(i32 noundef %164, ptr noundef @.str.4)
  %166 = call ptr @__errno_location() #11
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @strerror(i32 noundef %167) #10
  %169 = call ptr @__errno_location() #11
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef @.str.2, i32 noundef %159, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 31, ptr noundef %162, ptr noundef %165, ptr noundef %168, i32 noundef %170) #10
  br label %189

172:                                              ; preds = %150, %143
  %173 = load i32, ptr %6, align 4, !tbaa !5
  %174 = call ptr @__errno_location() #11
  store i32 %173, ptr %174, align 4, !tbaa !5
  %175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %176 = load i32, ptr @test_count, align 4, !tbaa !5
  %177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = call ptr @s2n_strerror(i32 noundef %178, ptr noundef @.str.4)
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror_debug(i32 noundef %181, ptr noundef @.str.4)
  %183 = call ptr @__errno_location() #11
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @strerror(i32 noundef %184) #10
  %186 = call ptr @__errno_location() #11
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str.5, i32 noundef %176, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 31, ptr noundef %179, ptr noundef %182, ptr noundef %185, i32 noundef %187) #10
  br label %189

189:                                              ; preds = %172, %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %190

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

191:                                              ; No predecessors!
  br label %192

192:                                              ; preds = %191, %138
  br label %193

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr @test_count, align 4, !tbaa !5
  %197 = call i32 @s2n_enable_atexit()
  %198 = icmp eq i32 %197, -1
  br i1 %198, label %199, label %250

199:                                              ; preds = %194
  br label %200

200:                                              ; preds = %199
  br label %201

201:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %202 = call ptr @__errno_location() #11
  %203 = load i32, ptr %202, align 4, !tbaa !5
  store i32 %203, ptr %7, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @s2n_print_stacktrace(ptr noundef %204)
  %206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %207 = trunc i8 %206 to i1
  br i1 %207, label %208, label %230

208:                                              ; preds = %201
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = call i32 @fileno(ptr noundef %209) #10
  %211 = call i32 @isatty(i32 noundef %210) #10
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %230

213:                                              ; preds = %208
  %214 = load i32, ptr %7, align 4, !tbaa !5
  %215 = call ptr @__errno_location() #11
  store i32 %214, ptr %215, align 4, !tbaa !5
  %216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = call ptr @s2n_strerror(i32 noundef %219, ptr noundef @.str.4)
  %221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call ptr @s2n_strerror_debug(i32 noundef %222, ptr noundef @.str.4)
  %224 = call ptr @__errno_location() #11
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call ptr @strerror(i32 noundef %225) #10
  %227 = call ptr @__errno_location() #11
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %216, ptr noundef @.str.2, i32 noundef %217, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 31, ptr noundef %220, ptr noundef %223, ptr noundef %226, i32 noundef %228) #10
  br label %247

230:                                              ; preds = %208, %201
  %231 = load i32, ptr %7, align 4, !tbaa !5
  %232 = call ptr @__errno_location() #11
  store i32 %231, ptr %232, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror(i32 noundef %236, ptr noundef @.str.4)
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef @.str.4)
  %241 = call ptr @__errno_location() #11
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #10
  %244 = call ptr @__errno_location() #11
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %233, ptr noundef @.str.5, i32 noundef %234, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 31, ptr noundef %237, ptr noundef %240, ptr noundef %243, i32 noundef %245) #10
  br label %247

247:                                              ; preds = %230, %213
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %248

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

249:                                              ; No predecessors!
  br label %250

250:                                              ; preds = %249, %194
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  %254 = call i32 @s2n_init()
  %255 = icmp eq i32 %254, -1
  br i1 %255, label %256, label %307

256:                                              ; preds = %253
  br label %257

257:                                              ; preds = %256
  br label %258

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

265:                                              ; preds = %258
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @fileno(ptr noundef %266) #10
  %268 = call i32 @isatty(i32 noundef %267) #10
  %269 = icmp ne i32 %268, 0
  br i1 %269, label %270, label %287

270:                                              ; preds = %265
  %271 = load i32, ptr %8, align 4, !tbaa !5
  %272 = call ptr @__errno_location() #11
  store i32 %271, ptr %272, align 4, !tbaa !5
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %276, ptr noundef @.str.4)
  %278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef @.str.4)
  %281 = call ptr @__errno_location() #11
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @strerror(i32 noundef %282) #10
  %284 = call ptr @__errno_location() #11
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %273, ptr noundef @.str.2, i32 noundef %274, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 31, ptr noundef %277, ptr noundef %280, ptr noundef %283, i32 noundef %285) #10
  br label %304

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

304:                                              ; preds = %287, %270
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %305

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

306:                                              ; No predecessors!
  br label %307

307:                                              ; preds = %306, %253
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = add nsw i32 %311, 1
  store i32 %312, ptr @test_count, align 4, !tbaa !5
  %313 = call i32 (...) @s2n_enable_tls13_in_test()
  %314 = icmp eq i32 %313, -1
  br i1 %314, label %315, label %366

315:                                              ; preds = %310
  br label %316

316:                                              ; preds = %315
  br label %317

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

324:                                              ; preds = %317
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @fileno(ptr noundef %325) #10
  %327 = call i32 @isatty(i32 noundef %326) #10
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %346

329:                                              ; preds = %324
  %330 = load i32, ptr %9, align 4, !tbaa !5
  %331 = call ptr @__errno_location() #11
  store i32 %330, ptr %331, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror(i32 noundef %335, ptr noundef @.str.4)
  %337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror_debug(i32 noundef %338, ptr noundef @.str.4)
  %340 = call ptr @__errno_location() #11
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @strerror(i32 noundef %341) #10
  %343 = call ptr @__errno_location() #11
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef @.str.2, i32 noundef %333, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 33, ptr noundef %336, ptr noundef %339, ptr noundef %342, i32 noundef %344) #10
  br label %363

346:                                              ; preds = %324, %317
  %347 = load i32, ptr %9, align 4, !tbaa !5
  %348 = call ptr @__errno_location() #11
  store i32 %347, ptr %348, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = call ptr @s2n_strerror(i32 noundef %352, ptr noundef @.str.4)
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror_debug(i32 noundef %355, ptr noundef @.str.4)
  %357 = call ptr @__errno_location() #11
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #10
  %360 = call ptr @__errno_location() #11
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef @.str.5, i32 noundef %350, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 33, ptr noundef %353, ptr noundef %356, ptr noundef %359, i32 noundef %361) #10
  br label %363

363:                                              ; preds = %346, %329
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %364

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

365:                                              ; No predecessors!
  br label %366

366:                                              ; preds = %365, %310
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call i32 @s2n_encrypted_extensions_send(ptr noundef null)
  %373 = icmp eq i32 %372, -1
  br i1 %373, label %425, label %374

374:                                              ; preds = %369
  br label %375

375:                                              ; preds = %374
  br label %376

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

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

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

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

422:                                              ; preds = %405, %388
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %423

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

424:                                              ; No predecessors!
  br label %425

425:                                              ; preds = %424, %369
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = icmp eq i32 %431, 0
  br i1 %432, label %433, label %484

433:                                              ; preds = %427
  br label %434

434:                                              ; preds = %433
  br label %435

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

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

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

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

481:                                              ; preds = %464, %447
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %482

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

483:                                              ; No predecessors!
  br label %484

484:                                              ; preds = %483, %427
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr @test_count, align 4, !tbaa !5
  %489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @s2n_strerror_debug(i32 noundef %490, ptr noundef @.str.4)
  %492 = icmp eq ptr %491, null
  br i1 %492, label %493, label %544

493:                                              ; preds = %486
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %496 = call ptr @__errno_location() #11
  %497 = load i32, ptr %496, align 4, !tbaa !5
  store i32 %497, ptr %12, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @s2n_print_stacktrace(ptr noundef %498)
  %500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %501 = trunc i8 %500 to i1
  br i1 %501, label %502, label %524

502:                                              ; preds = %495
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = call i32 @fileno(ptr noundef %503) #10
  %505 = call i32 @isatty(i32 noundef %504) #10
  %506 = icmp ne i32 %505, 0
  br i1 %506, label %507, label %524

507:                                              ; preds = %502
  %508 = load i32, ptr %12, align 4, !tbaa !5
  %509 = call ptr @__errno_location() #11
  store i32 %508, ptr %509, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror(i32 noundef %513, ptr noundef @.str.4)
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror_debug(i32 noundef %516, ptr noundef @.str.4)
  %518 = call ptr @__errno_location() #11
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @strerror(i32 noundef %519) #10
  %521 = call ptr @__errno_location() #11
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %510, ptr noundef @.str.2, i32 noundef %511, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 38, ptr noundef %514, ptr noundef %517, ptr noundef %520, i32 noundef %522) #10
  br label %541

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

541:                                              ; preds = %524, %507
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %542

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

543:                                              ; No predecessors!
  br label %544

544:                                              ; preds = %543, %486
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  %547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %547, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %548 = call ptr @__errno_location() #11
  store i32 0, ptr %548, align 4, !tbaa !5
  br label %549

549:                                              ; preds = %546
  br label %550

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

551:                                              ; preds = %550
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = add nsw i32 %552, 1
  store i32 %553, ptr @test_count, align 4, !tbaa !5
  %554 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %554, ptr %13, align 8, !tbaa !9
  %555 = icmp eq ptr %554, null
  br i1 %555, label %556, label %609

556:                                              ; preds = %551
  br label %557

557:                                              ; preds = %556
  br label %558

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

565:                                              ; preds = %558
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = call i32 @fileno(ptr noundef %566) #10
  %568 = call i32 @isatty(i32 noundef %567) #10
  %569 = icmp ne i32 %568, 0
  br i1 %569, label %570, label %587

570:                                              ; preds = %565
  %571 = load i32, ptr %14, align 4, !tbaa !5
  %572 = call ptr @__errno_location() #11
  store i32 %571, ptr %572, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror(i32 noundef %576, ptr noundef @.str.4)
  %578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror_debug(i32 noundef %579, ptr noundef @.str.4)
  %581 = call ptr @__errno_location() #11
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @strerror(i32 noundef %582) #10
  %584 = call ptr @__errno_location() #11
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %573, ptr noundef @.str.2, i32 noundef %574, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 43, ptr noundef %577, ptr noundef %580, ptr noundef %583, i32 noundef %585) #10
  br label %604

587:                                              ; preds = %565, %558
  %588 = load i32, ptr %14, align 4, !tbaa !5
  %589 = call ptr @__errno_location() #11
  store i32 %588, ptr %589, align 4, !tbaa !5
  %590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %591 = load i32, ptr @test_count, align 4, !tbaa !5
  %592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %593 = load i32, ptr %592, align 4, !tbaa !5
  %594 = call ptr @s2n_strerror(i32 noundef %593, ptr noundef @.str.4)
  %595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = call ptr @s2n_strerror_debug(i32 noundef %596, ptr noundef @.str.4)
  %598 = call ptr @__errno_location() #11
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call ptr @strerror(i32 noundef %599) #10
  %601 = call ptr @__errno_location() #11
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %590, ptr noundef @.str.5, i32 noundef %591, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 43, ptr noundef %594, ptr noundef %597, ptr noundef %600, i32 noundef %602) #10
  br label %604

604:                                              ; preds = %587, %570
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %605

605:                                              ; preds = %604
  br label %606

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

607:                                              ; No predecessors!
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608, %551
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610
  br label %612

612:                                              ; preds = %611
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = load ptr, ptr %13, align 8, !tbaa !9
  %616 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %615)
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %618, label %671

618:                                              ; preds = %612
  br label %619

619:                                              ; preds = %618
  br label %620

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

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #10
  %630 = call i32 @isatty(i32 noundef %629) #10
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %649

632:                                              ; preds = %627
  %633 = load i32, ptr %15, align 4, !tbaa !5
  %634 = call ptr @__errno_location() #11
  store i32 %633, ptr %634, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef @.str.4)
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef @.str.4)
  %643 = call ptr @__errno_location() #11
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #10
  %646 = call ptr @__errno_location() #11
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef @.str.2, i32 noundef %636, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %639, ptr noundef %642, ptr noundef %645, i32 noundef %647) #10
  br label %666

649:                                              ; preds = %627, %620
  %650 = load i32, ptr %15, align 4, !tbaa !5
  %651 = call ptr @__errno_location() #11
  store i32 %650, ptr %651, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef @.str.4)
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef @.str.4)
  %660 = call ptr @__errno_location() #11
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #10
  %663 = call ptr @__errno_location() #11
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef @.str.5, i32 noundef %653, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 44, ptr noundef %656, ptr noundef %659, ptr noundef %662, i32 noundef %664) #10
  br label %666

666:                                              ; preds = %649, %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %667

667:                                              ; preds = %666
  br label %668

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

669:                                              ; No predecessors!
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670, %612
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  %674 = load ptr, ptr %13, align 8, !tbaa !9
  %675 = getelementptr inbounds %struct.s2n_connection, ptr %674, i32 0, i32 23
  store i8 33, ptr %675, align 4, !tbaa !15
  br label %676

676:                                              ; preds = %673
  br label %677

677:                                              ; preds = %676
  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 = load ptr, ptr %13, align 8, !tbaa !9
  %682 = call i32 @s2n_encrypted_extensions_send(ptr noundef %681)
  %683 = icmp eq i32 %682, -1
  br i1 %683, label %737, label %684

684:                                              ; preds = %678
  br label %685

685:                                              ; preds = %684
  br label %686

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

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

698:                                              ; preds = %693
  %699 = load i32, ptr %16, align 4, !tbaa !5
  %700 = call ptr @__errno_location() #11
  store i32 %699, ptr %700, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror(i32 noundef %704, ptr noundef @.str.4)
  %706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror_debug(i32 noundef %707, ptr noundef @.str.4)
  %709 = call ptr @__errno_location() #11
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @strerror(i32 noundef %710) #10
  %712 = call ptr @__errno_location() #11
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef @.str.2, i32 noundef %702, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 48, ptr noundef %705, ptr noundef %708, ptr noundef %711, i32 noundef %713) #10
  br label %732

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

732:                                              ; preds = %715, %698
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %733

733:                                              ; preds = %732
  br label %734

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

735:                                              ; No predecessors!
  br label %736

736:                                              ; preds = %735
  br label %737

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

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = icmp eq i32 %744, 335544322
  br i1 %745, label %799, label %746

746:                                              ; preds = %740
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %749 = call ptr @__errno_location() #11
  %750 = load i32, ptr %749, align 4, !tbaa !5
  store i32 %750, ptr %17, 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 %17, 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 48, ptr noundef %767, ptr noundef %770, ptr noundef %773, i32 noundef %775) #10
  br label %794

777:                                              ; preds = %755, %748
  %778 = load i32, ptr %17, 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 48, 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 %17) #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, %740
  br label %800

800:                                              ; preds = %799
  br label %801

801:                                              ; preds = %800
  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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef @.str.4)
  %808 = icmp eq ptr %807, null
  br i1 %808, label %809, label %862

809:                                              ; preds = %802
  br label %810

810:                                              ; preds = %809
  br label %811

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

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

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

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

857:                                              ; preds = %840, %823
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %858

858:                                              ; preds = %857
  br label %859

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

860:                                              ; No predecessors!
  br label %861

861:                                              ; preds = %860
  br label %862

862:                                              ; preds = %861, %802
  br label %863

863:                                              ; preds = %862
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866
  %868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %868, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %869 = call ptr @__errno_location() #11
  store i32 0, ptr %869, align 4, !tbaa !5
  br label %870

870:                                              ; preds = %867
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  %874 = load ptr, ptr %13, align 8, !tbaa !9
  %875 = getelementptr inbounds %struct.s2n_connection, ptr %874, i32 0, i32 23
  store i8 34, ptr %875, align 4, !tbaa !15
  br label %876

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

882:                                              ; preds = %876
  br label %883

883:                                              ; preds = %882
  br label %884

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

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

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

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

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

931:                                              ; preds = %930
  br label %932

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

933:                                              ; No predecessors!
  br label %934

934:                                              ; preds = %933
  br label %935

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

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = add nsw i32 %939, 1
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = load ptr, ptr %13, align 8, !tbaa !9
  %942 = call i32 @s2n_connection_free(ptr noundef %941)
  %943 = icmp eq i32 %942, -1
  br i1 %943, label %944, label %997

944:                                              ; preds = %938
  br label %945

945:                                              ; preds = %944
  br label %946

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

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

958:                                              ; preds = %953
  %959 = load i32, ptr %20, align 4, !tbaa !5
  %960 = call ptr @__errno_location() #11
  store i32 %959, ptr %960, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef @.str.4)
  %966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror_debug(i32 noundef %967, ptr noundef @.str.4)
  %969 = call ptr @__errno_location() #11
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #10
  %972 = call ptr @__errno_location() #11
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef @.str.2, i32 noundef %962, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %965, ptr noundef %968, ptr noundef %971, i32 noundef %973) #10
  br label %992

975:                                              ; preds = %953, %946
  %976 = load i32, ptr %20, align 4, !tbaa !5
  %977 = call ptr @__errno_location() #11
  store i32 %976, ptr %977, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror(i32 noundef %981, ptr noundef @.str.4)
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror_debug(i32 noundef %984, ptr noundef @.str.4)
  %986 = call ptr @__errno_location() #11
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #10
  %989 = call ptr @__errno_location() #11
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %978, ptr noundef @.str.5, i32 noundef %979, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 54, ptr noundef %982, ptr noundef %985, ptr noundef %988, i32 noundef %990) #10
  br label %992

992:                                              ; preds = %975, %958
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %993

993:                                              ; preds = %992
  br label %994

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

995:                                              ; No predecessors!
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996, %938
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  store ptr null, ptr %21, align 8, !tbaa !9
  br label %1000

1000:                                             ; preds = %999
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr @test_count, align 4, !tbaa !5
  %1003 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1003, ptr %21, align 8, !tbaa !9
  %1004 = icmp eq ptr %1003, null
  br i1 %1004, label %1005, label %1058

1005:                                             ; preds = %1000
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

1007:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %1008 = call ptr @__errno_location() #11
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  store i32 %1009, ptr %22, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = call i32 @s2n_print_stacktrace(ptr noundef %1010)
  %1012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1013 = trunc i8 %1012 to i1
  br i1 %1013, label %1014, label %1036

1014:                                             ; preds = %1007
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = call i32 @fileno(ptr noundef %1015) #10
  %1017 = call i32 @isatty(i32 noundef %1016) #10
  %1018 = icmp ne i32 %1017, 0
  br i1 %1018, label %1019, label %1036

1019:                                             ; preds = %1014
  %1020 = load i32, ptr %22, align 4, !tbaa !5
  %1021 = call ptr @__errno_location() #11
  store i32 %1020, ptr %1021, align 4, !tbaa !5
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror(i32 noundef %1025, ptr noundef @.str.4)
  %1027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror_debug(i32 noundef %1028, ptr noundef @.str.4)
  %1030 = call ptr @__errno_location() #11
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call ptr @strerror(i32 noundef %1031) #10
  %1033 = call ptr @__errno_location() #11
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1022, ptr noundef @.str.2, i32 noundef %1023, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1026, ptr noundef %1029, ptr noundef %1032, i32 noundef %1034) #10
  br label %1053

1036:                                             ; preds = %1014, %1007
  %1037 = load i32, ptr %22, align 4, !tbaa !5
  %1038 = call ptr @__errno_location() #11
  store i32 %1037, ptr %1038, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call ptr @__errno_location() #11
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #10
  %1050 = call ptr @__errno_location() #11
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef @.str.5, i32 noundef %1040, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1043, ptr noundef %1046, ptr noundef %1049, i32 noundef %1051) #10
  br label %1053

1053:                                             ; preds = %1036, %1019
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

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

1056:                                             ; No predecessors!
  br label %1057

1057:                                             ; preds = %1056
  br label %1058

1058:                                             ; preds = %1057, %1000
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

1060:                                             ; preds = %1059
  br label %1061

1061:                                             ; preds = %1060
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = load ptr, ptr %21, align 8, !tbaa !9
  %1065 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %1064)
  %1066 = icmp eq i32 %1065, -1
  br i1 %1066, label %1067, label %1120

1067:                                             ; preds = %1061
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

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

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

1081:                                             ; preds = %1076
  %1082 = load i32, ptr %23, align 4, !tbaa !5
  %1083 = call ptr @__errno_location() #11
  store i32 %1082, ptr %1083, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef @.str.4)
  %1092 = call ptr @__errno_location() #11
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @strerror(i32 noundef %1093) #10
  %1095 = call ptr @__errno_location() #11
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1084, ptr noundef @.str.2, i32 noundef %1085, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1088, ptr noundef %1091, ptr noundef %1094, i32 noundef %1096) #10
  br label %1115

1098:                                             ; preds = %1076, %1069
  %1099 = load i32, ptr %23, align 4, !tbaa !5
  %1100 = call ptr @__errno_location() #11
  store i32 %1099, ptr %1100, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef @.str.4)
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror_debug(i32 noundef %1107, ptr noundef @.str.4)
  %1109 = call ptr @__errno_location() #11
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #10
  %1112 = call ptr @__errno_location() #11
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1101, ptr noundef @.str.5, i32 noundef %1102, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1105, ptr noundef %1108, ptr noundef %1111, i32 noundef %1113) #10
  br label %1115

1115:                                             ; preds = %1098, %1081
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

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

1118:                                             ; No predecessors!
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119, %1061
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121
  %1123 = load ptr, ptr %21, align 8, !tbaa !9
  %1124 = getelementptr inbounds %struct.s2n_connection, ptr %1123, i32 0, i32 23
  store i8 34, ptr %1124, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %1125 = load ptr, ptr %21, align 8, !tbaa !9
  %1126 = getelementptr inbounds %struct.s2n_connection, ptr %1125, i32 0, i32 52
  %1127 = getelementptr inbounds %struct.s2n_handshake, ptr %1126, i32 0, i32 0
  store ptr %1127, ptr %24, align 8, !tbaa !9
  br label %1128

1128:                                             ; preds = %1122
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = add nsw i32 %1129, 1
  store i32 %1130, ptr @test_count, align 4, !tbaa !5
  %1131 = load ptr, ptr %21, align 8, !tbaa !9
  %1132 = call i32 @s2n_encrypted_extensions_send(ptr noundef %1131)
  %1133 = icmp eq i32 %1132, -1
  br i1 %1133, label %1134, label %1187

1134:                                             ; preds = %1128
  br label %1135

1135:                                             ; preds = %1134
  br label %1136

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

1143:                                             ; preds = %1136
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @fileno(ptr noundef %1144) #10
  %1146 = call i32 @isatty(i32 noundef %1145) #10
  %1147 = icmp ne i32 %1146, 0
  br i1 %1147, label %1148, label %1165

1148:                                             ; preds = %1143
  %1149 = load i32, ptr %25, align 4, !tbaa !5
  %1150 = call ptr @__errno_location() #11
  store i32 %1149, ptr %1150, align 4, !tbaa !5
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @s2n_strerror(i32 noundef %1154, ptr noundef @.str.4)
  %1156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror_debug(i32 noundef %1157, ptr noundef @.str.4)
  %1159 = call ptr @__errno_location() #11
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @strerror(i32 noundef %1160) #10
  %1162 = call ptr @__errno_location() #11
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1151, ptr noundef @.str.2, i32 noundef %1152, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1155, ptr noundef %1158, ptr noundef %1161, i32 noundef %1163) #10
  br label %1182

1165:                                             ; preds = %1143, %1136
  %1166 = load i32, ptr %25, align 4, !tbaa !5
  %1167 = call ptr @__errno_location() #11
  store i32 %1166, ptr %1167, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror(i32 noundef %1171, ptr noundef @.str.4)
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror_debug(i32 noundef %1174, ptr noundef @.str.4)
  %1176 = call ptr @__errno_location() #11
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #10
  %1179 = call ptr @__errno_location() #11
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef @.str.5, i32 noundef %1169, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1172, ptr noundef %1175, ptr noundef %1178, i32 noundef %1180) #10
  br label %1182

1182:                                             ; preds = %1165, %1148
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

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

1185:                                             ; No predecessors!
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

1187:                                             ; preds = %1186, %1128
  br label %1188

1188:                                             ; preds = %1187
  br label %1189

1189:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 2, ptr %26) #10
  store i16 0, ptr %26, align 2, !tbaa !42
  br label %1190

1190:                                             ; preds = %1189
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = load ptr, ptr %24, align 8, !tbaa !9
  %1194 = call i32 @s2n_stuffer_read_uint16(ptr noundef %1193, ptr noundef %26)
  %1195 = icmp eq i32 %1194, -1
  br i1 %1195, label %1196, label %1249

1196:                                             ; preds = %1190
  br label %1197

1197:                                             ; preds = %1196
  br label %1198

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

1205:                                             ; preds = %1198
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = call i32 @fileno(ptr noundef %1206) #10
  %1208 = call i32 @isatty(i32 noundef %1207) #10
  %1209 = icmp ne i32 %1208, 0
  br i1 %1209, label %1210, label %1227

1210:                                             ; preds = %1205
  %1211 = load i32, ptr %27, align 4, !tbaa !5
  %1212 = call ptr @__errno_location() #11
  store i32 %1211, ptr %1212, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1216 = load i32, ptr %1215, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror(i32 noundef %1216, ptr noundef @.str.4)
  %1218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef @.str.4)
  %1221 = call ptr @__errno_location() #11
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @strerror(i32 noundef %1222) #10
  %1224 = call ptr @__errno_location() #11
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef @.str.2, i32 noundef %1214, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1217, ptr noundef %1220, ptr noundef %1223, i32 noundef %1225) #10
  br label %1244

1227:                                             ; preds = %1205, %1198
  %1228 = load i32, ptr %27, align 4, !tbaa !5
  %1229 = call ptr @__errno_location() #11
  store i32 %1228, ptr %1229, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror(i32 noundef %1233, ptr noundef @.str.4)
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror_debug(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call ptr @__errno_location() #11
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #10
  %1241 = call ptr @__errno_location() #11
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef @.str.5, i32 noundef %1231, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1234, ptr noundef %1237, ptr noundef %1240, i32 noundef %1242) #10
  br label %1244

1244:                                             ; preds = %1227, %1210
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1245

1245:                                             ; preds = %1244
  br label %1246

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

1247:                                             ; No predecessors!
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248, %1190
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

1251:                                             ; preds = %1250
  br label %1252

1252:                                             ; preds = %1251
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = add nsw i32 %1253, 1
  store i32 %1254, ptr @test_count, align 4, !tbaa !5
  %1255 = load i16, ptr %26, align 2, !tbaa !42
  %1256 = zext i16 %1255 to i32
  %1257 = icmp eq i32 %1256, 0
  br i1 %1257, label %1311, label %1258

1258:                                             ; preds = %1252
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

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

1267:                                             ; preds = %1260
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 @fileno(ptr noundef %1268) #10
  %1270 = call i32 @isatty(i32 noundef %1269) #10
  %1271 = icmp ne i32 %1270, 0
  br i1 %1271, label %1272, label %1289

1272:                                             ; preds = %1267
  %1273 = load i32, ptr %28, align 4, !tbaa !5
  %1274 = call ptr @__errno_location() #11
  store i32 %1273, ptr %1274, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror(i32 noundef %1278, ptr noundef @.str.4)
  %1280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = call ptr @s2n_strerror_debug(i32 noundef %1281, ptr noundef @.str.4)
  %1283 = call ptr @__errno_location() #11
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #10
  %1286 = call ptr @__errno_location() #11
  %1287 = load i32, ptr %1286, align 4, !tbaa !5
  %1288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef @.str.2, i32 noundef %1276, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1279, ptr noundef %1282, ptr noundef %1285, i32 noundef %1287) #10
  br label %1306

1289:                                             ; preds = %1267, %1260
  %1290 = load i32, ptr %28, align 4, !tbaa !5
  %1291 = call ptr @__errno_location() #11
  store i32 %1290, ptr %1291, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef @.str.4)
  %1297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror_debug(i32 noundef %1298, ptr noundef @.str.4)
  %1300 = call ptr @__errno_location() #11
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #10
  %1303 = call ptr @__errno_location() #11
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef @.str.5, i32 noundef %1293, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1296, ptr noundef %1299, ptr noundef %1302, i32 noundef %1304) #10
  br label %1306

1306:                                             ; preds = %1289, %1272
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1307

1307:                                             ; preds = %1306
  br label %1308

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

1309:                                             ; No predecessors!
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310, %1252
  br label %1312

1312:                                             ; preds = %1311
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

1314:                                             ; preds = %1313
  %1315 = load i32, ptr @test_count, align 4, !tbaa !5
  %1316 = add nsw i32 %1315, 1
  store i32 %1316, ptr @test_count, align 4, !tbaa !5
  %1317 = load ptr, ptr %24, align 8, !tbaa !9
  %1318 = getelementptr inbounds %struct.s2n_stuffer, ptr %1317, i32 0, i32 2
  %1319 = load i32, ptr %1318, align 4, !tbaa !43
  %1320 = load ptr, ptr %24, align 8, !tbaa !9
  %1321 = getelementptr inbounds %struct.s2n_stuffer, ptr %1320, i32 0, i32 1
  %1322 = load i32, ptr %1321, align 8, !tbaa !44
  %1323 = sub i32 %1319, %1322
  %1324 = icmp eq i32 %1323, 0
  br i1 %1324, label %1378, label %1325

1325:                                             ; preds = %1314
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

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

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

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

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

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

1374:                                             ; preds = %1373
  br label %1375

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

1376:                                             ; No predecessors!
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

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

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

1381:                                             ; preds = %1380
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = add nsw i32 %1382, 1
  store i32 %1383, ptr @test_count, align 4, !tbaa !5
  %1384 = load ptr, ptr %21, align 8, !tbaa !9
  %1385 = call i32 @s2n_connection_free(ptr noundef %1384)
  %1386 = icmp eq i32 %1385, -1
  br i1 %1386, label %1387, label %1440

1387:                                             ; preds = %1381
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

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

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

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

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

1435:                                             ; preds = %1418, %1401
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1436

1436:                                             ; preds = %1435
  br label %1437

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

1438:                                             ; No predecessors!
  br label %1439

1439:                                             ; preds = %1438
  br label %1440

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

1441:                                             ; preds = %1440
  br label %1442

1442:                                             ; preds = %1441
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  store ptr null, ptr %31, align 8, !tbaa !9
  br label %1443

1443:                                             ; preds = %1442
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = add nsw i32 %1444, 1
  store i32 %1445, ptr @test_count, align 4, !tbaa !5
  %1446 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1446, ptr %31, align 8, !tbaa !9
  %1447 = icmp eq ptr %1446, null
  br i1 %1447, label %1448, label %1501

1448:                                             ; preds = %1443
  br label %1449

1449:                                             ; preds = %1448
  br label %1450

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

1457:                                             ; preds = %1450
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = call i32 @fileno(ptr noundef %1458) #10
  %1460 = call i32 @isatty(i32 noundef %1459) #10
  %1461 = icmp ne i32 %1460, 0
  br i1 %1461, label %1462, label %1479

1462:                                             ; preds = %1457
  %1463 = load i32, ptr %32, align 4, !tbaa !5
  %1464 = call ptr @__errno_location() #11
  store i32 %1463, ptr %1464, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror(i32 noundef %1468, ptr noundef @.str.4)
  %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_debug(i32 noundef %1471, ptr noundef @.str.4)
  %1473 = call ptr @__errno_location() #11
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #10
  %1476 = call ptr @__errno_location() #11
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef @.str.2, i32 noundef %1466, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1469, ptr noundef %1472, ptr noundef %1475, i32 noundef %1477) #10
  br label %1496

1479:                                             ; preds = %1457, %1450
  %1480 = load i32, ptr %32, align 4, !tbaa !5
  %1481 = call ptr @__errno_location() #11
  store i32 %1480, ptr %1481, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef @.str.4)
  %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_debug(i32 noundef %1488, ptr noundef @.str.4)
  %1490 = call ptr @__errno_location() #11
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call ptr @strerror(i32 noundef %1491) #10
  %1493 = call ptr @__errno_location() #11
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef @.str.5, i32 noundef %1483, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1486, ptr noundef %1489, ptr noundef %1492, i32 noundef %1494) #10
  br label %1496

1496:                                             ; preds = %1479, %1462
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

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

1499:                                             ; No predecessors!
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

1501:                                             ; preds = %1500, %1443
  br label %1502

1502:                                             ; preds = %1501
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = add nsw i32 %1505, 1
  store i32 %1506, ptr @test_count, align 4, !tbaa !5
  %1507 = load ptr, ptr %31, align 8, !tbaa !9
  %1508 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %1507)
  %1509 = icmp eq i32 %1508, -1
  br i1 %1509, label %1510, label %1563

1510:                                             ; preds = %1504
  br label %1511

1511:                                             ; preds = %1510
  br label %1512

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

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

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

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

1558:                                             ; preds = %1541, %1524
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

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

1561:                                             ; No predecessors!
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

1563:                                             ; preds = %1562, %1504
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  %1566 = load ptr, ptr %31, align 8, !tbaa !9
  %1567 = getelementptr inbounds %struct.s2n_connection, ptr %1566, i32 0, i32 23
  store i8 34, ptr %1567, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %1568 = load ptr, ptr %31, align 8, !tbaa !9
  %1569 = getelementptr inbounds %struct.s2n_connection, ptr %1568, i32 0, i32 52
  %1570 = getelementptr inbounds %struct.s2n_handshake, ptr %1569, i32 0, i32 0
  store ptr %1570, ptr %34, align 8, !tbaa !9
  %1571 = load ptr, ptr %31, align 8, !tbaa !9
  %1572 = load i32, ptr %1571, align 8
  %1573 = and i32 %1572, -65
  %1574 = or i32 %1573, 64
  store i32 %1574, ptr %1571, align 8
  br label %1575

1575:                                             ; preds = %1565
  %1576 = load i32, ptr @test_count, align 4, !tbaa !5
  %1577 = add nsw i32 %1576, 1
  store i32 %1577, ptr @test_count, align 4, !tbaa !5
  %1578 = load ptr, ptr %31, align 8, !tbaa !9
  %1579 = call i32 @s2n_encrypted_extensions_send(ptr noundef %1578)
  %1580 = icmp eq i32 %1579, -1
  br i1 %1580, label %1581, label %1634

1581:                                             ; preds = %1575
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

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

1590:                                             ; preds = %1583
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = call i32 @fileno(ptr noundef %1591) #10
  %1593 = call i32 @isatty(i32 noundef %1592) #10
  %1594 = icmp ne i32 %1593, 0
  br i1 %1594, label %1595, label %1612

1595:                                             ; preds = %1590
  %1596 = load i32, ptr %35, align 4, !tbaa !5
  %1597 = call ptr @__errno_location() #11
  store i32 %1596, ptr %1597, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror(i32 noundef %1601, ptr noundef @.str.4)
  %1603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror_debug(i32 noundef %1604, ptr noundef @.str.4)
  %1606 = call ptr @__errno_location() #11
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @strerror(i32 noundef %1607) #10
  %1609 = call ptr @__errno_location() #11
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef @.str.2, i32 noundef %1599, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1602, ptr noundef %1605, ptr noundef %1608, i32 noundef %1610) #10
  br label %1629

1612:                                             ; preds = %1590, %1583
  %1613 = load i32, ptr %35, align 4, !tbaa !5
  %1614 = call ptr @__errno_location() #11
  store i32 %1613, ptr %1614, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror(i32 noundef %1618, ptr noundef @.str.4)
  %1620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = call ptr @s2n_strerror_debug(i32 noundef %1621, ptr noundef @.str.4)
  %1623 = call ptr @__errno_location() #11
  %1624 = load i32, ptr %1623, align 4, !tbaa !5
  %1625 = call ptr @strerror(i32 noundef %1624) #10
  %1626 = call ptr @__errno_location() #11
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1615, ptr noundef @.str.5, i32 noundef %1616, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1619, ptr noundef %1622, ptr noundef %1625, i32 noundef %1627) #10
  br label %1629

1629:                                             ; preds = %1612, %1595
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

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

1632:                                             ; No predecessors!
  br label %1633

1633:                                             ; preds = %1632
  br label %1634

1634:                                             ; preds = %1633, %1575
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 2, ptr %36) #10
  store i16 0, ptr %36, align 2, !tbaa !42
  br label %1637

1637:                                             ; preds = %1636
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr @test_count, align 4, !tbaa !5
  %1640 = load ptr, ptr %34, align 8, !tbaa !9
  %1641 = call i32 @s2n_stuffer_read_uint16(ptr noundef %1640, ptr noundef %36)
  %1642 = icmp eq i32 %1641, -1
  br i1 %1642, label %1643, label %1696

1643:                                             ; preds = %1637
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

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

1652:                                             ; preds = %1645
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = call i32 @fileno(ptr noundef %1653) #10
  %1655 = call i32 @isatty(i32 noundef %1654) #10
  %1656 = icmp ne i32 %1655, 0
  br i1 %1656, label %1657, label %1674

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

1674:                                             ; preds = %1652, %1645
  %1675 = load i32, ptr %37, align 4, !tbaa !5
  %1676 = call ptr @__errno_location() #11
  store i32 %1675, ptr %1676, align 4, !tbaa !5
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror(i32 noundef %1680, ptr noundef @.str.4)
  %1682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror_debug(i32 noundef %1683, ptr noundef @.str.4)
  %1685 = call ptr @__errno_location() #11
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call ptr @strerror(i32 noundef %1686) #10
  %1688 = call ptr @__errno_location() #11
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1677, ptr noundef @.str.5, i32 noundef %1678, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1681, ptr noundef %1684, ptr noundef %1687, i32 noundef %1689) #10
  br label %1691

1691:                                             ; preds = %1674, %1657
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

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

1694:                                             ; No predecessors!
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695, %1637
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697
  br label %1699

1699:                                             ; preds = %1698
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = add nsw i32 %1700, 1
  store i32 %1701, ptr @test_count, align 4, !tbaa !5
  %1702 = load i16, ptr %36, align 2, !tbaa !42
  %1703 = zext i16 %1702 to i32
  %1704 = icmp eq i32 %1703, 0
  br i1 %1704, label %1705, label %1758

1705:                                             ; preds = %1699
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

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

1714:                                             ; preds = %1707
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = call i32 @fileno(ptr noundef %1715) #10
  %1717 = call i32 @isatty(i32 noundef %1716) #10
  %1718 = icmp ne i32 %1717, 0
  br i1 %1718, label %1719, label %1736

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

1736:                                             ; preds = %1714, %1707
  %1737 = load i32, ptr %38, align 4, !tbaa !5
  %1738 = call ptr @__errno_location() #11
  store i32 %1737, ptr %1738, align 4, !tbaa !5
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = load i32, ptr @test_count, align 4, !tbaa !5
  %1741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror(i32 noundef %1742, ptr noundef @.str.4)
  %1744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @s2n_strerror_debug(i32 noundef %1745, ptr noundef @.str.4)
  %1747 = call ptr @__errno_location() #11
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call ptr @strerror(i32 noundef %1748) #10
  %1750 = call ptr @__errno_location() #11
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  %1752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1739, ptr noundef @.str.5, i32 noundef %1740, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1743, ptr noundef %1746, ptr noundef %1749, i32 noundef %1751) #10
  br label %1753

1753:                                             ; preds = %1736, %1719
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

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

1756:                                             ; No predecessors!
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757, %1699
  br label %1759

1759:                                             ; preds = %1758
  br label %1760

1760:                                             ; preds = %1759
  br label %1761

1761:                                             ; preds = %1760
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = add nsw i32 %1762, 1
  store i32 %1763, ptr @test_count, align 4, !tbaa !5
  %1764 = load ptr, ptr %34, align 8, !tbaa !9
  %1765 = getelementptr inbounds %struct.s2n_stuffer, ptr %1764, i32 0, i32 2
  %1766 = load i32, ptr %1765, align 4, !tbaa !43
  %1767 = load ptr, ptr %34, align 8, !tbaa !9
  %1768 = getelementptr inbounds %struct.s2n_stuffer, ptr %1767, i32 0, i32 1
  %1769 = load i32, ptr %1768, align 8, !tbaa !44
  %1770 = sub i32 %1766, %1769
  %1771 = load i16, ptr %36, align 2, !tbaa !42
  %1772 = zext i16 %1771 to i32
  %1773 = icmp eq i32 %1770, %1772
  br i1 %1773, label %1827, label %1774

1774:                                             ; preds = %1761
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

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

1783:                                             ; preds = %1776
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @fileno(ptr noundef %1784) #10
  %1786 = call i32 @isatty(i32 noundef %1785) #10
  %1787 = icmp ne i32 %1786, 0
  br i1 %1787, label %1788, label %1805

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

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

1822:                                             ; preds = %1805, %1788
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

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

1825:                                             ; No predecessors!
  br label %1826

1826:                                             ; preds = %1825
  br label %1827

1827:                                             ; preds = %1826, %1761
  br label %1828

1828:                                             ; preds = %1827
  br label %1829

1829:                                             ; preds = %1828
  call void @llvm.lifetime.start.p0(i64 2, ptr %40) #10
  store i16 0, ptr %40, align 2, !tbaa !42
  br label %1830

1830:                                             ; preds = %1829
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = add nsw i32 %1831, 1
  store i32 %1832, ptr @test_count, align 4, !tbaa !5
  %1833 = load ptr, ptr %34, align 8, !tbaa !9
  %1834 = call i32 @s2n_stuffer_read_uint16(ptr noundef %1833, ptr noundef %40)
  %1835 = icmp eq i32 %1834, -1
  br i1 %1835, label %1836, label %1889

1836:                                             ; preds = %1830
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

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

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

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

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

1884:                                             ; preds = %1867, %1850
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1885

1885:                                             ; preds = %1884
  br label %1886

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

1887:                                             ; No predecessors!
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888, %1830
  br label %1890

1890:                                             ; preds = %1889
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = add nsw i32 %1893, 1
  store i32 %1894, ptr @test_count, align 4, !tbaa !5
  %1895 = load i16, ptr %40, align 2, !tbaa !42
  %1896 = zext i16 %1895 to i32
  %1897 = load i16, ptr @s2n_server_server_name_extension, align 8, !tbaa !45
  %1898 = zext i16 %1897 to i32
  %1899 = icmp eq i32 %1896, %1898
  br i1 %1899, label %1953, label %1900

1900:                                             ; preds = %1892
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

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

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

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

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

1948:                                             ; preds = %1931, %1914
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

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

1951:                                             ; No predecessors!
  br label %1952

1952:                                             ; preds = %1951
  br label %1953

1953:                                             ; preds = %1952, %1892
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = add nsw i32 %1957, 1
  store i32 %1958, ptr @test_count, align 4, !tbaa !5
  %1959 = load ptr, ptr %31, align 8, !tbaa !9
  %1960 = call i32 @s2n_connection_free(ptr noundef %1959)
  %1961 = icmp eq i32 %1960, -1
  br i1 %1961, label %1962, label %2015

1962:                                             ; preds = %1956
  br label %1963

1963:                                             ; preds = %1962
  br label %1964

1964:                                             ; preds = %1963
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1965 = call ptr @__errno_location() #11
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  store i32 %1966, ptr %43, align 4, !tbaa !5
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @s2n_print_stacktrace(ptr noundef %1967)
  %1969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1970 = trunc i8 %1969 to i1
  br i1 %1970, label %1971, label %1993

1971:                                             ; preds = %1964
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = call i32 @fileno(ptr noundef %1972) #10
  %1974 = call i32 @isatty(i32 noundef %1973) #10
  %1975 = icmp ne i32 %1974, 0
  br i1 %1975, label %1976, label %1993

1976:                                             ; preds = %1971
  %1977 = load i32, ptr %43, align 4, !tbaa !5
  %1978 = call ptr @__errno_location() #11
  store i32 %1977, ptr %1978, align 4, !tbaa !5
  %1979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %1981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror(i32 noundef %1982, ptr noundef @.str.4)
  %1984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef @.str.4)
  %1987 = call ptr @__errno_location() #11
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @strerror(i32 noundef %1988) #10
  %1990 = call ptr @__errno_location() #11
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1979, ptr noundef @.str.2, i32 noundef %1980, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1983, ptr noundef %1986, ptr noundef %1989, i32 noundef %1991) #10
  br label %2010

1993:                                             ; preds = %1971, %1964
  %1994 = load i32, ptr %43, align 4, !tbaa !5
  %1995 = call ptr @__errno_location() #11
  store i32 %1994, ptr %1995, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %1998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror(i32 noundef %1999, ptr noundef @.str.4)
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror_debug(i32 noundef %2002, ptr noundef @.str.4)
  %2004 = call ptr @__errno_location() #11
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #10
  %2007 = call ptr @__errno_location() #11
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef @.str.5, i32 noundef %1997, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2000, ptr noundef %2003, ptr noundef %2006, i32 noundef %2008) #10
  br label %2010

2010:                                             ; preds = %1993, %1976
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

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

2013:                                             ; No predecessors!
  br label %2014

2014:                                             ; preds = %2013
  br label %2015

2015:                                             ; preds = %2014, %1956
  br label %2016

2016:                                             ; preds = %2015
  br label %2017

2017:                                             ; preds = %2016
  call void @llvm.lifetime.end.p0(i64 2, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

2019:                                             ; preds = %2018
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr @test_count, align 4, !tbaa !5
  %2022 = call i32 @s2n_encrypted_extensions_recv(ptr noundef null)
  %2023 = icmp eq i32 %2022, -1
  br i1 %2023, label %2075, label %2024

2024:                                             ; preds = %2019
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %2027 = call ptr @__errno_location() #11
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  store i32 %2028, ptr %44, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = call i32 @s2n_print_stacktrace(ptr noundef %2029)
  %2031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2032 = trunc i8 %2031 to i1
  br i1 %2032, label %2033, label %2055

2033:                                             ; preds = %2026
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = call i32 @fileno(ptr noundef %2034) #10
  %2036 = call i32 @isatty(i32 noundef %2035) #10
  %2037 = icmp ne i32 %2036, 0
  br i1 %2037, label %2038, label %2055

2038:                                             ; preds = %2033
  %2039 = load i32, ptr %44, align 4, !tbaa !5
  %2040 = call ptr @__errno_location() #11
  store i32 %2039, ptr %2040, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call ptr @__errno_location() #11
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @strerror(i32 noundef %2050) #10
  %2052 = call ptr @__errno_location() #11
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef @.str.2, i32 noundef %2042, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2045, ptr noundef %2048, ptr noundef %2051, i32 noundef %2053) #10
  br label %2072

2055:                                             ; preds = %2033, %2026
  %2056 = load i32, ptr %44, align 4, !tbaa !5
  %2057 = call ptr @__errno_location() #11
  store i32 %2056, ptr %2057, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = load i32, ptr @test_count, align 4, !tbaa !5
  %2060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2061 = load i32, ptr %2060, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror(i32 noundef %2061, ptr noundef @.str.4)
  %2063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror_debug(i32 noundef %2064, ptr noundef @.str.4)
  %2066 = call ptr @__errno_location() #11
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @strerror(i32 noundef %2067) #10
  %2069 = call ptr @__errno_location() #11
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2058, ptr noundef @.str.5, i32 noundef %2059, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2062, ptr noundef %2065, ptr noundef %2068, i32 noundef %2070) #10
  br label %2072

2072:                                             ; preds = %2055, %2038
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %2073

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

2074:                                             ; No predecessors!
  br label %2075

2075:                                             ; preds = %2074, %2019
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

2077:                                             ; preds = %2076
  %2078 = load i32, ptr @test_count, align 4, !tbaa !5
  %2079 = add nsw i32 %2078, 1
  store i32 %2079, ptr @test_count, align 4, !tbaa !5
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = icmp eq i32 %2081, 0
  br i1 %2082, label %2083, label %2134

2083:                                             ; preds = %2077
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %2086 = call ptr @__errno_location() #11
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  store i32 %2087, ptr %45, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = call i32 @s2n_print_stacktrace(ptr noundef %2088)
  %2090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2091 = trunc i8 %2090 to i1
  br i1 %2091, label %2092, label %2114

2092:                                             ; preds = %2085
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = call i32 @fileno(ptr noundef %2093) #10
  %2095 = call i32 @isatty(i32 noundef %2094) #10
  %2096 = icmp ne i32 %2095, 0
  br i1 %2096, label %2097, label %2114

2097:                                             ; preds = %2092
  %2098 = load i32, ptr %45, align 4, !tbaa !5
  %2099 = call ptr @__errno_location() #11
  store i32 %2098, ptr %2099, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror(i32 noundef %2103, ptr noundef @.str.4)
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call ptr @__errno_location() #11
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @strerror(i32 noundef %2109) #10
  %2111 = call ptr @__errno_location() #11
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2100, ptr noundef @.str.2, i32 noundef %2101, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2104, ptr noundef %2107, ptr noundef %2110, i32 noundef %2112) #10
  br label %2131

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

2131:                                             ; preds = %2114, %2097
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %2132

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

2133:                                             ; No predecessors!
  br label %2134

2134:                                             ; preds = %2133, %2077
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135
  %2137 = load i32, ptr @test_count, align 4, !tbaa !5
  %2138 = add nsw i32 %2137, 1
  store i32 %2138, ptr @test_count, align 4, !tbaa !5
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef @.str.4)
  %2142 = icmp eq ptr %2141, null
  br i1 %2142, label %2143, label %2194

2143:                                             ; preds = %2136
  br label %2144

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2144
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %2146 = call ptr @__errno_location() #11
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  store i32 %2147, ptr %46, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = call i32 @s2n_print_stacktrace(ptr noundef %2148)
  %2150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2151 = trunc i8 %2150 to i1
  br i1 %2151, label %2152, label %2174

2152:                                             ; preds = %2145
  %2153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2154 = call i32 @fileno(ptr noundef %2153) #10
  %2155 = call i32 @isatty(i32 noundef %2154) #10
  %2156 = icmp ne i32 %2155, 0
  br i1 %2156, label %2157, label %2174

2157:                                             ; preds = %2152
  %2158 = load i32, ptr %46, align 4, !tbaa !5
  %2159 = call ptr @__errno_location() #11
  store i32 %2158, ptr %2159, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = load i32, ptr @test_count, align 4, !tbaa !5
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror(i32 noundef %2163, ptr noundef @.str.4)
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror_debug(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call ptr @__errno_location() #11
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @strerror(i32 noundef %2169) #10
  %2171 = call ptr @__errno_location() #11
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2160, ptr noundef @.str.2, i32 noundef %2161, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2164, ptr noundef %2167, ptr noundef %2170, i32 noundef %2172) #10
  br label %2191

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

2191:                                             ; preds = %2174, %2157
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2192

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

2193:                                             ; No predecessors!
  br label %2194

2194:                                             ; preds = %2193, %2136
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  %2197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2197, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2198 = call ptr @__errno_location() #11
  store i32 0, ptr %2198, align 4, !tbaa !5
  br label %2199

2199:                                             ; preds = %2196
  br label %2200

2200:                                             ; preds = %2199
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  store ptr null, ptr %47, align 8, !tbaa !9
  br label %2201

2201:                                             ; preds = %2200
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr @test_count, align 4, !tbaa !5
  %2204 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2204, ptr %47, align 8, !tbaa !9
  %2205 = icmp eq ptr %2204, null
  br i1 %2205, label %2206, label %2259

2206:                                             ; preds = %2201
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %2209 = call ptr @__errno_location() #11
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  store i32 %2210, ptr %48, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = call i32 @s2n_print_stacktrace(ptr noundef %2211)
  %2213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2214 = trunc i8 %2213 to i1
  br i1 %2214, label %2215, label %2237

2215:                                             ; preds = %2208
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = call i32 @fileno(ptr noundef %2216) #10
  %2218 = call i32 @isatty(i32 noundef %2217) #10
  %2219 = icmp ne i32 %2218, 0
  br i1 %2219, label %2220, label %2237

2220:                                             ; preds = %2215
  %2221 = load i32, ptr %48, align 4, !tbaa !5
  %2222 = call ptr @__errno_location() #11
  store i32 %2221, ptr %2222, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @s2n_strerror(i32 noundef %2226, ptr noundef @.str.4)
  %2228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror_debug(i32 noundef %2229, ptr noundef @.str.4)
  %2231 = call ptr @__errno_location() #11
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @strerror(i32 noundef %2232) #10
  %2234 = call ptr @__errno_location() #11
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2223, ptr noundef @.str.2, i32 noundef %2224, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2227, ptr noundef %2230, ptr noundef %2233, i32 noundef %2235) #10
  br label %2254

2237:                                             ; preds = %2215, %2208
  %2238 = load i32, ptr %48, align 4, !tbaa !5
  %2239 = call ptr @__errno_location() #11
  store i32 %2238, ptr %2239, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror(i32 noundef %2243, ptr noundef @.str.4)
  %2245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror_debug(i32 noundef %2246, ptr noundef @.str.4)
  %2248 = call ptr @__errno_location() #11
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call ptr @strerror(i32 noundef %2249) #10
  %2251 = call ptr @__errno_location() #11
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2240, ptr noundef @.str.5, i32 noundef %2241, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2244, ptr noundef %2247, ptr noundef %2250, i32 noundef %2252) #10
  br label %2254

2254:                                             ; preds = %2237, %2220
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

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

2257:                                             ; No predecessors!
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

2259:                                             ; preds = %2258, %2201
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = add nsw i32 %2263, 1
  store i32 %2264, ptr @test_count, align 4, !tbaa !5
  %2265 = load ptr, ptr %47, align 8, !tbaa !9
  %2266 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %2265)
  %2267 = icmp eq i32 %2266, -1
  br i1 %2267, label %2268, label %2321

2268:                                             ; preds = %2262
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2269
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2271 = call ptr @__errno_location() #11
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  store i32 %2272, ptr %49, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = call i32 @s2n_print_stacktrace(ptr noundef %2273)
  %2275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2276 = trunc i8 %2275 to i1
  br i1 %2276, label %2277, label %2299

2277:                                             ; preds = %2270
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @fileno(ptr noundef %2278) #10
  %2280 = call i32 @isatty(i32 noundef %2279) #10
  %2281 = icmp ne i32 %2280, 0
  br i1 %2281, label %2282, label %2299

2282:                                             ; preds = %2277
  %2283 = load i32, ptr %49, align 4, !tbaa !5
  %2284 = call ptr @__errno_location() #11
  store i32 %2283, ptr %2284, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef @.str.4)
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call ptr @__errno_location() #11
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #10
  %2296 = call ptr @__errno_location() #11
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2285, ptr noundef @.str.2, i32 noundef %2286, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2289, ptr noundef %2292, ptr noundef %2295, i32 noundef %2297) #10
  br label %2316

2299:                                             ; preds = %2277, %2270
  %2300 = load i32, ptr %49, align 4, !tbaa !5
  %2301 = call ptr @__errno_location() #11
  store i32 %2300, ptr %2301, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2305 = load i32, ptr %2304, align 4, !tbaa !5
  %2306 = call ptr @s2n_strerror(i32 noundef %2305, ptr noundef @.str.4)
  %2307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror_debug(i32 noundef %2308, ptr noundef @.str.4)
  %2310 = call ptr @__errno_location() #11
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @strerror(i32 noundef %2311) #10
  %2313 = call ptr @__errno_location() #11
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2302, ptr noundef @.str.5, i32 noundef %2303, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2306, ptr noundef %2309, ptr noundef %2312, i32 noundef %2314) #10
  br label %2316

2316:                                             ; preds = %2299, %2282
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

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

2319:                                             ; No predecessors!
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320, %2262
  br label %2322

2322:                                             ; preds = %2321
  br label %2323

2323:                                             ; preds = %2322
  %2324 = load ptr, ptr %47, align 8, !tbaa !9
  %2325 = getelementptr inbounds %struct.s2n_connection, ptr %2324, i32 0, i32 23
  store i8 33, ptr %2325, align 4, !tbaa !15
  br label %2326

2326:                                             ; preds = %2323
  br label %2327

2327:                                             ; preds = %2326
  br label %2328

2328:                                             ; preds = %2327
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = add nsw i32 %2329, 1
  store i32 %2330, ptr @test_count, align 4, !tbaa !5
  %2331 = load ptr, ptr %47, align 8, !tbaa !9
  %2332 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %2331)
  %2333 = icmp eq i32 %2332, -1
  br i1 %2333, label %2387, label %2334

2334:                                             ; preds = %2328
  br label %2335

2335:                                             ; preds = %2334
  br label %2336

2336:                                             ; preds = %2335
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2337 = call ptr @__errno_location() #11
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  store i32 %2338, ptr %50, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @s2n_print_stacktrace(ptr noundef %2339)
  %2341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2342 = trunc i8 %2341 to i1
  br i1 %2342, label %2343, label %2365

2343:                                             ; preds = %2336
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = call i32 @fileno(ptr noundef %2344) #10
  %2346 = call i32 @isatty(i32 noundef %2345) #10
  %2347 = icmp ne i32 %2346, 0
  br i1 %2347, label %2348, label %2365

2348:                                             ; preds = %2343
  %2349 = load i32, ptr %50, align 4, !tbaa !5
  %2350 = call ptr @__errno_location() #11
  store i32 %2349, ptr %2350, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror(i32 noundef %2354, ptr noundef @.str.4)
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror_debug(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call ptr @__errno_location() #11
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @strerror(i32 noundef %2360) #10
  %2362 = call ptr @__errno_location() #11
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef @.str.2, i32 noundef %2352, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2355, ptr noundef %2358, ptr noundef %2361, i32 noundef %2363) #10
  br label %2382

2365:                                             ; preds = %2343, %2336
  %2366 = load i32, ptr %50, align 4, !tbaa !5
  %2367 = call ptr @__errno_location() #11
  store i32 %2366, ptr %2367, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror(i32 noundef %2371, ptr noundef @.str.4)
  %2373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef @.str.4)
  %2376 = call ptr @__errno_location() #11
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @strerror(i32 noundef %2377) #10
  %2379 = call ptr @__errno_location() #11
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2368, ptr noundef @.str.5, i32 noundef %2369, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2372, ptr noundef %2375, ptr noundef %2378, i32 noundef %2380) #10
  br label %2382

2382:                                             ; preds = %2365, %2348
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

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

2385:                                             ; No predecessors!
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

2387:                                             ; preds = %2386, %2328
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389
  %2391 = load i32, ptr @test_count, align 4, !tbaa !5
  %2392 = add nsw i32 %2391, 1
  store i32 %2392, ptr @test_count, align 4, !tbaa !5
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = icmp eq i32 %2394, 335544322
  br i1 %2395, label %2449, label %2396

2396:                                             ; preds = %2390
  br label %2397

2397:                                             ; preds = %2396
  br label %2398

2398:                                             ; preds = %2397
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2399 = call ptr @__errno_location() #11
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  store i32 %2400, ptr %51, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = call i32 @s2n_print_stacktrace(ptr noundef %2401)
  %2403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2404 = trunc i8 %2403 to i1
  br i1 %2404, label %2405, label %2427

2405:                                             ; preds = %2398
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = call i32 @fileno(ptr noundef %2406) #10
  %2408 = call i32 @isatty(i32 noundef %2407) #10
  %2409 = icmp ne i32 %2408, 0
  br i1 %2409, label %2410, label %2427

2410:                                             ; preds = %2405
  %2411 = load i32, ptr %51, align 4, !tbaa !5
  %2412 = call ptr @__errno_location() #11
  store i32 %2411, ptr %2412, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call ptr @__errno_location() #11
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @strerror(i32 noundef %2422) #10
  %2424 = call ptr @__errno_location() #11
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2413, ptr noundef @.str.2, i32 noundef %2414, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2417, ptr noundef %2420, ptr noundef %2423, i32 noundef %2425) #10
  br label %2444

2427:                                             ; preds = %2405, %2398
  %2428 = load i32, ptr %51, align 4, !tbaa !5
  %2429 = call ptr @__errno_location() #11
  store i32 %2428, ptr %2429, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = load i32, ptr @test_count, align 4, !tbaa !5
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror(i32 noundef %2433, ptr noundef @.str.4)
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror_debug(i32 noundef %2436, ptr noundef @.str.4)
  %2438 = call ptr @__errno_location() #11
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @strerror(i32 noundef %2439) #10
  %2441 = call ptr @__errno_location() #11
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2430, ptr noundef @.str.5, i32 noundef %2431, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2434, ptr noundef %2437, ptr noundef %2440, i32 noundef %2442) #10
  br label %2444

2444:                                             ; preds = %2427, %2410
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

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

2447:                                             ; No predecessors!
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448, %2390
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450
  br label %2452

2452:                                             ; preds = %2451
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = add nsw i32 %2453, 1
  store i32 %2454, ptr @test_count, align 4, !tbaa !5
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef @.str.4)
  %2458 = icmp eq ptr %2457, null
  br i1 %2458, label %2459, label %2512

2459:                                             ; preds = %2452
  br label %2460

2460:                                             ; preds = %2459
  br label %2461

2461:                                             ; preds = %2460
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2462 = call ptr @__errno_location() #11
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  store i32 %2463, ptr %52, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = call i32 @s2n_print_stacktrace(ptr noundef %2464)
  %2466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2467 = trunc i8 %2466 to i1
  br i1 %2467, label %2468, label %2490

2468:                                             ; preds = %2461
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = call i32 @fileno(ptr noundef %2469) #10
  %2471 = call i32 @isatty(i32 noundef %2470) #10
  %2472 = icmp ne i32 %2471, 0
  br i1 %2472, label %2473, label %2490

2473:                                             ; preds = %2468
  %2474 = load i32, ptr %52, align 4, !tbaa !5
  %2475 = call ptr @__errno_location() #11
  store i32 %2474, ptr %2475, align 4, !tbaa !5
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef @.str.4)
  %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_debug(i32 noundef %2482, ptr noundef @.str.4)
  %2484 = call ptr @__errno_location() #11
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @strerror(i32 noundef %2485) #10
  %2487 = call ptr @__errno_location() #11
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2476, ptr noundef @.str.2, i32 noundef %2477, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2480, ptr noundef %2483, ptr noundef %2486, i32 noundef %2488) #10
  br label %2507

2490:                                             ; preds = %2468, %2461
  %2491 = load i32, ptr %52, align 4, !tbaa !5
  %2492 = call ptr @__errno_location() #11
  store i32 %2491, ptr %2492, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror(i32 noundef %2496, ptr noundef @.str.4)
  %2498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @s2n_strerror_debug(i32 noundef %2499, ptr noundef @.str.4)
  %2501 = call ptr @__errno_location() #11
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @strerror(i32 noundef %2502) #10
  %2504 = call ptr @__errno_location() #11
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2493, ptr noundef @.str.5, i32 noundef %2494, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2497, ptr noundef %2500, ptr noundef %2503, i32 noundef %2505) #10
  br label %2507

2507:                                             ; preds = %2490, %2473
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

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

2510:                                             ; No predecessors!
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511, %2452
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2518, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2519 = call ptr @__errno_location() #11
  store i32 0, ptr %2519, align 4, !tbaa !5
  br label %2520

2520:                                             ; preds = %2517
  br label %2521

2521:                                             ; preds = %2520
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

2523:                                             ; preds = %2522
  %2524 = load ptr, ptr %47, align 8, !tbaa !9
  %2525 = getelementptr inbounds %struct.s2n_connection, ptr %2524, i32 0, i32 23
  store i8 34, ptr %2525, align 4, !tbaa !15
  br label %2526

2526:                                             ; preds = %2523
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = add nsw i32 %2527, 1
  store i32 %2528, ptr @test_count, align 4, !tbaa !5
  %2529 = load ptr, ptr %47, align 8, !tbaa !9
  %2530 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %2529)
  %2531 = icmp eq i32 %2530, -1
  br i1 %2531, label %2532, label %2585

2532:                                             ; preds = %2526
  br label %2533

2533:                                             ; preds = %2532
  br label %2534

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

2541:                                             ; preds = %2534
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = call i32 @fileno(ptr noundef %2542) #10
  %2544 = call i32 @isatty(i32 noundef %2543) #10
  %2545 = icmp ne i32 %2544, 0
  br i1 %2545, label %2546, label %2563

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

2563:                                             ; preds = %2541, %2534
  %2564 = load i32, ptr %53, align 4, !tbaa !5
  %2565 = call ptr @__errno_location() #11
  store i32 %2564, ptr %2565, align 4, !tbaa !5
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = load i32, ptr @test_count, align 4, !tbaa !5
  %2568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2569 = load i32, ptr %2568, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror(i32 noundef %2569, ptr noundef @.str.4)
  %2571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror_debug(i32 noundef %2572, ptr noundef @.str.4)
  %2574 = call ptr @__errno_location() #11
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @strerror(i32 noundef %2575) #10
  %2577 = call ptr @__errno_location() #11
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2566, ptr noundef @.str.5, i32 noundef %2567, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2570, ptr noundef %2573, ptr noundef %2576, i32 noundef %2578) #10
  br label %2580

2580:                                             ; preds = %2563, %2546
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

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

2583:                                             ; No predecessors!
  br label %2584

2584:                                             ; preds = %2583
  br label %2585

2585:                                             ; preds = %2584, %2526
  br label %2586

2586:                                             ; preds = %2585
  br label %2587

2587:                                             ; preds = %2586
  br label %2588

2588:                                             ; preds = %2587
  %2589 = load i32, ptr @test_count, align 4, !tbaa !5
  %2590 = add nsw i32 %2589, 1
  store i32 %2590, ptr @test_count, align 4, !tbaa !5
  %2591 = load ptr, ptr %47, align 8, !tbaa !9
  %2592 = call i32 @s2n_connection_free(ptr noundef %2591)
  %2593 = icmp eq i32 %2592, -1
  br i1 %2593, label %2594, label %2647

2594:                                             ; preds = %2588
  br label %2595

2595:                                             ; preds = %2594
  br label %2596

2596:                                             ; preds = %2595
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2597 = call ptr @__errno_location() #11
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  store i32 %2598, ptr %54, align 4, !tbaa !5
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = call i32 @s2n_print_stacktrace(ptr noundef %2599)
  %2601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2602 = trunc i8 %2601 to i1
  br i1 %2602, label %2603, label %2625

2603:                                             ; preds = %2596
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = call i32 @fileno(ptr noundef %2604) #10
  %2606 = call i32 @isatty(i32 noundef %2605) #10
  %2607 = icmp ne i32 %2606, 0
  br i1 %2607, label %2608, label %2625

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

2625:                                             ; preds = %2603, %2596
  %2626 = load i32, ptr %54, align 4, !tbaa !5
  %2627 = call ptr @__errno_location() #11
  store i32 %2626, ptr %2627, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = load i32, ptr @test_count, align 4, !tbaa !5
  %2630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = call ptr @s2n_strerror(i32 noundef %2631, ptr noundef @.str.4)
  %2633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call ptr @s2n_strerror_debug(i32 noundef %2634, ptr noundef @.str.4)
  %2636 = call ptr @__errno_location() #11
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  %2638 = call ptr @strerror(i32 noundef %2637) #10
  %2639 = call ptr @__errno_location() #11
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2628, ptr noundef @.str.5, i32 noundef %2629, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2632, ptr noundef %2635, ptr noundef %2638, i32 noundef %2640) #10
  br label %2642

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

2643:                                             ; preds = %2642
  br label %2644

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

2645:                                             ; No predecessors!
  br label %2646

2646:                                             ; preds = %2645
  br label %2647

2647:                                             ; preds = %2646, %2588
  br label %2648

2648:                                             ; preds = %2647
  br label %2649

2649:                                             ; preds = %2648
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  store ptr null, ptr %55, align 8, !tbaa !9
  br label %2650

2650:                                             ; preds = %2649
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr @test_count, align 4, !tbaa !5
  %2653 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2653, ptr %55, align 8, !tbaa !9
  %2654 = icmp eq ptr %2653, null
  br i1 %2654, label %2655, label %2708

2655:                                             ; preds = %2650
  br label %2656

2656:                                             ; preds = %2655
  br label %2657

2657:                                             ; preds = %2656
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2658 = call ptr @__errno_location() #11
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  store i32 %2659, ptr %56, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @s2n_print_stacktrace(ptr noundef %2660)
  %2662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2663 = trunc i8 %2662 to i1
  br i1 %2663, label %2664, label %2686

2664:                                             ; preds = %2657
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @fileno(ptr noundef %2665) #10
  %2667 = call i32 @isatty(i32 noundef %2666) #10
  %2668 = icmp ne i32 %2667, 0
  br i1 %2668, label %2669, label %2686

2669:                                             ; preds = %2664
  %2670 = load i32, ptr %56, align 4, !tbaa !5
  %2671 = call ptr @__errno_location() #11
  store i32 %2670, ptr %2671, align 4, !tbaa !5
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror(i32 noundef %2675, ptr noundef @.str.4)
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror_debug(i32 noundef %2678, ptr noundef @.str.4)
  %2680 = call ptr @__errno_location() #11
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @strerror(i32 noundef %2681) #10
  %2683 = call ptr @__errno_location() #11
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2672, ptr noundef @.str.2, i32 noundef %2673, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2676, ptr noundef %2679, ptr noundef %2682, i32 noundef %2684) #10
  br label %2703

2686:                                             ; preds = %2664, %2657
  %2687 = load i32, ptr %56, align 4, !tbaa !5
  %2688 = call ptr @__errno_location() #11
  store i32 %2687, ptr %2688, align 4, !tbaa !5
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = load i32, ptr @test_count, align 4, !tbaa !5
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror(i32 noundef %2692, ptr noundef @.str.4)
  %2694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror_debug(i32 noundef %2695, ptr noundef @.str.4)
  %2697 = call ptr @__errno_location() #11
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call ptr @strerror(i32 noundef %2698) #10
  %2700 = call ptr @__errno_location() #11
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2689, ptr noundef @.str.5, i32 noundef %2690, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2693, ptr noundef %2696, ptr noundef %2699, i32 noundef %2701) #10
  br label %2703

2703:                                             ; preds = %2686, %2669
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

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

2706:                                             ; No predecessors!
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707, %2650
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

2710:                                             ; preds = %2709
  br label %2711

2711:                                             ; preds = %2710
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = add nsw i32 %2712, 1
  store i32 %2713, ptr @test_count, align 4, !tbaa !5
  %2714 = load ptr, ptr %55, align 8, !tbaa !9
  %2715 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %2714)
  %2716 = icmp eq i32 %2715, -1
  br i1 %2716, label %2717, label %2770

2717:                                             ; preds = %2711
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2720 = call ptr @__errno_location() #11
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  store i32 %2721, ptr %57, align 4, !tbaa !5
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @s2n_print_stacktrace(ptr noundef %2722)
  %2724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2725 = trunc i8 %2724 to i1
  br i1 %2725, label %2726, label %2748

2726:                                             ; preds = %2719
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = call i32 @fileno(ptr noundef %2727) #10
  %2729 = call i32 @isatty(i32 noundef %2728) #10
  %2730 = icmp ne i32 %2729, 0
  br i1 %2730, label %2731, label %2748

2731:                                             ; preds = %2726
  %2732 = load i32, ptr %57, align 4, !tbaa !5
  %2733 = call ptr @__errno_location() #11
  store i32 %2732, ptr %2733, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror(i32 noundef %2737, ptr noundef @.str.4)
  %2739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror_debug(i32 noundef %2740, ptr noundef @.str.4)
  %2742 = call ptr @__errno_location() #11
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @strerror(i32 noundef %2743) #10
  %2745 = call ptr @__errno_location() #11
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2734, ptr noundef @.str.2, i32 noundef %2735, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2738, ptr noundef %2741, ptr noundef %2744, i32 noundef %2746) #10
  br label %2765

2748:                                             ; preds = %2726, %2719
  %2749 = load i32, ptr %57, align 4, !tbaa !5
  %2750 = call ptr @__errno_location() #11
  store i32 %2749, ptr %2750, align 4, !tbaa !5
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror(i32 noundef %2754, ptr noundef @.str.4)
  %2756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror_debug(i32 noundef %2757, ptr noundef @.str.4)
  %2759 = call ptr @__errno_location() #11
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #10
  %2762 = call ptr @__errno_location() #11
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2751, ptr noundef @.str.5, i32 noundef %2752, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2755, ptr noundef %2758, ptr noundef %2761, i32 noundef %2763) #10
  br label %2765

2765:                                             ; preds = %2748, %2731
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

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

2768:                                             ; No predecessors!
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

2770:                                             ; preds = %2769, %2711
  br label %2771

2771:                                             ; preds = %2770
  br label %2772

2772:                                             ; preds = %2771
  %2773 = load ptr, ptr %55, align 8, !tbaa !9
  %2774 = getelementptr inbounds %struct.s2n_connection, ptr %2773, i32 0, i32 23
  store i8 34, ptr %2774, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %2775 = load ptr, ptr %55, align 8, !tbaa !9
  %2776 = getelementptr inbounds %struct.s2n_connection, ptr %2775, i32 0, i32 52
  %2777 = getelementptr inbounds %struct.s2n_handshake, ptr %2776, i32 0, i32 0
  store ptr %2777, ptr %58, align 8, !tbaa !9
  br label %2778

2778:                                             ; preds = %2772
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %2780 = add nsw i32 %2779, 1
  store i32 %2780, ptr @test_count, align 4, !tbaa !5
  %2781 = load ptr, ptr %55, align 8, !tbaa !9
  %2782 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %2781)
  %2783 = icmp eq i32 %2782, -1
  br i1 %2783, label %2784, label %2837

2784:                                             ; preds = %2778
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2787 = call ptr @__errno_location() #11
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  store i32 %2788, ptr %59, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @s2n_print_stacktrace(ptr noundef %2789)
  %2791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2792 = trunc i8 %2791 to i1
  br i1 %2792, label %2793, label %2815

2793:                                             ; preds = %2786
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = call i32 @fileno(ptr noundef %2794) #10
  %2796 = call i32 @isatty(i32 noundef %2795) #10
  %2797 = icmp ne i32 %2796, 0
  br i1 %2797, label %2798, label %2815

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

2815:                                             ; preds = %2793, %2786
  %2816 = load i32, ptr %59, align 4, !tbaa !5
  %2817 = call ptr @__errno_location() #11
  store i32 %2816, ptr %2817, align 4, !tbaa !5
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = load i32, ptr @test_count, align 4, !tbaa !5
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror(i32 noundef %2821, ptr noundef @.str.4)
  %2823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call ptr @s2n_strerror_debug(i32 noundef %2824, ptr noundef @.str.4)
  %2826 = call ptr @__errno_location() #11
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @strerror(i32 noundef %2827) #10
  %2829 = call ptr @__errno_location() #11
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2818, ptr noundef @.str.5, i32 noundef %2819, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2822, ptr noundef %2825, ptr noundef %2828, i32 noundef %2830) #10
  br label %2832

2832:                                             ; preds = %2815, %2798
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

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

2835:                                             ; No predecessors!
  br label %2836

2836:                                             ; preds = %2835
  br label %2837

2837:                                             ; preds = %2836, %2778
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = add nsw i32 %2841, 1
  store i32 %2842, ptr @test_count, align 4, !tbaa !5
  %2843 = load ptr, ptr %58, align 8, !tbaa !9
  %2844 = getelementptr inbounds %struct.s2n_stuffer, ptr %2843, i32 0, i32 2
  %2845 = load i32, ptr %2844, align 4, !tbaa !43
  %2846 = load ptr, ptr %58, align 8, !tbaa !9
  %2847 = getelementptr inbounds %struct.s2n_stuffer, ptr %2846, i32 0, i32 1
  %2848 = load i32, ptr %2847, align 8, !tbaa !44
  %2849 = sub i32 %2845, %2848
  %2850 = icmp eq i32 %2849, 0
  br i1 %2850, label %2904, label %2851

2851:                                             ; preds = %2840
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

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

2860:                                             ; preds = %2853
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = call i32 @fileno(ptr noundef %2861) #10
  %2863 = call i32 @isatty(i32 noundef %2862) #10
  %2864 = icmp ne i32 %2863, 0
  br i1 %2864, label %2865, label %2882

2865:                                             ; preds = %2860
  %2866 = load i32, ptr %60, align 4, !tbaa !5
  %2867 = call ptr @__errno_location() #11
  store i32 %2866, ptr %2867, align 4, !tbaa !5
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror(i32 noundef %2871, ptr noundef @.str.4)
  %2873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call ptr @s2n_strerror_debug(i32 noundef %2874, ptr noundef @.str.4)
  %2876 = call ptr @__errno_location() #11
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call ptr @strerror(i32 noundef %2877) #10
  %2879 = call ptr @__errno_location() #11
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2868, ptr noundef @.str.2, i32 noundef %2869, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2872, ptr noundef %2875, ptr noundef %2878, i32 noundef %2880) #10
  br label %2899

2882:                                             ; preds = %2860, %2853
  %2883 = load i32, ptr %60, align 4, !tbaa !5
  %2884 = call ptr @__errno_location() #11
  store i32 %2883, ptr %2884, align 4, !tbaa !5
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = load i32, ptr @test_count, align 4, !tbaa !5
  %2887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2888 = load i32, ptr %2887, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror(i32 noundef %2888, ptr noundef @.str.4)
  %2890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2891 = load i32, ptr %2890, align 4, !tbaa !5
  %2892 = call ptr @s2n_strerror_debug(i32 noundef %2891, ptr noundef @.str.4)
  %2893 = call ptr @__errno_location() #11
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = call ptr @strerror(i32 noundef %2894) #10
  %2896 = call ptr @__errno_location() #11
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2885, ptr noundef @.str.5, i32 noundef %2886, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 134, ptr noundef %2889, ptr noundef %2892, ptr noundef %2895, i32 noundef %2897) #10
  br label %2899

2899:                                             ; preds = %2882, %2865
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

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

2902:                                             ; No predecessors!
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903, %2840
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = add nsw i32 %2908, 1
  store i32 %2909, ptr @test_count, align 4, !tbaa !5
  %2910 = load ptr, ptr %55, align 8, !tbaa !9
  %2911 = load ptr, ptr %58, align 8, !tbaa !9
  %2912 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef %2910, ptr noundef %2911)
  %2913 = icmp eq i32 %2912, -1
  br i1 %2913, label %2914, label %2967

2914:                                             ; preds = %2907
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2917 = call ptr @__errno_location() #11
  %2918 = load i32, ptr %2917, align 4, !tbaa !5
  store i32 %2918, ptr %61, align 4, !tbaa !5
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = call i32 @s2n_print_stacktrace(ptr noundef %2919)
  %2921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2922 = trunc i8 %2921 to i1
  br i1 %2922, label %2923, label %2945

2923:                                             ; preds = %2916
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = call i32 @fileno(ptr noundef %2924) #10
  %2926 = call i32 @isatty(i32 noundef %2925) #10
  %2927 = icmp ne i32 %2926, 0
  br i1 %2927, label %2928, label %2945

2928:                                             ; preds = %2923
  %2929 = load i32, ptr %61, align 4, !tbaa !5
  %2930 = call ptr @__errno_location() #11
  store i32 %2929, ptr %2930, align 4, !tbaa !5
  %2931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2932 = load i32, ptr @test_count, align 4, !tbaa !5
  %2933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror(i32 noundef %2934, ptr noundef @.str.4)
  %2936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call ptr @s2n_strerror_debug(i32 noundef %2937, ptr noundef @.str.4)
  %2939 = call ptr @__errno_location() #11
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @strerror(i32 noundef %2940) #10
  %2942 = call ptr @__errno_location() #11
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2931, ptr noundef @.str.2, i32 noundef %2932, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2935, ptr noundef %2938, ptr noundef %2941, i32 noundef %2943) #10
  br label %2962

2945:                                             ; preds = %2923, %2916
  %2946 = load i32, ptr %61, align 4, !tbaa !5
  %2947 = call ptr @__errno_location() #11
  store i32 %2946, ptr %2947, align 4, !tbaa !5
  %2948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2949 = load i32, ptr @test_count, align 4, !tbaa !5
  %2950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror(i32 noundef %2951, ptr noundef @.str.4)
  %2953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call ptr @s2n_strerror_debug(i32 noundef %2954, ptr noundef @.str.4)
  %2956 = call ptr @__errno_location() #11
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @strerror(i32 noundef %2957) #10
  %2959 = call ptr @__errno_location() #11
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2948, ptr noundef @.str.5, i32 noundef %2949, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2952, ptr noundef %2955, ptr noundef %2958, i32 noundef %2960) #10
  br label %2962

2962:                                             ; preds = %2945, %2928
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

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

2965:                                             ; No predecessors!
  br label %2966

2966:                                             ; preds = %2965
  br label %2967

2967:                                             ; preds = %2966, %2907
  br label %2968

2968:                                             ; preds = %2967
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = add nsw i32 %2971, 1
  store i32 %2972, ptr @test_count, align 4, !tbaa !5
  %2973 = load ptr, ptr %55, align 8, !tbaa !9
  %2974 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %2973)
  %2975 = icmp eq i32 %2974, -1
  br i1 %2975, label %2976, label %3029

2976:                                             ; preds = %2970
  br label %2977

2977:                                             ; preds = %2976
  br label %2978

2978:                                             ; preds = %2977
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2979 = call ptr @__errno_location() #11
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  store i32 %2980, ptr %62, align 4, !tbaa !5
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = call i32 @s2n_print_stacktrace(ptr noundef %2981)
  %2983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2984 = trunc i8 %2983 to i1
  br i1 %2984, label %2985, label %3007

2985:                                             ; preds = %2978
  %2986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2987 = call i32 @fileno(ptr noundef %2986) #10
  %2988 = call i32 @isatty(i32 noundef %2987) #10
  %2989 = icmp ne i32 %2988, 0
  br i1 %2989, label %2990, label %3007

2990:                                             ; preds = %2985
  %2991 = load i32, ptr %62, align 4, !tbaa !5
  %2992 = call ptr @__errno_location() #11
  store i32 %2991, ptr %2992, align 4, !tbaa !5
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2994 = load i32, ptr @test_count, align 4, !tbaa !5
  %2995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror(i32 noundef %2996, ptr noundef @.str.4)
  %2998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror_debug(i32 noundef %2999, ptr noundef @.str.4)
  %3001 = call ptr @__errno_location() #11
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call ptr @strerror(i32 noundef %3002) #10
  %3004 = call ptr @__errno_location() #11
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2993, ptr noundef @.str.2, i32 noundef %2994, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2997, ptr noundef %3000, ptr noundef %3003, i32 noundef %3005) #10
  br label %3024

3007:                                             ; preds = %2985, %2978
  %3008 = load i32, ptr %62, align 4, !tbaa !5
  %3009 = call ptr @__errno_location() #11
  store i32 %3008, ptr %3009, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror(i32 noundef %3013, ptr noundef @.str.4)
  %3015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call ptr @s2n_strerror_debug(i32 noundef %3016, ptr noundef @.str.4)
  %3018 = call ptr @__errno_location() #11
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @strerror(i32 noundef %3019) #10
  %3021 = call ptr @__errno_location() #11
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3010, ptr noundef @.str.5, i32 noundef %3011, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3014, ptr noundef %3017, ptr noundef %3020, i32 noundef %3022) #10
  br label %3024

3024:                                             ; preds = %3007, %2990
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

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

3027:                                             ; No predecessors!
  br label %3028

3028:                                             ; preds = %3027
  br label %3029

3029:                                             ; preds = %3028, %2970
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3031
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = add nsw i32 %3033, 1
  store i32 %3034, ptr @test_count, align 4, !tbaa !5
  %3035 = load ptr, ptr %58, align 8, !tbaa !9
  %3036 = getelementptr inbounds %struct.s2n_stuffer, ptr %3035, i32 0, i32 2
  %3037 = load i32, ptr %3036, align 4, !tbaa !43
  %3038 = load ptr, ptr %58, align 8, !tbaa !9
  %3039 = getelementptr inbounds %struct.s2n_stuffer, ptr %3038, i32 0, i32 1
  %3040 = load i32, ptr %3039, align 8, !tbaa !44
  %3041 = sub i32 %3037, %3040
  %3042 = icmp eq i32 %3041, 0
  br i1 %3042, label %3096, label %3043

3043:                                             ; preds = %3032
  br label %3044

3044:                                             ; preds = %3043
  br label %3045

3045:                                             ; preds = %3044
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %3046 = call ptr @__errno_location() #11
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  store i32 %3047, ptr %63, align 4, !tbaa !5
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @s2n_print_stacktrace(ptr noundef %3048)
  %3050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3051 = trunc i8 %3050 to i1
  br i1 %3051, label %3052, label %3074

3052:                                             ; preds = %3045
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @fileno(ptr noundef %3053) #10
  %3055 = call i32 @isatty(i32 noundef %3054) #10
  %3056 = icmp ne i32 %3055, 0
  br i1 %3056, label %3057, label %3074

3057:                                             ; preds = %3052
  %3058 = load i32, ptr %63, align 4, !tbaa !5
  %3059 = call ptr @__errno_location() #11
  store i32 %3058, ptr %3059, align 4, !tbaa !5
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror(i32 noundef %3063, ptr noundef @.str.4)
  %3065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror_debug(i32 noundef %3066, ptr noundef @.str.4)
  %3068 = call ptr @__errno_location() #11
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call ptr @strerror(i32 noundef %3069) #10
  %3071 = call ptr @__errno_location() #11
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  %3073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3060, ptr noundef @.str.2, i32 noundef %3061, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 139, ptr noundef %3064, ptr noundef %3067, ptr noundef %3070, i32 noundef %3072) #10
  br label %3091

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

3091:                                             ; preds = %3074, %3057
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

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

3094:                                             ; No predecessors!
  br label %3095

3095:                                             ; preds = %3094
  br label %3096

3096:                                             ; preds = %3095, %3032
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = add nsw i32 %3100, 1
  store i32 %3101, ptr @test_count, align 4, !tbaa !5
  %3102 = load ptr, ptr %55, align 8, !tbaa !9
  %3103 = call i32 @s2n_encrypted_extensions_send(ptr noundef %3102)
  %3104 = icmp eq i32 %3103, -1
  br i1 %3104, label %3105, label %3158

3105:                                             ; preds = %3099
  br label %3106

3106:                                             ; preds = %3105
  br label %3107

3107:                                             ; preds = %3106
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %3108 = call ptr @__errno_location() #11
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  store i32 %3109, ptr %64, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = call i32 @s2n_print_stacktrace(ptr noundef %3110)
  %3112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3113 = trunc i8 %3112 to i1
  br i1 %3113, label %3114, label %3136

3114:                                             ; preds = %3107
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = call i32 @fileno(ptr noundef %3115) #10
  %3117 = call i32 @isatty(i32 noundef %3116) #10
  %3118 = icmp ne i32 %3117, 0
  br i1 %3118, label %3119, label %3136

3119:                                             ; preds = %3114
  %3120 = load i32, ptr %64, align 4, !tbaa !5
  %3121 = call ptr @__errno_location() #11
  store i32 %3120, ptr %3121, align 4, !tbaa !5
  %3122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3123 = load i32, ptr @test_count, align 4, !tbaa !5
  %3124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call ptr @s2n_strerror(i32 noundef %3125, ptr noundef @.str.4)
  %3127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call ptr @s2n_strerror_debug(i32 noundef %3128, ptr noundef @.str.4)
  %3130 = call ptr @__errno_location() #11
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call ptr @strerror(i32 noundef %3131) #10
  %3133 = call ptr @__errno_location() #11
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3122, ptr noundef @.str.2, i32 noundef %3123, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3126, ptr noundef %3129, ptr noundef %3132, i32 noundef %3134) #10
  br label %3153

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

3153:                                             ; preds = %3136, %3119
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %3154

3154:                                             ; preds = %3153
  br label %3155

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

3156:                                             ; No predecessors!
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157, %3099
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  %3162 = load i32, ptr @test_count, align 4, !tbaa !5
  %3163 = add nsw i32 %3162, 1
  store i32 %3163, ptr @test_count, align 4, !tbaa !5
  %3164 = load ptr, ptr %55, align 8, !tbaa !9
  %3165 = call i32 @s2n_encrypted_extensions_recv(ptr noundef %3164)
  %3166 = icmp eq i32 %3165, -1
  br i1 %3166, label %3167, label %3220

3167:                                             ; preds = %3161
  br label %3168

3168:                                             ; preds = %3167
  br label %3169

3169:                                             ; preds = %3168
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %3170 = call ptr @__errno_location() #11
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  store i32 %3171, ptr %65, align 4, !tbaa !5
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = call i32 @s2n_print_stacktrace(ptr noundef %3172)
  %3174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3175 = trunc i8 %3174 to i1
  br i1 %3175, label %3176, label %3198

3176:                                             ; preds = %3169
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = call i32 @fileno(ptr noundef %3177) #10
  %3179 = call i32 @isatty(i32 noundef %3178) #10
  %3180 = icmp ne i32 %3179, 0
  br i1 %3180, label %3181, label %3198

3181:                                             ; preds = %3176
  %3182 = load i32, ptr %65, align 4, !tbaa !5
  %3183 = call ptr @__errno_location() #11
  store i32 %3182, ptr %3183, align 4, !tbaa !5
  %3184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3185 = load i32, ptr @test_count, align 4, !tbaa !5
  %3186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror(i32 noundef %3187, ptr noundef @.str.4)
  %3189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror_debug(i32 noundef %3190, ptr noundef @.str.4)
  %3192 = call ptr @__errno_location() #11
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #10
  %3195 = call ptr @__errno_location() #11
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3184, ptr noundef @.str.2, i32 noundef %3185, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3188, ptr noundef %3191, ptr noundef %3194, i32 noundef %3196) #10
  br label %3215

3198:                                             ; preds = %3176, %3169
  %3199 = load i32, ptr %65, align 4, !tbaa !5
  %3200 = call ptr @__errno_location() #11
  store i32 %3199, ptr %3200, align 4, !tbaa !5
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = load i32, ptr @test_count, align 4, !tbaa !5
  %3203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror(i32 noundef %3204, ptr noundef @.str.4)
  %3206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3207 = load i32, ptr %3206, align 4, !tbaa !5
  %3208 = call ptr @s2n_strerror_debug(i32 noundef %3207, ptr noundef @.str.4)
  %3209 = call ptr @__errno_location() #11
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @strerror(i32 noundef %3210) #10
  %3212 = call ptr @__errno_location() #11
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3201, ptr noundef @.str.5, i32 noundef %3202, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3205, ptr noundef %3208, ptr noundef %3211, i32 noundef %3213) #10
  br label %3215

3215:                                             ; preds = %3198, %3181
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

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

3218:                                             ; No predecessors!
  br label %3219

3219:                                             ; preds = %3218
  br label %3220

3220:                                             ; preds = %3219, %3161
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222
  %3224 = load i32, ptr @test_count, align 4, !tbaa !5
  %3225 = add nsw i32 %3224, 1
  store i32 %3225, ptr @test_count, align 4, !tbaa !5
  %3226 = load ptr, ptr %58, align 8, !tbaa !9
  %3227 = getelementptr inbounds %struct.s2n_stuffer, ptr %3226, i32 0, i32 2
  %3228 = load i32, ptr %3227, align 4, !tbaa !43
  %3229 = load ptr, ptr %58, align 8, !tbaa !9
  %3230 = getelementptr inbounds %struct.s2n_stuffer, ptr %3229, i32 0, i32 1
  %3231 = load i32, ptr %3230, align 8, !tbaa !44
  %3232 = sub i32 %3228, %3231
  %3233 = icmp eq i32 %3232, 0
  br i1 %3233, label %3287, label %3234

3234:                                             ; preds = %3223
  br label %3235

3235:                                             ; preds = %3234
  br label %3236

3236:                                             ; preds = %3235
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  %3237 = call ptr @__errno_location() #11
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  store i32 %3238, ptr %66, align 4, !tbaa !5
  %3239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3240 = call i32 @s2n_print_stacktrace(ptr noundef %3239)
  %3241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3242 = trunc i8 %3241 to i1
  br i1 %3242, label %3243, label %3265

3243:                                             ; preds = %3236
  %3244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3245 = call i32 @fileno(ptr noundef %3244) #10
  %3246 = call i32 @isatty(i32 noundef %3245) #10
  %3247 = icmp ne i32 %3246, 0
  br i1 %3247, label %3248, label %3265

3248:                                             ; preds = %3243
  %3249 = load i32, ptr %66, align 4, !tbaa !5
  %3250 = call ptr @__errno_location() #11
  store i32 %3249, ptr %3250, align 4, !tbaa !5
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = load i32, ptr @test_count, align 4, !tbaa !5
  %3253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3254 = load i32, ptr %3253, align 4, !tbaa !5
  %3255 = call ptr @s2n_strerror(i32 noundef %3254, ptr noundef @.str.4)
  %3256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror_debug(i32 noundef %3257, ptr noundef @.str.4)
  %3259 = call ptr @__errno_location() #11
  %3260 = load i32, ptr %3259, align 4, !tbaa !5
  %3261 = call ptr @strerror(i32 noundef %3260) #10
  %3262 = call ptr @__errno_location() #11
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3251, ptr noundef @.str.2, i32 noundef %3252, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 144, ptr noundef %3255, ptr noundef %3258, ptr noundef %3261, i32 noundef %3263) #10
  br label %3282

3265:                                             ; preds = %3243, %3236
  %3266 = load i32, ptr %66, align 4, !tbaa !5
  %3267 = call ptr @__errno_location() #11
  store i32 %3266, ptr %3267, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror(i32 noundef %3271, ptr noundef @.str.4)
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror_debug(i32 noundef %3274, ptr noundef @.str.4)
  %3276 = call ptr @__errno_location() #11
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @strerror(i32 noundef %3277) #10
  %3279 = call ptr @__errno_location() #11
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3268, ptr noundef @.str.5, i32 noundef %3269, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 144, ptr noundef %3272, ptr noundef %3275, ptr noundef %3278, i32 noundef %3280) #10
  br label %3282

3282:                                             ; preds = %3265, %3248
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3283

3283:                                             ; preds = %3282
  br label %3284

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

3285:                                             ; No predecessors!
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286, %3223
  br label %3288

3288:                                             ; preds = %3287
  br label %3289

3289:                                             ; preds = %3288
  br label %3290

3290:                                             ; preds = %3289
  %3291 = load i32, ptr @test_count, align 4, !tbaa !5
  %3292 = add nsw i32 %3291, 1
  store i32 %3292, ptr @test_count, align 4, !tbaa !5
  %3293 = load ptr, ptr %55, align 8, !tbaa !9
  %3294 = call i32 @s2n_connection_free(ptr noundef %3293)
  %3295 = icmp eq i32 %3294, -1
  br i1 %3295, label %3296, label %3349

3296:                                             ; preds = %3290
  br label %3297

3297:                                             ; preds = %3296
  br label %3298

3298:                                             ; preds = %3297
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %3299 = call ptr @__errno_location() #11
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  store i32 %3300, ptr %67, align 4, !tbaa !5
  %3301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3302 = call i32 @s2n_print_stacktrace(ptr noundef %3301)
  %3303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3304 = trunc i8 %3303 to i1
  br i1 %3304, label %3305, label %3327

3305:                                             ; preds = %3298
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = call i32 @fileno(ptr noundef %3306) #10
  %3308 = call i32 @isatty(i32 noundef %3307) #10
  %3309 = icmp ne i32 %3308, 0
  br i1 %3309, label %3310, label %3327

3310:                                             ; preds = %3305
  %3311 = load i32, ptr %67, align 4, !tbaa !5
  %3312 = call ptr @__errno_location() #11
  store i32 %3311, ptr %3312, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror(i32 noundef %3316, ptr noundef @.str.4)
  %3318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @s2n_strerror_debug(i32 noundef %3319, ptr noundef @.str.4)
  %3321 = call ptr @__errno_location() #11
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @strerror(i32 noundef %3322) #10
  %3324 = call ptr @__errno_location() #11
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3313, ptr noundef @.str.2, i32 noundef %3314, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 146, ptr noundef %3317, ptr noundef %3320, ptr noundef %3323, i32 noundef %3325) #10
  br label %3344

3327:                                             ; preds = %3305, %3298
  %3328 = load i32, ptr %67, align 4, !tbaa !5
  %3329 = call ptr @__errno_location() #11
  store i32 %3328, ptr %3329, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = load i32, ptr @test_count, align 4, !tbaa !5
  %3332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  %3334 = call ptr @s2n_strerror(i32 noundef %3333, ptr noundef @.str.4)
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = call ptr @s2n_strerror_debug(i32 noundef %3336, ptr noundef @.str.4)
  %3338 = call ptr @__errno_location() #11
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @strerror(i32 noundef %3339) #10
  %3341 = call ptr @__errno_location() #11
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3330, ptr noundef @.str.5, i32 noundef %3331, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 146, ptr noundef %3334, ptr noundef %3337, ptr noundef %3340, i32 noundef %3342) #10
  br label %3344

3344:                                             ; preds = %3327, %3310
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3345

3345:                                             ; preds = %3344
  br label %3346

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

3347:                                             ; No predecessors!
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348, %3290
  br label %3350

3350:                                             ; preds = %3349
  br label %3351

3351:                                             ; preds = %3350
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  store ptr null, ptr %68, align 8, !tbaa !9
  br label %3352

3352:                                             ; preds = %3351
  %3353 = load i32, ptr @test_count, align 4, !tbaa !5
  %3354 = add nsw i32 %3353, 1
  store i32 %3354, ptr @test_count, align 4, !tbaa !5
  %3355 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3355, ptr %68, align 8, !tbaa !9
  %3356 = icmp eq ptr %3355, null
  br i1 %3356, label %3357, label %3410

3357:                                             ; preds = %3352
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3360 = call ptr @__errno_location() #11
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  store i32 %3361, ptr %69, align 4, !tbaa !5
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @s2n_print_stacktrace(ptr noundef %3362)
  %3364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3365 = trunc i8 %3364 to i1
  br i1 %3365, label %3366, label %3388

3366:                                             ; preds = %3359
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = call i32 @fileno(ptr noundef %3367) #10
  %3369 = call i32 @isatty(i32 noundef %3368) #10
  %3370 = icmp ne i32 %3369, 0
  br i1 %3370, label %3371, label %3388

3371:                                             ; preds = %3366
  %3372 = load i32, ptr %69, align 4, !tbaa !5
  %3373 = call ptr @__errno_location() #11
  store i32 %3372, ptr %3373, align 4, !tbaa !5
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = load i32, ptr @test_count, align 4, !tbaa !5
  %3376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror(i32 noundef %3377, ptr noundef @.str.4)
  %3379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef @.str.4)
  %3382 = call ptr @__errno_location() #11
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @strerror(i32 noundef %3383) #10
  %3385 = call ptr @__errno_location() #11
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3374, ptr noundef @.str.2, i32 noundef %3375, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3378, ptr noundef %3381, ptr noundef %3384, i32 noundef %3386) #10
  br label %3405

3388:                                             ; preds = %3366, %3359
  %3389 = load i32, ptr %69, align 4, !tbaa !5
  %3390 = call ptr @__errno_location() #11
  store i32 %3389, ptr %3390, align 4, !tbaa !5
  %3391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call ptr @s2n_strerror(i32 noundef %3394, ptr noundef @.str.4)
  %3396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call ptr @s2n_strerror_debug(i32 noundef %3397, ptr noundef @.str.4)
  %3399 = call ptr @__errno_location() #11
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @strerror(i32 noundef %3400) #10
  %3402 = call ptr @__errno_location() #11
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3391, ptr noundef @.str.5, i32 noundef %3392, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3395, ptr noundef %3398, ptr noundef %3401, i32 noundef %3403) #10
  br label %3405

3405:                                             ; preds = %3388, %3371
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

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

3408:                                             ; No predecessors!
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409, %3352
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

3413:                                             ; preds = %3412
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = add nsw i32 %3414, 1
  store i32 %3415, ptr @test_count, align 4, !tbaa !5
  %3416 = load ptr, ptr %68, align 8, !tbaa !9
  %3417 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %3416)
  %3418 = icmp eq i32 %3417, -1
  br i1 %3418, label %3419, label %3472

3419:                                             ; preds = %3413
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

3421:                                             ; preds = %3420
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %3422 = call ptr @__errno_location() #11
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  store i32 %3423, ptr %70, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @s2n_print_stacktrace(ptr noundef %3424)
  %3426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3427 = trunc i8 %3426 to i1
  br i1 %3427, label %3428, label %3450

3428:                                             ; preds = %3421
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = call i32 @fileno(ptr noundef %3429) #10
  %3431 = call i32 @isatty(i32 noundef %3430) #10
  %3432 = icmp ne i32 %3431, 0
  br i1 %3432, label %3433, label %3450

3433:                                             ; preds = %3428
  %3434 = load i32, ptr %70, align 4, !tbaa !5
  %3435 = call ptr @__errno_location() #11
  store i32 %3434, ptr %3435, align 4, !tbaa !5
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = load i32, ptr @test_count, align 4, !tbaa !5
  %3438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror(i32 noundef %3439, ptr noundef @.str.4)
  %3441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @s2n_strerror_debug(i32 noundef %3442, ptr noundef @.str.4)
  %3444 = call ptr @__errno_location() #11
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call ptr @strerror(i32 noundef %3445) #10
  %3447 = call ptr @__errno_location() #11
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3436, ptr noundef @.str.2, i32 noundef %3437, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3440, ptr noundef %3443, ptr noundef %3446, i32 noundef %3448) #10
  br label %3467

3450:                                             ; preds = %3428, %3421
  %3451 = load i32, ptr %70, align 4, !tbaa !5
  %3452 = call ptr @__errno_location() #11
  store i32 %3451, ptr %3452, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = load i32, ptr @test_count, align 4, !tbaa !5
  %3455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror(i32 noundef %3456, ptr noundef @.str.4)
  %3458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror_debug(i32 noundef %3459, ptr noundef @.str.4)
  %3461 = call ptr @__errno_location() #11
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @strerror(i32 noundef %3462) #10
  %3464 = call ptr @__errno_location() #11
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3453, ptr noundef @.str.5, i32 noundef %3454, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3457, ptr noundef %3460, ptr noundef %3463, i32 noundef %3465) #10
  br label %3467

3467:                                             ; preds = %3450, %3433
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

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

3470:                                             ; No predecessors!
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471, %3413
  br label %3473

3473:                                             ; preds = %3472
  br label %3474

3474:                                             ; preds = %3473
  %3475 = load ptr, ptr %68, align 8, !tbaa !9
  %3476 = getelementptr inbounds %struct.s2n_connection, ptr %3475, i32 0, i32 23
  store i8 34, ptr %3476, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %3477 = load ptr, ptr %68, align 8, !tbaa !9
  %3478 = getelementptr inbounds %struct.s2n_connection, ptr %3477, i32 0, i32 52
  %3479 = getelementptr inbounds %struct.s2n_handshake, ptr %3478, i32 0, i32 0
  store ptr %3479, ptr %71, align 8, !tbaa !9
  %3480 = load ptr, ptr %68, align 8, !tbaa !9
  %3481 = load i32, ptr %3480, align 8
  %3482 = and i32 %3481, -65
  %3483 = or i32 %3482, 64
  store i32 %3483, ptr %3480, align 8
  br label %3484

3484:                                             ; preds = %3474
  %3485 = load i32, ptr @test_count, align 4, !tbaa !5
  %3486 = add nsw i32 %3485, 1
  store i32 %3486, ptr @test_count, align 4, !tbaa !5
  %3487 = load ptr, ptr %68, align 8, !tbaa !9
  %3488 = call i32 @s2n_encrypted_extensions_send(ptr noundef %3487)
  %3489 = icmp eq i32 %3488, -1
  br i1 %3489, label %3490, label %3543

3490:                                             ; preds = %3484
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3493 = call ptr @__errno_location() #11
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  store i32 %3494, ptr %72, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = call i32 @s2n_print_stacktrace(ptr noundef %3495)
  %3497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3498 = trunc i8 %3497 to i1
  br i1 %3498, label %3499, label %3521

3499:                                             ; preds = %3492
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = call i32 @fileno(ptr noundef %3500) #10
  %3502 = call i32 @isatty(i32 noundef %3501) #10
  %3503 = icmp ne i32 %3502, 0
  br i1 %3503, label %3504, label %3521

3504:                                             ; preds = %3499
  %3505 = load i32, ptr %72, align 4, !tbaa !5
  %3506 = call ptr @__errno_location() #11
  store i32 %3505, ptr %3506, align 4, !tbaa !5
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = load i32, ptr @test_count, align 4, !tbaa !5
  %3509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror(i32 noundef %3510, ptr noundef @.str.4)
  %3512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror_debug(i32 noundef %3513, ptr noundef @.str.4)
  %3515 = call ptr @__errno_location() #11
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @strerror(i32 noundef %3516) #10
  %3518 = call ptr @__errno_location() #11
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3507, ptr noundef @.str.2, i32 noundef %3508, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 159, ptr noundef %3511, ptr noundef %3514, ptr noundef %3517, i32 noundef %3519) #10
  br label %3538

3521:                                             ; preds = %3499, %3492
  %3522 = load i32, ptr %72, align 4, !tbaa !5
  %3523 = call ptr @__errno_location() #11
  store i32 %3522, ptr %3523, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = load i32, ptr @test_count, align 4, !tbaa !5
  %3526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror(i32 noundef %3527, ptr noundef @.str.4)
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror_debug(i32 noundef %3530, ptr noundef @.str.4)
  %3532 = call ptr @__errno_location() #11
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #10
  %3535 = call ptr @__errno_location() #11
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3524, ptr noundef @.str.5, i32 noundef %3525, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 159, ptr noundef %3528, ptr noundef %3531, ptr noundef %3534, i32 noundef %3536) #10
  br label %3538

3538:                                             ; preds = %3521, %3504
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

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

3541:                                             ; No predecessors!
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542, %3484
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544
  %3546 = load ptr, ptr %68, align 8, !tbaa !9
  %3547 = load i32, ptr %3546, align 8
  %3548 = and i32 %3547, -65
  %3549 = or i32 %3548, 0
  store i32 %3549, ptr %3546, align 8
  br label %3550

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

3556:                                             ; preds = %3550
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

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

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

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

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

3604:                                             ; preds = %3587, %3570
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

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

3607:                                             ; No predecessors!
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608, %3550
  br label %3610

3610:                                             ; preds = %3609
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611
  %3613 = load i32, ptr @test_count, align 4, !tbaa !5
  %3614 = add nsw i32 %3613, 1
  store i32 %3614, ptr @test_count, align 4, !tbaa !5
  %3615 = load ptr, ptr %71, align 8, !tbaa !9
  %3616 = getelementptr inbounds %struct.s2n_stuffer, ptr %3615, i32 0, i32 2
  %3617 = load i32, ptr %3616, align 4, !tbaa !43
  %3618 = load ptr, ptr %71, align 8, !tbaa !9
  %3619 = getelementptr inbounds %struct.s2n_stuffer, ptr %3618, i32 0, i32 1
  %3620 = load i32, ptr %3619, align 8, !tbaa !44
  %3621 = sub i32 %3617, %3620
  %3622 = icmp eq i32 %3621, 0
  br i1 %3622, label %3676, label %3623

3623:                                             ; preds = %3612
  br label %3624

3624:                                             ; preds = %3623
  br label %3625

3625:                                             ; preds = %3624
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %3626 = call ptr @__errno_location() #11
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  store i32 %3627, ptr %74, align 4, !tbaa !5
  %3628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3629 = call i32 @s2n_print_stacktrace(ptr noundef %3628)
  %3630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3631 = trunc i8 %3630 to i1
  br i1 %3631, label %3632, label %3654

3632:                                             ; preds = %3625
  %3633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3634 = call i32 @fileno(ptr noundef %3633) #10
  %3635 = call i32 @isatty(i32 noundef %3634) #10
  %3636 = icmp ne i32 %3635, 0
  br i1 %3636, label %3637, label %3654

3637:                                             ; preds = %3632
  %3638 = load i32, ptr %74, align 4, !tbaa !5
  %3639 = call ptr @__errno_location() #11
  store i32 %3638, ptr %3639, align 4, !tbaa !5
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = load i32, ptr @test_count, align 4, !tbaa !5
  %3642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3643 = load i32, ptr %3642, align 4, !tbaa !5
  %3644 = call ptr @s2n_strerror(i32 noundef %3643, ptr noundef @.str.4)
  %3645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3646 = load i32, ptr %3645, align 4, !tbaa !5
  %3647 = call ptr @s2n_strerror_debug(i32 noundef %3646, ptr noundef @.str.4)
  %3648 = call ptr @__errno_location() #11
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @strerror(i32 noundef %3649) #10
  %3651 = call ptr @__errno_location() #11
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3640, ptr noundef @.str.2, i32 noundef %3641, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 165, ptr noundef %3644, ptr noundef %3647, ptr noundef %3650, i32 noundef %3652) #10
  br label %3671

3654:                                             ; preds = %3632, %3625
  %3655 = load i32, ptr %74, align 4, !tbaa !5
  %3656 = call ptr @__errno_location() #11
  store i32 %3655, ptr %3656, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror(i32 noundef %3660, ptr noundef @.str.4)
  %3662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @s2n_strerror_debug(i32 noundef %3663, ptr noundef @.str.4)
  %3665 = call ptr @__errno_location() #11
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @strerror(i32 noundef %3666) #10
  %3668 = call ptr @__errno_location() #11
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3657, ptr noundef @.str.5, i32 noundef %3658, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 165, ptr noundef %3661, ptr noundef %3664, ptr noundef %3667, i32 noundef %3669) #10
  br label %3671

3671:                                             ; preds = %3654, %3637
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

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

3674:                                             ; No predecessors!
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675, %3612
  br label %3677

3677:                                             ; preds = %3676
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

3679:                                             ; preds = %3678
  %3680 = load i32, ptr @test_count, align 4, !tbaa !5
  %3681 = add nsw i32 %3680, 1
  store i32 %3681, ptr @test_count, align 4, !tbaa !5
  %3682 = load ptr, ptr %68, align 8, !tbaa !9
  %3683 = load i32, ptr %3682, align 8
  %3684 = lshr i32 %3683, 6
  %3685 = and i32 %3684, 1
  %3686 = icmp eq i32 %3685, 1
  br i1 %3686, label %3740, label %3687

3687:                                             ; preds = %3679
  br label %3688

3688:                                             ; preds = %3687
  br label %3689

3689:                                             ; preds = %3688
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3690 = call ptr @__errno_location() #11
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  store i32 %3691, ptr %75, align 4, !tbaa !5
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = call i32 @s2n_print_stacktrace(ptr noundef %3692)
  %3694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3695 = trunc i8 %3694 to i1
  br i1 %3695, label %3696, label %3718

3696:                                             ; preds = %3689
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = call i32 @fileno(ptr noundef %3697) #10
  %3699 = call i32 @isatty(i32 noundef %3698) #10
  %3700 = icmp ne i32 %3699, 0
  br i1 %3700, label %3701, label %3718

3701:                                             ; preds = %3696
  %3702 = load i32, ptr %75, align 4, !tbaa !5
  %3703 = call ptr @__errno_location() #11
  store i32 %3702, ptr %3703, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror_debug(i32 noundef %3710, ptr noundef @.str.4)
  %3712 = call ptr @__errno_location() #11
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @strerror(i32 noundef %3713) #10
  %3715 = call ptr @__errno_location() #11
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef @.str.2, i32 noundef %3705, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 166, ptr noundef %3708, ptr noundef %3711, ptr noundef %3714, i32 noundef %3716) #10
  br label %3735

3718:                                             ; preds = %3696, %3689
  %3719 = load i32, ptr %75, align 4, !tbaa !5
  %3720 = call ptr @__errno_location() #11
  store i32 %3719, ptr %3720, align 4, !tbaa !5
  %3721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3722 = load i32, ptr @test_count, align 4, !tbaa !5
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @s2n_strerror_debug(i32 noundef %3727, ptr noundef @.str.4)
  %3729 = call ptr @__errno_location() #11
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @strerror(i32 noundef %3730) #10
  %3732 = call ptr @__errno_location() #11
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3721, ptr noundef @.str.5, i32 noundef %3722, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 166, ptr noundef %3725, ptr noundef %3728, ptr noundef %3731, i32 noundef %3733) #10
  br label %3735

3735:                                             ; preds = %3718, %3701
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

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

3738:                                             ; No predecessors!
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739, %3679
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

3742:                                             ; preds = %3741
  br label %3743

3743:                                             ; preds = %3742
  %3744 = load i32, ptr @test_count, align 4, !tbaa !5
  %3745 = add nsw i32 %3744, 1
  store i32 %3745, ptr @test_count, align 4, !tbaa !5
  %3746 = load ptr, ptr %68, align 8, !tbaa !9
  %3747 = call i32 @s2n_connection_free(ptr noundef %3746)
  %3748 = icmp eq i32 %3747, -1
  br i1 %3748, label %3749, label %3802

3749:                                             ; preds = %3743
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

3751:                                             ; preds = %3750
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3752 = call ptr @__errno_location() #11
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  store i32 %3753, ptr %76, align 4, !tbaa !5
  %3754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3755 = call i32 @s2n_print_stacktrace(ptr noundef %3754)
  %3756 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3757 = trunc i8 %3756 to i1
  br i1 %3757, label %3758, label %3780

3758:                                             ; preds = %3751
  %3759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3760 = call i32 @fileno(ptr noundef %3759) #10
  %3761 = call i32 @isatty(i32 noundef %3760) #10
  %3762 = icmp ne i32 %3761, 0
  br i1 %3762, label %3763, label %3780

3763:                                             ; preds = %3758
  %3764 = load i32, ptr %76, align 4, !tbaa !5
  %3765 = call ptr @__errno_location() #11
  store i32 %3764, ptr %3765, align 4, !tbaa !5
  %3766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3767 = load i32, ptr @test_count, align 4, !tbaa !5
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror(i32 noundef %3769, ptr noundef @.str.4)
  %3771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @s2n_strerror_debug(i32 noundef %3772, ptr noundef @.str.4)
  %3774 = call ptr @__errno_location() #11
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call ptr @strerror(i32 noundef %3775) #10
  %3777 = call ptr @__errno_location() #11
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3766, ptr noundef @.str.2, i32 noundef %3767, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3770, ptr noundef %3773, ptr noundef %3776, i32 noundef %3778) #10
  br label %3797

3780:                                             ; preds = %3758, %3751
  %3781 = load i32, ptr %76, align 4, !tbaa !5
  %3782 = call ptr @__errno_location() #11
  store i32 %3781, ptr %3782, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = load i32, ptr @test_count, align 4, !tbaa !5
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror(i32 noundef %3786, ptr noundef @.str.4)
  %3788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @s2n_strerror_debug(i32 noundef %3789, ptr noundef @.str.4)
  %3791 = call ptr @__errno_location() #11
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call ptr @strerror(i32 noundef %3792) #10
  %3794 = call ptr @__errno_location() #11
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3783, ptr noundef @.str.5, i32 noundef %3784, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3787, ptr noundef %3790, ptr noundef %3793, i32 noundef %3795) #10
  br label %3797

3797:                                             ; preds = %3780, %3763
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

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

3800:                                             ; No predecessors!
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801, %3743
  br label %3803

3803:                                             ; preds = %3802
  br label %3804

3804:                                             ; preds = %3803
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  %3805 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %3805, label %3806, label %6448

3806:                                             ; preds = %3804
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  store i32 0, ptr %77, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  store ptr null, ptr %78, align 8, !tbaa !9
  br label %3807

3807:                                             ; preds = %3806
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = add nsw i32 %3808, 1
  store i32 %3809, ptr @test_count, align 4, !tbaa !5
  %3810 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %78, ptr noundef @.str.31, ptr noundef @.str.32)
  %3811 = icmp eq i32 %3810, -1
  br i1 %3811, label %3812, label %3865

3812:                                             ; preds = %3807
  br label %3813

3813:                                             ; preds = %3812
  br label %3814

3814:                                             ; preds = %3813
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3815 = call ptr @__errno_location() #11
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  store i32 %3816, ptr %79, align 4, !tbaa !5
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = call i32 @s2n_print_stacktrace(ptr noundef %3817)
  %3819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3820 = trunc i8 %3819 to i1
  br i1 %3820, label %3821, label %3843

3821:                                             ; preds = %3814
  %3822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3823 = call i32 @fileno(ptr noundef %3822) #10
  %3824 = call i32 @isatty(i32 noundef %3823) #10
  %3825 = icmp ne i32 %3824, 0
  br i1 %3825, label %3826, label %3843

3826:                                             ; preds = %3821
  %3827 = load i32, ptr %79, align 4, !tbaa !5
  %3828 = call ptr @__errno_location() #11
  store i32 %3827, ptr %3828, align 4, !tbaa !5
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = load i32, ptr @test_count, align 4, !tbaa !5
  %3831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @s2n_strerror(i32 noundef %3832, ptr noundef @.str.4)
  %3834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call ptr @s2n_strerror_debug(i32 noundef %3835, ptr noundef @.str.4)
  %3837 = call ptr @__errno_location() #11
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call ptr @strerror(i32 noundef %3838) #10
  %3840 = call ptr @__errno_location() #11
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  %3842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3829, ptr noundef @.str.2, i32 noundef %3830, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3833, ptr noundef %3836, ptr noundef %3839, i32 noundef %3841) #10
  br label %3860

3843:                                             ; preds = %3821, %3814
  %3844 = load i32, ptr %79, align 4, !tbaa !5
  %3845 = call ptr @__errno_location() #11
  store i32 %3844, ptr %3845, align 4, !tbaa !5
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = load i32, ptr @test_count, align 4, !tbaa !5
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @s2n_strerror_debug(i32 noundef %3852, ptr noundef @.str.4)
  %3854 = call ptr @__errno_location() #11
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call ptr @strerror(i32 noundef %3855) #10
  %3857 = call ptr @__errno_location() #11
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3846, ptr noundef @.str.5, i32 noundef %3847, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3850, ptr noundef %3853, ptr noundef %3856, i32 noundef %3858) #10
  br label %3860

3860:                                             ; preds = %3843, %3826
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3861

3861:                                             ; preds = %3860
  br label %3862

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

3863:                                             ; No predecessors!
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864, %3807
  br label %3866

3866:                                             ; preds = %3865
  br label %3867

3867:                                             ; preds = %3866
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  store ptr null, ptr %80, align 8, !tbaa !9
  br label %3868

3868:                                             ; preds = %3867
  %3869 = load i32, ptr @test_count, align 4, !tbaa !5
  %3870 = add nsw i32 %3869, 1
  store i32 %3870, ptr @test_count, align 4, !tbaa !5
  %3871 = call ptr @s2n_config_new()
  store ptr %3871, ptr %80, align 8, !tbaa !9
  %3872 = icmp eq ptr %3871, null
  br i1 %3872, label %3873, label %3926

3873:                                             ; preds = %3868
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3876 = call ptr @__errno_location() #11
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  store i32 %3877, ptr %81, align 4, !tbaa !5
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @s2n_print_stacktrace(ptr noundef %3878)
  %3880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3881 = trunc i8 %3880 to i1
  br i1 %3881, label %3882, label %3904

3882:                                             ; preds = %3875
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = call i32 @fileno(ptr noundef %3883) #10
  %3885 = call i32 @isatty(i32 noundef %3884) #10
  %3886 = icmp ne i32 %3885, 0
  br i1 %3886, label %3887, label %3904

3887:                                             ; preds = %3882
  %3888 = load i32, ptr %81, align 4, !tbaa !5
  %3889 = call ptr @__errno_location() #11
  store i32 %3888, ptr %3889, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror(i32 noundef %3893, ptr noundef @.str.4)
  %3895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror_debug(i32 noundef %3896, ptr noundef @.str.4)
  %3898 = call ptr @__errno_location() #11
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @strerror(i32 noundef %3899) #10
  %3901 = call ptr @__errno_location() #11
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef @.str.2, i32 noundef %3891, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3894, ptr noundef %3897, ptr noundef %3900, i32 noundef %3902) #10
  br label %3921

3904:                                             ; preds = %3882, %3875
  %3905 = load i32, ptr %81, align 4, !tbaa !5
  %3906 = call ptr @__errno_location() #11
  store i32 %3905, ptr %3906, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = load i32, ptr @test_count, align 4, !tbaa !5
  %3909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror(i32 noundef %3910, ptr noundef @.str.4)
  %3912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @s2n_strerror_debug(i32 noundef %3913, ptr noundef @.str.4)
  %3915 = call ptr @__errno_location() #11
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call ptr @strerror(i32 noundef %3916) #10
  %3918 = call ptr @__errno_location() #11
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3907, ptr noundef @.str.5, i32 noundef %3908, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3911, ptr noundef %3914, ptr noundef %3917, i32 noundef %3919) #10
  br label %3921

3921:                                             ; preds = %3904, %3887
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

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

3924:                                             ; No predecessors!
  br label %3925

3925:                                             ; preds = %3924
  br label %3926

3926:                                             ; preds = %3925, %3868
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = add nsw i32 %3930, 1
  store i32 %3931, ptr @test_count, align 4, !tbaa !5
  %3932 = load ptr, ptr %80, align 8, !tbaa !9
  %3933 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3932, ptr noundef @.str.35)
  %3934 = icmp eq i32 %3933, -1
  br i1 %3934, label %3935, label %3988

3935:                                             ; preds = %3929
  br label %3936

3936:                                             ; preds = %3935
  br label %3937

3937:                                             ; preds = %3936
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3938 = call ptr @__errno_location() #11
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  store i32 %3939, ptr %82, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @s2n_print_stacktrace(ptr noundef %3940)
  %3942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3943 = trunc i8 %3942 to i1
  br i1 %3943, label %3944, label %3966

3944:                                             ; preds = %3937
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = call i32 @fileno(ptr noundef %3945) #10
  %3947 = call i32 @isatty(i32 noundef %3946) #10
  %3948 = icmp ne i32 %3947, 0
  br i1 %3948, label %3949, label %3966

3949:                                             ; preds = %3944
  %3950 = load i32, ptr %82, align 4, !tbaa !5
  %3951 = call ptr @__errno_location() #11
  store i32 %3950, ptr %3951, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror_debug(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call ptr @__errno_location() #11
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #10
  %3963 = call ptr @__errno_location() #11
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef @.str.2, i32 noundef %3953, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3956, ptr noundef %3959, ptr noundef %3962, i32 noundef %3964) #10
  br label %3983

3966:                                             ; preds = %3944, %3937
  %3967 = load i32, ptr %82, align 4, !tbaa !5
  %3968 = call ptr @__errno_location() #11
  store i32 %3967, ptr %3968, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = load i32, ptr @test_count, align 4, !tbaa !5
  %3971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror(i32 noundef %3972, ptr noundef @.str.4)
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror_debug(i32 noundef %3975, ptr noundef @.str.4)
  %3977 = call ptr @__errno_location() #11
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @strerror(i32 noundef %3978) #10
  %3980 = call ptr @__errno_location() #11
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3969, ptr noundef @.str.5, i32 noundef %3970, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3973, ptr noundef %3976, ptr noundef %3979, i32 noundef %3981) #10
  br label %3983

3983:                                             ; preds = %3966, %3949
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

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

3986:                                             ; No predecessors!
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987, %3929
  br label %3989

3989:                                             ; preds = %3988
  br label %3990

3990:                                             ; preds = %3989
  br label %3991

3991:                                             ; preds = %3990
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = load ptr, ptr %80, align 8, !tbaa !9
  %3995 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3994)
  %3996 = icmp eq i32 %3995, -1
  br i1 %3996, label %3997, label %4050

3997:                                             ; preds = %3991
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

3999:                                             ; preds = %3998
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %4000 = call ptr @__errno_location() #11
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  store i32 %4001, ptr %83, align 4, !tbaa !5
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = call i32 @s2n_print_stacktrace(ptr noundef %4002)
  %4004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4005 = trunc i8 %4004 to i1
  br i1 %4005, label %4006, label %4028

4006:                                             ; preds = %3999
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = call i32 @fileno(ptr noundef %4007) #10
  %4009 = call i32 @isatty(i32 noundef %4008) #10
  %4010 = icmp ne i32 %4009, 0
  br i1 %4010, label %4011, label %4028

4011:                                             ; preds = %4006
  %4012 = load i32, ptr %83, align 4, !tbaa !5
  %4013 = call ptr @__errno_location() #11
  store i32 %4012, ptr %4013, align 4, !tbaa !5
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = load i32, ptr @test_count, align 4, !tbaa !5
  %4016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror(i32 noundef %4017, ptr noundef @.str.4)
  %4019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror_debug(i32 noundef %4020, ptr noundef @.str.4)
  %4022 = call ptr @__errno_location() #11
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @strerror(i32 noundef %4023) #10
  %4025 = call ptr @__errno_location() #11
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4014, ptr noundef @.str.2, i32 noundef %4015, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 183, ptr noundef %4018, ptr noundef %4021, ptr noundef %4024, i32 noundef %4026) #10
  br label %4045

4028:                                             ; preds = %4006, %3999
  %4029 = load i32, ptr %83, align 4, !tbaa !5
  %4030 = call ptr @__errno_location() #11
  store i32 %4029, ptr %4030, align 4, !tbaa !5
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = load i32, ptr @test_count, align 4, !tbaa !5
  %4033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  %4035 = call ptr @s2n_strerror(i32 noundef %4034, ptr noundef @.str.4)
  %4036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call ptr @s2n_strerror_debug(i32 noundef %4037, ptr noundef @.str.4)
  %4039 = call ptr @__errno_location() #11
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call ptr @strerror(i32 noundef %4040) #10
  %4042 = call ptr @__errno_location() #11
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4031, ptr noundef @.str.5, i32 noundef %4032, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 183, ptr noundef %4035, ptr noundef %4038, ptr noundef %4041, i32 noundef %4043) #10
  br label %4045

4045:                                             ; preds = %4028, %4011
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %4046

4046:                                             ; preds = %4045
  br label %4047

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

4048:                                             ; No predecessors!
  br label %4049

4049:                                             ; preds = %4048
  br label %4050

4050:                                             ; preds = %4049, %3991
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

4052:                                             ; preds = %4051
  br label %4053

4053:                                             ; preds = %4052
  %4054 = load i32, ptr @test_count, align 4, !tbaa !5
  %4055 = add nsw i32 %4054, 1
  store i32 %4055, ptr @test_count, align 4, !tbaa !5
  %4056 = load ptr, ptr %80, align 8, !tbaa !9
  %4057 = load ptr, ptr %78, align 8, !tbaa !9
  %4058 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %4056, ptr noundef %4057)
  %4059 = icmp eq i32 %4058, -1
  br i1 %4059, label %4060, label %4113

4060:                                             ; preds = %4053
  br label %4061

4061:                                             ; preds = %4060
  br label %4062

4062:                                             ; preds = %4061
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %4063 = call ptr @__errno_location() #11
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  store i32 %4064, ptr %84, align 4, !tbaa !5
  %4065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4066 = call i32 @s2n_print_stacktrace(ptr noundef %4065)
  %4067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4068 = trunc i8 %4067 to i1
  br i1 %4068, label %4069, label %4091

4069:                                             ; preds = %4062
  %4070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4071 = call i32 @fileno(ptr noundef %4070) #10
  %4072 = call i32 @isatty(i32 noundef %4071) #10
  %4073 = icmp ne i32 %4072, 0
  br i1 %4073, label %4074, label %4091

4074:                                             ; preds = %4069
  %4075 = load i32, ptr %84, align 4, !tbaa !5
  %4076 = call ptr @__errno_location() #11
  store i32 %4075, ptr %4076, align 4, !tbaa !5
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = load i32, ptr @test_count, align 4, !tbaa !5
  %4079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4080 = load i32, ptr %4079, align 4, !tbaa !5
  %4081 = call ptr @s2n_strerror(i32 noundef %4080, ptr noundef @.str.4)
  %4082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4083 = load i32, ptr %4082, align 4, !tbaa !5
  %4084 = call ptr @s2n_strerror_debug(i32 noundef %4083, ptr noundef @.str.4)
  %4085 = call ptr @__errno_location() #11
  %4086 = load i32, ptr %4085, align 4, !tbaa !5
  %4087 = call ptr @strerror(i32 noundef %4086) #10
  %4088 = call ptr @__errno_location() #11
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4077, ptr noundef @.str.2, i32 noundef %4078, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 184, ptr noundef %4081, ptr noundef %4084, ptr noundef %4087, i32 noundef %4089) #10
  br label %4108

4091:                                             ; preds = %4069, %4062
  %4092 = load i32, ptr %84, align 4, !tbaa !5
  %4093 = call ptr @__errno_location() #11
  store i32 %4092, ptr %4093, align 4, !tbaa !5
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = load i32, ptr @test_count, align 4, !tbaa !5
  %4096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4097 = load i32, ptr %4096, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror(i32 noundef %4097, ptr noundef @.str.4)
  %4099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4100 = load i32, ptr %4099, align 4, !tbaa !5
  %4101 = call ptr @s2n_strerror_debug(i32 noundef %4100, ptr noundef @.str.4)
  %4102 = call ptr @__errno_location() #11
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @strerror(i32 noundef %4103) #10
  %4105 = call ptr @__errno_location() #11
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4094, ptr noundef @.str.5, i32 noundef %4095, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 184, ptr noundef %4098, ptr noundef %4101, ptr noundef %4104, i32 noundef %4106) #10
  br label %4108

4108:                                             ; preds = %4091, %4074
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %4109

4109:                                             ; preds = %4108
  br label %4110

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

4111:                                             ; No predecessors!
  br label %4112

4112:                                             ; preds = %4111
  br label %4113

4113:                                             ; preds = %4112, %4053
  br label %4114

4114:                                             ; preds = %4113
  br label %4115

4115:                                             ; preds = %4114
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %4116 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4116, ptr %85, align 8, !tbaa !9
  br label %4117

4117:                                             ; preds = %4115
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = add nsw i32 %4118, 1
  store i32 %4119, ptr @test_count, align 4, !tbaa !5
  %4120 = load ptr, ptr %85, align 8, !tbaa !9
  %4121 = icmp eq ptr %4120, null
  br i1 %4121, label %4122, label %4175

4122:                                             ; preds = %4117
  br label %4123

4123:                                             ; preds = %4122
  br label %4124

4124:                                             ; preds = %4123
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %4125 = call ptr @__errno_location() #11
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  store i32 %4126, ptr %86, align 4, !tbaa !5
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = call i32 @s2n_print_stacktrace(ptr noundef %4127)
  %4129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4130 = trunc i8 %4129 to i1
  br i1 %4130, label %4131, label %4153

4131:                                             ; preds = %4124
  %4132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4133 = call i32 @fileno(ptr noundef %4132) #10
  %4134 = call i32 @isatty(i32 noundef %4133) #10
  %4135 = icmp ne i32 %4134, 0
  br i1 %4135, label %4136, label %4153

4136:                                             ; preds = %4131
  %4137 = load i32, ptr %86, align 4, !tbaa !5
  %4138 = call ptr @__errno_location() #11
  store i32 %4137, ptr %4138, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror(i32 noundef %4142, ptr noundef @.str.4)
  %4144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror_debug(i32 noundef %4145, ptr noundef @.str.4)
  %4147 = call ptr @__errno_location() #11
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @strerror(i32 noundef %4148) #10
  %4150 = call ptr @__errno_location() #11
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4139, ptr noundef @.str.2, i32 noundef %4140, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4143, ptr noundef %4146, ptr noundef %4149, i32 noundef %4151) #10
  br label %4170

4153:                                             ; preds = %4131, %4124
  %4154 = load i32, ptr %86, align 4, !tbaa !5
  %4155 = call ptr @__errno_location() #11
  store i32 %4154, ptr %4155, align 4, !tbaa !5
  %4156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4157 = load i32, ptr @test_count, align 4, !tbaa !5
  %4158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror(i32 noundef %4159, ptr noundef @.str.4)
  %4161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @s2n_strerror_debug(i32 noundef %4162, ptr noundef @.str.4)
  %4164 = call ptr @__errno_location() #11
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @strerror(i32 noundef %4165) #10
  %4167 = call ptr @__errno_location() #11
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4156, ptr noundef @.str.5, i32 noundef %4157, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4160, ptr noundef %4163, ptr noundef %4166, i32 noundef %4168) #10
  br label %4170

4170:                                             ; preds = %4153, %4136
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %4171

4171:                                             ; preds = %4170
  br label %4172

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

4173:                                             ; No predecessors!
  br label %4174

4174:                                             ; preds = %4173
  br label %4175

4175:                                             ; preds = %4174, %4117
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176
  br label %4178

4178:                                             ; preds = %4177
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = add nsw i32 %4179, 1
  store i32 %4180, ptr @test_count, align 4, !tbaa !5
  %4181 = load ptr, ptr %85, align 8, !tbaa !9
  %4182 = load ptr, ptr %80, align 8, !tbaa !9
  %4183 = call i32 @s2n_connection_set_config(ptr noundef %4181, ptr noundef %4182)
  %4184 = icmp eq i32 %4183, -1
  br i1 %4184, label %4185, label %4238

4185:                                             ; preds = %4178
  br label %4186

4186:                                             ; preds = %4185
  br label %4187

4187:                                             ; preds = %4186
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %4188 = call ptr @__errno_location() #11
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  store i32 %4189, ptr %87, align 4, !tbaa !5
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = call i32 @s2n_print_stacktrace(ptr noundef %4190)
  %4192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4193 = trunc i8 %4192 to i1
  br i1 %4193, label %4194, label %4216

4194:                                             ; preds = %4187
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4196 = call i32 @fileno(ptr noundef %4195) #10
  %4197 = call i32 @isatty(i32 noundef %4196) #10
  %4198 = icmp ne i32 %4197, 0
  br i1 %4198, label %4199, label %4216

4199:                                             ; preds = %4194
  %4200 = load i32, ptr %87, align 4, !tbaa !5
  %4201 = call ptr @__errno_location() #11
  store i32 %4200, ptr %4201, align 4, !tbaa !5
  %4202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4203 = load i32, ptr @test_count, align 4, !tbaa !5
  %4204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4205 = load i32, ptr %4204, align 4, !tbaa !5
  %4206 = call ptr @s2n_strerror(i32 noundef %4205, ptr noundef @.str.4)
  %4207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror_debug(i32 noundef %4208, ptr noundef @.str.4)
  %4210 = call ptr @__errno_location() #11
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  %4212 = call ptr @strerror(i32 noundef %4211) #10
  %4213 = call ptr @__errno_location() #11
  %4214 = load i32, ptr %4213, align 4, !tbaa !5
  %4215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4202, ptr noundef @.str.2, i32 noundef %4203, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4206, ptr noundef %4209, ptr noundef %4212, i32 noundef %4214) #10
  br label %4233

4216:                                             ; preds = %4194, %4187
  %4217 = load i32, ptr %87, align 4, !tbaa !5
  %4218 = call ptr @__errno_location() #11
  store i32 %4217, ptr %4218, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  %4223 = call ptr @s2n_strerror(i32 noundef %4222, ptr noundef @.str.4)
  %4224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  %4226 = call ptr @s2n_strerror_debug(i32 noundef %4225, ptr noundef @.str.4)
  %4227 = call ptr @__errno_location() #11
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  %4229 = call ptr @strerror(i32 noundef %4228) #10
  %4230 = call ptr @__errno_location() #11
  %4231 = load i32, ptr %4230, align 4, !tbaa !5
  %4232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4219, ptr noundef @.str.5, i32 noundef %4220, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4223, ptr noundef %4226, ptr noundef %4229, i32 noundef %4231) #10
  br label %4233

4233:                                             ; preds = %4216, %4199
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %4234

4234:                                             ; preds = %4233
  br label %4235

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

4236:                                             ; No predecessors!
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

4238:                                             ; preds = %4237, %4178
  br label %4239

4239:                                             ; preds = %4238
  br label %4240

4240:                                             ; preds = %4239
  br label %4241

4241:                                             ; preds = %4240
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = add nsw i32 %4242, 1
  store i32 %4243, ptr @test_count, align 4, !tbaa !5
  %4244 = load ptr, ptr %85, align 8, !tbaa !9
  %4245 = call i32 @s2n_connection_set_blinding(ptr noundef %4244, i32 noundef 1)
  %4246 = icmp eq i32 %4245, -1
  br i1 %4246, label %4247, label %4300

4247:                                             ; preds = %4241
  br label %4248

4248:                                             ; preds = %4247
  br label %4249

4249:                                             ; preds = %4248
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %4250 = call ptr @__errno_location() #11
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  store i32 %4251, ptr %88, align 4, !tbaa !5
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = call i32 @s2n_print_stacktrace(ptr noundef %4252)
  %4254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4255 = trunc i8 %4254 to i1
  br i1 %4255, label %4256, label %4278

4256:                                             ; preds = %4249
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4258 = call i32 @fileno(ptr noundef %4257) #10
  %4259 = call i32 @isatty(i32 noundef %4258) #10
  %4260 = icmp ne i32 %4259, 0
  br i1 %4260, label %4261, label %4278

4261:                                             ; preds = %4256
  %4262 = load i32, ptr %88, align 4, !tbaa !5
  %4263 = call ptr @__errno_location() #11
  store i32 %4262, ptr %4263, align 4, !tbaa !5
  %4264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4265 = load i32, ptr @test_count, align 4, !tbaa !5
  %4266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror(i32 noundef %4267, ptr noundef @.str.4)
  %4269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @s2n_strerror_debug(i32 noundef %4270, ptr noundef @.str.4)
  %4272 = call ptr @__errno_location() #11
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call ptr @strerror(i32 noundef %4273) #10
  %4275 = call ptr @__errno_location() #11
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4264, ptr noundef @.str.2, i32 noundef %4265, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 189, ptr noundef %4268, ptr noundef %4271, ptr noundef %4274, i32 noundef %4276) #10
  br label %4295

4278:                                             ; preds = %4256, %4249
  %4279 = load i32, ptr %88, align 4, !tbaa !5
  %4280 = call ptr @__errno_location() #11
  store i32 %4279, ptr %4280, align 4, !tbaa !5
  %4281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4282 = load i32, ptr @test_count, align 4, !tbaa !5
  %4283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4284 = load i32, ptr %4283, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror(i32 noundef %4284, ptr noundef @.str.4)
  %4286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4287 = load i32, ptr %4286, align 4, !tbaa !5
  %4288 = call ptr @s2n_strerror_debug(i32 noundef %4287, ptr noundef @.str.4)
  %4289 = call ptr @__errno_location() #11
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  %4291 = call ptr @strerror(i32 noundef %4290) #10
  %4292 = call ptr @__errno_location() #11
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4281, ptr noundef @.str.5, i32 noundef %4282, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 189, ptr noundef %4285, ptr noundef %4288, ptr noundef %4291, i32 noundef %4293) #10
  br label %4295

4295:                                             ; preds = %4278, %4261
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

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

4298:                                             ; No predecessors!
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299, %4241
  br label %4301

4301:                                             ; preds = %4300
  br label %4302

4302:                                             ; preds = %4301
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %4303 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4303, ptr %89, align 8, !tbaa !9
  br label %4304

4304:                                             ; preds = %4302
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = add nsw i32 %4305, 1
  store i32 %4306, ptr @test_count, align 4, !tbaa !5
  %4307 = load ptr, ptr %89, align 8, !tbaa !9
  %4308 = icmp eq ptr %4307, null
  br i1 %4308, label %4309, label %4362

4309:                                             ; preds = %4304
  br label %4310

4310:                                             ; preds = %4309
  br label %4311

4311:                                             ; preds = %4310
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %4312 = call ptr @__errno_location() #11
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  store i32 %4313, ptr %90, align 4, !tbaa !5
  %4314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4315 = call i32 @s2n_print_stacktrace(ptr noundef %4314)
  %4316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4317 = trunc i8 %4316 to i1
  br i1 %4317, label %4318, label %4340

4318:                                             ; preds = %4311
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @fileno(ptr noundef %4319) #10
  %4321 = call i32 @isatty(i32 noundef %4320) #10
  %4322 = icmp ne i32 %4321, 0
  br i1 %4322, label %4323, label %4340

4323:                                             ; preds = %4318
  %4324 = load i32, ptr %90, align 4, !tbaa !5
  %4325 = call ptr @__errno_location() #11
  store i32 %4324, ptr %4325, align 4, !tbaa !5
  %4326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4327 = load i32, ptr @test_count, align 4, !tbaa !5
  %4328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4329 = load i32, ptr %4328, align 4, !tbaa !5
  %4330 = call ptr @s2n_strerror(i32 noundef %4329, ptr noundef @.str.4)
  %4331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call ptr @s2n_strerror_debug(i32 noundef %4332, ptr noundef @.str.4)
  %4334 = call ptr @__errno_location() #11
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call ptr @strerror(i32 noundef %4335) #10
  %4337 = call ptr @__errno_location() #11
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4326, ptr noundef @.str.2, i32 noundef %4327, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4330, ptr noundef %4333, ptr noundef %4336, i32 noundef %4338) #10
  br label %4357

4340:                                             ; preds = %4318, %4311
  %4341 = load i32, ptr %90, align 4, !tbaa !5
  %4342 = call ptr @__errno_location() #11
  store i32 %4341, ptr %4342, align 4, !tbaa !5
  %4343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4344 = load i32, ptr @test_count, align 4, !tbaa !5
  %4345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4346 = load i32, ptr %4345, align 4, !tbaa !5
  %4347 = call ptr @s2n_strerror(i32 noundef %4346, ptr noundef @.str.4)
  %4348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = call ptr @s2n_strerror_debug(i32 noundef %4349, ptr noundef @.str.4)
  %4351 = call ptr @__errno_location() #11
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call ptr @strerror(i32 noundef %4352) #10
  %4354 = call ptr @__errno_location() #11
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4343, ptr noundef @.str.5, i32 noundef %4344, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4347, ptr noundef %4350, ptr noundef %4353, i32 noundef %4355) #10
  br label %4357

4357:                                             ; preds = %4340, %4323
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %4358

4358:                                             ; preds = %4357
  br label %4359

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

4360:                                             ; No predecessors!
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361, %4304
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363
  br label %4365

4365:                                             ; preds = %4364
  %4366 = load i32, ptr @test_count, align 4, !tbaa !5
  %4367 = add nsw i32 %4366, 1
  store i32 %4367, ptr @test_count, align 4, !tbaa !5
  %4368 = load ptr, ptr %89, align 8, !tbaa !9
  %4369 = load ptr, ptr %80, align 8, !tbaa !9
  %4370 = call i32 @s2n_connection_set_config(ptr noundef %4368, ptr noundef %4369)
  %4371 = icmp eq i32 %4370, -1
  br i1 %4371, label %4372, label %4425

4372:                                             ; preds = %4365
  br label %4373

4373:                                             ; preds = %4372
  br label %4374

4374:                                             ; preds = %4373
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %4375 = call ptr @__errno_location() #11
  %4376 = load i32, ptr %4375, align 4, !tbaa !5
  store i32 %4376, ptr %91, align 4, !tbaa !5
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = call i32 @s2n_print_stacktrace(ptr noundef %4377)
  %4379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4380 = trunc i8 %4379 to i1
  br i1 %4380, label %4381, label %4403

4381:                                             ; preds = %4374
  %4382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4383 = call i32 @fileno(ptr noundef %4382) #10
  %4384 = call i32 @isatty(i32 noundef %4383) #10
  %4385 = icmp ne i32 %4384, 0
  br i1 %4385, label %4386, label %4403

4386:                                             ; preds = %4381
  %4387 = load i32, ptr %91, align 4, !tbaa !5
  %4388 = call ptr @__errno_location() #11
  store i32 %4387, ptr %4388, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %4391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call ptr @s2n_strerror(i32 noundef %4392, ptr noundef @.str.4)
  %4394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  %4396 = call ptr @s2n_strerror_debug(i32 noundef %4395, ptr noundef @.str.4)
  %4397 = call ptr @__errno_location() #11
  %4398 = load i32, ptr %4397, align 4, !tbaa !5
  %4399 = call ptr @strerror(i32 noundef %4398) #10
  %4400 = call ptr @__errno_location() #11
  %4401 = load i32, ptr %4400, align 4, !tbaa !5
  %4402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef @.str.2, i32 noundef %4390, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4393, ptr noundef %4396, ptr noundef %4399, i32 noundef %4401) #10
  br label %4420

4403:                                             ; preds = %4381, %4374
  %4404 = load i32, ptr %91, align 4, !tbaa !5
  %4405 = call ptr @__errno_location() #11
  store i32 %4404, ptr %4405, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = load i32, ptr @test_count, align 4, !tbaa !5
  %4408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  %4410 = call ptr @s2n_strerror(i32 noundef %4409, ptr noundef @.str.4)
  %4411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call ptr @s2n_strerror_debug(i32 noundef %4412, ptr noundef @.str.4)
  %4414 = call ptr @__errno_location() #11
  %4415 = load i32, ptr %4414, align 4, !tbaa !5
  %4416 = call ptr @strerror(i32 noundef %4415) #10
  %4417 = call ptr @__errno_location() #11
  %4418 = load i32, ptr %4417, align 4, !tbaa !5
  %4419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4406, ptr noundef @.str.5, i32 noundef %4407, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4410, ptr noundef %4413, ptr noundef %4416, i32 noundef %4418) #10
  br label %4420

4420:                                             ; preds = %4403, %4386
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %4421

4421:                                             ; preds = %4420
  br label %4422

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

4423:                                             ; No predecessors!
  br label %4424

4424:                                             ; preds = %4423
  br label %4425

4425:                                             ; preds = %4424, %4365
  br label %4426

4426:                                             ; preds = %4425
  br label %4427

4427:                                             ; preds = %4426
  br label %4428

4428:                                             ; preds = %4427
  %4429 = load i32, ptr @test_count, align 4, !tbaa !5
  %4430 = add nsw i32 %4429, 1
  store i32 %4430, ptr @test_count, align 4, !tbaa !5
  %4431 = load ptr, ptr %89, align 8, !tbaa !9
  %4432 = call i32 @s2n_connection_set_blinding(ptr noundef %4431, i32 noundef 1)
  %4433 = icmp eq i32 %4432, -1
  br i1 %4433, label %4434, label %4487

4434:                                             ; preds = %4428
  br label %4435

4435:                                             ; preds = %4434
  br label %4436

4436:                                             ; preds = %4435
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %4437 = call ptr @__errno_location() #11
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  store i32 %4438, ptr %92, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = call i32 @s2n_print_stacktrace(ptr noundef %4439)
  %4441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4442 = trunc i8 %4441 to i1
  br i1 %4442, label %4443, label %4465

4443:                                             ; preds = %4436
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = call i32 @fileno(ptr noundef %4444) #10
  %4446 = call i32 @isatty(i32 noundef %4445) #10
  %4447 = icmp ne i32 %4446, 0
  br i1 %4447, label %4448, label %4465

4448:                                             ; preds = %4443
  %4449 = load i32, ptr %92, align 4, !tbaa !5
  %4450 = call ptr @__errno_location() #11
  store i32 %4449, ptr %4450, align 4, !tbaa !5
  %4451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4452 = load i32, ptr @test_count, align 4, !tbaa !5
  %4453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4454 = load i32, ptr %4453, align 4, !tbaa !5
  %4455 = call ptr @s2n_strerror(i32 noundef %4454, ptr noundef @.str.4)
  %4456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4457 = load i32, ptr %4456, align 4, !tbaa !5
  %4458 = call ptr @s2n_strerror_debug(i32 noundef %4457, ptr noundef @.str.4)
  %4459 = call ptr @__errno_location() #11
  %4460 = load i32, ptr %4459, align 4, !tbaa !5
  %4461 = call ptr @strerror(i32 noundef %4460) #10
  %4462 = call ptr @__errno_location() #11
  %4463 = load i32, ptr %4462, align 4, !tbaa !5
  %4464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4451, ptr noundef @.str.2, i32 noundef %4452, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 194, ptr noundef %4455, ptr noundef %4458, ptr noundef %4461, i32 noundef %4463) #10
  br label %4482

4465:                                             ; preds = %4443, %4436
  %4466 = load i32, ptr %92, align 4, !tbaa !5
  %4467 = call ptr @__errno_location() #11
  store i32 %4466, ptr %4467, align 4, !tbaa !5
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = load i32, ptr @test_count, align 4, !tbaa !5
  %4470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call ptr @s2n_strerror(i32 noundef %4471, ptr noundef @.str.4)
  %4473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror_debug(i32 noundef %4474, ptr noundef @.str.4)
  %4476 = call ptr @__errno_location() #11
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call ptr @strerror(i32 noundef %4477) #10
  %4479 = call ptr @__errno_location() #11
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4468, ptr noundef @.str.5, i32 noundef %4469, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 194, ptr noundef %4472, ptr noundef %4475, ptr noundef %4478, i32 noundef %4480) #10
  br label %4482

4482:                                             ; preds = %4465, %4448
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %4483

4483:                                             ; preds = %4482
  br label %4484

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

4485:                                             ; No predecessors!
  br label %4486

4486:                                             ; preds = %4485
  br label %4487

4487:                                             ; preds = %4486, %4428
  br label %4488

4488:                                             ; preds = %4487
  br label %4489

4489:                                             ; preds = %4488
  call void @llvm.lifetime.start.p0(i64 40, ptr %93) #10
  call void @llvm.memset.p0.i64(ptr align 8 %93, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %94) #10
  call void @llvm.memset.p0.i64(ptr align 8 %94, i8 0, i64 40, i1 false)
  br label %4490

4490:                                             ; preds = %4489
  %4491 = load i32, ptr @test_count, align 4, !tbaa !5
  %4492 = add nsw i32 %4491, 1
  store i32 %4492, ptr @test_count, align 4, !tbaa !5
  %4493 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %93, i32 noundef 0)
  %4494 = icmp eq i32 %4493, -1
  br i1 %4494, label %4495, label %4548

4495:                                             ; preds = %4490
  br label %4496

4496:                                             ; preds = %4495
  br label %4497

4497:                                             ; preds = %4496
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %4498 = call ptr @__errno_location() #11
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  store i32 %4499, ptr %95, align 4, !tbaa !5
  %4500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4501 = call i32 @s2n_print_stacktrace(ptr noundef %4500)
  %4502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4503 = trunc i8 %4502 to i1
  br i1 %4503, label %4504, label %4526

4504:                                             ; preds = %4497
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = call i32 @fileno(ptr noundef %4505) #10
  %4507 = call i32 @isatty(i32 noundef %4506) #10
  %4508 = icmp ne i32 %4507, 0
  br i1 %4508, label %4509, label %4526

4509:                                             ; preds = %4504
  %4510 = load i32, ptr %95, align 4, !tbaa !5
  %4511 = call ptr @__errno_location() #11
  store i32 %4510, ptr %4511, align 4, !tbaa !5
  %4512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4513 = load i32, ptr @test_count, align 4, !tbaa !5
  %4514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror(i32 noundef %4515, ptr noundef @.str.4)
  %4517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call ptr @s2n_strerror_debug(i32 noundef %4518, ptr noundef @.str.4)
  %4520 = call ptr @__errno_location() #11
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call ptr @strerror(i32 noundef %4521) #10
  %4523 = call ptr @__errno_location() #11
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  %4525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4512, ptr noundef @.str.2, i32 noundef %4513, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4516, ptr noundef %4519, ptr noundef %4522, i32 noundef %4524) #10
  br label %4543

4526:                                             ; preds = %4504, %4497
  %4527 = load i32, ptr %95, align 4, !tbaa !5
  %4528 = call ptr @__errno_location() #11
  store i32 %4527, ptr %4528, align 4, !tbaa !5
  %4529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4530 = load i32, ptr @test_count, align 4, !tbaa !5
  %4531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  %4533 = call ptr @s2n_strerror(i32 noundef %4532, ptr noundef @.str.4)
  %4534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4535 = load i32, ptr %4534, align 4, !tbaa !5
  %4536 = call ptr @s2n_strerror_debug(i32 noundef %4535, ptr noundef @.str.4)
  %4537 = call ptr @__errno_location() #11
  %4538 = load i32, ptr %4537, align 4, !tbaa !5
  %4539 = call ptr @strerror(i32 noundef %4538) #10
  %4540 = call ptr @__errno_location() #11
  %4541 = load i32, ptr %4540, align 4, !tbaa !5
  %4542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4529, ptr noundef @.str.5, i32 noundef %4530, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4533, ptr noundef %4536, ptr noundef %4539, i32 noundef %4541) #10
  br label %4543

4543:                                             ; preds = %4526, %4509
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4544

4544:                                             ; preds = %4543
  br label %4545

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

4546:                                             ; No predecessors!
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547, %4490
  br label %4549

4549:                                             ; preds = %4548
  br label %4550

4550:                                             ; preds = %4549
  br label %4551

4551:                                             ; preds = %4550
  %4552 = load i32, ptr @test_count, align 4, !tbaa !5
  %4553 = add nsw i32 %4552, 1
  store i32 %4553, ptr @test_count, align 4, !tbaa !5
  %4554 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %94, i32 noundef 0)
  %4555 = icmp eq i32 %4554, -1
  br i1 %4555, label %4556, label %4609

4556:                                             ; preds = %4551
  br label %4557

4557:                                             ; preds = %4556
  br label %4558

4558:                                             ; preds = %4557
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %4559 = call ptr @__errno_location() #11
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  store i32 %4560, ptr %96, align 4, !tbaa !5
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = call i32 @s2n_print_stacktrace(ptr noundef %4561)
  %4563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4564 = trunc i8 %4563 to i1
  br i1 %4564, label %4565, label %4587

4565:                                             ; preds = %4558
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = call i32 @fileno(ptr noundef %4566) #10
  %4568 = call i32 @isatty(i32 noundef %4567) #10
  %4569 = icmp ne i32 %4568, 0
  br i1 %4569, label %4570, label %4587

4570:                                             ; preds = %4565
  %4571 = load i32, ptr %96, align 4, !tbaa !5
  %4572 = call ptr @__errno_location() #11
  store i32 %4571, ptr %4572, align 4, !tbaa !5
  %4573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4574 = load i32, ptr @test_count, align 4, !tbaa !5
  %4575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call ptr @s2n_strerror(i32 noundef %4576, ptr noundef @.str.4)
  %4578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror_debug(i32 noundef %4579, ptr noundef @.str.4)
  %4581 = call ptr @__errno_location() #11
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call ptr @strerror(i32 noundef %4582) #10
  %4584 = call ptr @__errno_location() #11
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4573, ptr noundef @.str.2, i32 noundef %4574, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4577, ptr noundef %4580, ptr noundef %4583, i32 noundef %4585) #10
  br label %4604

4587:                                             ; preds = %4565, %4558
  %4588 = load i32, ptr %96, align 4, !tbaa !5
  %4589 = call ptr @__errno_location() #11
  store i32 %4588, ptr %4589, align 4, !tbaa !5
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4593 = load i32, ptr %4592, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror(i32 noundef %4593, ptr noundef @.str.4)
  %4595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror_debug(i32 noundef %4596, ptr noundef @.str.4)
  %4598 = call ptr @__errno_location() #11
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call ptr @strerror(i32 noundef %4599) #10
  %4601 = call ptr @__errno_location() #11
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4590, ptr noundef @.str.5, i32 noundef %4591, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4594, ptr noundef %4597, ptr noundef %4600, i32 noundef %4602) #10
  br label %4604

4604:                                             ; preds = %4587, %4570
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

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

4607:                                             ; No predecessors!
  br label %4608

4608:                                             ; preds = %4607
  br label %4609

4609:                                             ; preds = %4608, %4551
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  br label %4612

4612:                                             ; preds = %4611
  %4613 = load i32, ptr @test_count, align 4, !tbaa !5
  %4614 = add nsw i32 %4613, 1
  store i32 %4614, ptr @test_count, align 4, !tbaa !5
  %4615 = load ptr, ptr %85, align 8, !tbaa !9
  %4616 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %94, ptr noundef %93, ptr noundef %4615)
  %4617 = icmp eq i32 %4616, -1
  br i1 %4617, label %4618, label %4671

4618:                                             ; preds = %4612
  br label %4619

4619:                                             ; preds = %4618
  br label %4620

4620:                                             ; preds = %4619
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4621 = call ptr @__errno_location() #11
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  store i32 %4622, ptr %97, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = call i32 @s2n_print_stacktrace(ptr noundef %4623)
  %4625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4626 = trunc i8 %4625 to i1
  br i1 %4626, label %4627, label %4649

4627:                                             ; preds = %4620
  %4628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4629 = call i32 @fileno(ptr noundef %4628) #10
  %4630 = call i32 @isatty(i32 noundef %4629) #10
  %4631 = icmp ne i32 %4630, 0
  br i1 %4631, label %4632, label %4649

4632:                                             ; preds = %4627
  %4633 = load i32, ptr %97, align 4, !tbaa !5
  %4634 = call ptr @__errno_location() #11
  store i32 %4633, ptr %4634, align 4, !tbaa !5
  %4635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4636 = load i32, ptr @test_count, align 4, !tbaa !5
  %4637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @s2n_strerror(i32 noundef %4638, ptr noundef @.str.4)
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror_debug(i32 noundef %4641, ptr noundef @.str.4)
  %4643 = call ptr @__errno_location() #11
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @strerror(i32 noundef %4644) #10
  %4646 = call ptr @__errno_location() #11
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4635, ptr noundef @.str.2, i32 noundef %4636, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4639, ptr noundef %4642, ptr noundef %4645, i32 noundef %4647) #10
  br label %4666

4649:                                             ; preds = %4627, %4620
  %4650 = load i32, ptr %97, align 4, !tbaa !5
  %4651 = call ptr @__errno_location() #11
  store i32 %4650, ptr %4651, align 4, !tbaa !5
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror(i32 noundef %4655, ptr noundef @.str.4)
  %4657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @s2n_strerror_debug(i32 noundef %4658, ptr noundef @.str.4)
  %4660 = call ptr @__errno_location() #11
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @strerror(i32 noundef %4661) #10
  %4663 = call ptr @__errno_location() #11
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4652, ptr noundef @.str.5, i32 noundef %4653, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4656, ptr noundef %4659, ptr noundef %4662, i32 noundef %4664) #10
  br label %4666

4666:                                             ; preds = %4649, %4632
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

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

4669:                                             ; No predecessors!
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670, %4612
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

4674:                                             ; preds = %4673
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = add nsw i32 %4675, 1
  store i32 %4676, ptr @test_count, align 4, !tbaa !5
  %4677 = load ptr, ptr %89, align 8, !tbaa !9
  %4678 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %93, ptr noundef %94, ptr noundef %4677)
  %4679 = icmp eq i32 %4678, -1
  br i1 %4679, label %4680, label %4733

4680:                                             ; preds = %4674
  br label %4681

4681:                                             ; preds = %4680
  br label %4682

4682:                                             ; preds = %4681
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %4683 = call ptr @__errno_location() #11
  %4684 = load i32, ptr %4683, align 4, !tbaa !5
  store i32 %4684, ptr %98, align 4, !tbaa !5
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = call i32 @s2n_print_stacktrace(ptr noundef %4685)
  %4687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4688 = trunc i8 %4687 to i1
  br i1 %4688, label %4689, label %4711

4689:                                             ; preds = %4682
  %4690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4691 = call i32 @fileno(ptr noundef %4690) #10
  %4692 = call i32 @isatty(i32 noundef %4691) #10
  %4693 = icmp ne i32 %4692, 0
  br i1 %4693, label %4694, label %4711

4694:                                             ; preds = %4689
  %4695 = load i32, ptr %98, align 4, !tbaa !5
  %4696 = call ptr @__errno_location() #11
  store i32 %4695, ptr %4696, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror(i32 noundef %4700, ptr noundef @.str.4)
  %4702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror_debug(i32 noundef %4703, ptr noundef @.str.4)
  %4705 = call ptr @__errno_location() #11
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @strerror(i32 noundef %4706) #10
  %4708 = call ptr @__errno_location() #11
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4697, ptr noundef @.str.2, i32 noundef %4698, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4701, ptr noundef %4704, ptr noundef %4707, i32 noundef %4709) #10
  br label %4728

4711:                                             ; preds = %4689, %4682
  %4712 = load i32, ptr %98, align 4, !tbaa !5
  %4713 = call ptr @__errno_location() #11
  store i32 %4712, ptr %4713, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror(i32 noundef %4717, ptr noundef @.str.4)
  %4719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @s2n_strerror_debug(i32 noundef %4720, ptr noundef @.str.4)
  %4722 = call ptr @__errno_location() #11
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call ptr @strerror(i32 noundef %4723) #10
  %4725 = call ptr @__errno_location() #11
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4714, ptr noundef @.str.5, i32 noundef %4715, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4718, ptr noundef %4721, ptr noundef %4724, i32 noundef %4726) #10
  br label %4728

4728:                                             ; preds = %4711, %4694
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

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

4731:                                             ; No predecessors!
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

4733:                                             ; preds = %4732, %4674
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

4735:                                             ; preds = %4734
  br label %4736

4736:                                             ; preds = %4735
  %4737 = load i32, ptr @test_count, align 4, !tbaa !5
  %4738 = add nsw i32 %4737, 1
  store i32 %4738, ptr @test_count, align 4, !tbaa !5
  %4739 = load ptr, ptr %89, align 8, !tbaa !9
  %4740 = load ptr, ptr %85, align 8, !tbaa !9
  %4741 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %4739, ptr noundef %4740, i32 noundef 16)
  %4742 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4741, ptr %4742, align 4
  %4743 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %4744 = load i32, ptr %4743, align 4
  %4745 = call zeroext i1 @s2n_result_is_ok(i32 %4744)
  br i1 %4745, label %4799, label %4746

4746:                                             ; preds = %4736
  br label %4747

4747:                                             ; preds = %4746
  br label %4748

4748:                                             ; preds = %4747
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4749 = call ptr @__errno_location() #11
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  store i32 %4750, ptr %100, align 4, !tbaa !5
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @s2n_print_stacktrace(ptr noundef %4751)
  %4753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4754 = trunc i8 %4753 to i1
  br i1 %4754, label %4755, label %4777

4755:                                             ; preds = %4748
  %4756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4757 = call i32 @fileno(ptr noundef %4756) #10
  %4758 = call i32 @isatty(i32 noundef %4757) #10
  %4759 = icmp ne i32 %4758, 0
  br i1 %4759, label %4760, label %4777

4760:                                             ; preds = %4755
  %4761 = load i32, ptr %100, align 4, !tbaa !5
  %4762 = call ptr @__errno_location() #11
  store i32 %4761, ptr %4762, align 4, !tbaa !5
  %4763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4764 = load i32, ptr @test_count, align 4, !tbaa !5
  %4765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @s2n_strerror(i32 noundef %4766, ptr noundef @.str.4)
  %4768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call ptr @s2n_strerror_debug(i32 noundef %4769, ptr noundef @.str.4)
  %4771 = call ptr @__errno_location() #11
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call ptr @strerror(i32 noundef %4772) #10
  %4774 = call ptr @__errno_location() #11
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4763, ptr noundef @.str.2, i32 noundef %4764, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4767, ptr noundef %4770, ptr noundef %4773, i32 noundef %4775) #10
  br label %4794

4777:                                             ; preds = %4755, %4748
  %4778 = load i32, ptr %100, align 4, !tbaa !5
  %4779 = call ptr @__errno_location() #11
  store i32 %4778, ptr %4779, align 4, !tbaa !5
  %4780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4781 = load i32, ptr @test_count, align 4, !tbaa !5
  %4782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4783 = load i32, ptr %4782, align 4, !tbaa !5
  %4784 = call ptr @s2n_strerror(i32 noundef %4783, ptr noundef @.str.4)
  %4785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call ptr @s2n_strerror_debug(i32 noundef %4786, ptr noundef @.str.4)
  %4788 = call ptr @__errno_location() #11
  %4789 = load i32, ptr %4788, align 4, !tbaa !5
  %4790 = call ptr @strerror(i32 noundef %4789) #10
  %4791 = call ptr @__errno_location() #11
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  %4793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4780, ptr noundef @.str.5, i32 noundef %4781, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4784, ptr noundef %4787, ptr noundef %4790, i32 noundef %4792) #10
  br label %4794

4794:                                             ; preds = %4777, %4760
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

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

4797:                                             ; No predecessors!
  br label %4798

4798:                                             ; preds = %4797
  br label %4799

4799:                                             ; preds = %4798, %4736
  br label %4800

4800:                                             ; preds = %4799
  br label %4801

4801:                                             ; preds = %4800
  br label %4802

4802:                                             ; preds = %4801
  %4803 = load i32, ptr @test_count, align 4, !tbaa !5
  %4804 = add nsw i32 %4803, 1
  store i32 %4804, ptr @test_count, align 4, !tbaa !5
  %4805 = load ptr, ptr %89, align 8, !tbaa !9
  %4806 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4805)
  %4807 = icmp eq i32 %4806, 16
  br i1 %4807, label %4861, label %4808

4808:                                             ; preds = %4802
  br label %4809

4809:                                             ; preds = %4808
  br label %4810

4810:                                             ; preds = %4809
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %4811 = call ptr @__errno_location() #11
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  store i32 %4812, ptr %101, align 4, !tbaa !5
  %4813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4814 = call i32 @s2n_print_stacktrace(ptr noundef %4813)
  %4815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4816 = trunc i8 %4815 to i1
  br i1 %4816, label %4817, label %4839

4817:                                             ; preds = %4810
  %4818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4819 = call i32 @fileno(ptr noundef %4818) #10
  %4820 = call i32 @isatty(i32 noundef %4819) #10
  %4821 = icmp ne i32 %4820, 0
  br i1 %4821, label %4822, label %4839

4822:                                             ; preds = %4817
  %4823 = load i32, ptr %101, align 4, !tbaa !5
  %4824 = call ptr @__errno_location() #11
  store i32 %4823, ptr %4824, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = load i32, ptr @test_count, align 4, !tbaa !5
  %4827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  %4829 = call ptr @s2n_strerror(i32 noundef %4828, ptr noundef @.str.4)
  %4830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4831 = load i32, ptr %4830, align 4, !tbaa !5
  %4832 = call ptr @s2n_strerror_debug(i32 noundef %4831, ptr noundef @.str.4)
  %4833 = call ptr @__errno_location() #11
  %4834 = load i32, ptr %4833, align 4, !tbaa !5
  %4835 = call ptr @strerror(i32 noundef %4834) #10
  %4836 = call ptr @__errno_location() #11
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4825, ptr noundef @.str.2, i32 noundef %4826, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4829, ptr noundef %4832, ptr noundef %4835, i32 noundef %4837) #10
  br label %4856

4839:                                             ; preds = %4817, %4810
  %4840 = load i32, ptr %101, align 4, !tbaa !5
  %4841 = call ptr @__errno_location() #11
  store i32 %4840, ptr %4841, align 4, !tbaa !5
  %4842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4843 = load i32, ptr @test_count, align 4, !tbaa !5
  %4844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4845 = load i32, ptr %4844, align 4, !tbaa !5
  %4846 = call ptr @s2n_strerror(i32 noundef %4845, ptr noundef @.str.4)
  %4847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call ptr @s2n_strerror_debug(i32 noundef %4848, ptr noundef @.str.4)
  %4850 = call ptr @__errno_location() #11
  %4851 = load i32, ptr %4850, align 4, !tbaa !5
  %4852 = call ptr @strerror(i32 noundef %4851) #10
  %4853 = call ptr @__errno_location() #11
  %4854 = load i32, ptr %4853, align 4, !tbaa !5
  %4855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4842, ptr noundef @.str.5, i32 noundef %4843, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4846, ptr noundef %4849, ptr noundef %4852, i32 noundef %4854) #10
  br label %4856

4856:                                             ; preds = %4839, %4822
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

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

4859:                                             ; No predecessors!
  br label %4860

4860:                                             ; preds = %4859
  br label %4861

4861:                                             ; preds = %4860, %4802
  br label %4862

4862:                                             ; preds = %4861
  br label %4863

4863:                                             ; preds = %4862
  br label %4864

4864:                                             ; preds = %4863
  %4865 = load i32, ptr @test_count, align 4, !tbaa !5
  %4866 = add nsw i32 %4865, 1
  store i32 %4866, ptr @test_count, align 4, !tbaa !5
  %4867 = load ptr, ptr %89, align 8, !tbaa !9
  %4868 = getelementptr inbounds %struct.s2n_connection, ptr %4867, i32 0, i32 30
  %4869 = load ptr, ptr %4868, align 8, !tbaa !47
  %4870 = load ptr, ptr %89, align 8, !tbaa !9
  %4871 = getelementptr inbounds %struct.s2n_connection, ptr %4870, i32 0, i32 27
  %4872 = load ptr, ptr %4871, align 8, !tbaa !48
  %4873 = icmp eq ptr %4869, %4872
  br i1 %4873, label %4927, label %4874

4874:                                             ; preds = %4864
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4877 = call ptr @__errno_location() #11
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  store i32 %4878, ptr %102, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @s2n_print_stacktrace(ptr noundef %4879)
  %4881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4882 = trunc i8 %4881 to i1
  br i1 %4882, label %4883, label %4905

4883:                                             ; preds = %4876
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = call i32 @fileno(ptr noundef %4884) #10
  %4886 = call i32 @isatty(i32 noundef %4885) #10
  %4887 = icmp ne i32 %4886, 0
  br i1 %4887, label %4888, label %4905

4888:                                             ; preds = %4883
  %4889 = load i32, ptr %102, align 4, !tbaa !5
  %4890 = call ptr @__errno_location() #11
  store i32 %4889, ptr %4890, align 4, !tbaa !5
  %4891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4892 = load i32, ptr @test_count, align 4, !tbaa !5
  %4893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror(i32 noundef %4894, ptr noundef @.str.4)
  %4896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef @.str.4)
  %4899 = call ptr @__errno_location() #11
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call ptr @strerror(i32 noundef %4900) #10
  %4902 = call ptr @__errno_location() #11
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4891, ptr noundef @.str.2, i32 noundef %4892, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4895, ptr noundef %4898, ptr noundef %4901, i32 noundef %4903) #10
  br label %4922

4905:                                             ; preds = %4883, %4876
  %4906 = load i32, ptr %102, align 4, !tbaa !5
  %4907 = call ptr @__errno_location() #11
  store i32 %4906, ptr %4907, align 4, !tbaa !5
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = load i32, ptr @test_count, align 4, !tbaa !5
  %4910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @s2n_strerror(i32 noundef %4911, ptr noundef @.str.4)
  %4913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call ptr @s2n_strerror_debug(i32 noundef %4914, ptr noundef @.str.4)
  %4916 = call ptr @__errno_location() #11
  %4917 = load i32, ptr %4916, align 4, !tbaa !5
  %4918 = call ptr @strerror(i32 noundef %4917) #10
  %4919 = call ptr @__errno_location() #11
  %4920 = load i32, ptr %4919, align 4, !tbaa !5
  %4921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4908, ptr noundef @.str.5, i32 noundef %4909, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4912, ptr noundef %4915, ptr noundef %4918, i32 noundef %4920) #10
  br label %4922

4922:                                             ; preds = %4905, %4888
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

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

4925:                                             ; No predecessors!
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

4927:                                             ; preds = %4926, %4864
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  %4930 = load ptr, ptr %89, align 8, !tbaa !9
  %4931 = getelementptr inbounds %struct.s2n_connection, ptr %4930, i32 0, i32 26
  %4932 = load ptr, ptr %4931, align 8, !tbaa !49
  %4933 = load ptr, ptr %89, align 8, !tbaa !9
  %4934 = getelementptr inbounds %struct.s2n_connection, ptr %4933, i32 0, i32 30
  store ptr %4932, ptr %4934, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 24, ptr %103) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %103, ptr align 16 @__const.main.long_alpn, i64 24, i1 false)
  br label %4935

4935:                                             ; preds = %4929
  %4936 = load i32, ptr @test_count, align 4, !tbaa !5
  %4937 = add nsw i32 %4936, 1
  store i32 %4937, ptr @test_count, align 4, !tbaa !5
  %4938 = load ptr, ptr %89, align 8, !tbaa !9
  %4939 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %4938)
  %4940 = icmp eq i32 %4939, -1
  br i1 %4940, label %4941, label %4994

4941:                                             ; preds = %4935
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4944 = call ptr @__errno_location() #11
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  store i32 %4945, ptr %104, align 4, !tbaa !5
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = call i32 @s2n_print_stacktrace(ptr noundef %4946)
  %4948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4949 = trunc i8 %4948 to i1
  br i1 %4949, label %4950, label %4972

4950:                                             ; preds = %4943
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = call i32 @fileno(ptr noundef %4951) #10
  %4953 = call i32 @isatty(i32 noundef %4952) #10
  %4954 = icmp ne i32 %4953, 0
  br i1 %4954, label %4955, label %4972

4955:                                             ; preds = %4950
  %4956 = load i32, ptr %104, align 4, !tbaa !5
  %4957 = call ptr @__errno_location() #11
  store i32 %4956, ptr %4957, align 4, !tbaa !5
  %4958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4959 = load i32, ptr @test_count, align 4, !tbaa !5
  %4960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @s2n_strerror(i32 noundef %4961, ptr noundef @.str.4)
  %4963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call ptr @s2n_strerror_debug(i32 noundef %4964, ptr noundef @.str.4)
  %4966 = call ptr @__errno_location() #11
  %4967 = load i32, ptr %4966, align 4, !tbaa !5
  %4968 = call ptr @strerror(i32 noundef %4967) #10
  %4969 = call ptr @__errno_location() #11
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  %4971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4958, ptr noundef @.str.2, i32 noundef %4959, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4962, ptr noundef %4965, ptr noundef %4968, i32 noundef %4970) #10
  br label %4989

4972:                                             ; preds = %4950, %4943
  %4973 = load i32, ptr %104, align 4, !tbaa !5
  %4974 = call ptr @__errno_location() #11
  store i32 %4973, ptr %4974, align 4, !tbaa !5
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = load i32, ptr @test_count, align 4, !tbaa !5
  %4977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror(i32 noundef %4978, ptr noundef @.str.4)
  %4980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4981 = load i32, ptr %4980, align 4, !tbaa !5
  %4982 = call ptr @s2n_strerror_debug(i32 noundef %4981, ptr noundef @.str.4)
  %4983 = call ptr @__errno_location() #11
  %4984 = load i32, ptr %4983, align 4, !tbaa !5
  %4985 = call ptr @strerror(i32 noundef %4984) #10
  %4986 = call ptr @__errno_location() #11
  %4987 = load i32, ptr %4986, align 4, !tbaa !5
  %4988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4975, ptr noundef @.str.5, i32 noundef %4976, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4979, ptr noundef %4982, ptr noundef %4985, i32 noundef %4987) #10
  br label %4989

4989:                                             ; preds = %4972, %4955
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

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

4992:                                             ; No predecessors!
  br label %4993

4993:                                             ; preds = %4992
  br label %4994

4994:                                             ; preds = %4993, %4935
  br label %4995

4995:                                             ; preds = %4994
  br label %4996

4996:                                             ; preds = %4995
  br label %4997

4997:                                             ; preds = %4996
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #10
  store i64 24, ptr %105, align 8, !tbaa !50
  %4998 = load i64, ptr %105, align 8, !tbaa !50
  %4999 = icmp ne i64 %4998, 0
  br i1 %4999, label %5000, label %5061

5000:                                             ; preds = %4997
  %5001 = load ptr, ptr %89, align 8, !tbaa !9
  %5002 = getelementptr inbounds %struct.s2n_connection, ptr %5001, i32 0, i32 64
  %5003 = getelementptr inbounds [256 x i8], ptr %5002, i64 0, i64 0
  %5004 = getelementptr inbounds [24 x i8], ptr %103, i64 0, i64 0
  %5005 = load i64, ptr %105, align 8, !tbaa !50
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %5003, ptr align 16 %5004, i64 %5005, i1 false)
  %5006 = icmp eq ptr %5003, null
  br i1 %5006, label %5007, label %5060

5007:                                             ; preds = %5000
  br label %5008

5008:                                             ; preds = %5007
  br label %5009

5009:                                             ; preds = %5008
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %5010 = call ptr @__errno_location() #11
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  store i32 %5011, ptr %106, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = call i32 @s2n_print_stacktrace(ptr noundef %5012)
  %5014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5015 = trunc i8 %5014 to i1
  br i1 %5015, label %5016, label %5038

5016:                                             ; preds = %5009
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @fileno(ptr noundef %5017) #10
  %5019 = call i32 @isatty(i32 noundef %5018) #10
  %5020 = icmp ne i32 %5019, 0
  br i1 %5020, label %5021, label %5038

5021:                                             ; preds = %5016
  %5022 = load i32, ptr %106, align 4, !tbaa !5
  %5023 = call ptr @__errno_location() #11
  store i32 %5022, ptr %5023, align 4, !tbaa !5
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = load i32, ptr @test_count, align 4, !tbaa !5
  %5026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call ptr @s2n_strerror(i32 noundef %5027, ptr noundef @.str.4)
  %5029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call ptr @s2n_strerror_debug(i32 noundef %5030, ptr noundef @.str.4)
  %5032 = call ptr @__errno_location() #11
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #10
  %5035 = call ptr @__errno_location() #11
  %5036 = load i32, ptr %5035, align 4, !tbaa !5
  %5037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5024, ptr noundef @.str.2, i32 noundef %5025, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5028, ptr noundef %5031, ptr noundef %5034, i32 noundef %5036) #10
  br label %5055

5038:                                             ; preds = %5016, %5009
  %5039 = load i32, ptr %106, align 4, !tbaa !5
  %5040 = call ptr @__errno_location() #11
  store i32 %5039, ptr %5040, align 4, !tbaa !5
  %5041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5042 = load i32, ptr @test_count, align 4, !tbaa !5
  %5043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  %5045 = call ptr @s2n_strerror(i32 noundef %5044, ptr noundef @.str.4)
  %5046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5047 = load i32, ptr %5046, align 4, !tbaa !5
  %5048 = call ptr @s2n_strerror_debug(i32 noundef %5047, ptr noundef @.str.4)
  %5049 = call ptr @__errno_location() #11
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call ptr @strerror(i32 noundef %5050) #10
  %5052 = call ptr @__errno_location() #11
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  %5054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5041, ptr noundef @.str.5, i32 noundef %5042, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5045, ptr noundef %5048, ptr noundef %5051, i32 noundef %5053) #10
  br label %5055

5055:                                             ; preds = %5038, %5021
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %5056

5056:                                             ; preds = %5055
  br label %5057

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

5058:                                             ; No predecessors!
  br label %5059

5059:                                             ; preds = %5058
  br label %5060

5060:                                             ; preds = %5059, %5000
  br label %5061

5061:                                             ; preds = %5060, %4997
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

5063:                                             ; preds = %5062
  br label %5064

5064:                                             ; preds = %5063
  %5065 = load i32, ptr @test_count, align 4, !tbaa !5
  %5066 = add nsw i32 %5065, 1
  store i32 %5066, ptr @test_count, align 4, !tbaa !5
  %5067 = call i32 @s2n_stuffer_wipe(ptr noundef %94)
  %5068 = icmp eq i32 %5067, -1
  br i1 %5068, label %5069, label %5122

5069:                                             ; preds = %5064
  br label %5070

5070:                                             ; preds = %5069
  br label %5071

5071:                                             ; preds = %5070
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %5072 = call ptr @__errno_location() #11
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  store i32 %5073, ptr %107, align 4, !tbaa !5
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = call i32 @s2n_print_stacktrace(ptr noundef %5074)
  %5076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5077 = trunc i8 %5076 to i1
  br i1 %5077, label %5078, label %5100

5078:                                             ; preds = %5071
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = call i32 @fileno(ptr noundef %5079) #10
  %5081 = call i32 @isatty(i32 noundef %5080) #10
  %5082 = icmp ne i32 %5081, 0
  br i1 %5082, label %5083, label %5100

5083:                                             ; preds = %5078
  %5084 = load i32, ptr %107, align 4, !tbaa !5
  %5085 = call ptr @__errno_location() #11
  store i32 %5084, ptr %5085, align 4, !tbaa !5
  %5086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5087 = load i32, ptr @test_count, align 4, !tbaa !5
  %5088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror(i32 noundef %5089, ptr noundef @.str.4)
  %5091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @s2n_strerror_debug(i32 noundef %5092, ptr noundef @.str.4)
  %5094 = call ptr @__errno_location() #11
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call ptr @strerror(i32 noundef %5095) #10
  %5097 = call ptr @__errno_location() #11
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  %5099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5086, ptr noundef @.str.2, i32 noundef %5087, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 225, ptr noundef %5090, ptr noundef %5093, ptr noundef %5096, i32 noundef %5098) #10
  br label %5117

5100:                                             ; preds = %5078, %5071
  %5101 = load i32, ptr %107, align 4, !tbaa !5
  %5102 = call ptr @__errno_location() #11
  store i32 %5101, ptr %5102, align 4, !tbaa !5
  %5103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5104 = load i32, ptr @test_count, align 4, !tbaa !5
  %5105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call ptr @s2n_strerror(i32 noundef %5106, ptr noundef @.str.4)
  %5108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5109 = load i32, ptr %5108, align 4, !tbaa !5
  %5110 = call ptr @s2n_strerror_debug(i32 noundef %5109, ptr noundef @.str.4)
  %5111 = call ptr @__errno_location() #11
  %5112 = load i32, ptr %5111, align 4, !tbaa !5
  %5113 = call ptr @strerror(i32 noundef %5112) #10
  %5114 = call ptr @__errno_location() #11
  %5115 = load i32, ptr %5114, align 4, !tbaa !5
  %5116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5103, ptr noundef @.str.5, i32 noundef %5104, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 225, ptr noundef %5107, ptr noundef %5110, ptr noundef %5113, i32 noundef %5115) #10
  br label %5117

5117:                                             ; preds = %5100, %5083
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %5118

5118:                                             ; preds = %5117
  br label %5119

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

5120:                                             ; No predecessors!
  br label %5121

5121:                                             ; preds = %5120
  br label %5122

5122:                                             ; preds = %5121, %5064
  br label %5123

5123:                                             ; preds = %5122
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

5125:                                             ; preds = %5124
  %5126 = load i32, ptr @test_count, align 4, !tbaa !5
  %5127 = add nsw i32 %5126, 1
  store i32 %5127, ptr @test_count, align 4, !tbaa !5
  %5128 = load ptr, ptr %89, align 8, !tbaa !9
  %5129 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5128)
  %5130 = icmp eq i32 %5129, 16
  br i1 %5130, label %5184, label %5131

5131:                                             ; preds = %5125
  br label %5132

5132:                                             ; preds = %5131
  br label %5133

5133:                                             ; preds = %5132
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %5134 = call ptr @__errno_location() #11
  %5135 = load i32, ptr %5134, align 4, !tbaa !5
  store i32 %5135, ptr %108, align 4, !tbaa !5
  %5136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5137 = call i32 @s2n_print_stacktrace(ptr noundef %5136)
  %5138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5139 = trunc i8 %5138 to i1
  br i1 %5139, label %5140, label %5162

5140:                                             ; preds = %5133
  %5141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5142 = call i32 @fileno(ptr noundef %5141) #10
  %5143 = call i32 @isatty(i32 noundef %5142) #10
  %5144 = icmp ne i32 %5143, 0
  br i1 %5144, label %5145, label %5162

5145:                                             ; preds = %5140
  %5146 = load i32, ptr %108, align 4, !tbaa !5
  %5147 = call ptr @__errno_location() #11
  store i32 %5146, ptr %5147, align 4, !tbaa !5
  %5148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5149 = load i32, ptr @test_count, align 4, !tbaa !5
  %5150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5151 = load i32, ptr %5150, align 4, !tbaa !5
  %5152 = call ptr @s2n_strerror(i32 noundef %5151, ptr noundef @.str.4)
  %5153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5154 = load i32, ptr %5153, align 4, !tbaa !5
  %5155 = call ptr @s2n_strerror_debug(i32 noundef %5154, ptr noundef @.str.4)
  %5156 = call ptr @__errno_location() #11
  %5157 = load i32, ptr %5156, align 4, !tbaa !5
  %5158 = call ptr @strerror(i32 noundef %5157) #10
  %5159 = call ptr @__errno_location() #11
  %5160 = load i32, ptr %5159, align 4, !tbaa !5
  %5161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5148, ptr noundef @.str.2, i32 noundef %5149, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 228, ptr noundef %5152, ptr noundef %5155, ptr noundef %5158, i32 noundef %5160) #10
  br label %5179

5162:                                             ; preds = %5140, %5133
  %5163 = load i32, ptr %108, align 4, !tbaa !5
  %5164 = call ptr @__errno_location() #11
  store i32 %5163, ptr %5164, align 4, !tbaa !5
  %5165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5166 = load i32, ptr @test_count, align 4, !tbaa !5
  %5167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5168 = load i32, ptr %5167, align 4, !tbaa !5
  %5169 = call ptr @s2n_strerror(i32 noundef %5168, ptr noundef @.str.4)
  %5170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5171 = load i32, ptr %5170, align 4, !tbaa !5
  %5172 = call ptr @s2n_strerror_debug(i32 noundef %5171, ptr noundef @.str.4)
  %5173 = call ptr @__errno_location() #11
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @strerror(i32 noundef %5174) #10
  %5176 = call ptr @__errno_location() #11
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef @.str.5, i32 noundef %5166, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 228, ptr noundef %5169, ptr noundef %5172, ptr noundef %5175, i32 noundef %5177) #10
  br label %5179

5179:                                             ; preds = %5162, %5145
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %5180

5180:                                             ; preds = %5179
  br label %5181

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

5182:                                             ; No predecessors!
  br label %5183

5183:                                             ; preds = %5182
  br label %5184

5184:                                             ; preds = %5183, %5125
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185
  br label %5187

5187:                                             ; preds = %5186
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

5189:                                             ; preds = %5188
  %5190 = load i32, ptr @test_count, align 4, !tbaa !5
  %5191 = add nsw i32 %5190, 1
  store i32 %5191, ptr @test_count, align 4, !tbaa !5
  %5192 = load ptr, ptr %89, align 8, !tbaa !9
  %5193 = call i32 @s2n_negotiate(ptr noundef %5192, ptr noundef %77)
  %5194 = icmp eq i32 %5193, -1
  br i1 %5194, label %5248, label %5195

5195:                                             ; preds = %5189
  br label %5196

5196:                                             ; preds = %5195
  br label %5197

5197:                                             ; preds = %5196
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %5198 = call ptr @__errno_location() #11
  %5199 = load i32, ptr %5198, align 4, !tbaa !5
  store i32 %5199, ptr %109, align 4, !tbaa !5
  %5200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5201 = call i32 @s2n_print_stacktrace(ptr noundef %5200)
  %5202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5203 = trunc i8 %5202 to i1
  br i1 %5203, label %5204, label %5226

5204:                                             ; preds = %5197
  %5205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5206 = call i32 @fileno(ptr noundef %5205) #10
  %5207 = call i32 @isatty(i32 noundef %5206) #10
  %5208 = icmp ne i32 %5207, 0
  br i1 %5208, label %5209, label %5226

5209:                                             ; preds = %5204
  %5210 = load i32, ptr %109, align 4, !tbaa !5
  %5211 = call ptr @__errno_location() #11
  store i32 %5210, ptr %5211, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = load i32, ptr @test_count, align 4, !tbaa !5
  %5214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5215 = load i32, ptr %5214, align 4, !tbaa !5
  %5216 = call ptr @s2n_strerror(i32 noundef %5215, ptr noundef @.str.4)
  %5217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5218 = load i32, ptr %5217, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef @.str.4)
  %5220 = call ptr @__errno_location() #11
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @strerror(i32 noundef %5221) #10
  %5223 = call ptr @__errno_location() #11
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef @.str.2, i32 noundef %5213, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5216, ptr noundef %5219, ptr noundef %5222, i32 noundef %5224) #10
  br label %5243

5226:                                             ; preds = %5204, %5197
  %5227 = load i32, ptr %109, align 4, !tbaa !5
  %5228 = call ptr @__errno_location() #11
  store i32 %5227, ptr %5228, align 4, !tbaa !5
  %5229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5230 = load i32, ptr @test_count, align 4, !tbaa !5
  %5231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5232 = load i32, ptr %5231, align 4, !tbaa !5
  %5233 = call ptr @s2n_strerror(i32 noundef %5232, ptr noundef @.str.4)
  %5234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5235 = load i32, ptr %5234, align 4, !tbaa !5
  %5236 = call ptr @s2n_strerror_debug(i32 noundef %5235, ptr noundef @.str.4)
  %5237 = call ptr @__errno_location() #11
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call ptr @strerror(i32 noundef %5238) #10
  %5240 = call ptr @__errno_location() #11
  %5241 = load i32, ptr %5240, align 4, !tbaa !5
  %5242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5229, ptr noundef @.str.5, i32 noundef %5230, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5233, ptr noundef %5236, ptr noundef %5239, i32 noundef %5241) #10
  br label %5243

5243:                                             ; preds = %5226, %5209
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

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

5246:                                             ; No predecessors!
  br label %5247

5247:                                             ; preds = %5246
  br label %5248

5248:                                             ; preds = %5247, %5189
  br label %5249

5249:                                             ; preds = %5248
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250
  %5252 = load i32, ptr @test_count, align 4, !tbaa !5
  %5253 = add nsw i32 %5252, 1
  store i32 %5253, ptr @test_count, align 4, !tbaa !5
  %5254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = icmp eq i32 %5255, 201326592
  br i1 %5256, label %5310, label %5257

5257:                                             ; preds = %5251
  br label %5258

5258:                                             ; preds = %5257
  br label %5259

5259:                                             ; preds = %5258
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %5260 = call ptr @__errno_location() #11
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  store i32 %5261, ptr %110, align 4, !tbaa !5
  %5262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5263 = call i32 @s2n_print_stacktrace(ptr noundef %5262)
  %5264 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5265 = trunc i8 %5264 to i1
  br i1 %5265, label %5266, label %5288

5266:                                             ; preds = %5259
  %5267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5268 = call i32 @fileno(ptr noundef %5267) #10
  %5269 = call i32 @isatty(i32 noundef %5268) #10
  %5270 = icmp ne i32 %5269, 0
  br i1 %5270, label %5271, label %5288

5271:                                             ; preds = %5266
  %5272 = load i32, ptr %110, align 4, !tbaa !5
  %5273 = call ptr @__errno_location() #11
  store i32 %5272, ptr %5273, align 4, !tbaa !5
  %5274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5275 = load i32, ptr @test_count, align 4, !tbaa !5
  %5276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror(i32 noundef %5277, ptr noundef @.str.4)
  %5279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call ptr @s2n_strerror_debug(i32 noundef %5280, ptr noundef @.str.4)
  %5282 = call ptr @__errno_location() #11
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @strerror(i32 noundef %5283) #10
  %5285 = call ptr @__errno_location() #11
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5274, ptr noundef @.str.2, i32 noundef %5275, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5278, ptr noundef %5281, ptr noundef %5284, i32 noundef %5286) #10
  br label %5305

5288:                                             ; preds = %5266, %5259
  %5289 = load i32, ptr %110, align 4, !tbaa !5
  %5290 = call ptr @__errno_location() #11
  store i32 %5289, ptr %5290, align 4, !tbaa !5
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = load i32, ptr @test_count, align 4, !tbaa !5
  %5293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call ptr @s2n_strerror(i32 noundef %5294, ptr noundef @.str.4)
  %5296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5297 = load i32, ptr %5296, align 4, !tbaa !5
  %5298 = call ptr @s2n_strerror_debug(i32 noundef %5297, ptr noundef @.str.4)
  %5299 = call ptr @__errno_location() #11
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  %5301 = call ptr @strerror(i32 noundef %5300) #10
  %5302 = call ptr @__errno_location() #11
  %5303 = load i32, ptr %5302, align 4, !tbaa !5
  %5304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5291, ptr noundef @.str.5, i32 noundef %5292, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5295, ptr noundef %5298, ptr noundef %5301, i32 noundef %5303) #10
  br label %5305

5305:                                             ; preds = %5288, %5271
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %5306

5306:                                             ; preds = %5305
  br label %5307

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

5308:                                             ; No predecessors!
  br label %5309

5309:                                             ; preds = %5308
  br label %5310

5310:                                             ; preds = %5309, %5251
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311
  br label %5313

5313:                                             ; preds = %5312
  %5314 = load i32, ptr @test_count, align 4, !tbaa !5
  %5315 = add nsw i32 %5314, 1
  store i32 %5315, ptr @test_count, align 4, !tbaa !5
  %5316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  %5318 = call ptr @s2n_strerror_debug(i32 noundef %5317, ptr noundef @.str.4)
  %5319 = icmp eq ptr %5318, null
  br i1 %5319, label %5320, label %5373

5320:                                             ; preds = %5313
  br label %5321

5321:                                             ; preds = %5320
  br label %5322

5322:                                             ; preds = %5321
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %5323 = call ptr @__errno_location() #11
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  store i32 %5324, ptr %111, align 4, !tbaa !5
  %5325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5326 = call i32 @s2n_print_stacktrace(ptr noundef %5325)
  %5327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5328 = trunc i8 %5327 to i1
  br i1 %5328, label %5329, label %5351

5329:                                             ; preds = %5322
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = call i32 @fileno(ptr noundef %5330) #10
  %5332 = call i32 @isatty(i32 noundef %5331) #10
  %5333 = icmp ne i32 %5332, 0
  br i1 %5333, label %5334, label %5351

5334:                                             ; preds = %5329
  %5335 = load i32, ptr %111, align 4, !tbaa !5
  %5336 = call ptr @__errno_location() #11
  store i32 %5335, ptr %5336, align 4, !tbaa !5
  %5337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5338 = load i32, ptr @test_count, align 4, !tbaa !5
  %5339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5340 = load i32, ptr %5339, align 4, !tbaa !5
  %5341 = call ptr @s2n_strerror(i32 noundef %5340, ptr noundef @.str.4)
  %5342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5343 = load i32, ptr %5342, align 4, !tbaa !5
  %5344 = call ptr @s2n_strerror_debug(i32 noundef %5343, ptr noundef @.str.4)
  %5345 = call ptr @__errno_location() #11
  %5346 = load i32, ptr %5345, align 4, !tbaa !5
  %5347 = call ptr @strerror(i32 noundef %5346) #10
  %5348 = call ptr @__errno_location() #11
  %5349 = load i32, ptr %5348, align 4, !tbaa !5
  %5350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5337, ptr noundef @.str.2, i32 noundef %5338, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5341, ptr noundef %5344, ptr noundef %5347, i32 noundef %5349) #10
  br label %5368

5351:                                             ; preds = %5329, %5322
  %5352 = load i32, ptr %111, align 4, !tbaa !5
  %5353 = call ptr @__errno_location() #11
  store i32 %5352, ptr %5353, align 4, !tbaa !5
  %5354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5355 = load i32, ptr @test_count, align 4, !tbaa !5
  %5356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5357 = load i32, ptr %5356, align 4, !tbaa !5
  %5358 = call ptr @s2n_strerror(i32 noundef %5357, ptr noundef @.str.4)
  %5359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5360 = load i32, ptr %5359, align 4, !tbaa !5
  %5361 = call ptr @s2n_strerror_debug(i32 noundef %5360, ptr noundef @.str.4)
  %5362 = call ptr @__errno_location() #11
  %5363 = load i32, ptr %5362, align 4, !tbaa !5
  %5364 = call ptr @strerror(i32 noundef %5363) #10
  %5365 = call ptr @__errno_location() #11
  %5366 = load i32, ptr %5365, align 4, !tbaa !5
  %5367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5354, ptr noundef @.str.5, i32 noundef %5355, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5358, ptr noundef %5361, ptr noundef %5364, i32 noundef %5366) #10
  br label %5368

5368:                                             ; preds = %5351, %5334
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %5369

5369:                                             ; preds = %5368
  br label %5370

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

5371:                                             ; No predecessors!
  br label %5372

5372:                                             ; preds = %5371
  br label %5373

5373:                                             ; preds = %5372, %5313
  br label %5374

5374:                                             ; preds = %5373
  br label %5375

5375:                                             ; preds = %5374
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  br label %5378

5378:                                             ; preds = %5377
  %5379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5379, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5380 = call ptr @__errno_location() #11
  store i32 0, ptr %5380, align 4, !tbaa !5
  br label %5381

5381:                                             ; preds = %5378
  br label %5382

5382:                                             ; preds = %5381
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

5384:                                             ; preds = %5383
  br label %5385

5385:                                             ; preds = %5384
  %5386 = load i32, ptr @test_count, align 4, !tbaa !5
  %5387 = add nsw i32 %5386, 1
  store i32 %5387, ptr @test_count, align 4, !tbaa !5
  %5388 = load ptr, ptr %89, align 8, !tbaa !9
  %5389 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5388)
  %5390 = icmp eq i32 %5389, 16
  br i1 %5390, label %5391, label %5444

5391:                                             ; preds = %5385
  br label %5392

5392:                                             ; preds = %5391
  br label %5393

5393:                                             ; preds = %5392
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %5394 = call ptr @__errno_location() #11
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  store i32 %5395, ptr %112, align 4, !tbaa !5
  %5396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5397 = call i32 @s2n_print_stacktrace(ptr noundef %5396)
  %5398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5399 = trunc i8 %5398 to i1
  br i1 %5399, label %5400, label %5422

5400:                                             ; preds = %5393
  %5401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5402 = call i32 @fileno(ptr noundef %5401) #10
  %5403 = call i32 @isatty(i32 noundef %5402) #10
  %5404 = icmp ne i32 %5403, 0
  br i1 %5404, label %5405, label %5422

5405:                                             ; preds = %5400
  %5406 = load i32, ptr %112, align 4, !tbaa !5
  %5407 = call ptr @__errno_location() #11
  store i32 %5406, ptr %5407, align 4, !tbaa !5
  %5408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5409 = load i32, ptr @test_count, align 4, !tbaa !5
  %5410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call ptr @s2n_strerror(i32 noundef %5411, ptr noundef @.str.4)
  %5413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror_debug(i32 noundef %5414, ptr noundef @.str.4)
  %5416 = call ptr @__errno_location() #11
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call ptr @strerror(i32 noundef %5417) #10
  %5419 = call ptr @__errno_location() #11
  %5420 = load i32, ptr %5419, align 4, !tbaa !5
  %5421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5408, ptr noundef @.str.2, i32 noundef %5409, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5412, ptr noundef %5415, ptr noundef %5418, i32 noundef %5420) #10
  br label %5439

5422:                                             ; preds = %5400, %5393
  %5423 = load i32, ptr %112, align 4, !tbaa !5
  %5424 = call ptr @__errno_location() #11
  store i32 %5423, ptr %5424, align 4, !tbaa !5
  %5425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5426 = load i32, ptr @test_count, align 4, !tbaa !5
  %5427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @s2n_strerror(i32 noundef %5428, ptr noundef @.str.4)
  %5430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @s2n_strerror_debug(i32 noundef %5431, ptr noundef @.str.4)
  %5433 = call ptr @__errno_location() #11
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @strerror(i32 noundef %5434) #10
  %5436 = call ptr @__errno_location() #11
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5425, ptr noundef @.str.5, i32 noundef %5426, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5429, ptr noundef %5432, ptr noundef %5435, i32 noundef %5437) #10
  br label %5439

5439:                                             ; preds = %5422, %5405
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %5440

5440:                                             ; preds = %5439
  br label %5441

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

5442:                                             ; No predecessors!
  br label %5443

5443:                                             ; preds = %5442
  br label %5444

5444:                                             ; preds = %5443, %5385
  br label %5445

5445:                                             ; preds = %5444
  br label %5446

5446:                                             ; preds = %5445
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #10
  store i8 0, ptr %113, align 1, !tbaa !51
  br label %5447

5447:                                             ; preds = %5446
  %5448 = load i32, ptr @test_count, align 4, !tbaa !5
  %5449 = add nsw i32 %5448, 1
  store i32 %5449, ptr @test_count, align 4, !tbaa !5
  %5450 = call i32 @s2n_stuffer_read_uint8(ptr noundef %94, ptr noundef %113)
  %5451 = icmp eq i32 %5450, -1
  br i1 %5451, label %5452, label %5505

5452:                                             ; preds = %5447
  br label %5453

5453:                                             ; preds = %5452
  br label %5454

5454:                                             ; preds = %5453
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %5455 = call ptr @__errno_location() #11
  %5456 = load i32, ptr %5455, align 4, !tbaa !5
  store i32 %5456, ptr %114, align 4, !tbaa !5
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = call i32 @s2n_print_stacktrace(ptr noundef %5457)
  %5459 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5460 = trunc i8 %5459 to i1
  br i1 %5460, label %5461, label %5483

5461:                                             ; preds = %5454
  %5462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5463 = call i32 @fileno(ptr noundef %5462) #10
  %5464 = call i32 @isatty(i32 noundef %5463) #10
  %5465 = icmp ne i32 %5464, 0
  br i1 %5465, label %5466, label %5483

5466:                                             ; preds = %5461
  %5467 = load i32, ptr %114, align 4, !tbaa !5
  %5468 = call ptr @__errno_location() #11
  store i32 %5467, ptr %5468, align 4, !tbaa !5
  %5469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5470 = load i32, ptr @test_count, align 4, !tbaa !5
  %5471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  %5473 = call ptr @s2n_strerror(i32 noundef %5472, ptr noundef @.str.4)
  %5474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5475 = load i32, ptr %5474, align 4, !tbaa !5
  %5476 = call ptr @s2n_strerror_debug(i32 noundef %5475, ptr noundef @.str.4)
  %5477 = call ptr @__errno_location() #11
  %5478 = load i32, ptr %5477, align 4, !tbaa !5
  %5479 = call ptr @strerror(i32 noundef %5478) #10
  %5480 = call ptr @__errno_location() #11
  %5481 = load i32, ptr %5480, align 4, !tbaa !5
  %5482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5469, ptr noundef @.str.2, i32 noundef %5470, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5473, ptr noundef %5476, ptr noundef %5479, i32 noundef %5481) #10
  br label %5500

5483:                                             ; preds = %5461, %5454
  %5484 = load i32, ptr %114, align 4, !tbaa !5
  %5485 = call ptr @__errno_location() #11
  store i32 %5484, ptr %5485, align 4, !tbaa !5
  %5486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5487 = load i32, ptr @test_count, align 4, !tbaa !5
  %5488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5489 = load i32, ptr %5488, align 4, !tbaa !5
  %5490 = call ptr @s2n_strerror(i32 noundef %5489, ptr noundef @.str.4)
  %5491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5492 = load i32, ptr %5491, align 4, !tbaa !5
  %5493 = call ptr @s2n_strerror_debug(i32 noundef %5492, ptr noundef @.str.4)
  %5494 = call ptr @__errno_location() #11
  %5495 = load i32, ptr %5494, align 4, !tbaa !5
  %5496 = call ptr @strerror(i32 noundef %5495) #10
  %5497 = call ptr @__errno_location() #11
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  %5499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5486, ptr noundef @.str.5, i32 noundef %5487, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5490, ptr noundef %5493, ptr noundef %5496, i32 noundef %5498) #10
  br label %5500

5500:                                             ; preds = %5483, %5466
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5501

5501:                                             ; preds = %5500
  br label %5502

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

5503:                                             ; No predecessors!
  br label %5504

5504:                                             ; preds = %5503
  br label %5505

5505:                                             ; preds = %5504, %5447
  br label %5506

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506
  br label %5508

5508:                                             ; preds = %5507
  %5509 = load i32, ptr @test_count, align 4, !tbaa !5
  %5510 = add nsw i32 %5509, 1
  store i32 %5510, ptr @test_count, align 4, !tbaa !5
  %5511 = load i8, ptr %113, align 1, !tbaa !51
  %5512 = zext i8 %5511 to i32
  %5513 = icmp eq i32 %5512, 22
  br i1 %5513, label %5567, label %5514

5514:                                             ; preds = %5508
  br label %5515

5515:                                             ; preds = %5514
  br label %5516

5516:                                             ; preds = %5515
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #10
  %5517 = call ptr @__errno_location() #11
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  store i32 %5518, ptr %115, align 4, !tbaa !5
  %5519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5520 = call i32 @s2n_print_stacktrace(ptr noundef %5519)
  %5521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5522 = trunc i8 %5521 to i1
  br i1 %5522, label %5523, label %5545

5523:                                             ; preds = %5516
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @fileno(ptr noundef %5524) #10
  %5526 = call i32 @isatty(i32 noundef %5525) #10
  %5527 = icmp ne i32 %5526, 0
  br i1 %5527, label %5528, label %5545

5528:                                             ; preds = %5523
  %5529 = load i32, ptr %115, align 4, !tbaa !5
  %5530 = call ptr @__errno_location() #11
  store i32 %5529, ptr %5530, align 4, !tbaa !5
  %5531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5532 = load i32, ptr @test_count, align 4, !tbaa !5
  %5533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @s2n_strerror(i32 noundef %5534, ptr noundef @.str.4)
  %5536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call ptr @s2n_strerror_debug(i32 noundef %5537, ptr noundef @.str.4)
  %5539 = call ptr @__errno_location() #11
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  %5541 = call ptr @strerror(i32 noundef %5540) #10
  %5542 = call ptr @__errno_location() #11
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  %5544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5531, ptr noundef @.str.2, i32 noundef %5532, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5535, ptr noundef %5538, ptr noundef %5541, i32 noundef %5543) #10
  br label %5562

5545:                                             ; preds = %5523, %5516
  %5546 = load i32, ptr %115, align 4, !tbaa !5
  %5547 = call ptr @__errno_location() #11
  store i32 %5546, ptr %5547, align 4, !tbaa !5
  %5548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5549 = load i32, ptr @test_count, align 4, !tbaa !5
  %5550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5551 = load i32, ptr %5550, align 4, !tbaa !5
  %5552 = call ptr @s2n_strerror(i32 noundef %5551, ptr noundef @.str.4)
  %5553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call ptr @s2n_strerror_debug(i32 noundef %5554, ptr noundef @.str.4)
  %5556 = call ptr @__errno_location() #11
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = call ptr @strerror(i32 noundef %5557) #10
  %5559 = call ptr @__errno_location() #11
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5548, ptr noundef @.str.5, i32 noundef %5549, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5552, ptr noundef %5555, ptr noundef %5558, i32 noundef %5560) #10
  br label %5562

5562:                                             ; preds = %5545, %5528
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %5563

5563:                                             ; preds = %5562
  br label %5564

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

5565:                                             ; No predecessors!
  br label %5566

5566:                                             ; preds = %5565
  br label %5567

5567:                                             ; preds = %5566, %5508
  br label %5568

5568:                                             ; preds = %5567
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

5570:                                             ; preds = %5569
  %5571 = load i32, ptr @test_count, align 4, !tbaa !5
  %5572 = add nsw i32 %5571, 1
  store i32 %5572, ptr @test_count, align 4, !tbaa !5
  %5573 = call i32 @s2n_stuffer_reread(ptr noundef %94)
  %5574 = icmp eq i32 %5573, -1
  br i1 %5574, label %5575, label %5628

5575:                                             ; preds = %5570
  br label %5576

5576:                                             ; preds = %5575
  br label %5577

5577:                                             ; preds = %5576
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %5578 = call ptr @__errno_location() #11
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  store i32 %5579, ptr %116, align 4, !tbaa !5
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = call i32 @s2n_print_stacktrace(ptr noundef %5580)
  %5582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5583 = trunc i8 %5582 to i1
  br i1 %5583, label %5584, label %5606

5584:                                             ; preds = %5577
  %5585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5586 = call i32 @fileno(ptr noundef %5585) #10
  %5587 = call i32 @isatty(i32 noundef %5586) #10
  %5588 = icmp ne i32 %5587, 0
  br i1 %5588, label %5589, label %5606

5589:                                             ; preds = %5584
  %5590 = load i32, ptr %116, align 4, !tbaa !5
  %5591 = call ptr @__errno_location() #11
  store i32 %5590, ptr %5591, align 4, !tbaa !5
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @s2n_strerror(i32 noundef %5595, ptr noundef @.str.4)
  %5597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror_debug(i32 noundef %5598, ptr noundef @.str.4)
  %5600 = call ptr @__errno_location() #11
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @strerror(i32 noundef %5601) #10
  %5603 = call ptr @__errno_location() #11
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5592, ptr noundef @.str.2, i32 noundef %5593, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5596, ptr noundef %5599, ptr noundef %5602, i32 noundef %5604) #10
  br label %5623

5606:                                             ; preds = %5584, %5577
  %5607 = load i32, ptr %116, align 4, !tbaa !5
  %5608 = call ptr @__errno_location() #11
  store i32 %5607, ptr %5608, align 4, !tbaa !5
  %5609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5610 = load i32, ptr @test_count, align 4, !tbaa !5
  %5611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call ptr @s2n_strerror(i32 noundef %5612, ptr noundef @.str.4)
  %5614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror_debug(i32 noundef %5615, ptr noundef @.str.4)
  %5617 = call ptr @__errno_location() #11
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @strerror(i32 noundef %5618) #10
  %5620 = call ptr @__errno_location() #11
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5609, ptr noundef @.str.5, i32 noundef %5610, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5613, ptr noundef %5616, ptr noundef %5619, i32 noundef %5621) #10
  br label %5623

5623:                                             ; preds = %5606, %5589
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %5624

5624:                                             ; preds = %5623
  br label %5625

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

5626:                                             ; No predecessors!
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627, %5570
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

5630:                                             ; preds = %5629
  br label %5631

5631:                                             ; preds = %5630
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = add nsw i32 %5632, 1
  store i32 %5633, ptr @test_count, align 4, !tbaa !5
  %5634 = call i32 @s2n_stuffer_skip_read(ptr noundef %94, i32 noundef 5)
  %5635 = icmp eq i32 %5634, -1
  br i1 %5635, label %5636, label %5689

5636:                                             ; preds = %5631
  br label %5637

5637:                                             ; preds = %5636
  br label %5638

5638:                                             ; preds = %5637
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %5639 = call ptr @__errno_location() #11
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  store i32 %5640, ptr %117, align 4, !tbaa !5
  %5641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5642 = call i32 @s2n_print_stacktrace(ptr noundef %5641)
  %5643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5644 = trunc i8 %5643 to i1
  br i1 %5644, label %5645, label %5667

5645:                                             ; preds = %5638
  %5646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5647 = call i32 @fileno(ptr noundef %5646) #10
  %5648 = call i32 @isatty(i32 noundef %5647) #10
  %5649 = icmp ne i32 %5648, 0
  br i1 %5649, label %5650, label %5667

5650:                                             ; preds = %5645
  %5651 = load i32, ptr %117, align 4, !tbaa !5
  %5652 = call ptr @__errno_location() #11
  store i32 %5651, ptr %5652, align 4, !tbaa !5
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = load i32, ptr @test_count, align 4, !tbaa !5
  %5655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror(i32 noundef %5656, ptr noundef @.str.4)
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef @.str.4)
  %5661 = call ptr @__errno_location() #11
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @strerror(i32 noundef %5662) #10
  %5664 = call ptr @__errno_location() #11
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5653, ptr noundef @.str.2, i32 noundef %5654, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5657, ptr noundef %5660, ptr noundef %5663, i32 noundef %5665) #10
  br label %5684

5667:                                             ; preds = %5645, %5638
  %5668 = load i32, ptr %117, align 4, !tbaa !5
  %5669 = call ptr @__errno_location() #11
  store i32 %5668, ptr %5669, align 4, !tbaa !5
  %5670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5671 = load i32, ptr @test_count, align 4, !tbaa !5
  %5672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5673 = load i32, ptr %5672, align 4, !tbaa !5
  %5674 = call ptr @s2n_strerror(i32 noundef %5673, ptr noundef @.str.4)
  %5675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5676 = load i32, ptr %5675, align 4, !tbaa !5
  %5677 = call ptr @s2n_strerror_debug(i32 noundef %5676, ptr noundef @.str.4)
  %5678 = call ptr @__errno_location() #11
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  %5680 = call ptr @strerror(i32 noundef %5679) #10
  %5681 = call ptr @__errno_location() #11
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  %5683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5670, ptr noundef @.str.5, i32 noundef %5671, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5674, ptr noundef %5677, ptr noundef %5680, i32 noundef %5682) #10
  br label %5684

5684:                                             ; preds = %5667, %5650
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5685

5685:                                             ; preds = %5684
  br label %5686

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

5687:                                             ; No predecessors!
  br label %5688

5688:                                             ; preds = %5687
  br label %5689

5689:                                             ; preds = %5688, %5631
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690
  br label %5692

5692:                                             ; preds = %5691
  %5693 = load i32, ptr @test_count, align 4, !tbaa !5
  %5694 = add nsw i32 %5693, 1
  store i32 %5694, ptr @test_count, align 4, !tbaa !5
  %5695 = call i32 @s2n_stuffer_read_uint8(ptr noundef %94, ptr noundef %113)
  %5696 = icmp eq i32 %5695, -1
  br i1 %5696, label %5697, label %5750

5697:                                             ; preds = %5692
  br label %5698

5698:                                             ; preds = %5697
  br label %5699

5699:                                             ; preds = %5698
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %5700 = call ptr @__errno_location() #11
  %5701 = load i32, ptr %5700, align 4, !tbaa !5
  store i32 %5701, ptr %118, align 4, !tbaa !5
  %5702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5703 = call i32 @s2n_print_stacktrace(ptr noundef %5702)
  %5704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5705 = trunc i8 %5704 to i1
  br i1 %5705, label %5706, label %5728

5706:                                             ; preds = %5699
  %5707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5708 = call i32 @fileno(ptr noundef %5707) #10
  %5709 = call i32 @isatty(i32 noundef %5708) #10
  %5710 = icmp ne i32 %5709, 0
  br i1 %5710, label %5711, label %5728

5711:                                             ; preds = %5706
  %5712 = load i32, ptr %118, align 4, !tbaa !5
  %5713 = call ptr @__errno_location() #11
  store i32 %5712, ptr %5713, align 4, !tbaa !5
  %5714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5715 = load i32, ptr @test_count, align 4, !tbaa !5
  %5716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror(i32 noundef %5717, ptr noundef @.str.4)
  %5719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @s2n_strerror_debug(i32 noundef %5720, ptr noundef @.str.4)
  %5722 = call ptr @__errno_location() #11
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call ptr @strerror(i32 noundef %5723) #10
  %5725 = call ptr @__errno_location() #11
  %5726 = load i32, ptr %5725, align 4, !tbaa !5
  %5727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5714, ptr noundef @.str.2, i32 noundef %5715, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5718, ptr noundef %5721, ptr noundef %5724, i32 noundef %5726) #10
  br label %5745

5728:                                             ; preds = %5706, %5699
  %5729 = load i32, ptr %118, align 4, !tbaa !5
  %5730 = call ptr @__errno_location() #11
  store i32 %5729, ptr %5730, align 4, !tbaa !5
  %5731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5732 = load i32, ptr @test_count, align 4, !tbaa !5
  %5733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call ptr @s2n_strerror(i32 noundef %5734, ptr noundef @.str.4)
  %5736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call ptr @s2n_strerror_debug(i32 noundef %5737, ptr noundef @.str.4)
  %5739 = call ptr @__errno_location() #11
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  %5741 = call ptr @strerror(i32 noundef %5740) #10
  %5742 = call ptr @__errno_location() #11
  %5743 = load i32, ptr %5742, align 4, !tbaa !5
  %5744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5731, ptr noundef @.str.5, i32 noundef %5732, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 240, ptr noundef %5735, ptr noundef %5738, ptr noundef %5741, i32 noundef %5743) #10
  br label %5745

5745:                                             ; preds = %5728, %5711
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

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

5748:                                             ; No predecessors!
  br label %5749

5749:                                             ; preds = %5748
  br label %5750

5750:                                             ; preds = %5749, %5692
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752
  %5754 = load i32, ptr @test_count, align 4, !tbaa !5
  %5755 = add nsw i32 %5754, 1
  store i32 %5755, ptr @test_count, align 4, !tbaa !5
  %5756 = load i8, ptr %113, align 1, !tbaa !51
  %5757 = zext i8 %5756 to i32
  %5758 = icmp eq i32 %5757, 8
  br i1 %5758, label %5812, label %5759

5759:                                             ; preds = %5753
  br label %5760

5760:                                             ; preds = %5759
  br label %5761

5761:                                             ; preds = %5760
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %5762 = call ptr @__errno_location() #11
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  store i32 %5763, ptr %119, align 4, !tbaa !5
  %5764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5765 = call i32 @s2n_print_stacktrace(ptr noundef %5764)
  %5766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5767 = trunc i8 %5766 to i1
  br i1 %5767, label %5768, label %5790

5768:                                             ; preds = %5761
  %5769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5770 = call i32 @fileno(ptr noundef %5769) #10
  %5771 = call i32 @isatty(i32 noundef %5770) #10
  %5772 = icmp ne i32 %5771, 0
  br i1 %5772, label %5773, label %5790

5773:                                             ; preds = %5768
  %5774 = load i32, ptr %119, align 4, !tbaa !5
  %5775 = call ptr @__errno_location() #11
  store i32 %5774, ptr %5775, align 4, !tbaa !5
  %5776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5777 = load i32, ptr @test_count, align 4, !tbaa !5
  %5778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @s2n_strerror(i32 noundef %5779, ptr noundef @.str.4)
  %5781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call ptr @s2n_strerror_debug(i32 noundef %5782, ptr noundef @.str.4)
  %5784 = call ptr @__errno_location() #11
  %5785 = load i32, ptr %5784, align 4, !tbaa !5
  %5786 = call ptr @strerror(i32 noundef %5785) #10
  %5787 = call ptr @__errno_location() #11
  %5788 = load i32, ptr %5787, align 4, !tbaa !5
  %5789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5776, ptr noundef @.str.2, i32 noundef %5777, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5780, ptr noundef %5783, ptr noundef %5786, i32 noundef %5788) #10
  br label %5807

5790:                                             ; preds = %5768, %5761
  %5791 = load i32, ptr %119, align 4, !tbaa !5
  %5792 = call ptr @__errno_location() #11
  store i32 %5791, ptr %5792, align 4, !tbaa !5
  %5793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5794 = load i32, ptr @test_count, align 4, !tbaa !5
  %5795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5796 = load i32, ptr %5795, align 4, !tbaa !5
  %5797 = call ptr @s2n_strerror(i32 noundef %5796, ptr noundef @.str.4)
  %5798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5799 = load i32, ptr %5798, align 4, !tbaa !5
  %5800 = call ptr @s2n_strerror_debug(i32 noundef %5799, ptr noundef @.str.4)
  %5801 = call ptr @__errno_location() #11
  %5802 = load i32, ptr %5801, align 4, !tbaa !5
  %5803 = call ptr @strerror(i32 noundef %5802) #10
  %5804 = call ptr @__errno_location() #11
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5793, ptr noundef @.str.5, i32 noundef %5794, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5797, ptr noundef %5800, ptr noundef %5803, i32 noundef %5805) #10
  br label %5807

5807:                                             ; preds = %5790, %5773
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %5808

5808:                                             ; preds = %5807
  br label %5809

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

5810:                                             ; No predecessors!
  br label %5811

5811:                                             ; preds = %5810
  br label %5812

5812:                                             ; preds = %5811, %5753
  br label %5813

5813:                                             ; preds = %5812
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

5815:                                             ; preds = %5814
  %5816 = load i32, ptr @test_count, align 4, !tbaa !5
  %5817 = add nsw i32 %5816, 1
  store i32 %5817, ptr @test_count, align 4, !tbaa !5
  %5818 = call i32 @s2n_stuffer_reread(ptr noundef %94)
  %5819 = icmp eq i32 %5818, -1
  br i1 %5819, label %5820, label %5873

5820:                                             ; preds = %5815
  br label %5821

5821:                                             ; preds = %5820
  br label %5822

5822:                                             ; preds = %5821
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %5823 = call ptr @__errno_location() #11
  %5824 = load i32, ptr %5823, align 4, !tbaa !5
  store i32 %5824, ptr %120, align 4, !tbaa !5
  %5825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5826 = call i32 @s2n_print_stacktrace(ptr noundef %5825)
  %5827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5828 = trunc i8 %5827 to i1
  br i1 %5828, label %5829, label %5851

5829:                                             ; preds = %5822
  %5830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5831 = call i32 @fileno(ptr noundef %5830) #10
  %5832 = call i32 @isatty(i32 noundef %5831) #10
  %5833 = icmp ne i32 %5832, 0
  br i1 %5833, label %5834, label %5851

5834:                                             ; preds = %5829
  %5835 = load i32, ptr %120, align 4, !tbaa !5
  %5836 = call ptr @__errno_location() #11
  store i32 %5835, ptr %5836, align 4, !tbaa !5
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = load i32, ptr @test_count, align 4, !tbaa !5
  %5839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5840 = load i32, ptr %5839, align 4, !tbaa !5
  %5841 = call ptr @s2n_strerror(i32 noundef %5840, ptr noundef @.str.4)
  %5842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5843 = load i32, ptr %5842, align 4, !tbaa !5
  %5844 = call ptr @s2n_strerror_debug(i32 noundef %5843, ptr noundef @.str.4)
  %5845 = call ptr @__errno_location() #11
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  %5847 = call ptr @strerror(i32 noundef %5846) #10
  %5848 = call ptr @__errno_location() #11
  %5849 = load i32, ptr %5848, align 4, !tbaa !5
  %5850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5837, ptr noundef @.str.2, i32 noundef %5838, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5841, ptr noundef %5844, ptr noundef %5847, i32 noundef %5849) #10
  br label %5868

5851:                                             ; preds = %5829, %5822
  %5852 = load i32, ptr %120, align 4, !tbaa !5
  %5853 = call ptr @__errno_location() #11
  store i32 %5852, ptr %5853, align 4, !tbaa !5
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = load i32, ptr @test_count, align 4, !tbaa !5
  %5856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call ptr @s2n_strerror(i32 noundef %5857, ptr noundef @.str.4)
  %5859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call ptr @s2n_strerror_debug(i32 noundef %5860, ptr noundef @.str.4)
  %5862 = call ptr @__errno_location() #11
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = call ptr @strerror(i32 noundef %5863) #10
  %5865 = call ptr @__errno_location() #11
  %5866 = load i32, ptr %5865, align 4, !tbaa !5
  %5867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5854, ptr noundef @.str.5, i32 noundef %5855, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5858, ptr noundef %5861, ptr noundef %5864, i32 noundef %5866) #10
  br label %5868

5868:                                             ; preds = %5851, %5834
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5869

5869:                                             ; preds = %5868
  br label %5870

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

5871:                                             ; No predecessors!
  br label %5872

5872:                                             ; preds = %5871
  br label %5873

5873:                                             ; preds = %5872, %5815
  br label %5874

5874:                                             ; preds = %5873
  br label %5875

5875:                                             ; preds = %5874
  br label %5876

5876:                                             ; preds = %5875
  %5877 = load i32, ptr @test_count, align 4, !tbaa !5
  %5878 = add nsw i32 %5877, 1
  store i32 %5878, ptr @test_count, align 4, !tbaa !5
  %5879 = load ptr, ptr %85, align 8, !tbaa !9
  %5880 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5879)
  %5881 = icmp eq i32 %5880, 16
  br i1 %5881, label %5935, label %5882

5882:                                             ; preds = %5876
  br label %5883

5883:                                             ; preds = %5882
  br label %5884

5884:                                             ; preds = %5883
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %5885 = call ptr @__errno_location() #11
  %5886 = load i32, ptr %5885, align 4, !tbaa !5
  store i32 %5886, ptr %121, align 4, !tbaa !5
  %5887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5888 = call i32 @s2n_print_stacktrace(ptr noundef %5887)
  %5889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5890 = trunc i8 %5889 to i1
  br i1 %5890, label %5891, label %5913

5891:                                             ; preds = %5884
  %5892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5893 = call i32 @fileno(ptr noundef %5892) #10
  %5894 = call i32 @isatty(i32 noundef %5893) #10
  %5895 = icmp ne i32 %5894, 0
  br i1 %5895, label %5896, label %5913

5896:                                             ; preds = %5891
  %5897 = load i32, ptr %121, align 4, !tbaa !5
  %5898 = call ptr @__errno_location() #11
  store i32 %5897, ptr %5898, align 4, !tbaa !5
  %5899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5900 = load i32, ptr @test_count, align 4, !tbaa !5
  %5901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5902 = load i32, ptr %5901, align 4, !tbaa !5
  %5903 = call ptr @s2n_strerror(i32 noundef %5902, ptr noundef @.str.4)
  %5904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5905 = load i32, ptr %5904, align 4, !tbaa !5
  %5906 = call ptr @s2n_strerror_debug(i32 noundef %5905, ptr noundef @.str.4)
  %5907 = call ptr @__errno_location() #11
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  %5909 = call ptr @strerror(i32 noundef %5908) #10
  %5910 = call ptr @__errno_location() #11
  %5911 = load i32, ptr %5910, align 4, !tbaa !5
  %5912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5899, ptr noundef @.str.2, i32 noundef %5900, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5903, ptr noundef %5906, ptr noundef %5909, i32 noundef %5911) #10
  br label %5930

5913:                                             ; preds = %5891, %5884
  %5914 = load i32, ptr %121, align 4, !tbaa !5
  %5915 = call ptr @__errno_location() #11
  store i32 %5914, ptr %5915, align 4, !tbaa !5
  %5916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5917 = load i32, ptr @test_count, align 4, !tbaa !5
  %5918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5919 = load i32, ptr %5918, align 4, !tbaa !5
  %5920 = call ptr @s2n_strerror(i32 noundef %5919, ptr noundef @.str.4)
  %5921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5922 = load i32, ptr %5921, align 4, !tbaa !5
  %5923 = call ptr @s2n_strerror_debug(i32 noundef %5922, ptr noundef @.str.4)
  %5924 = call ptr @__errno_location() #11
  %5925 = load i32, ptr %5924, align 4, !tbaa !5
  %5926 = call ptr @strerror(i32 noundef %5925) #10
  %5927 = call ptr @__errno_location() #11
  %5928 = load i32, ptr %5927, align 4, !tbaa !5
  %5929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5916, ptr noundef @.str.5, i32 noundef %5917, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5920, ptr noundef %5923, ptr noundef %5926, i32 noundef %5928) #10
  br label %5930

5930:                                             ; preds = %5913, %5896
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5931

5931:                                             ; preds = %5930
  br label %5932

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

5933:                                             ; No predecessors!
  br label %5934

5934:                                             ; preds = %5933
  br label %5935

5935:                                             ; preds = %5934, %5876
  br label %5936

5936:                                             ; preds = %5935
  br label %5937

5937:                                             ; preds = %5936
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

5939:                                             ; preds = %5938
  br label %5940

5940:                                             ; preds = %5939
  %5941 = load i32, ptr @test_count, align 4, !tbaa !5
  %5942 = add nsw i32 %5941, 1
  store i32 %5942, ptr @test_count, align 4, !tbaa !5
  %5943 = load ptr, ptr %85, align 8, !tbaa !9
  %5944 = call i32 @s2n_negotiate(ptr noundef %5943, ptr noundef %77)
  %5945 = icmp eq i32 %5944, -1
  br i1 %5945, label %5999, label %5946

5946:                                             ; preds = %5940
  br label %5947

5947:                                             ; preds = %5946
  br label %5948

5948:                                             ; preds = %5947
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %5949 = call ptr @__errno_location() #11
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  store i32 %5950, ptr %122, align 4, !tbaa !5
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = call i32 @s2n_print_stacktrace(ptr noundef %5951)
  %5953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5954 = trunc i8 %5953 to i1
  br i1 %5954, label %5955, label %5977

5955:                                             ; preds = %5948
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = call i32 @fileno(ptr noundef %5956) #10
  %5958 = call i32 @isatty(i32 noundef %5957) #10
  %5959 = icmp ne i32 %5958, 0
  br i1 %5959, label %5960, label %5977

5960:                                             ; preds = %5955
  %5961 = load i32, ptr %122, align 4, !tbaa !5
  %5962 = call ptr @__errno_location() #11
  store i32 %5961, ptr %5962, align 4, !tbaa !5
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = load i32, ptr @test_count, align 4, !tbaa !5
  %5965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5966 = load i32, ptr %5965, align 4, !tbaa !5
  %5967 = call ptr @s2n_strerror(i32 noundef %5966, ptr noundef @.str.4)
  %5968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @s2n_strerror_debug(i32 noundef %5969, ptr noundef @.str.4)
  %5971 = call ptr @__errno_location() #11
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call ptr @strerror(i32 noundef %5972) #10
  %5974 = call ptr @__errno_location() #11
  %5975 = load i32, ptr %5974, align 4, !tbaa !5
  %5976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5963, ptr noundef @.str.2, i32 noundef %5964, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5967, ptr noundef %5970, ptr noundef %5973, i32 noundef %5975) #10
  br label %5994

5977:                                             ; preds = %5955, %5948
  %5978 = load i32, ptr %122, align 4, !tbaa !5
  %5979 = call ptr @__errno_location() #11
  store i32 %5978, ptr %5979, align 4, !tbaa !5
  %5980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5981 = load i32, ptr @test_count, align 4, !tbaa !5
  %5982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5983 = load i32, ptr %5982, align 4, !tbaa !5
  %5984 = call ptr @s2n_strerror(i32 noundef %5983, ptr noundef @.str.4)
  %5985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5986 = load i32, ptr %5985, align 4, !tbaa !5
  %5987 = call ptr @s2n_strerror_debug(i32 noundef %5986, ptr noundef @.str.4)
  %5988 = call ptr @__errno_location() #11
  %5989 = load i32, ptr %5988, align 4, !tbaa !5
  %5990 = call ptr @strerror(i32 noundef %5989) #10
  %5991 = call ptr @__errno_location() #11
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  %5993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5980, ptr noundef @.str.5, i32 noundef %5981, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5984, ptr noundef %5987, ptr noundef %5990, i32 noundef %5992) #10
  br label %5994

5994:                                             ; preds = %5977, %5960
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %5995

5995:                                             ; preds = %5994
  br label %5996

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

5997:                                             ; No predecessors!
  br label %5998

5998:                                             ; preds = %5997
  br label %5999

5999:                                             ; preds = %5998, %5940
  br label %6000

6000:                                             ; preds = %5999
  br label %6001

6001:                                             ; preds = %6000
  br label %6002

6002:                                             ; preds = %6001
  %6003 = load i32, ptr @test_count, align 4, !tbaa !5
  %6004 = add nsw i32 %6003, 1
  store i32 %6004, ptr @test_count, align 4, !tbaa !5
  %6005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6006 = load i32, ptr %6005, align 4, !tbaa !5
  %6007 = icmp eq i32 %6006, 335544321
  br i1 %6007, label %6061, label %6008

6008:                                             ; preds = %6002
  br label %6009

6009:                                             ; preds = %6008
  br label %6010

6010:                                             ; preds = %6009
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %6011 = call ptr @__errno_location() #11
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  store i32 %6012, ptr %123, align 4, !tbaa !5
  %6013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6014 = call i32 @s2n_print_stacktrace(ptr noundef %6013)
  %6015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6016 = trunc i8 %6015 to i1
  br i1 %6016, label %6017, label %6039

6017:                                             ; preds = %6010
  %6018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6019 = call i32 @fileno(ptr noundef %6018) #10
  %6020 = call i32 @isatty(i32 noundef %6019) #10
  %6021 = icmp ne i32 %6020, 0
  br i1 %6021, label %6022, label %6039

6022:                                             ; preds = %6017
  %6023 = load i32, ptr %123, align 4, !tbaa !5
  %6024 = call ptr @__errno_location() #11
  store i32 %6023, ptr %6024, align 4, !tbaa !5
  %6025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror(i32 noundef %6028, ptr noundef @.str.4)
  %6030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @s2n_strerror_debug(i32 noundef %6031, ptr noundef @.str.4)
  %6033 = call ptr @__errno_location() #11
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call ptr @strerror(i32 noundef %6034) #10
  %6036 = call ptr @__errno_location() #11
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6025, ptr noundef @.str.2, i32 noundef %6026, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6029, ptr noundef %6032, ptr noundef %6035, i32 noundef %6037) #10
  br label %6056

6039:                                             ; preds = %6017, %6010
  %6040 = load i32, ptr %123, align 4, !tbaa !5
  %6041 = call ptr @__errno_location() #11
  store i32 %6040, ptr %6041, align 4, !tbaa !5
  %6042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6043 = load i32, ptr @test_count, align 4, !tbaa !5
  %6044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call ptr @s2n_strerror(i32 noundef %6045, ptr noundef @.str.4)
  %6047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  %6049 = call ptr @s2n_strerror_debug(i32 noundef %6048, ptr noundef @.str.4)
  %6050 = call ptr @__errno_location() #11
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  %6052 = call ptr @strerror(i32 noundef %6051) #10
  %6053 = call ptr @__errno_location() #11
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6042, ptr noundef @.str.5, i32 noundef %6043, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6046, ptr noundef %6049, ptr noundef %6052, i32 noundef %6054) #10
  br label %6056

6056:                                             ; preds = %6039, %6022
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %6057

6057:                                             ; preds = %6056
  br label %6058

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

6059:                                             ; No predecessors!
  br label %6060

6060:                                             ; preds = %6059
  br label %6061

6061:                                             ; preds = %6060, %6002
  br label %6062

6062:                                             ; preds = %6061
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063
  %6065 = load i32, ptr @test_count, align 4, !tbaa !5
  %6066 = add nsw i32 %6065, 1
  store i32 %6066, ptr @test_count, align 4, !tbaa !5
  %6067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6068 = load i32, ptr %6067, align 4, !tbaa !5
  %6069 = call ptr @s2n_strerror_debug(i32 noundef %6068, ptr noundef @.str.4)
  %6070 = icmp eq ptr %6069, null
  br i1 %6070, label %6071, label %6124

6071:                                             ; preds = %6064
  br label %6072

6072:                                             ; preds = %6071
  br label %6073

6073:                                             ; preds = %6072
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %6074 = call ptr @__errno_location() #11
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  store i32 %6075, ptr %124, align 4, !tbaa !5
  %6076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6077 = call i32 @s2n_print_stacktrace(ptr noundef %6076)
  %6078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6079 = trunc i8 %6078 to i1
  br i1 %6079, label %6080, label %6102

6080:                                             ; preds = %6073
  %6081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6082 = call i32 @fileno(ptr noundef %6081) #10
  %6083 = call i32 @isatty(i32 noundef %6082) #10
  %6084 = icmp ne i32 %6083, 0
  br i1 %6084, label %6085, label %6102

6085:                                             ; preds = %6080
  %6086 = load i32, ptr %124, align 4, !tbaa !5
  %6087 = call ptr @__errno_location() #11
  store i32 %6086, ptr %6087, align 4, !tbaa !5
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = load i32, ptr @test_count, align 4, !tbaa !5
  %6090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6091 = load i32, ptr %6090, align 4, !tbaa !5
  %6092 = call ptr @s2n_strerror(i32 noundef %6091, ptr noundef @.str.4)
  %6093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  %6095 = call ptr @s2n_strerror_debug(i32 noundef %6094, ptr noundef @.str.4)
  %6096 = call ptr @__errno_location() #11
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @strerror(i32 noundef %6097) #10
  %6099 = call ptr @__errno_location() #11
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  %6101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6088, ptr noundef @.str.2, i32 noundef %6089, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6092, ptr noundef %6095, ptr noundef %6098, i32 noundef %6100) #10
  br label %6119

6102:                                             ; preds = %6080, %6073
  %6103 = load i32, ptr %124, align 4, !tbaa !5
  %6104 = call ptr @__errno_location() #11
  store i32 %6103, ptr %6104, align 4, !tbaa !5
  %6105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6106 = load i32, ptr @test_count, align 4, !tbaa !5
  %6107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call ptr @s2n_strerror(i32 noundef %6108, ptr noundef @.str.4)
  %6110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror_debug(i32 noundef %6111, ptr noundef @.str.4)
  %6113 = call ptr @__errno_location() #11
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @strerror(i32 noundef %6114) #10
  %6116 = call ptr @__errno_location() #11
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6105, ptr noundef @.str.5, i32 noundef %6106, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6109, ptr noundef %6112, ptr noundef %6115, i32 noundef %6117) #10
  br label %6119

6119:                                             ; preds = %6102, %6085
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %6120

6120:                                             ; preds = %6119
  br label %6121

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

6122:                                             ; No predecessors!
  br label %6123

6123:                                             ; preds = %6122
  br label %6124

6124:                                             ; preds = %6123, %6064
  br label %6125

6125:                                             ; preds = %6124
  br label %6126

6126:                                             ; preds = %6125
  br label %6127

6127:                                             ; preds = %6126
  br label %6128

6128:                                             ; preds = %6127
  br label %6129

6129:                                             ; preds = %6128
  %6130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6130, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6131 = call ptr @__errno_location() #11
  store i32 0, ptr %6131, align 4, !tbaa !5
  br label %6132

6132:                                             ; preds = %6129
  br label %6133

6133:                                             ; preds = %6132
  br label %6134

6134:                                             ; preds = %6133
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

6136:                                             ; preds = %6135
  %6137 = load i32, ptr @test_count, align 4, !tbaa !5
  %6138 = add nsw i32 %6137, 1
  store i32 %6138, ptr @test_count, align 4, !tbaa !5
  %6139 = load ptr, ptr %85, align 8, !tbaa !9
  %6140 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6139)
  %6141 = icmp eq i32 %6140, 16
  br i1 %6141, label %6195, label %6142

6142:                                             ; preds = %6136
  br label %6143

6143:                                             ; preds = %6142
  br label %6144

6144:                                             ; preds = %6143
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %6145 = call ptr @__errno_location() #11
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  store i32 %6146, ptr %125, align 4, !tbaa !5
  %6147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6148 = call i32 @s2n_print_stacktrace(ptr noundef %6147)
  %6149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6150 = trunc i8 %6149 to i1
  br i1 %6150, label %6151, label %6173

6151:                                             ; preds = %6144
  %6152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6153 = call i32 @fileno(ptr noundef %6152) #10
  %6154 = call i32 @isatty(i32 noundef %6153) #10
  %6155 = icmp ne i32 %6154, 0
  br i1 %6155, label %6156, label %6173

6156:                                             ; preds = %6151
  %6157 = load i32, ptr %125, align 4, !tbaa !5
  %6158 = call ptr @__errno_location() #11
  store i32 %6157, ptr %6158, align 4, !tbaa !5
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = load i32, ptr @test_count, align 4, !tbaa !5
  %6161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call ptr @s2n_strerror(i32 noundef %6162, ptr noundef @.str.4)
  %6164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @s2n_strerror_debug(i32 noundef %6165, ptr noundef @.str.4)
  %6167 = call ptr @__errno_location() #11
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call ptr @strerror(i32 noundef %6168) #10
  %6170 = call ptr @__errno_location() #11
  %6171 = load i32, ptr %6170, align 4, !tbaa !5
  %6172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6159, ptr noundef @.str.2, i32 noundef %6160, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 247, ptr noundef %6163, ptr noundef %6166, ptr noundef %6169, i32 noundef %6171) #10
  br label %6190

6173:                                             ; preds = %6151, %6144
  %6174 = load i32, ptr %125, align 4, !tbaa !5
  %6175 = call ptr @__errno_location() #11
  store i32 %6174, ptr %6175, align 4, !tbaa !5
  %6176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6177 = load i32, ptr @test_count, align 4, !tbaa !5
  %6178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call ptr @s2n_strerror(i32 noundef %6179, ptr noundef @.str.4)
  %6181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @s2n_strerror_debug(i32 noundef %6182, ptr noundef @.str.4)
  %6184 = call ptr @__errno_location() #11
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call ptr @strerror(i32 noundef %6185) #10
  %6187 = call ptr @__errno_location() #11
  %6188 = load i32, ptr %6187, align 4, !tbaa !5
  %6189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6176, ptr noundef @.str.5, i32 noundef %6177, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 247, ptr noundef %6180, ptr noundef %6183, ptr noundef %6186, i32 noundef %6188) #10
  br label %6190

6190:                                             ; preds = %6173, %6156
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %6191

6191:                                             ; preds = %6190
  br label %6192

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

6193:                                             ; No predecessors!
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

6195:                                             ; preds = %6194, %6136
  br label %6196

6196:                                             ; preds = %6195
  br label %6197

6197:                                             ; preds = %6196
  br label %6198

6198:                                             ; preds = %6197
  %6199 = load i32, ptr @test_count, align 4, !tbaa !5
  %6200 = add nsw i32 %6199, 1
  store i32 %6200, ptr @test_count, align 4, !tbaa !5
  %6201 = load ptr, ptr %89, align 8, !tbaa !9
  %6202 = call i32 @s2n_connection_free(ptr noundef %6201)
  %6203 = icmp eq i32 %6202, -1
  br i1 %6203, label %6204, label %6257

6204:                                             ; preds = %6198
  br label %6205

6205:                                             ; preds = %6204
  br label %6206

6206:                                             ; preds = %6205
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %6207 = call ptr @__errno_location() #11
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  store i32 %6208, ptr %126, align 4, !tbaa !5
  %6209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6210 = call i32 @s2n_print_stacktrace(ptr noundef %6209)
  %6211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6212 = trunc i8 %6211 to i1
  br i1 %6212, label %6213, label %6235

6213:                                             ; preds = %6206
  %6214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6215 = call i32 @fileno(ptr noundef %6214) #10
  %6216 = call i32 @isatty(i32 noundef %6215) #10
  %6217 = icmp ne i32 %6216, 0
  br i1 %6217, label %6218, label %6235

6218:                                             ; preds = %6213
  %6219 = load i32, ptr %126, align 4, !tbaa !5
  %6220 = call ptr @__errno_location() #11
  store i32 %6219, ptr %6220, align 4, !tbaa !5
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = load i32, ptr @test_count, align 4, !tbaa !5
  %6223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6224 = load i32, ptr %6223, align 4, !tbaa !5
  %6225 = call ptr @s2n_strerror(i32 noundef %6224, ptr noundef @.str.4)
  %6226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6227 = load i32, ptr %6226, align 4, !tbaa !5
  %6228 = call ptr @s2n_strerror_debug(i32 noundef %6227, ptr noundef @.str.4)
  %6229 = call ptr @__errno_location() #11
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call ptr @strerror(i32 noundef %6230) #10
  %6232 = call ptr @__errno_location() #11
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  %6234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6221, ptr noundef @.str.2, i32 noundef %6222, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 249, ptr noundef %6225, ptr noundef %6228, ptr noundef %6231, i32 noundef %6233) #10
  br label %6252

6235:                                             ; preds = %6213, %6206
  %6236 = load i32, ptr %126, align 4, !tbaa !5
  %6237 = call ptr @__errno_location() #11
  store i32 %6236, ptr %6237, align 4, !tbaa !5
  %6238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6239 = load i32, ptr @test_count, align 4, !tbaa !5
  %6240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call ptr @s2n_strerror(i32 noundef %6241, ptr noundef @.str.4)
  %6243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @s2n_strerror_debug(i32 noundef %6244, ptr noundef @.str.4)
  %6246 = call ptr @__errno_location() #11
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call ptr @strerror(i32 noundef %6247) #10
  %6249 = call ptr @__errno_location() #11
  %6250 = load i32, ptr %6249, align 4, !tbaa !5
  %6251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6238, ptr noundef @.str.5, i32 noundef %6239, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 249, ptr noundef %6242, ptr noundef %6245, ptr noundef %6248, i32 noundef %6250) #10
  br label %6252

6252:                                             ; preds = %6235, %6218
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %6253

6253:                                             ; preds = %6252
  br label %6254

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

6255:                                             ; No predecessors!
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

6257:                                             ; preds = %6256, %6198
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258
  br label %6260

6260:                                             ; preds = %6259
  %6261 = load i32, ptr @test_count, align 4, !tbaa !5
  %6262 = add nsw i32 %6261, 1
  store i32 %6262, ptr @test_count, align 4, !tbaa !5
  %6263 = load ptr, ptr %85, align 8, !tbaa !9
  %6264 = call i32 @s2n_connection_free(ptr noundef %6263)
  %6265 = icmp eq i32 %6264, -1
  br i1 %6265, label %6266, label %6319

6266:                                             ; preds = %6260
  br label %6267

6267:                                             ; preds = %6266
  br label %6268

6268:                                             ; preds = %6267
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %6269 = call ptr @__errno_location() #11
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  store i32 %6270, ptr %127, align 4, !tbaa !5
  %6271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6272 = call i32 @s2n_print_stacktrace(ptr noundef %6271)
  %6273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6274 = trunc i8 %6273 to i1
  br i1 %6274, label %6275, label %6297

6275:                                             ; preds = %6268
  %6276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6277 = call i32 @fileno(ptr noundef %6276) #10
  %6278 = call i32 @isatty(i32 noundef %6277) #10
  %6279 = icmp ne i32 %6278, 0
  br i1 %6279, label %6280, label %6297

6280:                                             ; preds = %6275
  %6281 = load i32, ptr %127, align 4, !tbaa !5
  %6282 = call ptr @__errno_location() #11
  store i32 %6281, ptr %6282, align 4, !tbaa !5
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = load i32, ptr @test_count, align 4, !tbaa !5
  %6285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  %6287 = call ptr @s2n_strerror(i32 noundef %6286, ptr noundef @.str.4)
  %6288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @s2n_strerror_debug(i32 noundef %6289, ptr noundef @.str.4)
  %6291 = call ptr @__errno_location() #11
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @strerror(i32 noundef %6292) #10
  %6294 = call ptr @__errno_location() #11
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6283, ptr noundef @.str.2, i32 noundef %6284, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 250, ptr noundef %6287, ptr noundef %6290, ptr noundef %6293, i32 noundef %6295) #10
  br label %6314

6297:                                             ; preds = %6275, %6268
  %6298 = load i32, ptr %127, align 4, !tbaa !5
  %6299 = call ptr @__errno_location() #11
  store i32 %6298, ptr %6299, align 4, !tbaa !5
  %6300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6301 = load i32, ptr @test_count, align 4, !tbaa !5
  %6302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call ptr @s2n_strerror(i32 noundef %6303, ptr noundef @.str.4)
  %6305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @s2n_strerror_debug(i32 noundef %6306, ptr noundef @.str.4)
  %6308 = call ptr @__errno_location() #11
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @strerror(i32 noundef %6309) #10
  %6311 = call ptr @__errno_location() #11
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6300, ptr noundef @.str.5, i32 noundef %6301, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 250, ptr noundef %6304, ptr noundef %6307, ptr noundef %6310, i32 noundef %6312) #10
  br label %6314

6314:                                             ; preds = %6297, %6280
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

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

6317:                                             ; No predecessors!
  br label %6318

6318:                                             ; preds = %6317
  br label %6319

6319:                                             ; preds = %6318, %6260
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

6322:                                             ; preds = %6321
  %6323 = load i32, ptr @test_count, align 4, !tbaa !5
  %6324 = add nsw i32 %6323, 1
  store i32 %6324, ptr @test_count, align 4, !tbaa !5
  %6325 = load ptr, ptr %78, align 8, !tbaa !9
  %6326 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %6325)
  %6327 = icmp eq i32 %6326, -1
  br i1 %6327, label %6328, label %6381

6328:                                             ; preds = %6322
  br label %6329

6329:                                             ; preds = %6328
  br label %6330

6330:                                             ; preds = %6329
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %6331 = call ptr @__errno_location() #11
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  store i32 %6332, ptr %128, align 4, !tbaa !5
  %6333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6334 = call i32 @s2n_print_stacktrace(ptr noundef %6333)
  %6335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6336 = trunc i8 %6335 to i1
  br i1 %6336, label %6337, label %6359

6337:                                             ; preds = %6330
  %6338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6339 = call i32 @fileno(ptr noundef %6338) #10
  %6340 = call i32 @isatty(i32 noundef %6339) #10
  %6341 = icmp ne i32 %6340, 0
  br i1 %6341, label %6342, label %6359

6342:                                             ; preds = %6337
  %6343 = load i32, ptr %128, align 4, !tbaa !5
  %6344 = call ptr @__errno_location() #11
  store i32 %6343, ptr %6344, align 4, !tbaa !5
  %6345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6346 = load i32, ptr @test_count, align 4, !tbaa !5
  %6347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6348 = load i32, ptr %6347, align 4, !tbaa !5
  %6349 = call ptr @s2n_strerror(i32 noundef %6348, ptr noundef @.str.4)
  %6350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6351 = load i32, ptr %6350, align 4, !tbaa !5
  %6352 = call ptr @s2n_strerror_debug(i32 noundef %6351, ptr noundef @.str.4)
  %6353 = call ptr @__errno_location() #11
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  %6355 = call ptr @strerror(i32 noundef %6354) #10
  %6356 = call ptr @__errno_location() #11
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6345, ptr noundef @.str.2, i32 noundef %6346, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 251, ptr noundef %6349, ptr noundef %6352, ptr noundef %6355, i32 noundef %6357) #10
  br label %6376

6359:                                             ; preds = %6337, %6330
  %6360 = load i32, ptr %128, align 4, !tbaa !5
  %6361 = call ptr @__errno_location() #11
  store i32 %6360, ptr %6361, align 4, !tbaa !5
  %6362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6363 = load i32, ptr @test_count, align 4, !tbaa !5
  %6364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call ptr @s2n_strerror(i32 noundef %6365, ptr noundef @.str.4)
  %6367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @s2n_strerror_debug(i32 noundef %6368, ptr noundef @.str.4)
  %6370 = call ptr @__errno_location() #11
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @strerror(i32 noundef %6371) #10
  %6373 = call ptr @__errno_location() #11
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6362, ptr noundef @.str.5, i32 noundef %6363, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 251, ptr noundef %6366, ptr noundef %6369, ptr noundef %6372, i32 noundef %6374) #10
  br label %6376

6376:                                             ; preds = %6359, %6342
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %6377

6377:                                             ; preds = %6376
  br label %6378

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

6379:                                             ; No predecessors!
  br label %6380

6380:                                             ; preds = %6379
  br label %6381

6381:                                             ; preds = %6380, %6322
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

6383:                                             ; preds = %6382
  br label %6384

6384:                                             ; preds = %6383
  %6385 = load i32, ptr @test_count, align 4, !tbaa !5
  %6386 = add nsw i32 %6385, 1
  store i32 %6386, ptr @test_count, align 4, !tbaa !5
  %6387 = load ptr, ptr %80, align 8, !tbaa !9
  %6388 = call i32 @s2n_config_free(ptr noundef %6387)
  %6389 = icmp eq i32 %6388, -1
  br i1 %6389, label %6390, label %6443

6390:                                             ; preds = %6384
  br label %6391

6391:                                             ; preds = %6390
  br label %6392

6392:                                             ; preds = %6391
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %6393 = call ptr @__errno_location() #11
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  store i32 %6394, ptr %129, align 4, !tbaa !5
  %6395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6396 = call i32 @s2n_print_stacktrace(ptr noundef %6395)
  %6397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6398 = trunc i8 %6397 to i1
  br i1 %6398, label %6399, label %6421

6399:                                             ; preds = %6392
  %6400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6401 = call i32 @fileno(ptr noundef %6400) #10
  %6402 = call i32 @isatty(i32 noundef %6401) #10
  %6403 = icmp ne i32 %6402, 0
  br i1 %6403, label %6404, label %6421

6404:                                             ; preds = %6399
  %6405 = load i32, ptr %129, align 4, !tbaa !5
  %6406 = call ptr @__errno_location() #11
  store i32 %6405, ptr %6406, align 4, !tbaa !5
  %6407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6408 = load i32, ptr @test_count, align 4, !tbaa !5
  %6409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6410 = load i32, ptr %6409, align 4, !tbaa !5
  %6411 = call ptr @s2n_strerror(i32 noundef %6410, ptr noundef @.str.4)
  %6412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  %6414 = call ptr @s2n_strerror_debug(i32 noundef %6413, ptr noundef @.str.4)
  %6415 = call ptr @__errno_location() #11
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call ptr @strerror(i32 noundef %6416) #10
  %6418 = call ptr @__errno_location() #11
  %6419 = load i32, ptr %6418, align 4, !tbaa !5
  %6420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6407, ptr noundef @.str.2, i32 noundef %6408, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 252, ptr noundef %6411, ptr noundef %6414, ptr noundef %6417, i32 noundef %6419) #10
  br label %6438

6421:                                             ; preds = %6399, %6392
  %6422 = load i32, ptr %129, align 4, !tbaa !5
  %6423 = call ptr @__errno_location() #11
  store i32 %6422, ptr %6423, align 4, !tbaa !5
  %6424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6425 = load i32, ptr @test_count, align 4, !tbaa !5
  %6426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call ptr @s2n_strerror(i32 noundef %6427, ptr noundef @.str.4)
  %6429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  %6431 = call ptr @s2n_strerror_debug(i32 noundef %6430, ptr noundef @.str.4)
  %6432 = call ptr @__errno_location() #11
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call ptr @strerror(i32 noundef %6433) #10
  %6435 = call ptr @__errno_location() #11
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  %6437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6424, ptr noundef @.str.5, i32 noundef %6425, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 252, ptr noundef %6428, ptr noundef %6431, ptr noundef %6434, i32 noundef %6436) #10
  br label %6438

6438:                                             ; preds = %6421, %6404
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %6439

6439:                                             ; preds = %6438
  br label %6440

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

6441:                                             ; No predecessors!
  br label %6442

6442:                                             ; preds = %6441
  br label %6443

6443:                                             ; preds = %6442, %6384
  br label %6444

6444:                                             ; preds = %6443
  br label %6445

6445:                                             ; preds = %6444
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #10
  %6446 = call i32 @s2n_stuffer_free(ptr noundef %94)
  call void @llvm.lifetime.end.p0(i64 40, ptr %94) #10
  %6447 = call i32 @s2n_stuffer_free(ptr noundef %93)
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %6448

6448:                                             ; preds = %6445, %3804
  br label %6449

6449:                                             ; preds = %6448
  br label %6450

6450:                                             ; preds = %6449
  %6451 = call i32 @s2n_cleanup()
  %6452 = icmp eq i32 %6451, -1
  br i1 %6452, label %6453, label %6504

6453:                                             ; preds = %6450
  br label %6454

6454:                                             ; preds = %6453
  br label %6455

6455:                                             ; preds = %6454
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %6456 = call ptr @__errno_location() #11
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  store i32 %6457, ptr %130, align 4, !tbaa !5
  %6458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6459 = call i32 @s2n_print_stacktrace(ptr noundef %6458)
  %6460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6461 = trunc i8 %6460 to i1
  br i1 %6461, label %6462, label %6484

6462:                                             ; preds = %6455
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = call i32 @fileno(ptr noundef %6463) #10
  %6465 = call i32 @isatty(i32 noundef %6464) #10
  %6466 = icmp ne i32 %6465, 0
  br i1 %6466, label %6467, label %6484

6467:                                             ; preds = %6462
  %6468 = load i32, ptr %130, align 4, !tbaa !5
  %6469 = call ptr @__errno_location() #11
  store i32 %6468, ptr %6469, align 4, !tbaa !5
  %6470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6471 = load i32, ptr @test_count, align 4, !tbaa !5
  %6472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call ptr @s2n_strerror(i32 noundef %6473, ptr noundef @.str.4)
  %6475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  %6477 = call ptr @s2n_strerror_debug(i32 noundef %6476, ptr noundef @.str.4)
  %6478 = call ptr @__errno_location() #11
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call ptr @strerror(i32 noundef %6479) #10
  %6481 = call ptr @__errno_location() #11
  %6482 = load i32, ptr %6481, align 4, !tbaa !5
  %6483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6470, ptr noundef @.str.2, i32 noundef %6471, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 255, ptr noundef %6474, ptr noundef %6477, ptr noundef %6480, i32 noundef %6482) #10
  br label %6501

6484:                                             ; preds = %6462, %6455
  %6485 = load i32, ptr %130, align 4, !tbaa !5
  %6486 = call ptr @__errno_location() #11
  store i32 %6485, ptr %6486, align 4, !tbaa !5
  %6487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6488 = load i32, ptr @test_count, align 4, !tbaa !5
  %6489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6490 = load i32, ptr %6489, align 4, !tbaa !5
  %6491 = call ptr @s2n_strerror(i32 noundef %6490, ptr noundef @.str.4)
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror_debug(i32 noundef %6493, ptr noundef @.str.4)
  %6495 = call ptr @__errno_location() #11
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @strerror(i32 noundef %6496) #10
  %6498 = call ptr @__errno_location() #11
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6487, ptr noundef @.str.5, i32 noundef %6488, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 255, ptr noundef %6491, ptr noundef %6494, ptr noundef %6497, i32 noundef %6499) #10
  br label %6501

6501:                                             ; preds = %6484, %6467
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %6502

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

6503:                                             ; No predecessors!
  br label %6504

6504:                                             ; preds = %6503, %6450
  br label %6505

6505:                                             ; preds = %6504
  br label %6506

6506:                                             ; preds = %6505
  br label %6507

6507:                                             ; preds = %6506
  %6508 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6509 = icmp eq i32 %6508, -1
  br i1 %6509, label %6510, label %6561

6510:                                             ; preds = %6507
  br label %6511

6511:                                             ; preds = %6510
  br label %6512

6512:                                             ; preds = %6511
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %6513 = call ptr @__errno_location() #11
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  store i32 %6514, ptr %131, align 4, !tbaa !5
  %6515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6516 = call i32 @s2n_print_stacktrace(ptr noundef %6515)
  %6517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6518 = trunc i8 %6517 to i1
  br i1 %6518, label %6519, label %6541

6519:                                             ; preds = %6512
  %6520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6521 = call i32 @fileno(ptr noundef %6520) #10
  %6522 = call i32 @isatty(i32 noundef %6521) #10
  %6523 = icmp ne i32 %6522, 0
  br i1 %6523, label %6524, label %6541

6524:                                             ; preds = %6519
  %6525 = load i32, ptr %131, align 4, !tbaa !5
  %6526 = call ptr @__errno_location() #11
  store i32 %6525, ptr %6526, align 4, !tbaa !5
  %6527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6528 = load i32, ptr @test_count, align 4, !tbaa !5
  %6529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call ptr @s2n_strerror(i32 noundef %6530, ptr noundef @.str.4)
  %6532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6533 = load i32, ptr %6532, align 4, !tbaa !5
  %6534 = call ptr @s2n_strerror_debug(i32 noundef %6533, ptr noundef @.str.4)
  %6535 = call ptr @__errno_location() #11
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call ptr @strerror(i32 noundef %6536) #10
  %6538 = call ptr @__errno_location() #11
  %6539 = load i32, ptr %6538, align 4, !tbaa !5
  %6540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6527, ptr noundef @.str.2, i32 noundef %6528, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 255, ptr noundef %6531, ptr noundef %6534, ptr noundef %6537, i32 noundef %6539) #10
  br label %6558

6541:                                             ; preds = %6519, %6512
  %6542 = load i32, ptr %131, align 4, !tbaa !5
  %6543 = call ptr @__errno_location() #11
  store i32 %6542, ptr %6543, align 4, !tbaa !5
  %6544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6545 = load i32, ptr @test_count, align 4, !tbaa !5
  %6546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  %6548 = call ptr @s2n_strerror(i32 noundef %6547, ptr noundef @.str.4)
  %6549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6550 = load i32, ptr %6549, align 4, !tbaa !5
  %6551 = call ptr @s2n_strerror_debug(i32 noundef %6550, ptr noundef @.str.4)
  %6552 = call ptr @__errno_location() #11
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @strerror(i32 noundef %6553) #10
  %6555 = call ptr @__errno_location() #11
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6544, ptr noundef @.str.5, i32 noundef %6545, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 255, ptr noundef %6548, ptr noundef %6551, ptr noundef %6554, i32 noundef %6556) #10
  br label %6558

6558:                                             ; preds = %6541, %6524
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %6559

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

6560:                                             ; No predecessors!
  br label %6561

6561:                                             ; preds = %6560, %6507
  br label %6562

6562:                                             ; preds = %6561
  %6563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6564 = trunc i8 %6563 to i1
  br i1 %6564, label %6565, label %6581

6565:                                             ; preds = %6562
  %6566 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6567 = call i32 @fileno(ptr noundef %6566) #10
  %6568 = call i32 @isatty(i32 noundef %6567) #10
  %6569 = icmp ne i32 %6568, 0
  br i1 %6569, label %6570, label %6581

6570:                                             ; preds = %6565
  %6571 = load i32, ptr @test_count, align 4, !tbaa !5
  %6572 = icmp ne i32 %6571, 0
  br i1 %6572, label %6573, label %6577

6573:                                             ; preds = %6570
  %6574 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6575 = load i32, ptr @test_count, align 4, !tbaa !5
  %6576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6574, ptr noundef @.str.72, i32 noundef %6575) #10
  br label %6580

6577:                                             ; preds = %6570
  %6578 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6578, ptr noundef @.str.73) #10
  br label %6580

6580:                                             ; preds = %6577, %6573
  br label %6592

6581:                                             ; preds = %6565, %6562
  %6582 = load i32, ptr @test_count, align 4, !tbaa !5
  %6583 = icmp ne i32 %6582, 0
  br i1 %6583, label %6584, label %6588

6584:                                             ; preds = %6581
  %6585 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6586 = load i32, ptr @test_count, align 4, !tbaa !5
  %6587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6585, ptr noundef @.str.74, i32 noundef %6586) #10
  br label %6591

6588:                                             ; preds = %6581
  %6589 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6589, ptr noundef @.str.75) #10
  br label %6591

6591:                                             ; preds = %6588, %6584
  br label %6592

6592:                                             ; preds = %6591, %6580
  store i32 0, ptr %3, align 4
  br label %6594

6593:                                             ; No predecessors!
  br label %6594

6594:                                             ; preds = %6593, %6592
  %6595 = load i32, ptr %3, align 4
  ret i32 %6595
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_enable_tls13_in_test(...) #2

declare i32 @s2n_encrypted_extensions_send(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare i32 @s2n_encrypted_extensions_recv(ptr noundef) #2

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

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

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

declare ptr @s2n_config_new() #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #8

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

declare i32 @s2n_conn_get_current_message_type(ptr noundef) #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) #9

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

declare i32 @s2n_stuffer_wipe(ptr noundef) #2

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

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

declare i32 @s2n_stuffer_reread(ptr noundef) #2

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr 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: write) }
attributes #8 = { inlinehint 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 #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }

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

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


; 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 [88 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [78 x i8], align 1
@s2n_server_server_name_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.24 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [60 x i8], align 1
@__const.main.long_alpn = external hidden unnamed_addr constant [24 x i8], align 16
@.str.52 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.75 = 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 i16, align 2
  %4 = alloca i16, align 2
  %5 = alloca i16, align 2
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %11 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %13 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14 = tail call i32 @fflush(ptr noundef %13)
  %15 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %16 = icmp eq i32 %15, -1
  br i1 %16, label %17, label %41

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

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

28:                                               ; preds = %24, %17
  br label %29

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

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

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

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

57:                                               ; preds = %53, %46
  br label %58

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

70:                                               ; preds = %41
  %71 = tail call i32 @s2n_init() #11
  %72 = icmp eq i32 %71, -1
  br i1 %72, label %73, label %97

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

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

84:                                               ; preds = %80, %73
  br label %85

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

97:                                               ; preds = %70
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr @test_count, align 4, !tbaa !5
  %100 = tail call i32 (...) @s2n_enable_tls13_in_test() #11
  %101 = icmp eq i32 %100, -1
  br i1 %101, label %102, label %126

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

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

113:                                              ; preds = %109, %102
  br label %114

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

126:                                              ; preds = %97
  %127 = load i32, ptr @test_count, align 4, !tbaa !5
  %128 = add nsw i32 %127, 1
  store i32 %128, ptr @test_count, align 4, !tbaa !5
  %129 = tail call i32 @s2n_encrypted_extensions_send(ptr noundef null) #11
  %130 = icmp eq i32 %129, -1
  br i1 %130, label %155, label %131

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

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

142:                                              ; preds = %138, %131
  br label %143

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

155:                                              ; preds = %126
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr @test_count, align 4, !tbaa !5
  %158 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %184

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

168:                                              ; preds = %161
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = tail call i32 @fileno(ptr noundef %169) #11
  %171 = tail call i32 @isatty(i32 noundef %170) #11
  %.not403 = icmp eq i32 %171, 0
  br i1 %.not403, label %172, label %173

172:                                              ; preds = %168, %161
  br label %173

173:                                              ; preds = %168, %172
  %.str.5.sink462 = phi ptr [ @.str.5, %172 ], [ @.str.2, %168 ]
  store i32 %163, ptr %162, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = load i32, ptr %158, align 4, !tbaa !5
  %177 = tail call ptr @s2n_strerror(i32 noundef %176, ptr noundef nonnull @.str.4) #11
  %178 = load i32, ptr %158, align 4, !tbaa !5
  %179 = tail call ptr @s2n_strerror_debug(i32 noundef %178, ptr noundef nonnull @.str.4) #11
  %180 = load i32, ptr %162, align 4, !tbaa !5
  %181 = tail call ptr @strerror(i32 noundef %180) #11
  %182 = load i32, ptr %162, align 4, !tbaa !5
  %183 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef nonnull %.str.5.sink462, i32 noundef %175, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %177, ptr noundef %179, ptr noundef %181, i32 noundef %182) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

184:                                              ; preds = %155
  %185 = add nsw i32 %156, 2
  store i32 %185, ptr @test_count, align 4, !tbaa !5
  %186 = tail call ptr @s2n_strerror_debug(i32 noundef %159, ptr noundef nonnull @.str.4) #11
  %187 = icmp eq ptr %186, null
  br i1 %187, label %188, label %211

188:                                              ; preds = %184
  %189 = tail call ptr @__errno_location() #12
  %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) #11
  %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) #11
  %198 = tail call i32 @isatty(i32 noundef %197) #11
  %.not402 = icmp eq i32 %198, 0
  br i1 %.not402, label %199, label %200

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

200:                                              ; preds = %195, %199
  %.str.5.sink471 = 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 = load i32, ptr %158, align 4, !tbaa !5
  %204 = tail call ptr @s2n_strerror(i32 noundef %203, ptr noundef nonnull @.str.4) #11
  %205 = load i32, ptr %158, align 4, !tbaa !5
  %206 = tail call ptr @s2n_strerror_debug(i32 noundef %205, ptr noundef nonnull @.str.4) #11
  %207 = load i32, ptr %189, align 4, !tbaa !5
  %208 = tail call ptr @strerror(i32 noundef %207) #11
  %209 = load i32, ptr %189, align 4, !tbaa !5
  %210 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %201, ptr noundef nonnull %.str.5.sink471, i32 noundef %202, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %204, ptr noundef %206, ptr noundef %208, i32 noundef %209) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

211:                                              ; preds = %184
  store i32 0, ptr %158, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #11
  %212 = tail call ptr @__errno_location() #12
  store i32 0, ptr %212, align 4, !tbaa !5
  %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 = tail call ptr @s2n_connection_new(i32 noundef 0) #11
  %216 = icmp eq ptr %215, null
  br i1 %216, label %217, label %239

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

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

227:                                              ; preds = %223, %217
  br label %228

228:                                              ; preds = %223, %227
  %.str.5.sink480 = phi ptr [ @.str.5, %227 ], [ @.str.2, %223 ]
  store i32 %218, ptr %212, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = load i32, ptr %158, align 4, !tbaa !5
  %232 = tail call ptr @s2n_strerror(i32 noundef %231, ptr noundef nonnull @.str.4) #11
  %233 = load i32, ptr %158, align 4, !tbaa !5
  %234 = tail call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef nonnull @.str.4) #11
  %235 = load i32, ptr %212, align 4, !tbaa !5
  %236 = tail call ptr @strerror(i32 noundef %235) #11
  %237 = load i32, ptr %212, align 4, !tbaa !5
  %238 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.5.sink480, i32 noundef %230, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %232, ptr noundef %234, ptr noundef %236, i32 noundef %237) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

239:                                              ; preds = %211
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr @test_count, align 4, !tbaa !5
  %242 = tail call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %215) #11
  %243 = icmp eq i32 %242, -1
  br i1 %243, label %244, label %266

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

250:                                              ; preds = %244
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = tail call i32 @fileno(ptr noundef %251) #11
  %253 = tail call i32 @isatty(i32 noundef %252) #11
  %.not400 = icmp eq i32 %253, 0
  br i1 %.not400, label %254, label %255

254:                                              ; preds = %250, %244
  br label %255

255:                                              ; preds = %250, %254
  %.str.5.sink489 = phi ptr [ @.str.5, %254 ], [ @.str.2, %250 ]
  store i32 %245, ptr %212, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = load i32, ptr %158, align 4, !tbaa !5
  %259 = tail call ptr @s2n_strerror(i32 noundef %258, ptr noundef nonnull @.str.4) #11
  %260 = load i32, ptr %158, align 4, !tbaa !5
  %261 = tail call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef nonnull @.str.4) #11
  %262 = load i32, ptr %212, align 4, !tbaa !5
  %263 = tail call ptr @strerror(i32 noundef %262) #11
  %264 = load i32, ptr %212, align 4, !tbaa !5
  %265 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef nonnull %.str.5.sink489, i32 noundef %257, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %259, ptr noundef %261, ptr noundef %263, i32 noundef %264) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

266:                                              ; preds = %239
  %267 = getelementptr inbounds i8, ptr %215, i64 220
  store i8 33, ptr %267, align 4, !tbaa !15
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = tail call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %215) #11
  %271 = icmp eq i32 %270, -1
  br i1 %271, label %294, label %272

272:                                              ; preds = %266
  %273 = load i32, ptr %212, align 4, !tbaa !5
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = tail call i32 @s2n_print_stacktrace(ptr noundef %274) #11
  %276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %278, label %282

278:                                              ; preds = %272
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = tail call i32 @fileno(ptr noundef %279) #11
  %281 = tail call i32 @isatty(i32 noundef %280) #11
  %.not304 = icmp eq i32 %281, 0
  br i1 %.not304, label %282, label %283

282:                                              ; preds = %278, %272
  br label %283

283:                                              ; preds = %278, %282
  %.str.5.sink498 = phi ptr [ @.str.5, %282 ], [ @.str.2, %278 ]
  store i32 %273, ptr %212, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = load i32, ptr %158, align 4, !tbaa !5
  %287 = tail call ptr @s2n_strerror(i32 noundef %286, ptr noundef nonnull @.str.4) #11
  %288 = load i32, ptr %158, align 4, !tbaa !5
  %289 = tail call ptr @s2n_strerror_debug(i32 noundef %288, ptr noundef nonnull @.str.4) #11
  %290 = load i32, ptr %212, align 4, !tbaa !5
  %291 = tail call ptr @strerror(i32 noundef %290) #11
  %292 = load i32, ptr %212, align 4, !tbaa !5
  %293 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef nonnull %.str.5.sink498, i32 noundef %285, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %287, ptr noundef %289, ptr noundef %291, i32 noundef %292) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

294:                                              ; preds = %266
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = add nsw i32 %295, 1
  store i32 %296, ptr @test_count, align 4, !tbaa !5
  %297 = load i32, ptr %158, align 4, !tbaa !5
  %298 = icmp eq i32 %297, 335544322
  br i1 %298, label %321, label %299

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

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

309:                                              ; preds = %305, %299
  br label %310

310:                                              ; preds = %305, %309
  %.str.5.sink507 = phi ptr [ @.str.5, %309 ], [ @.str.2, %305 ]
  store i32 %300, ptr %212, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = load i32, ptr %158, align 4, !tbaa !5
  %314 = tail call ptr @s2n_strerror(i32 noundef %313, ptr noundef nonnull @.str.4) #11
  %315 = load i32, ptr %158, align 4, !tbaa !5
  %316 = tail call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef nonnull @.str.4) #11
  %317 = load i32, ptr %212, align 4, !tbaa !5
  %318 = tail call ptr @strerror(i32 noundef %317) #11
  %319 = load i32, ptr %212, align 4, !tbaa !5
  %320 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull %.str.5.sink507, i32 noundef %312, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %314, ptr noundef %316, ptr noundef %318, i32 noundef %319) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

321:                                              ; preds = %294
  %322 = add nsw i32 %295, 2
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = tail call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %324 = icmp eq ptr %323, null
  br i1 %324, label %325, label %347

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

331:                                              ; preds = %325
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = tail call i32 @fileno(ptr noundef %332) #11
  %334 = tail call i32 @isatty(i32 noundef %333) #11
  %.not399 = icmp eq i32 %334, 0
  br i1 %.not399, label %335, label %336

335:                                              ; preds = %331, %325
  br label %336

336:                                              ; preds = %331, %335
  %.str.5.sink516 = phi ptr [ @.str.5, %335 ], [ @.str.2, %331 ]
  store i32 %326, ptr %212, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = load i32, ptr %158, align 4, !tbaa !5
  %340 = tail call ptr @s2n_strerror(i32 noundef %339, ptr noundef nonnull @.str.4) #11
  %341 = load i32, ptr %158, align 4, !tbaa !5
  %342 = tail call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef nonnull @.str.4) #11
  %343 = load i32, ptr %212, align 4, !tbaa !5
  %344 = tail call ptr @strerror(i32 noundef %343) #11
  %345 = load i32, ptr %212, align 4, !tbaa !5
  %346 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef nonnull %.str.5.sink516, i32 noundef %338, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %340, ptr noundef %342, ptr noundef %344, i32 noundef %345) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

347:                                              ; preds = %321
  store i32 0, ptr %158, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #11
  store i32 0, ptr %212, align 4, !tbaa !5
  store i8 34, ptr %267, align 4, !tbaa !15
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr @test_count, align 4, !tbaa !5
  %350 = tail call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %215) #11
  %351 = icmp eq i32 %350, -1
  br i1 %351, label %352, label %374

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

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

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

363:                                              ; preds = %358, %362
  %.str.5.sink525 = phi ptr [ @.str.5, %362 ], [ @.str.2, %358 ]
  store i32 %353, ptr %212, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = load i32, ptr %158, align 4, !tbaa !5
  %367 = tail call ptr @s2n_strerror(i32 noundef %366, ptr noundef nonnull @.str.4) #11
  %368 = load i32, ptr %158, align 4, !tbaa !5
  %369 = tail call ptr @s2n_strerror_debug(i32 noundef %368, ptr noundef nonnull @.str.4) #11
  %370 = load i32, ptr %212, align 4, !tbaa !5
  %371 = tail call ptr @strerror(i32 noundef %370) #11
  %372 = load i32, ptr %212, align 4, !tbaa !5
  %373 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %364, ptr noundef nonnull %.str.5.sink525, i32 noundef %365, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %367, ptr noundef %369, ptr noundef %371, i32 noundef %372) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

374:                                              ; preds = %347
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = add nsw i32 %375, 1
  store i32 %376, ptr @test_count, align 4, !tbaa !5
  %377 = tail call i32 @s2n_connection_free(ptr noundef nonnull %215) #11
  %378 = icmp eq i32 %377, -1
  br i1 %378, label %379, label %401

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

385:                                              ; preds = %379
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = tail call i32 @fileno(ptr noundef %386) #11
  %388 = tail call i32 @isatty(i32 noundef %387) #11
  %.not397 = icmp eq i32 %388, 0
  br i1 %.not397, label %389, label %390

389:                                              ; preds = %385, %379
  br label %390

390:                                              ; preds = %385, %389
  %.str.5.sink534 = phi ptr [ @.str.5, %389 ], [ @.str.2, %385 ]
  store i32 %380, ptr %212, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = load i32, ptr %158, align 4, !tbaa !5
  %394 = tail call ptr @s2n_strerror(i32 noundef %393, ptr noundef nonnull @.str.4) #11
  %395 = load i32, ptr %158, align 4, !tbaa !5
  %396 = tail call ptr @s2n_strerror_debug(i32 noundef %395, ptr noundef nonnull @.str.4) #11
  %397 = load i32, ptr %212, align 4, !tbaa !5
  %398 = tail call ptr @strerror(i32 noundef %397) #11
  %399 = load i32, ptr %212, align 4, !tbaa !5
  %400 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef nonnull %.str.5.sink534, i32 noundef %392, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %394, ptr noundef %396, ptr noundef %398, i32 noundef %399) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

401:                                              ; preds = %374
  %402 = load i32, ptr @test_count, align 4, !tbaa !5
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr @test_count, align 4, !tbaa !5
  %404 = tail call ptr @s2n_connection_new(i32 noundef 0) #11
  %405 = icmp eq ptr %404, null
  br i1 %405, label %406, label %428

406:                                              ; preds = %401
  %407 = load i32, ptr %212, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = tail call i32 @s2n_print_stacktrace(ptr noundef %408) #11
  %410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %411 = trunc nuw i8 %410 to i1
  br i1 %411, label %412, label %416

412:                                              ; preds = %406
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = tail call i32 @fileno(ptr noundef %413) #11
  %415 = tail call i32 @isatty(i32 noundef %414) #11
  %.not396 = icmp eq i32 %415, 0
  br i1 %.not396, label %416, label %417

416:                                              ; preds = %412, %406
  br label %417

417:                                              ; preds = %412, %416
  %.str.5.sink543 = phi ptr [ @.str.5, %416 ], [ @.str.2, %412 ]
  store i32 %407, ptr %212, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = load i32, ptr @test_count, align 4, !tbaa !5
  %420 = load i32, ptr %158, align 4, !tbaa !5
  %421 = tail call ptr @s2n_strerror(i32 noundef %420, ptr noundef nonnull @.str.4) #11
  %422 = load i32, ptr %158, align 4, !tbaa !5
  %423 = tail call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef nonnull @.str.4) #11
  %424 = load i32, ptr %212, align 4, !tbaa !5
  %425 = tail call ptr @strerror(i32 noundef %424) #11
  %426 = load i32, ptr %212, align 4, !tbaa !5
  %427 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %418, ptr noundef nonnull %.str.5.sink543, i32 noundef %419, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %421, ptr noundef %423, ptr noundef %425, i32 noundef %426) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

428:                                              ; preds = %401
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @test_count, align 4, !tbaa !5
  %431 = tail call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %404) #11
  %432 = icmp eq i32 %431, -1
  br i1 %432, label %433, label %455

433:                                              ; preds = %428
  %434 = load i32, ptr %212, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = tail call i32 @s2n_print_stacktrace(ptr noundef %435) #11
  %437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %438 = trunc nuw i8 %437 to i1
  br i1 %438, label %439, label %443

439:                                              ; preds = %433
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = tail call i32 @fileno(ptr noundef %440) #11
  %442 = tail call i32 @isatty(i32 noundef %441) #11
  %.not395 = icmp eq i32 %442, 0
  br i1 %.not395, label %443, label %444

443:                                              ; preds = %439, %433
  br label %444

444:                                              ; preds = %439, %443
  %.str.5.sink552 = phi ptr [ @.str.5, %443 ], [ @.str.2, %439 ]
  store i32 %434, ptr %212, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = load i32, ptr %158, align 4, !tbaa !5
  %448 = tail call ptr @s2n_strerror(i32 noundef %447, ptr noundef nonnull @.str.4) #11
  %449 = load i32, ptr %158, align 4, !tbaa !5
  %450 = tail call ptr @s2n_strerror_debug(i32 noundef %449, ptr noundef nonnull @.str.4) #11
  %451 = load i32, ptr %212, align 4, !tbaa !5
  %452 = tail call ptr @strerror(i32 noundef %451) #11
  %453 = load i32, ptr %212, align 4, !tbaa !5
  %454 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %445, ptr noundef nonnull %.str.5.sink552, i32 noundef %446, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %448, ptr noundef %450, ptr noundef %452, i32 noundef %453) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

455:                                              ; preds = %428
  %456 = getelementptr inbounds i8, ptr %404, i64 220
  store i8 34, ptr %456, align 4, !tbaa !15
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = add nsw i32 %457, 1
  store i32 %458, ptr @test_count, align 4, !tbaa !5
  %459 = tail call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %404) #11
  %460 = icmp eq i32 %459, -1
  br i1 %460, label %461, label %483

461:                                              ; preds = %455
  %462 = load i32, ptr %212, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = tail call i32 @s2n_print_stacktrace(ptr noundef %463) #11
  %465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %466 = trunc nuw i8 %465 to i1
  br i1 %466, label %467, label %471

467:                                              ; preds = %461
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = tail call i32 @fileno(ptr noundef %468) #11
  %470 = tail call i32 @isatty(i32 noundef %469) #11
  %.not394 = icmp eq i32 %470, 0
  br i1 %.not394, label %471, label %472

471:                                              ; preds = %467, %461
  br label %472

472:                                              ; preds = %467, %471
  %.str.5.sink561 = phi ptr [ @.str.5, %471 ], [ @.str.2, %467 ]
  store i32 %462, ptr %212, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = load i32, ptr @test_count, align 4, !tbaa !5
  %475 = load i32, ptr %158, align 4, !tbaa !5
  %476 = tail call ptr @s2n_strerror(i32 noundef %475, ptr noundef nonnull @.str.4) #11
  %477 = load i32, ptr %158, align 4, !tbaa !5
  %478 = tail call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef nonnull @.str.4) #11
  %479 = load i32, ptr %212, align 4, !tbaa !5
  %480 = tail call ptr @strerror(i32 noundef %479) #11
  %481 = load i32, ptr %212, align 4, !tbaa !5
  %482 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %473, ptr noundef nonnull %.str.5.sink561, i32 noundef %474, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %476, ptr noundef %478, ptr noundef %480, i32 noundef %481) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

483:                                              ; preds = %455
  %484 = getelementptr inbounds i8, ptr %404, i64 2016
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %3) #11
  store i16 0, ptr %3, align 2, !tbaa !42
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr @test_count, align 4, !tbaa !5
  %487 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %484, ptr noundef nonnull %3) #11
  %488 = icmp eq i32 %487, -1
  br i1 %488, label %489, label %511

489:                                              ; preds = %483
  %490 = load i32, ptr %212, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @s2n_print_stacktrace(ptr noundef %491) #11
  %493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %494 = trunc nuw i8 %493 to i1
  br i1 %494, label %495, label %499

495:                                              ; preds = %489
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @fileno(ptr noundef %496) #11
  %498 = call i32 @isatty(i32 noundef %497) #11
  %.not393 = icmp eq i32 %498, 0
  br i1 %.not393, label %499, label %500

499:                                              ; preds = %495, %489
  br label %500

500:                                              ; preds = %495, %499
  %.str.5.sink570 = phi ptr [ @.str.5, %499 ], [ @.str.2, %495 ]
  store i32 %490, ptr %212, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = load i32, ptr %158, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef nonnull @.str.4) #11
  %505 = load i32, ptr %158, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef nonnull @.str.4) #11
  %507 = load i32, ptr %212, align 4, !tbaa !5
  %508 = call ptr @strerror(i32 noundef %507) #11
  %509 = load i32, ptr %212, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %501, ptr noundef nonnull %.str.5.sink570, i32 noundef %502, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %504, ptr noundef %506, ptr noundef %508, i32 noundef %509) #13
  call void @exit(i32 noundef 1) #14
  unreachable

511:                                              ; preds = %483
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = load i16, ptr %3, align 2, !tbaa !42
  %515 = icmp eq i16 %514, 0
  br i1 %515, label %538, label %516

516:                                              ; preds = %511
  %517 = load i32, ptr %212, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @s2n_print_stacktrace(ptr noundef %518) #11
  %520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %521 = trunc nuw i8 %520 to i1
  br i1 %521, label %522, label %526

522:                                              ; preds = %516
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @fileno(ptr noundef %523) #11
  %525 = call i32 @isatty(i32 noundef %524) #11
  %.not306 = icmp eq i32 %525, 0
  br i1 %.not306, label %526, label %527

526:                                              ; preds = %522, %516
  br label %527

527:                                              ; preds = %522, %526
  %.str.5.sink579 = phi ptr [ @.str.5, %526 ], [ @.str.2, %522 ]
  store i32 %517, ptr %212, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = load i32, ptr %158, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror(i32 noundef %530, ptr noundef nonnull @.str.4) #11
  %532 = load i32, ptr %158, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror_debug(i32 noundef %532, ptr noundef nonnull @.str.4) #11
  %534 = load i32, ptr %212, align 4, !tbaa !5
  %535 = call ptr @strerror(i32 noundef %534) #11
  %536 = load i32, ptr %212, align 4, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef nonnull %.str.5.sink579, i32 noundef %529, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %531, ptr noundef %533, ptr noundef %535, i32 noundef %536) #13
  call void @exit(i32 noundef 1) #14
  unreachable

538:                                              ; preds = %511
  %539 = add nsw i32 %512, 2
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = getelementptr inbounds i8, ptr %404, i64 2044
  %541 = load i32, ptr %540, align 4, !tbaa !43
  %542 = getelementptr inbounds i8, ptr %404, i64 2040
  %543 = load i32, ptr %542, align 8, !tbaa !44
  %544 = icmp eq i32 %541, %543
  br i1 %544, label %567, label %545

545:                                              ; preds = %538
  %546 = load i32, ptr %212, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @s2n_print_stacktrace(ptr noundef %547) #11
  %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 = %545
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #11
  %554 = call i32 @isatty(i32 noundef %553) #11
  %.not307 = icmp eq i32 %554, 0
  br i1 %.not307, label %555, label %556

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

556:                                              ; preds = %551, %555
  %.str.5.sink588 = phi ptr [ @.str.5, %555 ], [ @.str.2, %551 ]
  store i32 %546, ptr %212, align 4, !tbaa !5
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = load i32, ptr %158, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror(i32 noundef %559, ptr noundef nonnull @.str.4) #11
  %561 = load i32, ptr %158, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror_debug(i32 noundef %561, ptr noundef nonnull @.str.4) #11
  %563 = load i32, ptr %212, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #11
  %565 = load i32, ptr %212, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %557, ptr noundef nonnull %.str.5.sink588, i32 noundef %558, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %560, ptr noundef %562, ptr noundef %564, i32 noundef %565) #13
  call void @exit(i32 noundef 1) #14
  unreachable

567:                                              ; preds = %538
  %568 = add nsw i32 %512, 3
  store i32 %568, ptr @test_count, align 4, !tbaa !5
  %569 = call i32 @s2n_connection_free(ptr noundef nonnull %404) #11
  %570 = icmp eq i32 %569, -1
  br i1 %570, label %571, label %593

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

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

581:                                              ; preds = %577, %571
  br label %582

582:                                              ; preds = %577, %581
  %.str.5.sink597 = phi ptr [ @.str.5, %581 ], [ @.str.2, %577 ]
  store i32 %572, ptr %212, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = load i32, ptr %158, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef nonnull @.str.4) #11
  %587 = load i32, ptr %158, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef nonnull @.str.4) #11
  %589 = load i32, ptr %212, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #11
  %591 = load i32, ptr %212, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %583, ptr noundef nonnull %.str.5.sink597, i32 noundef %584, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %586, ptr noundef %588, ptr noundef %590, i32 noundef %591) #13
  call void @exit(i32 noundef 1) #14
  unreachable

593:                                              ; preds = %567
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %3) #11
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %597 = icmp eq ptr %596, null
  br i1 %597, label %598, label %620

598:                                              ; preds = %593
  %599 = load i32, ptr %212, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @s2n_print_stacktrace(ptr noundef %600) #11
  %602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %603 = trunc nuw i8 %602 to i1
  br i1 %603, label %604, label %608

604:                                              ; preds = %598
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @fileno(ptr noundef %605) #11
  %607 = call i32 @isatty(i32 noundef %606) #11
  %.not391 = icmp eq i32 %607, 0
  br i1 %.not391, label %608, label %609

608:                                              ; preds = %604, %598
  br label %609

609:                                              ; preds = %604, %608
  %.str.5.sink606 = phi ptr [ @.str.5, %608 ], [ @.str.2, %604 ]
  store i32 %599, ptr %212, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %158, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.4) #11
  %614 = load i32, ptr %158, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.4) #11
  %616 = load i32, ptr %212, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #11
  %618 = load i32, ptr %212, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.5.sink606, i32 noundef %611, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #13
  call void @exit(i32 noundef 1) #14
  unreachable

620:                                              ; preds = %593
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %596) #11
  %624 = icmp eq i32 %623, -1
  br i1 %624, label %625, label %647

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

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

635:                                              ; preds = %631, %625
  br label %636

636:                                              ; preds = %631, %635
  %.str.5.sink615 = phi ptr [ @.str.5, %635 ], [ @.str.2, %631 ]
  store i32 %626, ptr %212, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = load i32, ptr %158, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror(i32 noundef %639, ptr noundef nonnull @.str.4) #11
  %641 = load i32, ptr %158, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef nonnull @.str.4) #11
  %643 = load i32, ptr %212, align 4, !tbaa !5
  %644 = call ptr @strerror(i32 noundef %643) #11
  %645 = load i32, ptr %212, align 4, !tbaa !5
  %646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef nonnull %.str.5.sink615, i32 noundef %638, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %640, ptr noundef %642, ptr noundef %644, i32 noundef %645) #13
  call void @exit(i32 noundef 1) #14
  unreachable

647:                                              ; preds = %620
  %648 = getelementptr inbounds i8, ptr %596, i64 220
  store i8 34, ptr %648, align 4, !tbaa !15
  %649 = getelementptr inbounds i8, ptr %596, i64 2016
  %650 = load i32, ptr %596, align 8
  %651 = or i32 %650, 64
  store i32 %651, ptr %596, align 8
  %652 = load i32, ptr @test_count, align 4, !tbaa !5
  %653 = add nsw i32 %652, 1
  store i32 %653, ptr @test_count, align 4, !tbaa !5
  %654 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %596) #11
  %655 = icmp eq i32 %654, -1
  br i1 %655, label %656, label %678

656:                                              ; preds = %647
  %657 = load i32, ptr %212, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 @s2n_print_stacktrace(ptr noundef %658) #11
  %660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %661 = trunc nuw i8 %660 to i1
  br i1 %661, label %662, label %666

662:                                              ; preds = %656
  %663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %664 = call i32 @fileno(ptr noundef %663) #11
  %665 = call i32 @isatty(i32 noundef %664) #11
  %.not389 = icmp eq i32 %665, 0
  br i1 %.not389, label %666, label %667

666:                                              ; preds = %662, %656
  br label %667

667:                                              ; preds = %662, %666
  %.str.5.sink624 = phi ptr [ @.str.5, %666 ], [ @.str.2, %662 ]
  store i32 %657, ptr %212, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = load i32, ptr %158, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror(i32 noundef %670, ptr noundef nonnull @.str.4) #11
  %672 = load i32, ptr %158, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror_debug(i32 noundef %672, ptr noundef nonnull @.str.4) #11
  %674 = load i32, ptr %212, align 4, !tbaa !5
  %675 = call ptr @strerror(i32 noundef %674) #11
  %676 = load i32, ptr %212, align 4, !tbaa !5
  %677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef nonnull %.str.5.sink624, i32 noundef %669, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %671, ptr noundef %673, ptr noundef %675, i32 noundef %676) #13
  call void @exit(i32 noundef 1) #14
  unreachable

678:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %4) #11
  store i16 0, ptr %4, align 2, !tbaa !42
  %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 i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %649, ptr noundef nonnull %4) #11
  %682 = icmp eq i32 %681, -1
  br i1 %682, label %683, label %705

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

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

693:                                              ; preds = %689, %683
  br label %694

694:                                              ; preds = %689, %693
  %.str.5.sink633 = phi ptr [ @.str.5, %693 ], [ @.str.2, %689 ]
  store i32 %684, ptr %212, align 4, !tbaa !5
  %695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = load i32, ptr %158, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef nonnull @.str.4) #11
  %699 = load i32, ptr %158, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef nonnull @.str.4) #11
  %701 = load i32, ptr %212, align 4, !tbaa !5
  %702 = call ptr @strerror(i32 noundef %701) #11
  %703 = load i32, ptr %212, align 4, !tbaa !5
  %704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %695, ptr noundef nonnull %.str.5.sink633, i32 noundef %696, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %698, ptr noundef %700, ptr noundef %702, i32 noundef %703) #13
  call void @exit(i32 noundef 1) #14
  unreachable

705:                                              ; preds = %678
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = add nsw i32 %706, 1
  store i32 %707, ptr @test_count, align 4, !tbaa !5
  %708 = load i16, ptr %4, align 2, !tbaa !42
  %709 = icmp eq i16 %708, 0
  br i1 %709, label %710, label %732

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

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

720:                                              ; preds = %716, %710
  br label %721

721:                                              ; preds = %716, %720
  %.str.5.sink642 = phi ptr [ @.str.5, %720 ], [ @.str.2, %716 ]
  store i32 %711, ptr %212, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = load i32, ptr %158, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror(i32 noundef %724, ptr noundef nonnull @.str.4) #11
  %726 = load i32, ptr %158, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror_debug(i32 noundef %726, ptr noundef nonnull @.str.4) #11
  %728 = load i32, ptr %212, align 4, !tbaa !5
  %729 = call ptr @strerror(i32 noundef %728) #11
  %730 = load i32, ptr %212, align 4, !tbaa !5
  %731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef nonnull %.str.5.sink642, i32 noundef %723, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %725, ptr noundef %727, ptr noundef %729, i32 noundef %730) #13
  call void @exit(i32 noundef 1) #14
  unreachable

732:                                              ; preds = %705
  %733 = add nsw i32 %706, 2
  store i32 %733, ptr @test_count, align 4, !tbaa !5
  %734 = getelementptr inbounds i8, ptr %596, i64 2044
  %735 = load i32, ptr %734, align 4, !tbaa !43
  %736 = getelementptr inbounds i8, ptr %596, i64 2040
  %737 = load i32, ptr %736, align 8, !tbaa !44
  %738 = sub i32 %735, %737
  %739 = zext i16 %708 to i32
  %740 = icmp eq i32 %738, %739
  br i1 %740, label %763, label %741

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

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

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

752:                                              ; preds = %747, %751
  %.str.5.sink651 = phi ptr [ @.str.5, %751 ], [ @.str.2, %747 ]
  store i32 %742, ptr %212, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = load i32, ptr %158, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror(i32 noundef %755, ptr noundef nonnull @.str.4) #11
  %757 = load i32, ptr %158, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef nonnull @.str.4) #11
  %759 = load i32, ptr %212, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #11
  %761 = load i32, ptr %212, align 4, !tbaa !5
  %762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.5.sink651, i32 noundef %754, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %756, ptr noundef %758, ptr noundef %760, i32 noundef %761) #13
  call void @exit(i32 noundef 1) #14
  unreachable

763:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #11
  store i16 0, ptr %5, align 2, !tbaa !42
  %764 = add nsw i32 %706, 3
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %649, ptr noundef nonnull %5) #11
  %766 = icmp eq i32 %765, -1
  br i1 %766, label %767, label %789

767:                                              ; preds = %763
  %768 = load i32, ptr %212, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769) #11
  %771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc nuw i8 %771 to i1
  br i1 %772, label %773, label %777

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

777:                                              ; preds = %773, %767
  br label %778

778:                                              ; preds = %773, %777
  %.str.5.sink660 = phi ptr [ @.str.5, %777 ], [ @.str.2, %773 ]
  store i32 %768, ptr %212, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = load i32, ptr %158, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror(i32 noundef %781, ptr noundef nonnull @.str.4) #11
  %783 = load i32, ptr %158, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror_debug(i32 noundef %783, ptr noundef nonnull @.str.4) #11
  %785 = load i32, ptr %212, align 4, !tbaa !5
  %786 = call ptr @strerror(i32 noundef %785) #11
  %787 = load i32, ptr %212, align 4, !tbaa !5
  %788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %779, ptr noundef nonnull %.str.5.sink660, i32 noundef %780, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %782, ptr noundef %784, ptr noundef %786, i32 noundef %787) #13
  call void @exit(i32 noundef 1) #14
  unreachable

789:                                              ; preds = %763
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = load i16, ptr %5, align 2, !tbaa !42
  %793 = load i16, ptr @s2n_server_server_name_extension, align 8, !tbaa !45
  %794 = icmp eq i16 %792, %793
  br i1 %794, label %817, label %795

795:                                              ; preds = %789
  %796 = load i32, ptr %212, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = call i32 @s2n_print_stacktrace(ptr noundef %797) #11
  %799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %800 = trunc nuw i8 %799 to i1
  br i1 %800, label %801, label %805

801:                                              ; preds = %795
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @fileno(ptr noundef %802) #11
  %804 = call i32 @isatty(i32 noundef %803) #11
  %.not309 = icmp eq i32 %804, 0
  br i1 %.not309, label %805, label %806

805:                                              ; preds = %801, %795
  br label %806

806:                                              ; preds = %801, %805
  %.str.5.sink669 = phi ptr [ @.str.5, %805 ], [ @.str.2, %801 ]
  store i32 %796, ptr %212, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = load i32, ptr %158, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror(i32 noundef %809, ptr noundef nonnull @.str.4) #11
  %811 = load i32, ptr %158, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror_debug(i32 noundef %811, ptr noundef nonnull @.str.4) #11
  %813 = load i32, ptr %212, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #11
  %815 = load i32, ptr %212, align 4, !tbaa !5
  %816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %807, ptr noundef nonnull %.str.5.sink669, i32 noundef %808, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %810, ptr noundef %812, ptr noundef %814, i32 noundef %815) #13
  call void @exit(i32 noundef 1) #14
  unreachable

817:                                              ; preds = %789
  %818 = add nsw i32 %790, 2
  store i32 %818, ptr @test_count, align 4, !tbaa !5
  %819 = call i32 @s2n_connection_free(ptr noundef nonnull %596) #11
  %820 = icmp eq i32 %819, -1
  br i1 %820, label %821, label %843

821:                                              ; preds = %817
  %822 = load i32, ptr %212, align 4, !tbaa !5
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = call i32 @s2n_print_stacktrace(ptr noundef %823) #11
  %825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %826 = trunc nuw i8 %825 to i1
  br i1 %826, label %827, label %831

827:                                              ; preds = %821
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @fileno(ptr noundef %828) #11
  %830 = call i32 @isatty(i32 noundef %829) #11
  %.not385 = icmp eq i32 %830, 0
  br i1 %.not385, label %831, label %832

831:                                              ; preds = %827, %821
  br label %832

832:                                              ; preds = %827, %831
  %.str.5.sink678 = phi ptr [ @.str.5, %831 ], [ @.str.2, %827 ]
  store i32 %822, ptr %212, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = load i32, ptr @test_count, align 4, !tbaa !5
  %835 = load i32, ptr %158, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror(i32 noundef %835, ptr noundef nonnull @.str.4) #11
  %837 = load i32, ptr %158, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef nonnull @.str.4) #11
  %839 = load i32, ptr %212, align 4, !tbaa !5
  %840 = call ptr @strerror(i32 noundef %839) #11
  %841 = load i32, ptr %212, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %833, ptr noundef nonnull %.str.5.sink678, i32 noundef %834, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %836, ptr noundef %838, ptr noundef %840, i32 noundef %841) #13
  call void @exit(i32 noundef 1) #14
  unreachable

843:                                              ; preds = %817
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %4) #11
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = call i32 @s2n_encrypted_extensions_recv(ptr noundef null) #11
  %847 = icmp eq i32 %846, -1
  br i1 %847, label %870, label %848

848:                                              ; preds = %843
  %849 = load i32, ptr %212, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @s2n_print_stacktrace(ptr noundef %850) #11
  %852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %853 = trunc nuw i8 %852 to i1
  br i1 %853, label %854, label %858

854:                                              ; preds = %848
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @fileno(ptr noundef %855) #11
  %857 = call i32 @isatty(i32 noundef %856) #11
  %.not310 = icmp eq i32 %857, 0
  br i1 %.not310, label %858, label %859

858:                                              ; preds = %854, %848
  br label %859

859:                                              ; preds = %854, %858
  %.str.5.sink687 = phi ptr [ @.str.5, %858 ], [ @.str.2, %854 ]
  store i32 %849, ptr %212, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = load i32, ptr %158, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror(i32 noundef %862, ptr noundef nonnull @.str.4) #11
  %864 = load i32, ptr %158, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef nonnull @.str.4) #11
  %866 = load i32, ptr %212, align 4, !tbaa !5
  %867 = call ptr @strerror(i32 noundef %866) #11
  %868 = load i32, ptr %212, align 4, !tbaa !5
  %869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %860, ptr noundef nonnull %.str.5.sink687, i32 noundef %861, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %863, ptr noundef %865, ptr noundef %867, i32 noundef %868) #13
  call void @exit(i32 noundef 1) #14
  unreachable

870:                                              ; preds = %843
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = add nsw i32 %871, 1
  store i32 %872, ptr @test_count, align 4, !tbaa !5
  %873 = load i32, ptr %158, align 4, !tbaa !5
  %874 = icmp eq i32 %873, 0
  br i1 %874, label %875, label %897

875:                                              ; preds = %870
  %876 = load i32, ptr %212, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877) #11
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

881:                                              ; preds = %875
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #11
  %884 = call i32 @isatty(i32 noundef %883) #11
  %.not384 = icmp eq i32 %884, 0
  br i1 %.not384, label %885, label %886

885:                                              ; preds = %881, %875
  br label %886

886:                                              ; preds = %881, %885
  %.str.5.sink696 = phi ptr [ @.str.5, %885 ], [ @.str.2, %881 ]
  store i32 %876, ptr %212, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = load i32, ptr %158, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #11
  %891 = load i32, ptr %158, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #11
  %893 = load i32, ptr %212, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #11
  %895 = load i32, ptr %212, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.5.sink696, i32 noundef %888, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #13
  call void @exit(i32 noundef 1) #14
  unreachable

897:                                              ; preds = %870
  %898 = add nsw i32 %871, 2
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef nonnull @.str.4) #11
  %900 = icmp eq ptr %899, null
  br i1 %900, label %901, label %923

901:                                              ; preds = %897
  %902 = load i32, ptr %212, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @s2n_print_stacktrace(ptr noundef %903) #11
  %905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %906 = trunc nuw i8 %905 to i1
  br i1 %906, label %907, label %911

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

911:                                              ; preds = %907, %901
  br label %912

912:                                              ; preds = %907, %911
  %.str.5.sink705 = phi ptr [ @.str.5, %911 ], [ @.str.2, %907 ]
  store i32 %902, ptr %212, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = load i32, ptr %158, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror(i32 noundef %915, ptr noundef nonnull @.str.4) #11
  %917 = load i32, ptr %158, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef nonnull @.str.4) #11
  %919 = load i32, ptr %212, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #11
  %921 = load i32, ptr %212, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef nonnull %.str.5.sink705, i32 noundef %914, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %916, ptr noundef %918, ptr noundef %920, i32 noundef %921) #13
  call void @exit(i32 noundef 1) #14
  unreachable

923:                                              ; preds = %897
  store i32 0, ptr %158, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %212, align 4, !tbaa !5
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %927 = icmp eq ptr %926, null
  br i1 %927, label %928, label %950

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

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

938:                                              ; preds = %934, %928
  br label %939

939:                                              ; preds = %934, %938
  %.str.5.sink714 = phi ptr [ @.str.5, %938 ], [ @.str.2, %934 ]
  store i32 %929, ptr %212, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = load i32, ptr %158, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.4) #11
  %944 = load i32, ptr %158, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.4) #11
  %946 = load i32, ptr %212, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #11
  %948 = load i32, ptr %212, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef nonnull %.str.5.sink714, i32 noundef %941, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #13
  call void @exit(i32 noundef 1) #14
  unreachable

950:                                              ; preds = %923
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %926) #11
  %954 = icmp eq i32 %953, -1
  br i1 %954, label %955, label %977

955:                                              ; preds = %950
  %956 = load i32, ptr %212, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957) #11
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %965

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

965:                                              ; preds = %961, %955
  br label %966

966:                                              ; preds = %961, %965
  %.str.5.sink723 = phi ptr [ @.str.5, %965 ], [ @.str.2, %961 ]
  store i32 %956, ptr %212, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = load i32, ptr %158, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.4) #11
  %971 = load i32, ptr %158, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.4) #11
  %973 = load i32, ptr %212, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #11
  %975 = load i32, ptr %212, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.5.sink723, i32 noundef %968, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #13
  call void @exit(i32 noundef 1) #14
  unreachable

977:                                              ; preds = %950
  %978 = getelementptr inbounds i8, ptr %926, i64 220
  store i8 33, ptr %978, align 4, !tbaa !15
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr @test_count, align 4, !tbaa !5
  %981 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %926) #11
  %982 = icmp eq i32 %981, -1
  br i1 %982, label %1005, label %983

983:                                              ; preds = %977
  %984 = load i32, ptr %212, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @s2n_print_stacktrace(ptr noundef %985) #11
  %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 = %983
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @fileno(ptr noundef %990) #11
  %992 = call i32 @isatty(i32 noundef %991) #11
  %.not311 = icmp eq i32 %992, 0
  br i1 %.not311, label %993, label %994

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

994:                                              ; preds = %989, %993
  %.str.5.sink732 = phi ptr [ @.str.5, %993 ], [ @.str.2, %989 ]
  store i32 %984, ptr %212, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = load i32, ptr %158, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef nonnull @.str.4) #11
  %999 = load i32, ptr %158, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef nonnull @.str.4) #11
  %1001 = load i32, ptr %212, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #11
  %1003 = load i32, ptr %212, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef nonnull %.str.5.sink732, i32 noundef %996, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %998, ptr noundef %1000, ptr noundef %1002, i32 noundef %1003) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1005:                                             ; preds = %977
  %1006 = load i32, ptr @test_count, align 4, !tbaa !5
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr @test_count, align 4, !tbaa !5
  %1008 = load i32, ptr %158, align 4, !tbaa !5
  %1009 = icmp eq i32 %1008, 335544322
  br i1 %1009, label %1032, label %1010

1010:                                             ; preds = %1005
  %1011 = load i32, ptr %212, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @s2n_print_stacktrace(ptr noundef %1012) #11
  %1014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1015 = trunc nuw i8 %1014 to i1
  br i1 %1015, label %1016, label %1020

1016:                                             ; preds = %1010
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @fileno(ptr noundef %1017) #11
  %1019 = call i32 @isatty(i32 noundef %1018) #11
  %.not312 = icmp eq i32 %1019, 0
  br i1 %.not312, label %1020, label %1021

1020:                                             ; preds = %1016, %1010
  br label %1021

1021:                                             ; preds = %1016, %1020
  %.str.5.sink741 = phi ptr [ @.str.5, %1020 ], [ @.str.2, %1016 ]
  store i32 %1011, ptr %212, align 4, !tbaa !5
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = load i32, ptr %158, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.4) #11
  %1026 = load i32, ptr %158, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.4) #11
  %1028 = load i32, ptr %212, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #11
  %1030 = load i32, ptr %212, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1022, ptr noundef nonnull %.str.5.sink741, i32 noundef %1023, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1032:                                             ; preds = %1005
  %1033 = add nsw i32 %1006, 2
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #11
  %1035 = icmp eq ptr %1034, null
  br i1 %1035, label %1036, label %1058

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

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

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

1047:                                             ; preds = %1042, %1046
  %.str.5.sink750 = phi ptr [ @.str.5, %1046 ], [ @.str.2, %1042 ]
  store i32 %1037, ptr %212, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = load i32, ptr %158, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef nonnull @.str.4) #11
  %1052 = load i32, ptr %158, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef nonnull @.str.4) #11
  %1054 = load i32, ptr %212, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #11
  %1056 = load i32, ptr %212, align 4, !tbaa !5
  %1057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.5.sink750, i32 noundef %1049, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1051, ptr noundef %1053, ptr noundef %1055, i32 noundef %1056) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1058:                                             ; preds = %1032
  store i32 0, ptr %158, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %212, align 4, !tbaa !5
  store i8 34, ptr %978, align 4, !tbaa !15
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, ptr @test_count, align 4, !tbaa !5
  %1061 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %926) #11
  %1062 = icmp eq i32 %1061, -1
  br i1 %1062, label %1063, label %1085

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

1069:                                             ; preds = %1063
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #11
  %1072 = call i32 @isatty(i32 noundef %1071) #11
  %.not379 = icmp eq i32 %1072, 0
  br i1 %.not379, label %1073, label %1074

1073:                                             ; preds = %1069, %1063
  br label %1074

1074:                                             ; preds = %1069, %1073
  %.str.5.sink759 = phi ptr [ @.str.5, %1073 ], [ @.str.2, %1069 ]
  store i32 %1064, ptr %212, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = load i32, ptr %158, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #11
  %1079 = load i32, ptr %158, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #11
  %1081 = load i32, ptr %212, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #11
  %1083 = load i32, ptr %212, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef nonnull %.str.5.sink759, i32 noundef %1076, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1085:                                             ; preds = %1058
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %1088 = call i32 @s2n_connection_free(ptr noundef nonnull %926) #11
  %1089 = icmp eq i32 %1088, -1
  br i1 %1089, label %1090, label %1112

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %212, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #11
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

1096:                                             ; preds = %1090
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @fileno(ptr noundef %1097) #11
  %1099 = call i32 @isatty(i32 noundef %1098) #11
  %.not378 = icmp eq i32 %1099, 0
  br i1 %.not378, label %1100, label %1101

1100:                                             ; preds = %1096, %1090
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.5.sink768 = phi ptr [ @.str.5, %1100 ], [ @.str.2, %1096 ]
  store i32 %1091, ptr %212, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %158, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #11
  %1106 = load i32, ptr %158, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #11
  %1108 = load i32, ptr %212, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #11
  %1110 = load i32, ptr %212, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.5.sink768, i32 noundef %1103, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1112:                                             ; preds = %1085
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1116 = icmp eq ptr %1115, null
  br i1 %1116, label %1117, label %1139

1117:                                             ; preds = %1112
  %1118 = load i32, ptr %212, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @s2n_print_stacktrace(ptr noundef %1119) #11
  %1121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1122 = trunc nuw i8 %1121 to i1
  br i1 %1122, label %1123, label %1127

1123:                                             ; preds = %1117
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @fileno(ptr noundef %1124) #11
  %1126 = call i32 @isatty(i32 noundef %1125) #11
  %.not377 = icmp eq i32 %1126, 0
  br i1 %.not377, label %1127, label %1128

1127:                                             ; preds = %1123, %1117
  br label %1128

1128:                                             ; preds = %1123, %1127
  %.str.5.sink777 = phi ptr [ @.str.5, %1127 ], [ @.str.2, %1123 ]
  store i32 %1118, ptr %212, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = load i32, ptr %158, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef nonnull @.str.4) #11
  %1133 = load i32, ptr %158, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef nonnull @.str.4) #11
  %1135 = load i32, ptr %212, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #11
  %1137 = load i32, ptr %212, align 4, !tbaa !5
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1129, ptr noundef nonnull %.str.5.sink777, i32 noundef %1130, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1132, ptr noundef %1134, ptr noundef %1136, i32 noundef %1137) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1139:                                             ; preds = %1112
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = add nsw i32 %1140, 1
  store i32 %1141, ptr @test_count, align 4, !tbaa !5
  %1142 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %1115) #11
  %1143 = icmp eq i32 %1142, -1
  br i1 %1143, label %1144, label %1166

1144:                                             ; preds = %1139
  %1145 = load i32, ptr %212, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @s2n_print_stacktrace(ptr noundef %1146) #11
  %1148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1149 = trunc nuw i8 %1148 to i1
  br i1 %1149, label %1150, label %1154

1150:                                             ; preds = %1144
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = call i32 @fileno(ptr noundef %1151) #11
  %1153 = call i32 @isatty(i32 noundef %1152) #11
  %.not376 = icmp eq i32 %1153, 0
  br i1 %.not376, label %1154, label %1155

1154:                                             ; preds = %1150, %1144
  br label %1155

1155:                                             ; preds = %1150, %1154
  %.str.5.sink786 = phi ptr [ @.str.5, %1154 ], [ @.str.2, %1150 ]
  store i32 %1145, ptr %212, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = load i32, ptr %158, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror(i32 noundef %1158, ptr noundef nonnull @.str.4) #11
  %1160 = load i32, ptr %158, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef nonnull @.str.4) #11
  %1162 = load i32, ptr %212, align 4, !tbaa !5
  %1163 = call ptr @strerror(i32 noundef %1162) #11
  %1164 = load i32, ptr %212, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef nonnull %.str.5.sink786, i32 noundef %1157, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1159, ptr noundef %1161, ptr noundef %1163, i32 noundef %1164) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1166:                                             ; preds = %1139
  %1167 = getelementptr inbounds i8, ptr %1115, i64 220
  store i8 34, ptr %1167, align 4, !tbaa !15
  %1168 = getelementptr inbounds i8, ptr %1115, i64 2016
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr @test_count, align 4, !tbaa !5
  %1171 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %1115) #11
  %1172 = icmp eq i32 %1171, -1
  br i1 %1172, label %1173, label %1195

1173:                                             ; preds = %1166
  %1174 = load i32, ptr %212, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @s2n_print_stacktrace(ptr noundef %1175) #11
  %1177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1178 = trunc nuw i8 %1177 to i1
  br i1 %1178, label %1179, label %1183

1179:                                             ; preds = %1173
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @fileno(ptr noundef %1180) #11
  %1182 = call i32 @isatty(i32 noundef %1181) #11
  %.not375 = icmp eq i32 %1182, 0
  br i1 %.not375, label %1183, label %1184

1183:                                             ; preds = %1179, %1173
  br label %1184

1184:                                             ; preds = %1179, %1183
  %.str.5.sink795 = phi ptr [ @.str.5, %1183 ], [ @.str.2, %1179 ]
  store i32 %1174, ptr %212, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = load i32, ptr %158, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror(i32 noundef %1187, ptr noundef nonnull @.str.4) #11
  %1189 = load i32, ptr %158, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror_debug(i32 noundef %1189, ptr noundef nonnull @.str.4) #11
  %1191 = load i32, ptr %212, align 4, !tbaa !5
  %1192 = call ptr @strerror(i32 noundef %1191) #11
  %1193 = load i32, ptr %212, align 4, !tbaa !5
  %1194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef nonnull %.str.5.sink795, i32 noundef %1186, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1188, ptr noundef %1190, ptr noundef %1192, i32 noundef %1193) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1195:                                             ; preds = %1166
  %1196 = load i32, ptr @test_count, align 4, !tbaa !5
  %1197 = add nsw i32 %1196, 1
  store i32 %1197, ptr @test_count, align 4, !tbaa !5
  %1198 = getelementptr inbounds i8, ptr %1115, i64 2044
  %1199 = load i32, ptr %1198, align 4, !tbaa !43
  %1200 = getelementptr inbounds i8, ptr %1115, i64 2040
  %1201 = load i32, ptr %1200, align 8, !tbaa !44
  %1202 = icmp eq i32 %1199, %1201
  br i1 %1202, label %1225, label %1203

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

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

1213:                                             ; preds = %1209, %1203
  br label %1214

1214:                                             ; preds = %1209, %1213
  %.str.5.sink804 = phi ptr [ @.str.5, %1213 ], [ @.str.2, %1209 ]
  store i32 %1204, ptr %212, align 4, !tbaa !5
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = load i32, ptr @test_count, align 4, !tbaa !5
  %1217 = load i32, ptr %158, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror(i32 noundef %1217, ptr noundef nonnull @.str.4) #11
  %1219 = load i32, ptr %158, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef nonnull @.str.4) #11
  %1221 = load i32, ptr %212, align 4, !tbaa !5
  %1222 = call ptr @strerror(i32 noundef %1221) #11
  %1223 = load i32, ptr %212, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1215, ptr noundef nonnull %.str.5.sink804, i32 noundef %1216, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %1218, ptr noundef %1220, ptr noundef %1222, i32 noundef %1223) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1225:                                             ; preds = %1195
  %1226 = add nsw i32 %1196, 2
  store i32 %1226, ptr @test_count, align 4, !tbaa !5
  %1227 = call i32 @s2n_extension_list_send(i32 noundef 9, ptr noundef nonnull %1115, ptr noundef nonnull %1168) #11
  %1228 = icmp eq i32 %1227, -1
  br i1 %1228, label %1229, label %1251

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

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

1239:                                             ; preds = %1235, %1229
  br label %1240

1240:                                             ; preds = %1235, %1239
  %.str.5.sink813 = phi ptr [ @.str.5, %1239 ], [ @.str.2, %1235 ]
  store i32 %1230, ptr %212, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = load i32, ptr @test_count, align 4, !tbaa !5
  %1243 = load i32, ptr %158, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror(i32 noundef %1243, ptr noundef nonnull @.str.4) #11
  %1245 = load i32, ptr %158, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror_debug(i32 noundef %1245, ptr noundef nonnull @.str.4) #11
  %1247 = load i32, ptr %212, align 4, !tbaa !5
  %1248 = call ptr @strerror(i32 noundef %1247) #11
  %1249 = load i32, ptr %212, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1241, ptr noundef nonnull %.str.5.sink813, i32 noundef %1242, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1244, ptr noundef %1246, ptr noundef %1248, i32 noundef %1249) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1251:                                             ; preds = %1225
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = add nsw i32 %1252, 1
  store i32 %1253, ptr @test_count, align 4, !tbaa !5
  %1254 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %1115) #11
  %1255 = icmp eq i32 %1254, -1
  br i1 %1255, label %1256, label %1278

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

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

1266:                                             ; preds = %1262, %1256
  br label %1267

1267:                                             ; preds = %1262, %1266
  %.str.5.sink822 = phi ptr [ @.str.5, %1266 ], [ @.str.2, %1262 ]
  store i32 %1257, ptr %212, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = load i32, ptr %158, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef nonnull @.str.4) #11
  %1272 = load i32, ptr %158, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef nonnull @.str.4) #11
  %1274 = load i32, ptr %212, align 4, !tbaa !5
  %1275 = call ptr @strerror(i32 noundef %1274) #11
  %1276 = load i32, ptr %212, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef nonnull %.str.5.sink822, i32 noundef %1269, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1271, ptr noundef %1273, ptr noundef %1275, i32 noundef %1276) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1278:                                             ; preds = %1251
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = add nsw i32 %1279, 1
  store i32 %1280, ptr @test_count, align 4, !tbaa !5
  %1281 = load i32, ptr %1198, align 4, !tbaa !43
  %1282 = load i32, ptr %1200, align 8, !tbaa !44
  %1283 = icmp eq i32 %1281, %1282
  br i1 %1283, label %1306, label %1284

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

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

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

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

1306:                                             ; preds = %1278
  %1307 = add nsw i32 %1279, 2
  store i32 %1307, ptr @test_count, align 4, !tbaa !5
  %1308 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %1115) #11
  %1309 = icmp eq i32 %1308, -1
  br i1 %1309, label %1310, label %1332

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

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

1320:                                             ; preds = %1316, %1310
  br label %1321

1321:                                             ; preds = %1316, %1320
  %.str.5.sink840 = phi ptr [ @.str.5, %1320 ], [ @.str.2, %1316 ]
  store i32 %1311, ptr %212, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = load i32, ptr %158, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror(i32 noundef %1324, ptr noundef nonnull @.str.4) #11
  %1326 = load i32, ptr %158, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef nonnull @.str.4) #11
  %1328 = load i32, ptr %212, align 4, !tbaa !5
  %1329 = call ptr @strerror(i32 noundef %1328) #11
  %1330 = load i32, ptr %212, align 4, !tbaa !5
  %1331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef nonnull %.str.5.sink840, i32 noundef %1323, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1325, ptr noundef %1327, ptr noundef %1329, i32 noundef %1330) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1332:                                             ; preds = %1306
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = add nsw i32 %1333, 1
  store i32 %1334, ptr @test_count, align 4, !tbaa !5
  %1335 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %1115) #11
  %1336 = icmp eq i32 %1335, -1
  br i1 %1336, label %1337, label %1359

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

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

1347:                                             ; preds = %1343, %1337
  br label %1348

1348:                                             ; preds = %1343, %1347
  %.str.5.sink849 = phi ptr [ @.str.5, %1347 ], [ @.str.2, %1343 ]
  store i32 %1338, ptr %212, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = load i32, ptr %158, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror(i32 noundef %1351, ptr noundef nonnull @.str.4) #11
  %1353 = load i32, ptr %158, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef nonnull @.str.4) #11
  %1355 = load i32, ptr %212, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #11
  %1357 = load i32, ptr %212, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1349, ptr noundef nonnull %.str.5.sink849, i32 noundef %1350, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1352, ptr noundef %1354, ptr noundef %1356, i32 noundef %1357) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1359:                                             ; preds = %1332
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = add nsw i32 %1360, 1
  store i32 %1361, ptr @test_count, align 4, !tbaa !5
  %1362 = load i32, ptr %1198, align 4, !tbaa !43
  %1363 = load i32, ptr %1200, align 8, !tbaa !44
  %1364 = icmp eq i32 %1362, %1363
  br i1 %1364, label %1387, label %1365

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

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

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

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

1387:                                             ; preds = %1359
  %1388 = add nsw i32 %1360, 2
  store i32 %1388, ptr @test_count, align 4, !tbaa !5
  %1389 = call i32 @s2n_connection_free(ptr noundef nonnull %1115) #11
  %1390 = icmp eq i32 %1389, -1
  br i1 %1390, label %1391, label %1413

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

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

1401:                                             ; preds = %1397, %1391
  br label %1402

1402:                                             ; preds = %1397, %1401
  %.str.5.sink867 = phi ptr [ @.str.5, %1401 ], [ @.str.2, %1397 ]
  store i32 %1392, ptr %212, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = load i32, ptr %158, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef nonnull @.str.4) #11
  %1407 = load i32, ptr %158, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef nonnull @.str.4) #11
  %1409 = load i32, ptr %212, align 4, !tbaa !5
  %1410 = call ptr @strerror(i32 noundef %1409) #11
  %1411 = load i32, ptr %212, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef nonnull %.str.5.sink867, i32 noundef %1404, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1406, ptr noundef %1408, ptr noundef %1410, i32 noundef %1411) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1413:                                             ; preds = %1387
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = add nsw i32 %1414, 1
  store i32 %1415, ptr @test_count, align 4, !tbaa !5
  %1416 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1417 = icmp eq ptr %1416, null
  br i1 %1417, label %1418, label %1440

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

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

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

1429:                                             ; preds = %1424, %1428
  %.str.5.sink876 = phi ptr [ @.str.5, %1428 ], [ @.str.2, %1424 ]
  store i32 %1419, ptr %212, align 4, !tbaa !5
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = load i32, ptr %158, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef nonnull @.str.4) #11
  %1434 = load i32, ptr %158, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef nonnull @.str.4) #11
  %1436 = load i32, ptr %212, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #11
  %1438 = load i32, ptr %212, align 4, !tbaa !5
  %1439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1430, ptr noundef nonnull %.str.5.sink876, i32 noundef %1431, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1433, ptr noundef %1435, ptr noundef %1437, i32 noundef %1438) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1440:                                             ; preds = %1413
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = add nsw i32 %1441, 1
  store i32 %1442, ptr @test_count, align 4, !tbaa !5
  %1443 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %1416) #11
  %1444 = icmp eq i32 %1443, -1
  br i1 %1444, label %1445, label %1467

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

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

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

1456:                                             ; preds = %1451, %1455
  %.str.5.sink885 = phi ptr [ @.str.5, %1455 ], [ @.str.2, %1451 ]
  store i32 %1446, ptr %212, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = load i32, ptr %158, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror(i32 noundef %1459, ptr noundef nonnull @.str.4) #11
  %1461 = load i32, ptr %158, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror_debug(i32 noundef %1461, ptr noundef nonnull @.str.4) #11
  %1463 = load i32, ptr %212, align 4, !tbaa !5
  %1464 = call ptr @strerror(i32 noundef %1463) #11
  %1465 = load i32, ptr %212, align 4, !tbaa !5
  %1466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1457, ptr noundef nonnull %.str.5.sink885, i32 noundef %1458, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1460, ptr noundef %1462, ptr noundef %1464, i32 noundef %1465) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1467:                                             ; preds = %1440
  %1468 = getelementptr inbounds i8, ptr %1416, i64 220
  store i8 34, ptr %1468, align 4, !tbaa !15
  %1469 = load i32, ptr %1416, align 8
  %1470 = or i32 %1469, 64
  store i32 %1470, ptr %1416, align 8
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = add nsw i32 %1471, 1
  store i32 %1472, ptr @test_count, align 4, !tbaa !5
  %1473 = call i32 @s2n_encrypted_extensions_send(ptr noundef nonnull %1416) #11
  %1474 = icmp eq i32 %1473, -1
  br i1 %1474, label %1475, label %1497

1475:                                             ; preds = %1467
  %1476 = load i32, ptr %212, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @s2n_print_stacktrace(ptr noundef %1477) #11
  %1479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1480 = trunc nuw i8 %1479 to i1
  br i1 %1480, label %1481, label %1485

1481:                                             ; preds = %1475
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @fileno(ptr noundef %1482) #11
  %1484 = call i32 @isatty(i32 noundef %1483) #11
  %.not367 = icmp eq i32 %1484, 0
  br i1 %.not367, label %1485, label %1486

1485:                                             ; preds = %1481, %1475
  br label %1486

1486:                                             ; preds = %1481, %1485
  %.str.5.sink894 = phi ptr [ @.str.5, %1485 ], [ @.str.2, %1481 ]
  store i32 %1476, ptr %212, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = load i32, ptr %158, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror(i32 noundef %1489, ptr noundef nonnull @.str.4) #11
  %1491 = load i32, ptr %158, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef %1491, ptr noundef nonnull @.str.4) #11
  %1493 = load i32, ptr %212, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #11
  %1495 = load i32, ptr %212, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef nonnull %.str.5.sink894, i32 noundef %1488, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1490, ptr noundef %1492, ptr noundef %1494, i32 noundef %1495) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1497:                                             ; preds = %1467
  %1498 = load i32, ptr %1416, align 8
  %1499 = and i32 %1498, -65
  store i32 %1499, ptr %1416, align 8
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = add nsw i32 %1500, 1
  store i32 %1501, ptr @test_count, align 4, !tbaa !5
  %1502 = call i32 @s2n_encrypted_extensions_recv(ptr noundef nonnull %1416) #11
  %1503 = icmp eq i32 %1502, -1
  br i1 %1503, label %1504, label %1526

1504:                                             ; preds = %1497
  %1505 = load i32, ptr %212, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #11
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1514

1510:                                             ; preds = %1504
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #11
  %1513 = call i32 @isatty(i32 noundef %1512) #11
  %.not366 = icmp eq i32 %1513, 0
  br i1 %.not366, label %1514, label %1515

1514:                                             ; preds = %1510, %1504
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.5.sink903 = phi ptr [ @.str.5, %1514 ], [ @.str.2, %1510 ]
  store i32 %1505, ptr %212, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = load i32, ptr %158, align 4, !tbaa !5
  %1519 = call ptr @s2n_strerror(i32 noundef %1518, ptr noundef nonnull @.str.4) #11
  %1520 = load i32, ptr %158, align 4, !tbaa !5
  %1521 = call ptr @s2n_strerror_debug(i32 noundef %1520, ptr noundef nonnull @.str.4) #11
  %1522 = load i32, ptr %212, align 4, !tbaa !5
  %1523 = call ptr @strerror(i32 noundef %1522) #11
  %1524 = load i32, ptr %212, align 4, !tbaa !5
  %1525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.5.sink903, i32 noundef %1517, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1519, ptr noundef %1521, ptr noundef %1523, i32 noundef %1524) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1526:                                             ; preds = %1497
  %1527 = load i32, ptr @test_count, align 4, !tbaa !5
  %1528 = add nsw i32 %1527, 1
  store i32 %1528, ptr @test_count, align 4, !tbaa !5
  %1529 = getelementptr inbounds i8, ptr %1416, i64 2044
  %1530 = load i32, ptr %1529, align 4, !tbaa !43
  %1531 = getelementptr inbounds i8, ptr %1416, i64 2040
  %1532 = load i32, ptr %1531, align 8, !tbaa !44
  %1533 = icmp eq i32 %1530, %1532
  br i1 %1533, label %1556, label %1534

1534:                                             ; preds = %1526
  %1535 = load i32, ptr %212, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = call i32 @s2n_print_stacktrace(ptr noundef %1536) #11
  %1538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1539 = trunc nuw i8 %1538 to i1
  br i1 %1539, label %1540, label %1544

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

1544:                                             ; preds = %1540, %1534
  br label %1545

1545:                                             ; preds = %1540, %1544
  %.str.5.sink912 = phi ptr [ @.str.5, %1544 ], [ @.str.2, %1540 ]
  store i32 %1535, ptr %212, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = load i32, ptr %158, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef nonnull @.str.4) #11
  %1550 = load i32, ptr %158, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef nonnull @.str.4) #11
  %1552 = load i32, ptr %212, align 4, !tbaa !5
  %1553 = call ptr @strerror(i32 noundef %1552) #11
  %1554 = load i32, ptr %212, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef nonnull %.str.5.sink912, i32 noundef %1547, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1549, ptr noundef %1551, ptr noundef %1553, i32 noundef %1554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1556:                                             ; preds = %1526
  %1557 = add nsw i32 %1527, 2
  store i32 %1557, ptr @test_count, align 4, !tbaa !5
  %1558 = load i32, ptr %1416, align 8
  %1559 = and i32 %1558, 64
  %.not317 = icmp eq i32 %1559, 0
  br i1 %.not317, label %1560, label %1582

1560:                                             ; preds = %1556
  %1561 = load i32, ptr %212, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @s2n_print_stacktrace(ptr noundef %1562) #11
  %1564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1565 = trunc nuw i8 %1564 to i1
  br i1 %1565, label %1566, label %1570

1566:                                             ; preds = %1560
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @fileno(ptr noundef %1567) #11
  %1569 = call i32 @isatty(i32 noundef %1568) #11
  %.not318 = icmp eq i32 %1569, 0
  br i1 %.not318, label %1570, label %1571

1570:                                             ; preds = %1566, %1560
  br label %1571

1571:                                             ; preds = %1566, %1570
  %.str.5.sink921 = phi ptr [ @.str.5, %1570 ], [ @.str.2, %1566 ]
  store i32 %1561, ptr %212, align 4, !tbaa !5
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = load i32, ptr @test_count, align 4, !tbaa !5
  %1574 = load i32, ptr %158, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror(i32 noundef %1574, ptr noundef nonnull @.str.4) #11
  %1576 = load i32, ptr %158, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef nonnull @.str.4) #11
  %1578 = load i32, ptr %212, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #11
  %1580 = load i32, ptr %212, align 4, !tbaa !5
  %1581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1572, ptr noundef nonnull %.str.5.sink921, i32 noundef %1573, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1575, ptr noundef %1577, ptr noundef %1579, i32 noundef %1580) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1582:                                             ; preds = %1556
  %1583 = add nsw i32 %1527, 3
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = call i32 @s2n_connection_free(ptr noundef nonnull %1416) #11
  %1585 = icmp eq i32 %1584, -1
  br i1 %1585, label %1586, label %1608

1586:                                             ; preds = %1582
  %1587 = load i32, ptr %212, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #11
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1586
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #11
  %1595 = call i32 @isatty(i32 noundef %1594) #11
  %.not365 = icmp eq i32 %1595, 0
  br i1 %.not365, label %1596, label %1597

1596:                                             ; preds = %1592, %1586
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.5.sink930 = phi ptr [ @.str.5, %1596 ], [ @.str.2, %1592 ]
  store i32 %1587, ptr %212, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = load i32, ptr %158, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef nonnull @.str.4) #11
  %1602 = load i32, ptr %158, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror_debug(i32 noundef %1602, ptr noundef nonnull @.str.4) #11
  %1604 = load i32, ptr %212, align 4, !tbaa !5
  %1605 = call ptr @strerror(i32 noundef %1604) #11
  %1606 = load i32, ptr %212, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.5.sink930, i32 noundef %1599, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1601, ptr noundef %1603, ptr noundef %1605, i32 noundef %1606) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1608:                                             ; preds = %1582
  %1609 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %1609, label %1610, label %2721

1610:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #11
  store i32 0, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  store ptr null, ptr %7, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = add nsw i32 %1611, 1
  store i32 %1612, ptr @test_count, align 4, !tbaa !5
  %1613 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %7, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.32) #11
  %1614 = icmp eq i32 %1613, -1
  br i1 %1614, label %1615, label %1637

1615:                                             ; preds = %1610
  %1616 = load i32, ptr %212, align 4, !tbaa !5
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = call i32 @s2n_print_stacktrace(ptr noundef %1617) #11
  %1619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1620 = trunc nuw i8 %1619 to i1
  br i1 %1620, label %1621, label %1625

1621:                                             ; preds = %1615
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @fileno(ptr noundef %1622) #11
  %1624 = call i32 @isatty(i32 noundef %1623) #11
  %.not364 = icmp eq i32 %1624, 0
  br i1 %.not364, label %1625, label %1626

1625:                                             ; preds = %1621, %1615
  br label %1626

1626:                                             ; preds = %1621, %1625
  %.str.5.sink939 = phi ptr [ @.str.5, %1625 ], [ @.str.2, %1621 ]
  store i32 %1616, ptr %212, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %1629 = load i32, ptr %158, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror(i32 noundef %1629, ptr noundef nonnull @.str.4) #11
  %1631 = load i32, ptr %158, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror_debug(i32 noundef %1631, ptr noundef nonnull @.str.4) #11
  %1633 = load i32, ptr %212, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #11
  %1635 = load i32, ptr %212, align 4, !tbaa !5
  %1636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1627, ptr noundef nonnull %.str.5.sink939, i32 noundef %1628, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1630, ptr noundef %1632, ptr noundef %1634, i32 noundef %1635) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1637:                                             ; preds = %1610
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr @test_count, align 4, !tbaa !5
  %1640 = call ptr @s2n_config_new() #11
  %1641 = icmp eq ptr %1640, null
  br i1 %1641, label %1642, label %1664

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %212, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = call i32 @s2n_print_stacktrace(ptr noundef %1644) #11
  %1646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1647 = trunc nuw i8 %1646 to i1
  br i1 %1647, label %1648, label %1652

1648:                                             ; preds = %1642
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @fileno(ptr noundef %1649) #11
  %1651 = call i32 @isatty(i32 noundef %1650) #11
  %.not363 = icmp eq i32 %1651, 0
  br i1 %.not363, label %1652, label %1653

1652:                                             ; preds = %1648, %1642
  br label %1653

1653:                                             ; preds = %1648, %1652
  %.str.5.sink948 = phi ptr [ @.str.5, %1652 ], [ @.str.2, %1648 ]
  store i32 %1643, ptr %212, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %1656 = load i32, ptr %158, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror(i32 noundef %1656, ptr noundef nonnull @.str.4) #11
  %1658 = load i32, ptr %158, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror_debug(i32 noundef %1658, ptr noundef nonnull @.str.4) #11
  %1660 = load i32, ptr %212, align 4, !tbaa !5
  %1661 = call ptr @strerror(i32 noundef %1660) #11
  %1662 = load i32, ptr %212, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1654, ptr noundef nonnull %.str.5.sink948, i32 noundef %1655, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1657, ptr noundef %1659, ptr noundef %1661, i32 noundef %1662) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1664:                                             ; preds = %1637
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = add nsw i32 %1665, 1
  store i32 %1666, ptr @test_count, align 4, !tbaa !5
  %1667 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1640, ptr noundef nonnull @.str.35) #11
  %1668 = icmp eq i32 %1667, -1
  br i1 %1668, label %1669, label %1691

1669:                                             ; preds = %1664
  %1670 = load i32, ptr %212, align 4, !tbaa !5
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = call i32 @s2n_print_stacktrace(ptr noundef %1671) #11
  %1673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1674 = trunc nuw i8 %1673 to i1
  br i1 %1674, label %1675, label %1679

1675:                                             ; preds = %1669
  %1676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1677 = call i32 @fileno(ptr noundef %1676) #11
  %1678 = call i32 @isatty(i32 noundef %1677) #11
  %.not362 = icmp eq i32 %1678, 0
  br i1 %.not362, label %1679, label %1680

1679:                                             ; preds = %1675, %1669
  br label %1680

1680:                                             ; preds = %1675, %1679
  %.str.5.sink957 = phi ptr [ @.str.5, %1679 ], [ @.str.2, %1675 ]
  store i32 %1670, ptr %212, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = load i32, ptr @test_count, align 4, !tbaa !5
  %1683 = load i32, ptr %158, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror(i32 noundef %1683, ptr noundef nonnull @.str.4) #11
  %1685 = load i32, ptr %158, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror_debug(i32 noundef %1685, ptr noundef nonnull @.str.4) #11
  %1687 = load i32, ptr %212, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #11
  %1689 = load i32, ptr %212, align 4, !tbaa !5
  %1690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1681, ptr noundef nonnull %.str.5.sink957, i32 noundef %1682, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1684, ptr noundef %1686, ptr noundef %1688, i32 noundef %1689) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1691:                                             ; preds = %1664
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = add nsw i32 %1692, 1
  store i32 %1693, ptr @test_count, align 4, !tbaa !5
  %1694 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %1640) #11
  %1695 = icmp eq i32 %1694, -1
  br i1 %1695, label %1696, label %1718

1696:                                             ; preds = %1691
  %1697 = load i32, ptr %212, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = call i32 @s2n_print_stacktrace(ptr noundef %1698) #11
  %1700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1701 = trunc nuw i8 %1700 to i1
  br i1 %1701, label %1702, label %1706

1702:                                             ; preds = %1696
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = call i32 @fileno(ptr noundef %1703) #11
  %1705 = call i32 @isatty(i32 noundef %1704) #11
  %.not361 = icmp eq i32 %1705, 0
  br i1 %.not361, label %1706, label %1707

1706:                                             ; preds = %1702, %1696
  br label %1707

1707:                                             ; preds = %1702, %1706
  %.str.5.sink966 = phi ptr [ @.str.5, %1706 ], [ @.str.2, %1702 ]
  store i32 %1697, ptr %212, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = load i32, ptr @test_count, align 4, !tbaa !5
  %1710 = load i32, ptr %158, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef nonnull @.str.4) #11
  %1712 = load i32, ptr %158, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef nonnull @.str.4) #11
  %1714 = load i32, ptr %212, align 4, !tbaa !5
  %1715 = call ptr @strerror(i32 noundef %1714) #11
  %1716 = load i32, ptr %212, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1708, ptr noundef nonnull %.str.5.sink966, i32 noundef %1709, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1711, ptr noundef %1713, ptr noundef %1715, i32 noundef %1716) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1718:                                             ; preds = %1691
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = add nsw i32 %1719, 1
  store i32 %1720, ptr @test_count, align 4, !tbaa !5
  %1721 = load ptr, ptr %7, align 8, !tbaa !9
  %1722 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1640, ptr noundef %1721) #11
  %1723 = icmp eq i32 %1722, -1
  br i1 %1723, label %1724, label %1746

1724:                                             ; preds = %1718
  %1725 = load i32, ptr %212, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = call i32 @s2n_print_stacktrace(ptr noundef %1726) #11
  %1728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1729 = trunc nuw i8 %1728 to i1
  br i1 %1729, label %1730, label %1734

1730:                                             ; preds = %1724
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @fileno(ptr noundef %1731) #11
  %1733 = call i32 @isatty(i32 noundef %1732) #11
  %.not360 = icmp eq i32 %1733, 0
  br i1 %.not360, label %1734, label %1735

1734:                                             ; preds = %1730, %1724
  br label %1735

1735:                                             ; preds = %1730, %1734
  %.str.5.sink975 = phi ptr [ @.str.5, %1734 ], [ @.str.2, %1730 ]
  store i32 %1725, ptr %212, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = load i32, ptr %158, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror(i32 noundef %1738, ptr noundef nonnull @.str.4) #11
  %1740 = load i32, ptr %158, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef nonnull @.str.4) #11
  %1742 = load i32, ptr %212, align 4, !tbaa !5
  %1743 = call ptr @strerror(i32 noundef %1742) #11
  %1744 = load i32, ptr %212, align 4, !tbaa !5
  %1745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef nonnull %.str.5.sink975, i32 noundef %1737, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1739, ptr noundef %1741, ptr noundef %1743, i32 noundef %1744) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1746:                                             ; preds = %1718
  %1747 = call ptr @s2n_connection_new(i32 noundef 1) #11
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = icmp eq ptr %1747, null
  br i1 %1750, label %1751, label %1773

1751:                                             ; preds = %1746
  %1752 = load i32, ptr %212, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @s2n_print_stacktrace(ptr noundef %1753) #11
  %1755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc nuw i8 %1755 to i1
  br i1 %1756, label %1757, label %1761

1757:                                             ; preds = %1751
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @fileno(ptr noundef %1758) #11
  %1760 = call i32 @isatty(i32 noundef %1759) #11
  %.not359 = icmp eq i32 %1760, 0
  br i1 %.not359, label %1761, label %1762

1761:                                             ; preds = %1757, %1751
  br label %1762

1762:                                             ; preds = %1757, %1761
  %.str.5.sink984 = phi ptr [ @.str.5, %1761 ], [ @.str.2, %1757 ]
  store i32 %1752, ptr %212, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = load i32, ptr %158, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror(i32 noundef %1765, ptr noundef nonnull @.str.4) #11
  %1767 = load i32, ptr %158, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef nonnull @.str.4) #11
  %1769 = load i32, ptr %212, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #11
  %1771 = load i32, ptr %212, align 4, !tbaa !5
  %1772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef nonnull %.str.5.sink984, i32 noundef %1764, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1766, ptr noundef %1768, ptr noundef %1770, i32 noundef %1771) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1773:                                             ; preds = %1746
  %1774 = add nsw i32 %1748, 2
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1747, ptr noundef nonnull %1640) #11
  %1776 = icmp eq i32 %1775, -1
  br i1 %1776, label %1777, label %1799

1777:                                             ; preds = %1773
  %1778 = load i32, ptr %212, align 4, !tbaa !5
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @s2n_print_stacktrace(ptr noundef %1779) #11
  %1781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1782 = trunc nuw i8 %1781 to i1
  br i1 %1782, label %1783, label %1787

1783:                                             ; preds = %1777
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @fileno(ptr noundef %1784) #11
  %1786 = call i32 @isatty(i32 noundef %1785) #11
  %.not358 = icmp eq i32 %1786, 0
  br i1 %.not358, label %1787, label %1788

1787:                                             ; preds = %1783, %1777
  br label %1788

1788:                                             ; preds = %1783, %1787
  %.str.5.sink993 = phi ptr [ @.str.5, %1787 ], [ @.str.2, %1783 ]
  store i32 %1778, ptr %212, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = load i32, ptr %158, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror(i32 noundef %1791, ptr noundef nonnull @.str.4) #11
  %1793 = load i32, ptr %158, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef nonnull @.str.4) #11
  %1795 = load i32, ptr %212, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #11
  %1797 = load i32, ptr %212, align 4, !tbaa !5
  %1798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef nonnull %.str.5.sink993, i32 noundef %1790, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1792, ptr noundef %1794, ptr noundef %1796, i32 noundef %1797) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1799:                                             ; preds = %1773
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = add nsw i32 %1800, 1
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %1747, i32 noundef 1) #11
  %1803 = icmp eq i32 %1802, -1
  br i1 %1803, label %1804, label %1826

1804:                                             ; preds = %1799
  %1805 = load i32, ptr %212, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806) #11
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc nuw i8 %1808 to i1
  br i1 %1809, label %1810, label %1814

1810:                                             ; preds = %1804
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #11
  %1813 = call i32 @isatty(i32 noundef %1812) #11
  %.not357 = icmp eq i32 %1813, 0
  br i1 %.not357, label %1814, label %1815

1814:                                             ; preds = %1810, %1804
  br label %1815

1815:                                             ; preds = %1810, %1814
  %.str.5.sink1002 = phi ptr [ @.str.5, %1814 ], [ @.str.2, %1810 ]
  store i32 %1805, ptr %212, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = load i32, ptr %158, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef nonnull @.str.4) #11
  %1820 = load i32, ptr %158, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef nonnull @.str.4) #11
  %1822 = load i32, ptr %212, align 4, !tbaa !5
  %1823 = call ptr @strerror(i32 noundef %1822) #11
  %1824 = load i32, ptr %212, align 4, !tbaa !5
  %1825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1816, ptr noundef nonnull %.str.5.sink1002, i32 noundef %1817, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1819, ptr noundef %1821, ptr noundef %1823, i32 noundef %1824) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1826:                                             ; preds = %1799
  %1827 = call ptr @s2n_connection_new(i32 noundef 0) #11
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = add nsw i32 %1828, 1
  store i32 %1829, ptr @test_count, align 4, !tbaa !5
  %1830 = icmp eq ptr %1827, null
  br i1 %1830, label %1831, label %1853

1831:                                             ; preds = %1826
  %1832 = load i32, ptr %212, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = call i32 @s2n_print_stacktrace(ptr noundef %1833) #11
  %1835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1836 = trunc nuw i8 %1835 to i1
  br i1 %1836, label %1837, label %1841

1837:                                             ; preds = %1831
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #11
  %1840 = call i32 @isatty(i32 noundef %1839) #11
  %.not356 = icmp eq i32 %1840, 0
  br i1 %.not356, label %1841, label %1842

1841:                                             ; preds = %1837, %1831
  br label %1842

1842:                                             ; preds = %1837, %1841
  %.str.5.sink1011 = phi ptr [ @.str.5, %1841 ], [ @.str.2, %1837 ]
  store i32 %1832, ptr %212, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = load i32, ptr %158, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.4) #11
  %1847 = load i32, ptr %158, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.4) #11
  %1849 = load i32, ptr %212, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #11
  %1851 = load i32, ptr %212, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef nonnull %.str.5.sink1011, i32 noundef %1844, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1853:                                             ; preds = %1826
  %1854 = add nsw i32 %1828, 2
  store i32 %1854, ptr @test_count, align 4, !tbaa !5
  %1855 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1827, ptr noundef nonnull %1640) #11
  %1856 = icmp eq i32 %1855, -1
  br i1 %1856, label %1857, label %1879

1857:                                             ; preds = %1853
  %1858 = load i32, ptr %212, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859) #11
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc nuw i8 %1861 to i1
  br i1 %1862, label %1863, label %1867

1863:                                             ; preds = %1857
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @fileno(ptr noundef %1864) #11
  %1866 = call i32 @isatty(i32 noundef %1865) #11
  %.not355 = icmp eq i32 %1866, 0
  br i1 %.not355, label %1867, label %1868

1867:                                             ; preds = %1863, %1857
  br label %1868

1868:                                             ; preds = %1863, %1867
  %.str.5.sink1020 = phi ptr [ @.str.5, %1867 ], [ @.str.2, %1863 ]
  store i32 %1858, ptr %212, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = load i32, ptr %158, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef nonnull @.str.4) #11
  %1873 = load i32, ptr %158, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror_debug(i32 noundef %1873, ptr noundef nonnull @.str.4) #11
  %1875 = load i32, ptr %212, align 4, !tbaa !5
  %1876 = call ptr @strerror(i32 noundef %1875) #11
  %1877 = load i32, ptr %212, align 4, !tbaa !5
  %1878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef nonnull %.str.5.sink1020, i32 noundef %1870, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1872, ptr noundef %1874, ptr noundef %1876, i32 noundef %1877) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1879:                                             ; preds = %1853
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = add nsw i32 %1880, 1
  store i32 %1881, ptr @test_count, align 4, !tbaa !5
  %1882 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %1827, i32 noundef 1) #11
  %1883 = icmp eq i32 %1882, -1
  br i1 %1883, label %1884, label %1906

1884:                                             ; preds = %1879
  %1885 = load i32, ptr %212, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = call i32 @s2n_print_stacktrace(ptr noundef %1886) #11
  %1888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1889 = trunc nuw i8 %1888 to i1
  br i1 %1889, label %1890, label %1894

1890:                                             ; preds = %1884
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = call i32 @fileno(ptr noundef %1891) #11
  %1893 = call i32 @isatty(i32 noundef %1892) #11
  %.not354 = icmp eq i32 %1893, 0
  br i1 %.not354, label %1894, label %1895

1894:                                             ; preds = %1890, %1884
  br label %1895

1895:                                             ; preds = %1890, %1894
  %.str.5.sink1029 = phi ptr [ @.str.5, %1894 ], [ @.str.2, %1890 ]
  store i32 %1885, ptr %212, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = load i32, ptr %158, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror(i32 noundef %1898, ptr noundef nonnull @.str.4) #11
  %1900 = load i32, ptr %158, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef nonnull @.str.4) #11
  %1902 = load i32, ptr %212, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #11
  %1904 = load i32, ptr %212, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef nonnull %.str.5.sink1029, i32 noundef %1897, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1899, ptr noundef %1901, ptr noundef %1903, i32 noundef %1904) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1906:                                             ; preds = %1879
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = add nsw i32 %1907, 1
  store i32 %1908, ptr @test_count, align 4, !tbaa !5
  %1909 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #11
  %1910 = icmp eq i32 %1909, -1
  br i1 %1910, label %1911, label %1933

1911:                                             ; preds = %1906
  %1912 = load i32, ptr %212, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @s2n_print_stacktrace(ptr noundef %1913) #11
  %1915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1916 = trunc nuw i8 %1915 to i1
  br i1 %1916, label %1917, label %1921

1917:                                             ; preds = %1911
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = call i32 @fileno(ptr noundef %1918) #11
  %1920 = call i32 @isatty(i32 noundef %1919) #11
  %.not353 = icmp eq i32 %1920, 0
  br i1 %.not353, label %1921, label %1922

1921:                                             ; preds = %1917, %1911
  br label %1922

1922:                                             ; preds = %1917, %1921
  %.str.5.sink1038 = phi ptr [ @.str.5, %1921 ], [ @.str.2, %1917 ]
  store i32 %1912, ptr %212, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1924 = load i32, ptr @test_count, align 4, !tbaa !5
  %1925 = load i32, ptr %158, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef nonnull @.str.4) #11
  %1927 = load i32, ptr %158, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef nonnull @.str.4) #11
  %1929 = load i32, ptr %212, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #11
  %1931 = load i32, ptr %212, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1923, ptr noundef nonnull %.str.5.sink1038, i32 noundef %1924, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1926, ptr noundef %1928, ptr noundef %1930, i32 noundef %1931) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1933:                                             ; preds = %1906
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = add nsw i32 %1934, 1
  store i32 %1935, ptr @test_count, align 4, !tbaa !5
  %1936 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #11
  %1937 = icmp eq i32 %1936, -1
  br i1 %1937, label %1938, label %1960

1938:                                             ; preds = %1933
  %1939 = load i32, ptr %212, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @s2n_print_stacktrace(ptr noundef %1940) #11
  %1942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1943 = trunc nuw i8 %1942 to i1
  br i1 %1943, label %1944, label %1948

1944:                                             ; preds = %1938
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = call i32 @fileno(ptr noundef %1945) #11
  %1947 = call i32 @isatty(i32 noundef %1946) #11
  %.not352 = icmp eq i32 %1947, 0
  br i1 %.not352, label %1948, label %1949

1948:                                             ; preds = %1944, %1938
  br label %1949

1949:                                             ; preds = %1944, %1948
  %.str.5.sink1047 = phi ptr [ @.str.5, %1948 ], [ @.str.2, %1944 ]
  store i32 %1939, ptr %212, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = load i32, ptr %158, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef nonnull @.str.4) #11
  %1954 = load i32, ptr %158, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror_debug(i32 noundef %1954, ptr noundef nonnull @.str.4) #11
  %1956 = load i32, ptr %212, align 4, !tbaa !5
  %1957 = call ptr @strerror(i32 noundef %1956) #11
  %1958 = load i32, ptr %212, align 4, !tbaa !5
  %1959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1950, ptr noundef nonnull %.str.5.sink1047, i32 noundef %1951, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1953, ptr noundef %1955, ptr noundef %1957, i32 noundef %1958) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1960:                                             ; preds = %1933
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = add nsw i32 %1961, 1
  store i32 %1962, ptr @test_count, align 4, !tbaa !5
  %1963 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %9, ptr noundef nonnull %8, ptr noundef nonnull %1747) #11
  %1964 = icmp eq i32 %1963, -1
  br i1 %1964, label %1965, label %1987

1965:                                             ; preds = %1960
  %1966 = load i32, ptr %212, align 4, !tbaa !5
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @s2n_print_stacktrace(ptr noundef %1967) #11
  %1969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1970 = trunc nuw i8 %1969 to i1
  br i1 %1970, label %1971, label %1975

1971:                                             ; preds = %1965
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = call i32 @fileno(ptr noundef %1972) #11
  %1974 = call i32 @isatty(i32 noundef %1973) #11
  %.not351 = icmp eq i32 %1974, 0
  br i1 %.not351, label %1975, label %1976

1975:                                             ; preds = %1971, %1965
  br label %1976

1976:                                             ; preds = %1971, %1975
  %.str.5.sink1056 = phi ptr [ @.str.5, %1975 ], [ @.str.2, %1971 ]
  store i32 %1966, ptr %212, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = load i32, ptr %158, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror(i32 noundef %1979, ptr noundef nonnull @.str.4) #11
  %1981 = load i32, ptr %158, align 4, !tbaa !5
  %1982 = call ptr @s2n_strerror_debug(i32 noundef %1981, ptr noundef nonnull @.str.4) #11
  %1983 = load i32, ptr %212, align 4, !tbaa !5
  %1984 = call ptr @strerror(i32 noundef %1983) #11
  %1985 = load i32, ptr %212, align 4, !tbaa !5
  %1986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1977, ptr noundef nonnull %.str.5.sink1056, i32 noundef %1978, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1980, ptr noundef %1982, ptr noundef %1984, i32 noundef %1985) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1987:                                             ; preds = %1960
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = add nsw i32 %1988, 1
  store i32 %1989, ptr @test_count, align 4, !tbaa !5
  %1990 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %1827) #11
  %1991 = icmp eq i32 %1990, -1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1987
  %1993 = load i32, ptr %212, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @s2n_print_stacktrace(ptr noundef %1994) #11
  %1996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1997 = trunc nuw i8 %1996 to i1
  br i1 %1997, label %1998, label %2002

1998:                                             ; preds = %1992
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @fileno(ptr noundef %1999) #11
  %2001 = call i32 @isatty(i32 noundef %2000) #11
  %.not350 = icmp eq i32 %2001, 0
  br i1 %.not350, label %2002, label %2003

2002:                                             ; preds = %1998, %1992
  br label %2003

2003:                                             ; preds = %1998, %2002
  %.str.5.sink1065 = phi ptr [ @.str.5, %2002 ], [ @.str.2, %1998 ]
  store i32 %1993, ptr %212, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = load i32, ptr %158, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror(i32 noundef %2006, ptr noundef nonnull @.str.4) #11
  %2008 = load i32, ptr %158, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror_debug(i32 noundef %2008, ptr noundef nonnull @.str.4) #11
  %2010 = load i32, ptr %212, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #11
  %2012 = load i32, ptr %212, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef nonnull %.str.5.sink1065, i32 noundef %2005, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %2007, ptr noundef %2009, ptr noundef %2011, i32 noundef %2012) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2014:                                             ; preds = %1987
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = add nsw i32 %2015, 1
  store i32 %2016, ptr @test_count, align 4, !tbaa !5
  %2017 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %1827, ptr noundef nonnull %1747, i32 noundef 16) #11
  %2018 = call zeroext i1 @s2n_result_is_ok(i32 %2017)
  br i1 %2018, label %2041, label %2019

2019:                                             ; preds = %2014
  %2020 = load i32, ptr %212, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @s2n_print_stacktrace(ptr noundef %2021) #11
  %2023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2024 = trunc nuw i8 %2023 to i1
  br i1 %2024, label %2025, label %2029

2025:                                             ; preds = %2019
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = call i32 @fileno(ptr noundef %2026) #11
  %2028 = call i32 @isatty(i32 noundef %2027) #11
  %.not319 = icmp eq i32 %2028, 0
  br i1 %.not319, label %2029, label %2030

2029:                                             ; preds = %2025, %2019
  br label %2030

2030:                                             ; preds = %2025, %2029
  %.str.5.sink1074 = phi ptr [ @.str.5, %2029 ], [ @.str.2, %2025 ]
  store i32 %2020, ptr %212, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = load i32, ptr %158, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef nonnull @.str.4) #11
  %2035 = load i32, ptr %158, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef nonnull @.str.4) #11
  %2037 = load i32, ptr %212, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #11
  %2039 = load i32, ptr %212, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2031, ptr noundef nonnull %.str.5.sink1074, i32 noundef %2032, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %2034, ptr noundef %2036, ptr noundef %2038, i32 noundef %2039) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2041:                                             ; preds = %2014
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %1827) #11
  %2045 = icmp eq i32 %2044, 16
  br i1 %2045, label %2068, label %2046

2046:                                             ; preds = %2041
  %2047 = load i32, ptr %212, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @s2n_print_stacktrace(ptr noundef %2048) #11
  %2050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2051 = trunc nuw i8 %2050 to i1
  br i1 %2051, label %2052, label %2056

2052:                                             ; preds = %2046
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = call i32 @fileno(ptr noundef %2053) #11
  %2055 = call i32 @isatty(i32 noundef %2054) #11
  %.not320 = icmp eq i32 %2055, 0
  br i1 %.not320, label %2056, label %2057

2056:                                             ; preds = %2052, %2046
  br label %2057

2057:                                             ; preds = %2052, %2056
  %.str.5.sink1083 = phi ptr [ @.str.5, %2056 ], [ @.str.2, %2052 ]
  store i32 %2047, ptr %212, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = load i32, ptr @test_count, align 4, !tbaa !5
  %2060 = load i32, ptr %158, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror(i32 noundef %2060, ptr noundef nonnull @.str.4) #11
  %2062 = load i32, ptr %158, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef nonnull @.str.4) #11
  %2064 = load i32, ptr %212, align 4, !tbaa !5
  %2065 = call ptr @strerror(i32 noundef %2064) #11
  %2066 = load i32, ptr %212, align 4, !tbaa !5
  %2067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2058, ptr noundef nonnull %.str.5.sink1083, i32 noundef %2059, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %2061, ptr noundef %2063, ptr noundef %2065, i32 noundef %2066) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2068:                                             ; preds = %2041
  %2069 = load i32, ptr @test_count, align 4, !tbaa !5
  %2070 = add nsw i32 %2069, 1
  store i32 %2070, ptr @test_count, align 4, !tbaa !5
  %2071 = getelementptr inbounds i8, ptr %1827, i64 640
  %2072 = load ptr, ptr %2071, align 8, !tbaa !47
  %2073 = getelementptr inbounds i8, ptr %1827, i64 232
  %2074 = load ptr, ptr %2073, align 8, !tbaa !48
  %2075 = icmp eq ptr %2072, %2074
  br i1 %2075, label %2098, label %2076

2076:                                             ; preds = %2068
  %2077 = load i32, ptr %212, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = call i32 @s2n_print_stacktrace(ptr noundef %2078) #11
  %2080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2081 = trunc nuw i8 %2080 to i1
  br i1 %2081, label %2082, label %2086

2082:                                             ; preds = %2076
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = call i32 @fileno(ptr noundef %2083) #11
  %2085 = call i32 @isatty(i32 noundef %2084) #11
  %.not321 = icmp eq i32 %2085, 0
  br i1 %.not321, label %2086, label %2087

2086:                                             ; preds = %2082, %2076
  br label %2087

2087:                                             ; preds = %2082, %2086
  %.str.5.sink1092 = phi ptr [ @.str.5, %2086 ], [ @.str.2, %2082 ]
  store i32 %2077, ptr %212, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = load i32, ptr @test_count, align 4, !tbaa !5
  %2090 = load i32, ptr %158, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef nonnull @.str.4) #11
  %2092 = load i32, ptr %158, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef nonnull @.str.4) #11
  %2094 = load i32, ptr %212, align 4, !tbaa !5
  %2095 = call ptr @strerror(i32 noundef %2094) #11
  %2096 = load i32, ptr %212, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2088, ptr noundef nonnull %.str.5.sink1092, i32 noundef %2089, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2091, ptr noundef %2093, ptr noundef %2095, i32 noundef %2096) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2098:                                             ; preds = %2068
  %2099 = getelementptr inbounds i8, ptr %1827, i64 224
  %2100 = load ptr, ptr %2099, align 8, !tbaa !49
  store ptr %2100, ptr %2071, align 8, !tbaa !47
  %2101 = add nsw i32 %2069, 2
  store i32 %2101, ptr @test_count, align 4, !tbaa !5
  %2102 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %1827) #11
  %2103 = icmp eq i32 %2102, -1
  br i1 %2103, label %2104, label %2126

2104:                                             ; preds = %2098
  %2105 = load i32, ptr %212, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @s2n_print_stacktrace(ptr noundef %2106) #11
  %2108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2109 = trunc nuw i8 %2108 to i1
  br i1 %2109, label %2110, label %2114

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

2114:                                             ; preds = %2110, %2104
  br label %2115

2115:                                             ; preds = %2110, %2114
  %.str.5.sink1101 = phi ptr [ @.str.5, %2114 ], [ @.str.2, %2110 ]
  store i32 %2105, ptr %212, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = load i32, ptr %158, align 4, !tbaa !5
  %2119 = call ptr @s2n_strerror(i32 noundef %2118, ptr noundef nonnull @.str.4) #11
  %2120 = load i32, ptr %158, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror_debug(i32 noundef %2120, ptr noundef nonnull @.str.4) #11
  %2122 = load i32, ptr %212, align 4, !tbaa !5
  %2123 = call ptr @strerror(i32 noundef %2122) #11
  %2124 = load i32, ptr %212, align 4, !tbaa !5
  %2125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef nonnull %.str.5.sink1101, i32 noundef %2117, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2119, ptr noundef %2121, ptr noundef %2123, i32 noundef %2124) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2126:                                             ; preds = %2098
  %2127 = getelementptr inbounds i8, ptr %1827, i64 2528
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %2127, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.long_alpn, i64 24, i1 false)
  %2128 = load i32, ptr @test_count, align 4, !tbaa !5
  %2129 = add nsw i32 %2128, 1
  store i32 %2129, ptr @test_count, align 4, !tbaa !5
  %2130 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %9) #11
  %2131 = icmp eq i32 %2130, -1
  br i1 %2131, label %2132, label %2154

2132:                                             ; preds = %2126
  %2133 = load i32, ptr %212, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @s2n_print_stacktrace(ptr noundef %2134) #11
  %2136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2137 = trunc nuw i8 %2136 to i1
  br i1 %2137, label %2138, label %2142

2138:                                             ; preds = %2132
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @fileno(ptr noundef %2139) #11
  %2141 = call i32 @isatty(i32 noundef %2140) #11
  %.not348 = icmp eq i32 %2141, 0
  br i1 %.not348, label %2142, label %2143

2142:                                             ; preds = %2138, %2132
  br label %2143

2143:                                             ; preds = %2138, %2142
  %.str.5.sink1110 = phi ptr [ @.str.5, %2142 ], [ @.str.2, %2138 ]
  store i32 %2133, ptr %212, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = load i32, ptr %158, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror(i32 noundef %2146, ptr noundef nonnull @.str.4) #11
  %2148 = load i32, ptr %158, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror_debug(i32 noundef %2148, ptr noundef nonnull @.str.4) #11
  %2150 = load i32, ptr %212, align 4, !tbaa !5
  %2151 = call ptr @strerror(i32 noundef %2150) #11
  %2152 = load i32, ptr %212, align 4, !tbaa !5
  %2153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2144, ptr noundef nonnull %.str.5.sink1110, i32 noundef %2145, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %2147, ptr noundef %2149, ptr noundef %2151, i32 noundef %2152) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2154:                                             ; preds = %2126
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = add nsw i32 %2155, 1
  store i32 %2156, ptr @test_count, align 4, !tbaa !5
  %2157 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %1827) #11
  %2158 = icmp eq i32 %2157, 16
  br i1 %2158, label %2181, label %2159

2159:                                             ; preds = %2154
  %2160 = load i32, ptr %212, align 4, !tbaa !5
  %2161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2162 = call i32 @s2n_print_stacktrace(ptr noundef %2161) #11
  %2163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2164 = trunc nuw i8 %2163 to i1
  br i1 %2164, label %2165, label %2169

2165:                                             ; preds = %2159
  %2166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2167 = call i32 @fileno(ptr noundef %2166) #11
  %2168 = call i32 @isatty(i32 noundef %2167) #11
  %.not322 = icmp eq i32 %2168, 0
  br i1 %.not322, label %2169, label %2170

2169:                                             ; preds = %2165, %2159
  br label %2170

2170:                                             ; preds = %2165, %2169
  %.str.5.sink1119 = phi ptr [ @.str.5, %2169 ], [ @.str.2, %2165 ]
  store i32 %2160, ptr %212, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = load i32, ptr @test_count, align 4, !tbaa !5
  %2173 = load i32, ptr %158, align 4, !tbaa !5
  %2174 = call ptr @s2n_strerror(i32 noundef %2173, ptr noundef nonnull @.str.4) #11
  %2175 = load i32, ptr %158, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror_debug(i32 noundef %2175, ptr noundef nonnull @.str.4) #11
  %2177 = load i32, ptr %212, align 4, !tbaa !5
  %2178 = call ptr @strerror(i32 noundef %2177) #11
  %2179 = load i32, ptr %212, align 4, !tbaa !5
  %2180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2171, ptr noundef nonnull %.str.5.sink1119, i32 noundef %2172, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2174, ptr noundef %2176, ptr noundef %2178, i32 noundef %2179) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2181:                                             ; preds = %2154
  %2182 = load i32, ptr @test_count, align 4, !tbaa !5
  %2183 = add nsw i32 %2182, 1
  store i32 %2183, ptr @test_count, align 4, !tbaa !5
  %2184 = call i32 @s2n_negotiate(ptr noundef nonnull %1827, ptr noundef nonnull %6) #11
  %2185 = icmp eq i32 %2184, -1
  br i1 %2185, label %2208, label %2186

2186:                                             ; preds = %2181
  %2187 = load i32, ptr %212, align 4, !tbaa !5
  %2188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2189 = call i32 @s2n_print_stacktrace(ptr noundef %2188) #11
  %2190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2191 = trunc nuw i8 %2190 to i1
  br i1 %2191, label %2192, label %2196

2192:                                             ; preds = %2186
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #11
  %2195 = call i32 @isatty(i32 noundef %2194) #11
  %.not323 = icmp eq i32 %2195, 0
  br i1 %.not323, label %2196, label %2197

2196:                                             ; preds = %2192, %2186
  br label %2197

2197:                                             ; preds = %2192, %2196
  %.str.5.sink1128 = phi ptr [ @.str.5, %2196 ], [ @.str.2, %2192 ]
  store i32 %2187, ptr %212, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = load i32, ptr %158, align 4, !tbaa !5
  %2201 = call ptr @s2n_strerror(i32 noundef %2200, ptr noundef nonnull @.str.4) #11
  %2202 = load i32, ptr %158, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef nonnull @.str.4) #11
  %2204 = load i32, ptr %212, align 4, !tbaa !5
  %2205 = call ptr @strerror(i32 noundef %2204) #11
  %2206 = load i32, ptr %212, align 4, !tbaa !5
  %2207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef nonnull %.str.5.sink1128, i32 noundef %2199, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2201, ptr noundef %2203, ptr noundef %2205, i32 noundef %2206) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2208:                                             ; preds = %2181
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, ptr @test_count, align 4, !tbaa !5
  %2211 = load i32, ptr %158, align 4, !tbaa !5
  %2212 = icmp eq i32 %2211, 201326592
  br i1 %2212, label %2235, label %2213

2213:                                             ; preds = %2208
  %2214 = load i32, ptr %212, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = call i32 @s2n_print_stacktrace(ptr noundef %2215) #11
  %2217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2218 = trunc nuw i8 %2217 to i1
  br i1 %2218, label %2219, label %2223

2219:                                             ; preds = %2213
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @fileno(ptr noundef %2220) #11
  %2222 = call i32 @isatty(i32 noundef %2221) #11
  %.not324 = icmp eq i32 %2222, 0
  br i1 %.not324, label %2223, label %2224

2223:                                             ; preds = %2219, %2213
  br label %2224

2224:                                             ; preds = %2219, %2223
  %.str.5.sink1137 = phi ptr [ @.str.5, %2223 ], [ @.str.2, %2219 ]
  store i32 %2214, ptr %212, align 4, !tbaa !5
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = load i32, ptr @test_count, align 4, !tbaa !5
  %2227 = load i32, ptr %158, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror(i32 noundef %2227, ptr noundef nonnull @.str.4) #11
  %2229 = load i32, ptr %158, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror_debug(i32 noundef %2229, ptr noundef nonnull @.str.4) #11
  %2231 = load i32, ptr %212, align 4, !tbaa !5
  %2232 = call ptr @strerror(i32 noundef %2231) #11
  %2233 = load i32, ptr %212, align 4, !tbaa !5
  %2234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2225, ptr noundef nonnull %.str.5.sink1137, i32 noundef %2226, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2228, ptr noundef %2230, ptr noundef %2232, i32 noundef %2233) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2235:                                             ; preds = %2208
  %2236 = add nsw i32 %2209, 2
  store i32 %2236, ptr @test_count, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror_debug(i32 noundef 201326592, ptr noundef nonnull @.str.4) #11
  %2238 = icmp eq ptr %2237, null
  br i1 %2238, label %2239, label %2261

2239:                                             ; preds = %2235
  %2240 = load i32, ptr %212, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @s2n_print_stacktrace(ptr noundef %2241) #11
  %2243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2244 = trunc nuw i8 %2243 to i1
  br i1 %2244, label %2245, label %2249

2245:                                             ; preds = %2239
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @fileno(ptr noundef %2246) #11
  %2248 = call i32 @isatty(i32 noundef %2247) #11
  %.not347 = icmp eq i32 %2248, 0
  br i1 %.not347, label %2249, label %2250

2249:                                             ; preds = %2245, %2239
  br label %2250

2250:                                             ; preds = %2245, %2249
  %.str.5.sink1146 = phi ptr [ @.str.5, %2249 ], [ @.str.2, %2245 ]
  store i32 %2240, ptr %212, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = load i32, ptr @test_count, align 4, !tbaa !5
  %2253 = load i32, ptr %158, align 4, !tbaa !5
  %2254 = call ptr @s2n_strerror(i32 noundef %2253, ptr noundef nonnull @.str.4) #11
  %2255 = load i32, ptr %158, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef nonnull @.str.4) #11
  %2257 = load i32, ptr %212, align 4, !tbaa !5
  %2258 = call ptr @strerror(i32 noundef %2257) #11
  %2259 = load i32, ptr %212, align 4, !tbaa !5
  %2260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2251, ptr noundef nonnull %.str.5.sink1146, i32 noundef %2252, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2254, ptr noundef %2256, ptr noundef %2258, i32 noundef %2259) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2261:                                             ; preds = %2235
  store i32 0, ptr %158, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %212, align 4, !tbaa !5
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = add nsw i32 %2262, 1
  store i32 %2263, ptr @test_count, align 4, !tbaa !5
  %2264 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %1827) #11
  %2265 = icmp eq i32 %2264, 16
  br i1 %2265, label %2266, label %2288

2266:                                             ; preds = %2261
  %2267 = load i32, ptr %212, align 4, !tbaa !5
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = call i32 @s2n_print_stacktrace(ptr noundef %2268) #11
  %2270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2271 = trunc nuw i8 %2270 to i1
  br i1 %2271, label %2272, label %2276

2272:                                             ; preds = %2266
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = call i32 @fileno(ptr noundef %2273) #11
  %2275 = call i32 @isatty(i32 noundef %2274) #11
  %.not346 = icmp eq i32 %2275, 0
  br i1 %.not346, label %2276, label %2277

2276:                                             ; preds = %2272, %2266
  br label %2277

2277:                                             ; preds = %2272, %2276
  %.str.5.sink1155 = phi ptr [ @.str.5, %2276 ], [ @.str.2, %2272 ]
  store i32 %2267, ptr %212, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = load i32, ptr %158, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef nonnull @.str.4) #11
  %2282 = load i32, ptr %158, align 4, !tbaa !5
  %2283 = call ptr @s2n_strerror_debug(i32 noundef %2282, ptr noundef nonnull @.str.4) #11
  %2284 = load i32, ptr %212, align 4, !tbaa !5
  %2285 = call ptr @strerror(i32 noundef %2284) #11
  %2286 = load i32, ptr %212, align 4, !tbaa !5
  %2287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2278, ptr noundef nonnull %.str.5.sink1155, i32 noundef %2279, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %2281, ptr noundef %2283, ptr noundef %2285, i32 noundef %2286) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2288:                                             ; preds = %2261
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #11
  store i8 0, ptr %10, align 1, !tbaa !50
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = add nsw i32 %2289, 1
  store i32 %2290, ptr @test_count, align 4, !tbaa !5
  %2291 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %9, ptr noundef nonnull %10) #11
  %2292 = icmp eq i32 %2291, -1
  br i1 %2292, label %2293, label %2315

2293:                                             ; preds = %2288
  %2294 = load i32, ptr %212, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = call i32 @s2n_print_stacktrace(ptr noundef %2295) #11
  %2297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2298 = trunc nuw i8 %2297 to i1
  br i1 %2298, label %2299, label %2303

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

2303:                                             ; preds = %2299, %2293
  br label %2304

2304:                                             ; preds = %2299, %2303
  %.str.5.sink1164 = phi ptr [ @.str.5, %2303 ], [ @.str.2, %2299 ]
  store i32 %2294, ptr %212, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = load i32, ptr %158, align 4, !tbaa !5
  %2308 = call ptr @s2n_strerror(i32 noundef %2307, ptr noundef nonnull @.str.4) #11
  %2309 = load i32, ptr %158, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror_debug(i32 noundef %2309, ptr noundef nonnull @.str.4) #11
  %2311 = load i32, ptr %212, align 4, !tbaa !5
  %2312 = call ptr @strerror(i32 noundef %2311) #11
  %2313 = load i32, ptr %212, align 4, !tbaa !5
  %2314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2305, ptr noundef nonnull %.str.5.sink1164, i32 noundef %2306, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2308, ptr noundef %2310, ptr noundef %2312, i32 noundef %2313) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2315:                                             ; preds = %2288
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = add nsw i32 %2316, 1
  store i32 %2317, ptr @test_count, align 4, !tbaa !5
  %2318 = load i8, ptr %10, align 1, !tbaa !50
  %2319 = icmp eq i8 %2318, 22
  br i1 %2319, label %2342, label %2320

2320:                                             ; preds = %2315
  %2321 = load i32, ptr %212, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @s2n_print_stacktrace(ptr noundef %2322) #11
  %2324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2325 = trunc nuw i8 %2324 to i1
  br i1 %2325, label %2326, label %2330

2326:                                             ; preds = %2320
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @fileno(ptr noundef %2327) #11
  %2329 = call i32 @isatty(i32 noundef %2328) #11
  %.not325 = icmp eq i32 %2329, 0
  br i1 %.not325, label %2330, label %2331

2330:                                             ; preds = %2326, %2320
  br label %2331

2331:                                             ; preds = %2326, %2330
  %.str.5.sink1173 = phi ptr [ @.str.5, %2330 ], [ @.str.2, %2326 ]
  store i32 %2321, ptr %212, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = load i32, ptr %158, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror(i32 noundef %2334, ptr noundef nonnull @.str.4) #11
  %2336 = load i32, ptr %158, align 4, !tbaa !5
  %2337 = call ptr @s2n_strerror_debug(i32 noundef %2336, ptr noundef nonnull @.str.4) #11
  %2338 = load i32, ptr %212, align 4, !tbaa !5
  %2339 = call ptr @strerror(i32 noundef %2338) #11
  %2340 = load i32, ptr %212, align 4, !tbaa !5
  %2341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef nonnull %.str.5.sink1173, i32 noundef %2333, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %2335, ptr noundef %2337, ptr noundef %2339, i32 noundef %2340) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2342:                                             ; preds = %2315
  %2343 = add nsw i32 %2316, 2
  store i32 %2343, ptr @test_count, align 4, !tbaa !5
  %2344 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %9) #11
  %2345 = icmp eq i32 %2344, -1
  br i1 %2345, label %2346, label %2368

2346:                                             ; preds = %2342
  %2347 = load i32, ptr %212, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = call i32 @s2n_print_stacktrace(ptr noundef %2348) #11
  %2350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2351 = trunc nuw i8 %2350 to i1
  br i1 %2351, label %2352, label %2356

2352:                                             ; preds = %2346
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = call i32 @fileno(ptr noundef %2353) #11
  %2355 = call i32 @isatty(i32 noundef %2354) #11
  %.not344 = icmp eq i32 %2355, 0
  br i1 %.not344, label %2356, label %2357

2356:                                             ; preds = %2352, %2346
  br label %2357

2357:                                             ; preds = %2352, %2356
  %.str.5.sink1182 = phi ptr [ @.str.5, %2356 ], [ @.str.2, %2352 ]
  store i32 %2347, ptr %212, align 4, !tbaa !5
  %2358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2359 = load i32, ptr @test_count, align 4, !tbaa !5
  %2360 = load i32, ptr %158, align 4, !tbaa !5
  %2361 = call ptr @s2n_strerror(i32 noundef %2360, ptr noundef nonnull @.str.4) #11
  %2362 = load i32, ptr %158, align 4, !tbaa !5
  %2363 = call ptr @s2n_strerror_debug(i32 noundef %2362, ptr noundef nonnull @.str.4) #11
  %2364 = load i32, ptr %212, align 4, !tbaa !5
  %2365 = call ptr @strerror(i32 noundef %2364) #11
  %2366 = load i32, ptr %212, align 4, !tbaa !5
  %2367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2358, ptr noundef nonnull %.str.5.sink1182, i32 noundef %2359, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %2361, ptr noundef %2363, ptr noundef %2365, i32 noundef %2366) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2368:                                             ; preds = %2342
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = add nsw i32 %2369, 1
  store i32 %2370, ptr @test_count, align 4, !tbaa !5
  %2371 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %9, i32 noundef 5) #11
  %2372 = icmp eq i32 %2371, -1
  br i1 %2372, label %2373, label %2395

2373:                                             ; preds = %2368
  %2374 = load i32, ptr %212, align 4, !tbaa !5
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2376 = call i32 @s2n_print_stacktrace(ptr noundef %2375) #11
  %2377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2378 = trunc nuw i8 %2377 to i1
  br i1 %2378, label %2379, label %2383

2379:                                             ; preds = %2373
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = call i32 @fileno(ptr noundef %2380) #11
  %2382 = call i32 @isatty(i32 noundef %2381) #11
  %.not343 = icmp eq i32 %2382, 0
  br i1 %.not343, label %2383, label %2384

2383:                                             ; preds = %2379, %2373
  br label %2384

2384:                                             ; preds = %2379, %2383
  %.str.5.sink1191 = phi ptr [ @.str.5, %2383 ], [ @.str.2, %2379 ]
  store i32 %2374, ptr %212, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = load i32, ptr %158, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror(i32 noundef %2387, ptr noundef nonnull @.str.4) #11
  %2389 = load i32, ptr %158, align 4, !tbaa !5
  %2390 = call ptr @s2n_strerror_debug(i32 noundef %2389, ptr noundef nonnull @.str.4) #11
  %2391 = load i32, ptr %212, align 4, !tbaa !5
  %2392 = call ptr @strerror(i32 noundef %2391) #11
  %2393 = load i32, ptr %212, align 4, !tbaa !5
  %2394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2385, ptr noundef nonnull %.str.5.sink1191, i32 noundef %2386, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2388, ptr noundef %2390, ptr noundef %2392, i32 noundef %2393) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2395:                                             ; preds = %2368
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr @test_count, align 4, !tbaa !5
  %2398 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %9, ptr noundef nonnull %10) #11
  %2399 = icmp eq i32 %2398, -1
  br i1 %2399, label %2400, label %2422

2400:                                             ; preds = %2395
  %2401 = load i32, ptr %212, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @s2n_print_stacktrace(ptr noundef %2402) #11
  %2404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2405 = trunc nuw i8 %2404 to i1
  br i1 %2405, label %2406, label %2410

2406:                                             ; preds = %2400
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = call i32 @fileno(ptr noundef %2407) #11
  %2409 = call i32 @isatty(i32 noundef %2408) #11
  %.not342 = icmp eq i32 %2409, 0
  br i1 %.not342, label %2410, label %2411

2410:                                             ; preds = %2406, %2400
  br label %2411

2411:                                             ; preds = %2406, %2410
  %.str.5.sink1200 = phi ptr [ @.str.5, %2410 ], [ @.str.2, %2406 ]
  store i32 %2401, ptr %212, align 4, !tbaa !5
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = load i32, ptr @test_count, align 4, !tbaa !5
  %2414 = load i32, ptr %158, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror(i32 noundef %2414, ptr noundef nonnull @.str.4) #11
  %2416 = load i32, ptr %158, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef nonnull @.str.4) #11
  %2418 = load i32, ptr %212, align 4, !tbaa !5
  %2419 = call ptr @strerror(i32 noundef %2418) #11
  %2420 = load i32, ptr %212, align 4, !tbaa !5
  %2421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2412, ptr noundef nonnull %.str.5.sink1200, i32 noundef %2413, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2415, ptr noundef %2417, ptr noundef %2419, i32 noundef %2420) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2422:                                             ; preds = %2395
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = add nsw i32 %2423, 1
  store i32 %2424, ptr @test_count, align 4, !tbaa !5
  %2425 = load i8, ptr %10, align 1, !tbaa !50
  %2426 = icmp eq i8 %2425, 8
  br i1 %2426, label %2449, label %2427

2427:                                             ; preds = %2422
  %2428 = load i32, ptr %212, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = call i32 @s2n_print_stacktrace(ptr noundef %2429) #11
  %2431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2432 = trunc nuw i8 %2431 to i1
  br i1 %2432, label %2433, label %2437

2433:                                             ; preds = %2427
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @fileno(ptr noundef %2434) #11
  %2436 = call i32 @isatty(i32 noundef %2435) #11
  %.not326 = icmp eq i32 %2436, 0
  br i1 %.not326, label %2437, label %2438

2437:                                             ; preds = %2433, %2427
  br label %2438

2438:                                             ; preds = %2433, %2437
  %.str.5.sink1209 = phi ptr [ @.str.5, %2437 ], [ @.str.2, %2433 ]
  store i32 %2428, ptr %212, align 4, !tbaa !5
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = load i32, ptr %158, align 4, !tbaa !5
  %2442 = call ptr @s2n_strerror(i32 noundef %2441, ptr noundef nonnull @.str.4) #11
  %2443 = load i32, ptr %158, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror_debug(i32 noundef %2443, ptr noundef nonnull @.str.4) #11
  %2445 = load i32, ptr %212, align 4, !tbaa !5
  %2446 = call ptr @strerror(i32 noundef %2445) #11
  %2447 = load i32, ptr %212, align 4, !tbaa !5
  %2448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2439, ptr noundef nonnull %.str.5.sink1209, i32 noundef %2440, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2442, ptr noundef %2444, ptr noundef %2446, i32 noundef %2447) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2449:                                             ; preds = %2422
  %2450 = add nsw i32 %2423, 2
  store i32 %2450, ptr @test_count, align 4, !tbaa !5
  %2451 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %9) #11
  %2452 = icmp eq i32 %2451, -1
  br i1 %2452, label %2453, label %2475

2453:                                             ; preds = %2449
  %2454 = load i32, ptr %212, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2456 = call i32 @s2n_print_stacktrace(ptr noundef %2455) #11
  %2457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2458 = trunc nuw i8 %2457 to i1
  br i1 %2458, label %2459, label %2463

2459:                                             ; preds = %2453
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = call i32 @fileno(ptr noundef %2460) #11
  %2462 = call i32 @isatty(i32 noundef %2461) #11
  %.not341 = icmp eq i32 %2462, 0
  br i1 %.not341, label %2463, label %2464

2463:                                             ; preds = %2459, %2453
  br label %2464

2464:                                             ; preds = %2459, %2463
  %.str.5.sink1218 = phi ptr [ @.str.5, %2463 ], [ @.str.2, %2459 ]
  store i32 %2454, ptr %212, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = load i32, ptr %158, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror(i32 noundef %2467, ptr noundef nonnull @.str.4) #11
  %2469 = load i32, ptr %158, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef nonnull @.str.4) #11
  %2471 = load i32, ptr %212, align 4, !tbaa !5
  %2472 = call ptr @strerror(i32 noundef %2471) #11
  %2473 = load i32, ptr %212, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2465, ptr noundef nonnull %.str.5.sink1218, i32 noundef %2466, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2468, ptr noundef %2470, ptr noundef %2472, i32 noundef %2473) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2475:                                             ; preds = %2449
  %2476 = load i32, ptr @test_count, align 4, !tbaa !5
  %2477 = add nsw i32 %2476, 1
  store i32 %2477, ptr @test_count, align 4, !tbaa !5
  %2478 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %1747) #11
  %2479 = icmp eq i32 %2478, 16
  br i1 %2479, label %2502, label %2480

2480:                                             ; preds = %2475
  %2481 = load i32, ptr %212, align 4, !tbaa !5
  %2482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2483 = call i32 @s2n_print_stacktrace(ptr noundef %2482) #11
  %2484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2485 = trunc nuw i8 %2484 to i1
  br i1 %2485, label %2486, label %2490

2486:                                             ; preds = %2480
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = call i32 @fileno(ptr noundef %2487) #11
  %2489 = call i32 @isatty(i32 noundef %2488) #11
  %.not327 = icmp eq i32 %2489, 0
  br i1 %.not327, label %2490, label %2491

2490:                                             ; preds = %2486, %2480
  br label %2491

2491:                                             ; preds = %2486, %2490
  %.str.5.sink1227 = phi ptr [ @.str.5, %2490 ], [ @.str.2, %2486 ]
  store i32 %2481, ptr %212, align 4, !tbaa !5
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = load i32, ptr %158, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef nonnull @.str.4) #11
  %2496 = load i32, ptr %158, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef nonnull @.str.4) #11
  %2498 = load i32, ptr %212, align 4, !tbaa !5
  %2499 = call ptr @strerror(i32 noundef %2498) #11
  %2500 = load i32, ptr %212, align 4, !tbaa !5
  %2501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2492, ptr noundef nonnull %.str.5.sink1227, i32 noundef %2493, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2495, ptr noundef %2497, ptr noundef %2499, i32 noundef %2500) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2502:                                             ; preds = %2475
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = add nsw i32 %2503, 1
  store i32 %2504, ptr @test_count, align 4, !tbaa !5
  %2505 = call i32 @s2n_negotiate(ptr noundef nonnull %1747, ptr noundef nonnull %6) #11
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2529, label %2507

2507:                                             ; preds = %2502
  %2508 = load i32, ptr %212, align 4, !tbaa !5
  %2509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2510 = call i32 @s2n_print_stacktrace(ptr noundef %2509) #11
  %2511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2512 = trunc nuw i8 %2511 to i1
  br i1 %2512, label %2513, label %2517

2513:                                             ; preds = %2507
  %2514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2515 = call i32 @fileno(ptr noundef %2514) #11
  %2516 = call i32 @isatty(i32 noundef %2515) #11
  %.not328 = icmp eq i32 %2516, 0
  br i1 %.not328, label %2517, label %2518

2517:                                             ; preds = %2513, %2507
  br label %2518

2518:                                             ; preds = %2513, %2517
  %.str.5.sink1236 = phi ptr [ @.str.5, %2517 ], [ @.str.2, %2513 ]
  store i32 %2508, ptr %212, align 4, !tbaa !5
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = load i32, ptr %158, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror(i32 noundef %2521, ptr noundef nonnull @.str.4) #11
  %2523 = load i32, ptr %158, align 4, !tbaa !5
  %2524 = call ptr @s2n_strerror_debug(i32 noundef %2523, ptr noundef nonnull @.str.4) #11
  %2525 = load i32, ptr %212, align 4, !tbaa !5
  %2526 = call ptr @strerror(i32 noundef %2525) #11
  %2527 = load i32, ptr %212, align 4, !tbaa !5
  %2528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2519, ptr noundef nonnull %.str.5.sink1236, i32 noundef %2520, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2522, ptr noundef %2524, ptr noundef %2526, i32 noundef %2527) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2529:                                             ; preds = %2502
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = add nsw i32 %2530, 1
  store i32 %2531, ptr @test_count, align 4, !tbaa !5
  %2532 = load i32, ptr %158, align 4, !tbaa !5
  %2533 = icmp eq i32 %2532, 335544321
  br i1 %2533, label %2556, label %2534

2534:                                             ; preds = %2529
  %2535 = load i32, ptr %212, align 4, !tbaa !5
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = call i32 @s2n_print_stacktrace(ptr noundef %2536) #11
  %2538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2539 = trunc nuw i8 %2538 to i1
  br i1 %2539, label %2540, label %2544

2540:                                             ; preds = %2534
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = call i32 @fileno(ptr noundef %2541) #11
  %2543 = call i32 @isatty(i32 noundef %2542) #11
  %.not329 = icmp eq i32 %2543, 0
  br i1 %.not329, label %2544, label %2545

2544:                                             ; preds = %2540, %2534
  br label %2545

2545:                                             ; preds = %2540, %2544
  %.str.5.sink1245 = phi ptr [ @.str.5, %2544 ], [ @.str.2, %2540 ]
  store i32 %2535, ptr %212, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = load i32, ptr %158, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror(i32 noundef %2548, ptr noundef nonnull @.str.4) #11
  %2550 = load i32, ptr %158, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror_debug(i32 noundef %2550, ptr noundef nonnull @.str.4) #11
  %2552 = load i32, ptr %212, align 4, !tbaa !5
  %2553 = call ptr @strerror(i32 noundef %2552) #11
  %2554 = load i32, ptr %212, align 4, !tbaa !5
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2546, ptr noundef nonnull %.str.5.sink1245, i32 noundef %2547, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2549, ptr noundef %2551, ptr noundef %2553, i32 noundef %2554) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2556:                                             ; preds = %2529
  %2557 = add nsw i32 %2530, 2
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #11
  %2559 = icmp eq ptr %2558, null
  br i1 %2559, label %2560, label %2582

2560:                                             ; preds = %2556
  %2561 = load i32, ptr %212, align 4, !tbaa !5
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = call i32 @s2n_print_stacktrace(ptr noundef %2562) #11
  %2564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2565 = trunc nuw i8 %2564 to i1
  br i1 %2565, label %2566, label %2570

2566:                                             ; preds = %2560
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = call i32 @fileno(ptr noundef %2567) #11
  %2569 = call i32 @isatty(i32 noundef %2568) #11
  %.not340 = icmp eq i32 %2569, 0
  br i1 %.not340, label %2570, label %2571

2570:                                             ; preds = %2566, %2560
  br label %2571

2571:                                             ; preds = %2566, %2570
  %.str.5.sink1254 = phi ptr [ @.str.5, %2570 ], [ @.str.2, %2566 ]
  store i32 %2561, ptr %212, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = load i32, ptr %158, align 4, !tbaa !5
  %2575 = call ptr @s2n_strerror(i32 noundef %2574, ptr noundef nonnull @.str.4) #11
  %2576 = load i32, ptr %158, align 4, !tbaa !5
  %2577 = call ptr @s2n_strerror_debug(i32 noundef %2576, ptr noundef nonnull @.str.4) #11
  %2578 = load i32, ptr %212, align 4, !tbaa !5
  %2579 = call ptr @strerror(i32 noundef %2578) #11
  %2580 = load i32, ptr %212, align 4, !tbaa !5
  %2581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2572, ptr noundef nonnull %.str.5.sink1254, i32 noundef %2573, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2575, ptr noundef %2577, ptr noundef %2579, i32 noundef %2580) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2582:                                             ; preds = %2556
  store i32 0, ptr %158, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %212, align 4, !tbaa !5
  %2583 = load i32, ptr @test_count, align 4, !tbaa !5
  %2584 = add nsw i32 %2583, 1
  store i32 %2584, ptr @test_count, align 4, !tbaa !5
  %2585 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %1747) #11
  %2586 = icmp eq i32 %2585, 16
  br i1 %2586, label %2609, label %2587

2587:                                             ; preds = %2582
  %2588 = load i32, ptr %212, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589) #11
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc nuw i8 %2591 to i1
  br i1 %2592, label %2593, label %2597

2593:                                             ; preds = %2587
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #11
  %2596 = call i32 @isatty(i32 noundef %2595) #11
  %.not330 = icmp eq i32 %2596, 0
  br i1 %.not330, label %2597, label %2598

2597:                                             ; preds = %2593, %2587
  br label %2598

2598:                                             ; preds = %2593, %2597
  %.str.5.sink1263 = phi ptr [ @.str.5, %2597 ], [ @.str.2, %2593 ]
  store i32 %2588, ptr %212, align 4, !tbaa !5
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = load i32, ptr @test_count, align 4, !tbaa !5
  %2601 = load i32, ptr %158, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror(i32 noundef %2601, ptr noundef nonnull @.str.4) #11
  %2603 = load i32, ptr %158, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror_debug(i32 noundef %2603, ptr noundef nonnull @.str.4) #11
  %2605 = load i32, ptr %212, align 4, !tbaa !5
  %2606 = call ptr @strerror(i32 noundef %2605) #11
  %2607 = load i32, ptr %212, align 4, !tbaa !5
  %2608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2599, ptr noundef nonnull %.str.5.sink1263, i32 noundef %2600, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2602, ptr noundef %2604, ptr noundef %2606, i32 noundef %2607) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2609:                                             ; preds = %2582
  %2610 = load i32, ptr @test_count, align 4, !tbaa !5
  %2611 = add nsw i32 %2610, 1
  store i32 %2611, ptr @test_count, align 4, !tbaa !5
  %2612 = call i32 @s2n_connection_free(ptr noundef nonnull %1827) #11
  %2613 = icmp eq i32 %2612, -1
  br i1 %2613, label %2614, label %2636

2614:                                             ; preds = %2609
  %2615 = load i32, ptr %212, align 4, !tbaa !5
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = call i32 @s2n_print_stacktrace(ptr noundef %2616) #11
  %2618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2619 = trunc nuw i8 %2618 to i1
  br i1 %2619, label %2620, label %2624

2620:                                             ; preds = %2614
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @fileno(ptr noundef %2621) #11
  %2623 = call i32 @isatty(i32 noundef %2622) #11
  %.not339 = icmp eq i32 %2623, 0
  br i1 %.not339, label %2624, label %2625

2624:                                             ; preds = %2620, %2614
  br label %2625

2625:                                             ; preds = %2620, %2624
  %.str.5.sink1272 = phi ptr [ @.str.5, %2624 ], [ @.str.2, %2620 ]
  store i32 %2615, ptr %212, align 4, !tbaa !5
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = load i32, ptr %158, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror(i32 noundef %2628, ptr noundef nonnull @.str.4) #11
  %2630 = load i32, ptr %158, align 4, !tbaa !5
  %2631 = call ptr @s2n_strerror_debug(i32 noundef %2630, ptr noundef nonnull @.str.4) #11
  %2632 = load i32, ptr %212, align 4, !tbaa !5
  %2633 = call ptr @strerror(i32 noundef %2632) #11
  %2634 = load i32, ptr %212, align 4, !tbaa !5
  %2635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2626, ptr noundef nonnull %.str.5.sink1272, i32 noundef %2627, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %2629, ptr noundef %2631, ptr noundef %2633, i32 noundef %2634) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2636:                                             ; preds = %2609
  %2637 = load i32, ptr @test_count, align 4, !tbaa !5
  %2638 = add nsw i32 %2637, 1
  store i32 %2638, ptr @test_count, align 4, !tbaa !5
  %2639 = call i32 @s2n_connection_free(ptr noundef nonnull %1747) #11
  %2640 = icmp eq i32 %2639, -1
  br i1 %2640, label %2641, label %2663

2641:                                             ; preds = %2636
  %2642 = load i32, ptr %212, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @s2n_print_stacktrace(ptr noundef %2643) #11
  %2645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2646 = trunc nuw i8 %2645 to i1
  br i1 %2646, label %2647, label %2651

2647:                                             ; preds = %2641
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @fileno(ptr noundef %2648) #11
  %2650 = call i32 @isatty(i32 noundef %2649) #11
  %.not338 = icmp eq i32 %2650, 0
  br i1 %.not338, label %2651, label %2652

2651:                                             ; preds = %2647, %2641
  br label %2652

2652:                                             ; preds = %2647, %2651
  %.str.5.sink1281 = phi ptr [ @.str.5, %2651 ], [ @.str.2, %2647 ]
  store i32 %2642, ptr %212, align 4, !tbaa !5
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = load i32, ptr %158, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror(i32 noundef %2655, ptr noundef nonnull @.str.4) #11
  %2657 = load i32, ptr %158, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef nonnull @.str.4) #11
  %2659 = load i32, ptr %212, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #11
  %2661 = load i32, ptr %212, align 4, !tbaa !5
  %2662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2653, ptr noundef nonnull %.str.5.sink1281, i32 noundef %2654, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2656, ptr noundef %2658, ptr noundef %2660, i32 noundef %2661) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2663:                                             ; preds = %2636
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = add nsw i32 %2664, 1
  store i32 %2665, ptr @test_count, align 4, !tbaa !5
  %2666 = load ptr, ptr %7, align 8, !tbaa !9
  %2667 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2666) #11
  %2668 = icmp eq i32 %2667, -1
  br i1 %2668, label %2669, label %2691

2669:                                             ; preds = %2663
  %2670 = load i32, ptr %212, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = call i32 @s2n_print_stacktrace(ptr noundef %2671) #11
  %2673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2674 = trunc nuw i8 %2673 to i1
  br i1 %2674, label %2675, label %2679

2675:                                             ; preds = %2669
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @fileno(ptr noundef %2676) #11
  %2678 = call i32 @isatty(i32 noundef %2677) #11
  %.not337 = icmp eq i32 %2678, 0
  br i1 %.not337, label %2679, label %2680

2679:                                             ; preds = %2675, %2669
  br label %2680

2680:                                             ; preds = %2675, %2679
  %.str.5.sink1290 = phi ptr [ @.str.5, %2679 ], [ @.str.2, %2675 ]
  store i32 %2670, ptr %212, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = load i32, ptr @test_count, align 4, !tbaa !5
  %2683 = load i32, ptr %158, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef nonnull @.str.4) #11
  %2685 = load i32, ptr %158, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror_debug(i32 noundef %2685, ptr noundef nonnull @.str.4) #11
  %2687 = load i32, ptr %212, align 4, !tbaa !5
  %2688 = call ptr @strerror(i32 noundef %2687) #11
  %2689 = load i32, ptr %212, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef nonnull %.str.5.sink1290, i32 noundef %2682, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %2684, ptr noundef %2686, ptr noundef %2688, i32 noundef %2689) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2691:                                             ; preds = %2663
  %2692 = load i32, ptr @test_count, align 4, !tbaa !5
  %2693 = add nsw i32 %2692, 1
  store i32 %2693, ptr @test_count, align 4, !tbaa !5
  %2694 = call i32 @s2n_config_free(ptr noundef nonnull %1640) #11
  %2695 = icmp eq i32 %2694, -1
  br i1 %2695, label %2696, label %2718

2696:                                             ; preds = %2691
  %2697 = load i32, ptr %212, align 4, !tbaa !5
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = call i32 @s2n_print_stacktrace(ptr noundef %2698) #11
  %2700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2701 = trunc nuw i8 %2700 to i1
  br i1 %2701, label %2702, label %2706

2702:                                             ; preds = %2696
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = call i32 @fileno(ptr noundef %2703) #11
  %2705 = call i32 @isatty(i32 noundef %2704) #11
  %.not336 = icmp eq i32 %2705, 0
  br i1 %.not336, label %2706, label %2707

2706:                                             ; preds = %2702, %2696
  br label %2707

2707:                                             ; preds = %2702, %2706
  %.str.5.sink1299 = phi ptr [ @.str.5, %2706 ], [ @.str.2, %2702 ]
  store i32 %2697, ptr %212, align 4, !tbaa !5
  %2708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2709 = load i32, ptr @test_count, align 4, !tbaa !5
  %2710 = load i32, ptr %158, align 4, !tbaa !5
  %2711 = call ptr @s2n_strerror(i32 noundef %2710, ptr noundef nonnull @.str.4) #11
  %2712 = load i32, ptr %158, align 4, !tbaa !5
  %2713 = call ptr @s2n_strerror_debug(i32 noundef %2712, ptr noundef nonnull @.str.4) #11
  %2714 = load i32, ptr %212, align 4, !tbaa !5
  %2715 = call ptr @strerror(i32 noundef %2714) #11
  %2716 = load i32, ptr %212, align 4, !tbaa !5
  %2717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2708, ptr noundef nonnull %.str.5.sink1299, i32 noundef %2709, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %2711, ptr noundef %2713, ptr noundef %2715, i32 noundef %2716) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2718:                                             ; preds = %2691
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  %2719 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #11
  %2720 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  br label %2721

2721:                                             ; preds = %2718, %1608
  %2722 = call i32 @s2n_cleanup() #11
  %2723 = icmp eq i32 %2722, -1
  br i1 %2723, label %2724, label %2746

2724:                                             ; preds = %2721
  %2725 = load i32, ptr %212, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @s2n_print_stacktrace(ptr noundef %2726) #11
  %2728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2729 = trunc nuw i8 %2728 to i1
  br i1 %2729, label %2730, label %2734

2730:                                             ; preds = %2724
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @fileno(ptr noundef %2731) #11
  %2733 = call i32 @isatty(i32 noundef %2732) #11
  %.not335 = icmp eq i32 %2733, 0
  br i1 %.not335, label %2734, label %2735

2734:                                             ; preds = %2730, %2724
  br label %2735

2735:                                             ; preds = %2730, %2734
  %.str.5.sink1308 = phi ptr [ @.str.5, %2734 ], [ @.str.2, %2730 ]
  store i32 %2725, ptr %212, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = load i32, ptr @test_count, align 4, !tbaa !5
  %2738 = load i32, ptr %158, align 4, !tbaa !5
  %2739 = call ptr @s2n_strerror(i32 noundef %2738, ptr noundef nonnull @.str.4) #11
  %2740 = load i32, ptr %158, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror_debug(i32 noundef %2740, ptr noundef nonnull @.str.4) #11
  %2742 = load i32, ptr %212, align 4, !tbaa !5
  %2743 = call ptr @strerror(i32 noundef %2742) #11
  %2744 = load i32, ptr %212, align 4, !tbaa !5
  %2745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2736, ptr noundef nonnull %.str.5.sink1308, i32 noundef %2737, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2739, ptr noundef %2741, ptr noundef %2743, i32 noundef %2744) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2746:                                             ; preds = %2721
  %2747 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %2748 = icmp eq i32 %2747, -1
  br i1 %2748, label %2749, label %2771

2749:                                             ; preds = %2746
  %2750 = load i32, ptr %212, align 4, !tbaa !5
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @s2n_print_stacktrace(ptr noundef %2751) #11
  %2753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2754 = trunc nuw i8 %2753 to i1
  br i1 %2754, label %2755, label %2759

2755:                                             ; preds = %2749
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = call i32 @fileno(ptr noundef %2756) #11
  %2758 = call i32 @isatty(i32 noundef %2757) #11
  %.not334 = icmp eq i32 %2758, 0
  br i1 %.not334, label %2759, label %2760

2759:                                             ; preds = %2755, %2749
  br label %2760

2760:                                             ; preds = %2755, %2759
  %.str.5.sink1317 = phi ptr [ @.str.5, %2759 ], [ @.str.2, %2755 ]
  store i32 %2750, ptr %212, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = load i32, ptr %158, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror(i32 noundef %2763, ptr noundef nonnull @.str.4) #11
  %2765 = load i32, ptr %158, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef nonnull @.str.4) #11
  %2767 = load i32, ptr %212, align 4, !tbaa !5
  %2768 = call ptr @strerror(i32 noundef %2767) #11
  %2769 = load i32, ptr %212, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2761, ptr noundef nonnull %.str.5.sink1317, i32 noundef %2762, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2764, ptr noundef %2766, ptr noundef %2768, i32 noundef %2769) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2771:                                             ; preds = %2746
  %2772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2773 = trunc nuw i8 %2772 to i1
  br i1 %2773, label %2774, label %2785

2774:                                             ; preds = %2771
  %2775 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2776 = call i32 @fileno(ptr noundef %2775) #11
  %2777 = call i32 @isatty(i32 noundef %2776) #11
  %.not331 = icmp eq i32 %2777, 0
  br i1 %.not331, label %2785, label %2778

2778:                                             ; preds = %2774
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not333 = icmp eq i32 %2779, 0
  %2780 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not333, label %2783, label %2781

2781:                                             ; preds = %2778
  %2782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2780, ptr noundef nonnull @.str.72, i32 noundef %2779) #11
  br label %2792

2783:                                             ; preds = %2778
  %2784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2780, ptr noundef nonnull @.str.73) #11
  br label %2792

2785:                                             ; preds = %2774, %2771
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not332 = icmp eq i32 %2786, 0
  %2787 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not332, label %2790, label %2788

2788:                                             ; preds = %2785
  %2789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef nonnull @.str.74, i32 noundef %2786) #11
  br label %2792

2790:                                             ; preds = %2785
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2787, ptr noundef nonnull @.str.75) #11
  br label %2792

2792:                                             ; preds = %2788, %2790, %2781, %2783
  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_enable_tls13_in_test(...) local_unnamed_addr #2

declare i32 @s2n_encrypted_extensions_send(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_encrypted_extensions_recv(ptr noundef) local_unnamed_addr #2

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

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

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

declare ptr @s2n_config_new() local_unnamed_addr #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 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) #8

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #9

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

declare i32 @s2n_conn_get_current_message_type(ptr noundef) 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) #10

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


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