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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer_reservation = type { ptr, 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 [100 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 [64 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_psk_key_exchange_modes_extension = external constant %struct.s2n_extension_type, align 8
@.str.10 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.67 = 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 %struct.s2n_stuffer, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_stuffer, align 8
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %struct.s2n_stuffer, align 8
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %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 %struct.s2n_stuffer, align 8
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %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 %struct.s2n_stuffer, align 8
  %68 = alloca i32, align 4
  %69 = alloca %struct.s2n_stuffer_reservation, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %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 i32, align 4
  %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 i32, align 4
  %86 = alloca ptr, align 8
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca %struct.s2n_result, align 4
  %101 = alloca %struct.s2n_result, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_result, align 4
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca ptr, align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca ptr, align 8
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca %struct.s2n_stuffer, align 8
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca ptr, align 8
  %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
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = 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 %135

135:                                              ; preds = %2
  br label %136

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

141:                                              ; preds = %136
  %142 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %143 = icmp eq i32 %142, -1
  br i1 %143, label %144, label %195

144:                                              ; preds = %141
  br label %145

145:                                              ; preds = %144
  br label %146

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

153:                                              ; preds = %146
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = call i32 @fileno(ptr noundef %154) #8
  %156 = call i32 @isatty(i32 noundef %155) #8
  %157 = icmp ne i32 %156, 0
  br i1 %157, label %158, label %175

158:                                              ; preds = %153
  %159 = load i32, ptr %6, align 4, !tbaa !5
  %160 = call ptr @__errno_location() #9
  store i32 %159, ptr %160, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %164, ptr noundef @.str.4)
  %166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @s2n_strerror_debug(i32 noundef %167, ptr noundef @.str.4)
  %169 = call ptr @__errno_location() #9
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call ptr @strerror(i32 noundef %170) #8
  %172 = call ptr @__errno_location() #9
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %161, ptr noundef @.str.2, i32 noundef %162, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %165, ptr noundef %168, ptr noundef %171, i32 noundef %173) #8
  br label %192

175:                                              ; preds = %153, %146
  %176 = load i32, ptr %6, align 4, !tbaa !5
  %177 = call ptr @__errno_location() #9
  store i32 %176, ptr %177, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %181, ptr noundef @.str.4)
  %183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef @.str.4)
  %186 = call ptr @__errno_location() #9
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call ptr @strerror(i32 noundef %187) #8
  %189 = call ptr @__errno_location() #9
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef @.str.5, i32 noundef %179, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 22, ptr noundef %182, ptr noundef %185, ptr noundef %188, i32 noundef %190) #8
  br label %192

192:                                              ; preds = %175, %158
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %193

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

194:                                              ; No predecessors!
  br label %195

195:                                              ; preds = %194, %141
  br label %196

196:                                              ; preds = %195
  br label %197

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

202:                                              ; preds = %197
  br label %203

203:                                              ; preds = %202
  br label %204

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

211:                                              ; preds = %204
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = call i32 @fileno(ptr noundef %212) #8
  %214 = call i32 @isatty(i32 noundef %213) #8
  %215 = icmp ne i32 %214, 0
  br i1 %215, label %216, label %233

216:                                              ; preds = %211
  %217 = load i32, ptr %7, align 4, !tbaa !5
  %218 = call ptr @__errno_location() #9
  store i32 %217, ptr %218, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %222, ptr noundef @.str.4)
  %224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef @.str.4)
  %227 = call ptr @__errno_location() #9
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call ptr @strerror(i32 noundef %228) #8
  %230 = call ptr @__errno_location() #9
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %219, ptr noundef @.str.2, i32 noundef %220, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %223, ptr noundef %226, ptr noundef %229, i32 noundef %231) #8
  br label %250

233:                                              ; preds = %211, %204
  %234 = load i32, ptr %7, align 4, !tbaa !5
  %235 = call ptr @__errno_location() #9
  store i32 %234, ptr %235, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %239, ptr noundef @.str.4)
  %241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @s2n_strerror_debug(i32 noundef %242, ptr noundef @.str.4)
  %244 = call ptr @__errno_location() #9
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #8
  %247 = call ptr @__errno_location() #9
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef @.str.5, i32 noundef %237, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 22, ptr noundef %240, ptr noundef %243, ptr noundef %246, i32 noundef %248) #8
  br label %250

250:                                              ; preds = %233, %216
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %251

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

252:                                              ; No predecessors!
  br label %253

253:                                              ; preds = %252, %197
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  %257 = call i32 @s2n_init()
  %258 = icmp eq i32 %257, -1
  br i1 %258, label %259, label %310

259:                                              ; preds = %256
  br label %260

260:                                              ; preds = %259
  br label %261

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

268:                                              ; preds = %261
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = call i32 @fileno(ptr noundef %269) #8
  %271 = call i32 @isatty(i32 noundef %270) #8
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %273, label %290

273:                                              ; preds = %268
  %274 = load i32, ptr %8, align 4, !tbaa !5
  %275 = call ptr @__errno_location() #9
  store i32 %274, ptr %275, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %279, ptr noundef @.str.4)
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror_debug(i32 noundef %282, ptr noundef @.str.4)
  %284 = call ptr @__errno_location() #9
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @strerror(i32 noundef %285) #8
  %287 = call ptr @__errno_location() #9
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef @.str.2, i32 noundef %277, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %280, ptr noundef %283, ptr noundef %286, i32 noundef %288) #8
  br label %307

290:                                              ; preds = %268, %261
  %291 = load i32, ptr %8, align 4, !tbaa !5
  %292 = call ptr @__errno_location() #9
  store i32 %291, ptr %292, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %296, ptr noundef @.str.4)
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef @.str.4)
  %301 = call ptr @__errno_location() #9
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #8
  %304 = call ptr @__errno_location() #9
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.5, i32 noundef %294, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef %297, ptr noundef %300, ptr noundef %303, i32 noundef %305) #8
  br label %307

307:                                              ; preds = %290, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %308

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

309:                                              ; No predecessors!
  br label %310

310:                                              ; preds = %309, %256
  br label %311

311:                                              ; preds = %310
  br label %312

312:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 40, ptr %9) #8
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 40, i1 false)
  br label %313

313:                                              ; preds = %312
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @test_count, align 4, !tbaa !5
  %316 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %9, i32 noundef 0)
  %317 = icmp eq i32 %316, -1
  br i1 %317, label %318, label %371

318:                                              ; preds = %313
  br label %319

319:                                              ; preds = %318
  br label %320

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

327:                                              ; preds = %320
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = call i32 @fileno(ptr noundef %328) #8
  %330 = call i32 @isatty(i32 noundef %329) #8
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %332, label %349

332:                                              ; preds = %327
  %333 = load i32, ptr %10, align 4, !tbaa !5
  %334 = call ptr @__errno_location() #9
  store i32 %333, ptr %334, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %338, ptr noundef @.str.4)
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef @.str.4)
  %343 = call ptr @__errno_location() #9
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @strerror(i32 noundef %344) #8
  %346 = call ptr @__errno_location() #9
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef @.str.2, i32 noundef %336, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 27, ptr noundef %339, ptr noundef %342, ptr noundef %345, i32 noundef %347) #8
  br label %366

349:                                              ; preds = %327, %320
  %350 = load i32, ptr %10, align 4, !tbaa !5
  %351 = call ptr @__errno_location() #9
  store i32 %350, ptr %351, align 4, !tbaa !5
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %355, ptr noundef @.str.4)
  %357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror_debug(i32 noundef %358, ptr noundef @.str.4)
  %360 = call ptr @__errno_location() #9
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #8
  %363 = call ptr @__errno_location() #9
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef @.str.5, i32 noundef %353, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 27, ptr noundef %356, ptr noundef %359, ptr noundef %362, i32 noundef %364) #8
  br label %366

366:                                              ; preds = %349, %332
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %367

367:                                              ; preds = %366
  br label %368

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

369:                                              ; No predecessors!
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370, %313
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %374

374:                                              ; preds = %373
  %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 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %377, ptr %11, align 8, !tbaa !9
  %378 = icmp eq ptr %377, null
  br i1 %378, label %379, label %432

379:                                              ; preds = %374
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %382 = call ptr @__errno_location() #9
  %383 = load i32, ptr %382, align 4, !tbaa !5
  store i32 %383, ptr %12, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @s2n_print_stacktrace(ptr noundef %384)
  %386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %387 = trunc i8 %386 to i1
  br i1 %387, label %388, label %410

388:                                              ; preds = %381
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = call i32 @fileno(ptr noundef %389) #8
  %391 = call i32 @isatty(i32 noundef %390) #8
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %393, label %410

393:                                              ; preds = %388
  %394 = load i32, ptr %12, align 4, !tbaa !5
  %395 = call ptr @__errno_location() #9
  store i32 %394, ptr %395, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror(i32 noundef %399, ptr noundef @.str.4)
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef @.str.4)
  %404 = call ptr @__errno_location() #9
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @strerror(i32 noundef %405) #8
  %407 = call ptr @__errno_location() #9
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef @.str.2, i32 noundef %397, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 30, ptr noundef %400, ptr noundef %403, ptr noundef %406, i32 noundef %408) #8
  br label %427

410:                                              ; preds = %388, %381
  %411 = load i32, ptr %12, align 4, !tbaa !5
  %412 = call ptr @__errno_location() #9
  store i32 %411, ptr %412, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef @.str.4)
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef @.str.4)
  %421 = call ptr @__errno_location() #9
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #8
  %424 = call ptr @__errno_location() #9
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef @.str.5, i32 noundef %414, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 30, ptr noundef %417, ptr noundef %420, ptr noundef %423, i32 noundef %425) #8
  br label %427

427:                                              ; preds = %410, %393
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %428

428:                                              ; preds = %427
  br label %429

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

430:                                              ; No predecessors!
  br label %431

431:                                              ; preds = %430
  br label %432

432:                                              ; preds = %431, %374
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = add nsw i32 %436, 1
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 3), align 8, !tbaa !15
  %439 = load ptr, ptr %11, align 8, !tbaa !9
  %440 = call i32 %438(ptr noundef %439, ptr noundef %9)
  %441 = icmp eq i32 %440, -1
  br i1 %441, label %442, label %495

442:                                              ; preds = %435
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %445 = call ptr @__errno_location() #9
  %446 = load i32, ptr %445, align 4, !tbaa !5
  store i32 %446, ptr %13, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = call i32 @s2n_print_stacktrace(ptr noundef %447)
  %449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %450 = trunc i8 %449 to i1
  br i1 %450, label %451, label %473

451:                                              ; preds = %444
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = call i32 @fileno(ptr noundef %452) #8
  %454 = call i32 @isatty(i32 noundef %453) #8
  %455 = icmp ne i32 %454, 0
  br i1 %455, label %456, label %473

456:                                              ; preds = %451
  %457 = load i32, ptr %13, align 4, !tbaa !5
  %458 = call ptr @__errno_location() #9
  store i32 %457, ptr %458, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = load i32, ptr @test_count, align 4, !tbaa !5
  %461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror(i32 noundef %462, ptr noundef @.str.4)
  %464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror_debug(i32 noundef %465, ptr noundef @.str.4)
  %467 = call ptr @__errno_location() #9
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #8
  %470 = call ptr @__errno_location() #9
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %459, ptr noundef @.str.2, i32 noundef %460, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 32, ptr noundef %463, ptr noundef %466, ptr noundef %469, i32 noundef %471) #8
  br label %490

473:                                              ; preds = %451, %444
  %474 = load i32, ptr %13, align 4, !tbaa !5
  %475 = call ptr @__errno_location() #9
  store i32 %474, ptr %475, align 4, !tbaa !5
  %476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %477 = load i32, ptr @test_count, align 4, !tbaa !5
  %478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = call ptr @s2n_strerror(i32 noundef %479, ptr noundef @.str.4)
  %481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror_debug(i32 noundef %482, ptr noundef @.str.4)
  %484 = call ptr @__errno_location() #9
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = call ptr @strerror(i32 noundef %485) #8
  %487 = call ptr @__errno_location() #9
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %476, ptr noundef @.str.5, i32 noundef %477, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 32, ptr noundef %480, ptr noundef %483, ptr noundef %486, i32 noundef %488) #8
  br label %490

490:                                              ; preds = %473, %456
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %491

491:                                              ; preds = %490
  br label %492

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

493:                                              ; No predecessors!
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494, %435
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  store i8 0, ptr %14, align 1, !tbaa !18
  br label %498

498:                                              ; preds = %497
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = add nsw i32 %499, 1
  store i32 %500, ptr @test_count, align 4, !tbaa !5
  %501 = call i32 @s2n_stuffer_read_uint8(ptr noundef %9, ptr noundef %14)
  %502 = icmp eq i32 %501, -1
  br i1 %502, label %503, label %556

503:                                              ; preds = %498
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %506 = call ptr @__errno_location() #9
  %507 = load i32, ptr %506, align 4, !tbaa !5
  store i32 %507, ptr %15, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508)
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc i8 %510 to i1
  br i1 %511, label %512, label %534

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #8
  %515 = call i32 @isatty(i32 noundef %514) #8
  %516 = icmp ne i32 %515, 0
  br i1 %516, label %517, label %534

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

534:                                              ; preds = %512, %505
  %535 = load i32, ptr %15, align 4, !tbaa !5
  %536 = call ptr @__errno_location() #9
  store i32 %535, ptr %536, align 4, !tbaa !5
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef @.str.4)
  %542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef @.str.4)
  %545 = call ptr @__errno_location() #9
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @strerror(i32 noundef %546) #8
  %548 = call ptr @__errno_location() #9
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %537, ptr noundef @.str.5, i32 noundef %538, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 35, ptr noundef %541, ptr noundef %544, ptr noundef %547, i32 noundef %549) #8
  br label %551

551:                                              ; preds = %534, %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %552

552:                                              ; preds = %551
  br label %553

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

554:                                              ; No predecessors!
  br label %555

555:                                              ; preds = %554
  br label %556

556:                                              ; preds = %555, %498
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = load i8, ptr %14, align 1, !tbaa !18
  %563 = zext i8 %562 to i64
  %564 = icmp eq i64 %563, 1
  br i1 %564, label %618, label %565

565:                                              ; preds = %559
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %568 = call ptr @__errno_location() #9
  %569 = load i32, ptr %568, align 4, !tbaa !5
  store i32 %569, ptr %16, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @s2n_print_stacktrace(ptr noundef %570)
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %596

574:                                              ; preds = %567
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #8
  %577 = call i32 @isatty(i32 noundef %576) #8
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %596

579:                                              ; preds = %574
  %580 = load i32, ptr %16, align 4, !tbaa !5
  %581 = call ptr @__errno_location() #9
  store i32 %580, ptr %581, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef @.str.4)
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef @.str.4)
  %590 = call ptr @__errno_location() #9
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #8
  %593 = call ptr @__errno_location() #9
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef @.str.2, i32 noundef %583, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 36, ptr noundef %586, ptr noundef %589, ptr noundef %592, i32 noundef %594) #8
  br label %613

596:                                              ; preds = %574, %567
  %597 = load i32, ptr %16, align 4, !tbaa !5
  %598 = call ptr @__errno_location() #9
  store i32 %597, ptr %598, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef @.str.4)
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef @.str.4)
  %607 = call ptr @__errno_location() #9
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #8
  %610 = call ptr @__errno_location() #9
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef @.str.5, i32 noundef %600, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 36, ptr noundef %603, ptr noundef %606, ptr noundef %609, i32 noundef %611) #8
  br label %613

613:                                              ; preds = %596, %579
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %614

614:                                              ; preds = %613
  br label %615

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

616:                                              ; No predecessors!
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617, %559
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #8
  store i8 0, ptr %17, align 1, !tbaa !18
  br label %621

621:                                              ; preds = %620
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = call i32 @s2n_stuffer_read_uint8(ptr noundef %9, ptr noundef %17)
  %625 = icmp eq i32 %624, -1
  br i1 %625, label %626, label %679

626:                                              ; preds = %621
  br label %627

627:                                              ; preds = %626
  br label %628

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

635:                                              ; preds = %628
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @fileno(ptr noundef %636) #8
  %638 = call i32 @isatty(i32 noundef %637) #8
  %639 = icmp ne i32 %638, 0
  br i1 %639, label %640, label %657

640:                                              ; preds = %635
  %641 = load i32, ptr %18, align 4, !tbaa !5
  %642 = call ptr @__errno_location() #9
  store i32 %641, ptr %642, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror(i32 noundef %646, ptr noundef @.str.4)
  %648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef %649, ptr noundef @.str.4)
  %651 = call ptr @__errno_location() #9
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #8
  %654 = call ptr @__errno_location() #9
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef @.str.2, i32 noundef %644, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 39, ptr noundef %647, ptr noundef %650, ptr noundef %653, i32 noundef %655) #8
  br label %674

657:                                              ; preds = %635, %628
  %658 = load i32, ptr %18, align 4, !tbaa !5
  %659 = call ptr @__errno_location() #9
  store i32 %658, ptr %659, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef @.str.4)
  %665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @s2n_strerror_debug(i32 noundef %666, ptr noundef @.str.4)
  %668 = call ptr @__errno_location() #9
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #8
  %671 = call ptr @__errno_location() #9
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef @.str.5, i32 noundef %661, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 39, ptr noundef %664, ptr noundef %667, ptr noundef %670, i32 noundef %672) #8
  br label %674

674:                                              ; preds = %657, %640
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %675

675:                                              ; preds = %674
  br label %676

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

677:                                              ; No predecessors!
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678, %621
  br label %680

680:                                              ; preds = %679
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = add nsw i32 %683, 1
  store i32 %684, ptr @test_count, align 4, !tbaa !5
  %685 = load i8, ptr %17, align 1, !tbaa !18
  %686 = zext i8 %685 to i32
  %687 = icmp eq i32 %686, 1
  br i1 %687, label %741, label %688

688:                                              ; preds = %682
  br label %689

689:                                              ; preds = %688
  br label %690

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

697:                                              ; preds = %690
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @fileno(ptr noundef %698) #8
  %700 = call i32 @isatty(i32 noundef %699) #8
  %701 = icmp ne i32 %700, 0
  br i1 %701, label %702, label %719

702:                                              ; preds = %697
  %703 = load i32, ptr %19, align 4, !tbaa !5
  %704 = call ptr @__errno_location() #9
  store i32 %703, ptr %704, align 4, !tbaa !5
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = load i32, ptr @test_count, align 4, !tbaa !5
  %707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %708 = load i32, ptr %707, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror(i32 noundef %708, ptr noundef @.str.4)
  %710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror_debug(i32 noundef %711, ptr noundef @.str.4)
  %713 = call ptr @__errno_location() #9
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = call ptr @strerror(i32 noundef %714) #8
  %716 = call ptr @__errno_location() #9
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %705, ptr noundef @.str.2, i32 noundef %706, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 40, ptr noundef %709, ptr noundef %712, ptr noundef %715, i32 noundef %717) #8
  br label %736

719:                                              ; preds = %697, %690
  %720 = load i32, ptr %19, align 4, !tbaa !5
  %721 = call ptr @__errno_location() #9
  store i32 %720, ptr %721, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror(i32 noundef %725, ptr noundef @.str.4)
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror_debug(i32 noundef %728, ptr noundef @.str.4)
  %730 = call ptr @__errno_location() #9
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #8
  %733 = call ptr @__errno_location() #9
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef @.str.5, i32 noundef %723, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 40, ptr noundef %726, ptr noundef %729, ptr noundef %732, i32 noundef %734) #8
  br label %736

736:                                              ; preds = %719, %702
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %737

737:                                              ; preds = %736
  br label %738

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

739:                                              ; No predecessors!
  br label %740

740:                                              ; preds = %739
  br label %741

741:                                              ; preds = %740, %682
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load ptr, ptr %11, align 8, !tbaa !9
  %748 = call i32 @s2n_connection_free(ptr noundef %747)
  %749 = icmp eq i32 %748, -1
  br i1 %749, label %750, label %803

750:                                              ; preds = %744
  br label %751

751:                                              ; preds = %750
  br label %752

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

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

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

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

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

799:                                              ; preds = %798
  br label %800

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

801:                                              ; No predecessors!
  br label %802

802:                                              ; preds = %801
  br label %803

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

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804
  br label %806

806:                                              ; preds = %805
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = add nsw i32 %807, 1
  store i32 %808, ptr @test_count, align 4, !tbaa !5
  %809 = call i32 @s2n_stuffer_free(ptr noundef %9)
  %810 = icmp eq i32 %809, -1
  br i1 %810, label %811, label %864

811:                                              ; preds = %806
  br label %812

812:                                              ; preds = %811
  br label %813

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

820:                                              ; preds = %813
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @fileno(ptr noundef %821) #8
  %823 = call i32 @isatty(i32 noundef %822) #8
  %824 = icmp ne i32 %823, 0
  br i1 %824, label %825, label %842

825:                                              ; preds = %820
  %826 = load i32, ptr %21, align 4, !tbaa !5
  %827 = call ptr @__errno_location() #9
  store i32 %826, ptr %827, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror(i32 noundef %831, ptr noundef @.str.4)
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef @.str.4)
  %836 = call ptr @__errno_location() #9
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @strerror(i32 noundef %837) #8
  %839 = call ptr @__errno_location() #9
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %828, ptr noundef @.str.2, i32 noundef %829, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 43, ptr noundef %832, ptr noundef %835, ptr noundef %838, i32 noundef %840) #8
  br label %859

842:                                              ; preds = %820, %813
  %843 = load i32, ptr %21, align 4, !tbaa !5
  %844 = call ptr @__errno_location() #9
  store i32 %843, ptr %844, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror(i32 noundef %848, ptr noundef @.str.4)
  %850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef @.str.4)
  %853 = call ptr @__errno_location() #9
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #8
  %856 = call ptr @__errno_location() #9
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %845, ptr noundef @.str.5, i32 noundef %846, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 43, ptr noundef %849, ptr noundef %852, ptr noundef %855, i32 noundef %857) #8
  br label %859

859:                                              ; preds = %842, %825
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %860

860:                                              ; preds = %859
  br label %861

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

862:                                              ; No predecessors!
  br label %863

863:                                              ; preds = %862
  br label %864

864:                                              ; preds = %863, %806
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #8
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 40, i1 false)
  br label %867

867:                                              ; preds = %866
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %22, i32 noundef 0)
  %871 = icmp eq i32 %870, -1
  br i1 %871, label %872, label %925

872:                                              ; preds = %867
  br label %873

873:                                              ; preds = %872
  br label %874

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

881:                                              ; preds = %874
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #8
  %884 = call i32 @isatty(i32 noundef %883) #8
  %885 = icmp ne i32 %884, 0
  br i1 %885, label %886, label %903

886:                                              ; preds = %881
  %887 = load i32, ptr %23, align 4, !tbaa !5
  %888 = call ptr @__errno_location() #9
  store i32 %887, ptr %888, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @s2n_strerror(i32 noundef %892, ptr noundef @.str.4)
  %894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror_debug(i32 noundef %895, ptr noundef @.str.4)
  %897 = call ptr @__errno_location() #9
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @strerror(i32 noundef %898) #8
  %900 = call ptr @__errno_location() #9
  %901 = load i32, ptr %900, align 4, !tbaa !5
  %902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %889, ptr noundef @.str.2, i32 noundef %890, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 51, ptr noundef %893, ptr noundef %896, ptr noundef %899, i32 noundef %901) #8
  br label %920

903:                                              ; preds = %881, %874
  %904 = load i32, ptr %23, align 4, !tbaa !5
  %905 = call ptr @__errno_location() #9
  store i32 %904, ptr %905, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror(i32 noundef %909, ptr noundef @.str.4)
  %911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror_debug(i32 noundef %912, ptr noundef @.str.4)
  %914 = call ptr @__errno_location() #9
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #8
  %917 = call ptr @__errno_location() #9
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef @.str.5, i32 noundef %907, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 51, ptr noundef %910, ptr noundef %913, ptr noundef %916, i32 noundef %918) #8
  br label %920

920:                                              ; preds = %903, %886
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %921

921:                                              ; preds = %920
  br label %922

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

923:                                              ; No predecessors!
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924, %867
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  store ptr null, ptr %24, align 8, !tbaa !9
  br label %928

928:                                              ; preds = %927
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = add nsw i32 %929, 1
  store i32 %930, ptr @test_count, align 4, !tbaa !5
  %931 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %931, ptr %24, align 8, !tbaa !9
  %932 = icmp eq ptr %931, null
  br i1 %932, label %933, label %986

933:                                              ; preds = %928
  br label %934

934:                                              ; preds = %933
  br label %935

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

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

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

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

981:                                              ; preds = %964, %947
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %982

982:                                              ; preds = %981
  br label %983

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

984:                                              ; No predecessors!
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985, %928
  br label %987

987:                                              ; preds = %986
  br label %988

988:                                              ; preds = %987
  br label %989

989:                                              ; preds = %988
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr @test_count, align 4, !tbaa !5
  %992 = load ptr, ptr %24, align 8, !tbaa !9
  %993 = getelementptr inbounds %struct.s2n_connection, ptr %992, i32 0, i32 33
  %994 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %993, i32 0, i32 5
  %995 = load i32, ptr %994, align 8, !tbaa !19
  %996 = icmp eq i32 %995, 0
  br i1 %996, label %1050, label %997

997:                                              ; preds = %989
  br label %998

998:                                              ; preds = %997
  br label %999

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

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

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

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

1045:                                             ; preds = %1028, %1011
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

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

1048:                                             ; No predecessors!
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049, %989
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051
  %1053 = load ptr, ptr %24, align 8, !tbaa !9
  %1054 = getelementptr inbounds %struct.s2n_connection, ptr %1053, i32 0, i32 23
  store i8 33, ptr %1054, align 4, !tbaa !45
  br label %1055

1055:                                             ; preds = %1052
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = call i32 @s2n_stuffer_write_uint8(ptr noundef %22, i8 noundef zeroext 1)
  %1059 = icmp eq i32 %1058, -1
  br i1 %1059, label %1060, label %1113

1060:                                             ; preds = %1055
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1063 = call ptr @__errno_location() #9
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  store i32 %1064, ptr %27, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065)
  %1067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1068 = trunc i8 %1067 to i1
  br i1 %1068, label %1069, label %1091

1069:                                             ; preds = %1062
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #8
  %1072 = call i32 @isatty(i32 noundef %1071) #8
  %1073 = icmp ne i32 %1072, 0
  br i1 %1073, label %1074, label %1091

1074:                                             ; preds = %1069
  %1075 = load i32, ptr %27, align 4, !tbaa !5
  %1076 = call ptr @__errno_location() #9
  store i32 %1075, ptr %1076, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef @.str.4)
  %1082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef @.str.4)
  %1085 = call ptr @__errno_location() #9
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #8
  %1088 = call ptr @__errno_location() #9
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef @.str.2, i32 noundef %1078, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1081, ptr noundef %1084, ptr noundef %1087, i32 noundef %1089) #8
  br label %1108

1091:                                             ; preds = %1069, %1062
  %1092 = load i32, ptr %27, align 4, !tbaa !5
  %1093 = call ptr @__errno_location() #9
  store i32 %1092, ptr %1093, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef @.str.4)
  %1099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call ptr @s2n_strerror_debug(i32 noundef %1100, ptr noundef @.str.4)
  %1102 = call ptr @__errno_location() #9
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call ptr @strerror(i32 noundef %1103) #8
  %1105 = call ptr @__errno_location() #9
  %1106 = load i32, ptr %1105, align 4, !tbaa !5
  %1107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1094, ptr noundef @.str.5, i32 noundef %1095, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 59, ptr noundef %1098, ptr noundef %1101, ptr noundef %1104, i32 noundef %1106) #8
  br label %1108

1108:                                             ; preds = %1091, %1074
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

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

1111:                                             ; No predecessors!
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112, %1055
  br label %1114

1114:                                             ; preds = %1113
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

1116:                                             ; preds = %1115
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @s2n_stuffer_write_uint8(ptr noundef %22, i8 noundef zeroext 1)
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1121, label %1174

1121:                                             ; preds = %1116
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1124 = call ptr @__errno_location() #9
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  store i32 %1125, ptr %28, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = call i32 @s2n_print_stacktrace(ptr noundef %1126)
  %1128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1129 = trunc i8 %1128 to i1
  br i1 %1129, label %1130, label %1152

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

1135:                                             ; preds = %1130
  %1136 = load i32, ptr %28, align 4, !tbaa !5
  %1137 = call ptr @__errno_location() #9
  store i32 %1136, ptr %1137, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef @.str.4)
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call ptr @__errno_location() #9
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #8
  %1149 = call ptr @__errno_location() #9
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef @.str.2, i32 noundef %1139, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1142, ptr noundef %1145, ptr noundef %1148, i32 noundef %1150) #8
  br label %1169

1152:                                             ; preds = %1130, %1123
  %1153 = load i32, ptr %28, align 4, !tbaa !5
  %1154 = call ptr @__errno_location() #9
  store i32 %1153, ptr %1154, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror(i32 noundef %1158, ptr noundef @.str.4)
  %1160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror_debug(i32 noundef %1161, ptr noundef @.str.4)
  %1163 = call ptr @__errno_location() #9
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @strerror(i32 noundef %1164) #8
  %1166 = call ptr @__errno_location() #9
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1155, ptr noundef @.str.5, i32 noundef %1156, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1159, ptr noundef %1162, ptr noundef %1165, i32 noundef %1167) #8
  br label %1169

1169:                                             ; preds = %1152, %1135
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

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

1172:                                             ; No predecessors!
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173, %1116
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  %1178 = load i32, ptr @test_count, align 4, !tbaa !5
  %1179 = add nsw i32 %1178, 1
  store i32 %1179, ptr @test_count, align 4, !tbaa !5
  %1180 = load ptr, ptr %24, align 8, !tbaa !9
  %1181 = call i32 @s2n_extension_recv(ptr noundef @s2n_psk_key_exchange_modes_extension, ptr noundef %1180, ptr noundef %22)
  %1182 = icmp eq i32 %1181, -1
  br i1 %1182, label %1183, label %1236

1183:                                             ; preds = %1177
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %1186 = call ptr @__errno_location() #9
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  store i32 %1187, ptr %29, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = call i32 @s2n_print_stacktrace(ptr noundef %1188)
  %1190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1191 = trunc i8 %1190 to i1
  br i1 %1191, label %1192, label %1214

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

1197:                                             ; preds = %1192
  %1198 = load i32, ptr %29, align 4, !tbaa !5
  %1199 = call ptr @__errno_location() #9
  store i32 %1198, ptr %1199, align 4, !tbaa !5
  %1200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror(i32 noundef %1203, ptr noundef @.str.4)
  %1205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call ptr @s2n_strerror_debug(i32 noundef %1206, ptr noundef @.str.4)
  %1208 = call ptr @__errno_location() #9
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @strerror(i32 noundef %1209) #8
  %1211 = call ptr @__errno_location() #9
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef @.str.2, i32 noundef %1201, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1204, ptr noundef %1207, ptr noundef %1210, i32 noundef %1212) #8
  br label %1231

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

1231:                                             ; preds = %1214, %1197
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1232

1232:                                             ; preds = %1231
  br label %1233

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

1234:                                             ; No predecessors!
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

1236:                                             ; preds = %1235, %1177
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr @test_count, align 4, !tbaa !5
  %1242 = load ptr, ptr %24, align 8, !tbaa !9
  %1243 = getelementptr inbounds %struct.s2n_connection, ptr %1242, i32 0, i32 33
  %1244 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1243, i32 0, i32 5
  %1245 = load i32, ptr %1244, align 8, !tbaa !19
  %1246 = icmp eq i32 %1245, 0
  br i1 %1246, label %1300, label %1247

1247:                                             ; preds = %1239
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1250 = call ptr @__errno_location() #9
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  store i32 %1251, ptr %30, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252)
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc i8 %1254 to i1
  br i1 %1255, label %1256, label %1278

1256:                                             ; preds = %1249
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #8
  %1259 = call i32 @isatty(i32 noundef %1258) #8
  %1260 = icmp ne i32 %1259, 0
  br i1 %1260, label %1261, label %1278

1261:                                             ; preds = %1256
  %1262 = load i32, ptr %30, align 4, !tbaa !5
  %1263 = call ptr @__errno_location() #9
  store i32 %1262, ptr %1263, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef @.str.4)
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call ptr @__errno_location() #9
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #8
  %1275 = call ptr @__errno_location() #9
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.2, i32 noundef %1265, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, i32 noundef %1276) #8
  br label %1295

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

1295:                                             ; preds = %1278, %1261
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

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

1298:                                             ; No predecessors!
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299, %1239
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

1303:                                             ; preds = %1302
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = add nsw i32 %1304, 1
  store i32 %1305, ptr @test_count, align 4, !tbaa !5
  %1306 = load ptr, ptr %24, align 8, !tbaa !9
  %1307 = call i32 @s2n_connection_free(ptr noundef %1306)
  %1308 = icmp eq i32 %1307, -1
  br i1 %1308, label %1309, label %1362

1309:                                             ; preds = %1303
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1312 = call ptr @__errno_location() #9
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  store i32 %1313, ptr %31, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @s2n_print_stacktrace(ptr noundef %1314)
  %1316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1317 = trunc i8 %1316 to i1
  br i1 %1317, label %1318, label %1340

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

1323:                                             ; preds = %1318
  %1324 = load i32, ptr %31, align 4, !tbaa !5
  %1325 = call ptr @__errno_location() #9
  store i32 %1324, ptr %1325, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef @.str.4)
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef %1332, ptr noundef @.str.4)
  %1334 = call ptr @__errno_location() #9
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @strerror(i32 noundef %1335) #8
  %1337 = call ptr @__errno_location() #9
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef @.str.2, i32 noundef %1327, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1330, ptr noundef %1333, ptr noundef %1336, i32 noundef %1338) #8
  br label %1357

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

1357:                                             ; preds = %1340, %1323
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

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

1360:                                             ; No predecessors!
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361, %1303
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = call i32 @s2n_stuffer_free(ptr noundef %22)
  %1369 = icmp eq i32 %1368, -1
  br i1 %1369, label %1370, label %1423

1370:                                             ; preds = %1365
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1373 = call ptr @__errno_location() #9
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  store i32 %1374, ptr %32, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @s2n_print_stacktrace(ptr noundef %1375)
  %1377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1378 = trunc i8 %1377 to i1
  br i1 %1378, label %1379, label %1401

1379:                                             ; preds = %1372
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = call i32 @fileno(ptr noundef %1380) #8
  %1382 = call i32 @isatty(i32 noundef %1381) #8
  %1383 = icmp ne i32 %1382, 0
  br i1 %1383, label %1384, label %1401

1384:                                             ; preds = %1379
  %1385 = load i32, ptr %32, align 4, !tbaa !5
  %1386 = call ptr @__errno_location() #9
  store i32 %1385, ptr %1386, align 4, !tbaa !5
  %1387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1388 = load i32, ptr @test_count, align 4, !tbaa !5
  %1389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror(i32 noundef %1390, ptr noundef @.str.4)
  %1392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror_debug(i32 noundef %1393, ptr noundef @.str.4)
  %1395 = call ptr @__errno_location() #9
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @strerror(i32 noundef %1396) #8
  %1398 = call ptr @__errno_location() #9
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1387, ptr noundef @.str.2, i32 noundef %1388, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1391, ptr noundef %1394, ptr noundef %1397, i32 noundef %1399) #8
  br label %1418

1401:                                             ; preds = %1379, %1372
  %1402 = load i32, ptr %32, align 4, !tbaa !5
  %1403 = call ptr @__errno_location() #9
  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() #9
  %1413 = load i32, ptr %1412, align 4, !tbaa !5
  %1414 = call ptr @strerror(i32 noundef %1413) #8
  %1415 = call ptr @__errno_location() #9
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef @.str.5, i32 noundef %1405, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1408, ptr noundef %1411, ptr noundef %1414, i32 noundef %1416) #8
  br label %1418

1418:                                             ; preds = %1401, %1384
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

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

1421:                                             ; No predecessors!
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422, %1365
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

1425:                                             ; preds = %1424
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %33) #8
  call void @llvm.memset.p0.i64(ptr align 8 %33, i8 0, i64 40, i1 false)
  br label %1426

1426:                                             ; preds = %1425
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = add nsw i32 %1427, 1
  store i32 %1428, ptr @test_count, align 4, !tbaa !5
  %1429 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %33, i32 noundef 0)
  %1430 = icmp eq i32 %1429, -1
  br i1 %1430, label %1431, label %1484

1431:                                             ; preds = %1426
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

1433:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1434 = call ptr @__errno_location() #9
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  store i32 %1435, ptr %34, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @s2n_print_stacktrace(ptr noundef %1436)
  %1438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1439 = trunc i8 %1438 to i1
  br i1 %1439, label %1440, label %1462

1440:                                             ; preds = %1433
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @fileno(ptr noundef %1441) #8
  %1443 = call i32 @isatty(i32 noundef %1442) #8
  %1444 = icmp ne i32 %1443, 0
  br i1 %1444, label %1445, label %1462

1445:                                             ; preds = %1440
  %1446 = load i32, ptr %34, align 4, !tbaa !5
  %1447 = call ptr @__errno_location() #9
  store i32 %1446, ptr %1447, align 4, !tbaa !5
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = load i32, ptr @test_count, align 4, !tbaa !5
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef @.str.4)
  %1456 = call ptr @__errno_location() #9
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @strerror(i32 noundef %1457) #8
  %1459 = call ptr @__errno_location() #9
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef @.str.2, i32 noundef %1449, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1452, ptr noundef %1455, ptr noundef %1458, i32 noundef %1460) #8
  br label %1479

1462:                                             ; preds = %1440, %1433
  %1463 = load i32, ptr %34, align 4, !tbaa !5
  %1464 = call ptr @__errno_location() #9
  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() #9
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call ptr @strerror(i32 noundef %1474) #8
  %1476 = call ptr @__errno_location() #9
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef @.str.5, i32 noundef %1466, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1469, ptr noundef %1472, ptr noundef %1475, i32 noundef %1477) #8
  br label %1479

1479:                                             ; preds = %1462, %1445
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

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

1482:                                             ; No predecessors!
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483, %1426
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store ptr null, ptr %35, align 8, !tbaa !9
  br label %1487

1487:                                             ; preds = %1486
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr @test_count, align 4, !tbaa !5
  %1490 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1490, ptr %35, align 8, !tbaa !9
  %1491 = icmp eq ptr %1490, null
  br i1 %1491, label %1492, label %1545

1492:                                             ; preds = %1487
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

1494:                                             ; preds = %1493
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1495 = call ptr @__errno_location() #9
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  store i32 %1496, ptr %36, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = call i32 @s2n_print_stacktrace(ptr noundef %1497)
  %1499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1500 = trunc i8 %1499 to i1
  br i1 %1500, label %1501, label %1523

1501:                                             ; preds = %1494
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @fileno(ptr noundef %1502) #8
  %1504 = call i32 @isatty(i32 noundef %1503) #8
  %1505 = icmp ne i32 %1504, 0
  br i1 %1505, label %1506, label %1523

1506:                                             ; preds = %1501
  %1507 = load i32, ptr %36, align 4, !tbaa !5
  %1508 = call ptr @__errno_location() #9
  store i32 %1507, ptr %1508, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %1511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror(i32 noundef %1512, ptr noundef @.str.4)
  %1514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror_debug(i32 noundef %1515, ptr noundef @.str.4)
  %1517 = call ptr @__errno_location() #9
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = call ptr @strerror(i32 noundef %1518) #8
  %1520 = call ptr @__errno_location() #9
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1509, ptr noundef @.str.2, i32 noundef %1510, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1513, ptr noundef %1516, ptr noundef %1519, i32 noundef %1521) #8
  br label %1540

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

1540:                                             ; preds = %1523, %1506
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

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

1543:                                             ; No predecessors!
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

1545:                                             ; preds = %1544, %1487
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

1548:                                             ; preds = %1547
  %1549 = load i32, ptr @test_count, align 4, !tbaa !5
  %1550 = add nsw i32 %1549, 1
  store i32 %1550, ptr @test_count, align 4, !tbaa !5
  %1551 = load ptr, ptr %35, align 8, !tbaa !9
  %1552 = getelementptr inbounds %struct.s2n_connection, ptr %1551, i32 0, i32 33
  %1553 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1552, i32 0, i32 5
  %1554 = load i32, ptr %1553, align 8, !tbaa !19
  %1555 = icmp eq i32 %1554, 0
  br i1 %1555, label %1609, label %1556

1556:                                             ; preds = %1548
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1559 = call ptr @__errno_location() #9
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  store i32 %1560, ptr %37, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @s2n_print_stacktrace(ptr noundef %1561)
  %1563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1564 = trunc i8 %1563 to i1
  br i1 %1564, label %1565, label %1587

1565:                                             ; preds = %1558
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @fileno(ptr noundef %1566) #8
  %1568 = call i32 @isatty(i32 noundef %1567) #8
  %1569 = icmp ne i32 %1568, 0
  br i1 %1569, label %1570, label %1587

1570:                                             ; preds = %1565
  %1571 = load i32, ptr %37, align 4, !tbaa !5
  %1572 = call ptr @__errno_location() #9
  store i32 %1571, ptr %1572, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror(i32 noundef %1576, ptr noundef @.str.4)
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror_debug(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call ptr @__errno_location() #9
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #8
  %1584 = call ptr @__errno_location() #9
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef @.str.2, i32 noundef %1574, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1577, ptr noundef %1580, ptr noundef %1583, i32 noundef %1585) #8
  br label %1604

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

1604:                                             ; preds = %1587, %1570
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

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

1607:                                             ; No predecessors!
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608, %1548
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  %1612 = load ptr, ptr %35, align 8, !tbaa !9
  %1613 = getelementptr inbounds %struct.s2n_connection, ptr %1612, i32 0, i32 23
  store i8 34, ptr %1613, align 4, !tbaa !45
  br label %1614

1614:                                             ; preds = %1611
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr @test_count, align 4, !tbaa !5
  %1617 = call i32 @s2n_stuffer_write_uint8(ptr noundef %33, i8 noundef zeroext 2)
  %1618 = icmp eq i32 %1617, -1
  br i1 %1618, label %1619, label %1672

1619:                                             ; preds = %1614
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1622 = call ptr @__errno_location() #9
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  store i32 %1623, ptr %38, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @s2n_print_stacktrace(ptr noundef %1624)
  %1626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1627 = trunc i8 %1626 to i1
  br i1 %1627, label %1628, label %1650

1628:                                             ; preds = %1621
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @fileno(ptr noundef %1629) #8
  %1631 = call i32 @isatty(i32 noundef %1630) #8
  %1632 = icmp ne i32 %1631, 0
  br i1 %1632, label %1633, label %1650

1633:                                             ; preds = %1628
  %1634 = load i32, ptr %38, align 4, !tbaa !5
  %1635 = call ptr @__errno_location() #9
  store i32 %1634, ptr %1635, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call ptr @__errno_location() #9
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #8
  %1647 = call ptr @__errno_location() #9
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef @.str.2, i32 noundef %1637, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1640, ptr noundef %1643, ptr noundef %1646, i32 noundef %1648) #8
  br label %1667

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

1667:                                             ; preds = %1650, %1633
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

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

1670:                                             ; No predecessors!
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671, %1614
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = add nsw i32 %1676, 1
  store i32 %1677, ptr @test_count, align 4, !tbaa !5
  %1678 = call i32 @s2n_stuffer_write_uint8(ptr noundef %33, i8 noundef zeroext 1)
  %1679 = icmp eq i32 %1678, -1
  br i1 %1679, label %1680, label %1733

1680:                                             ; preds = %1675
  br label %1681

1681:                                             ; preds = %1680
  br label %1682

1682:                                             ; preds = %1681
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1683 = call ptr @__errno_location() #9
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  store i32 %1684, ptr %39, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @s2n_print_stacktrace(ptr noundef %1685)
  %1687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1688 = trunc i8 %1687 to i1
  br i1 %1688, label %1689, label %1711

1689:                                             ; preds = %1682
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @fileno(ptr noundef %1690) #8
  %1692 = call i32 @isatty(i32 noundef %1691) #8
  %1693 = icmp ne i32 %1692, 0
  br i1 %1693, label %1694, label %1711

1694:                                             ; preds = %1689
  %1695 = load i32, ptr %39, align 4, !tbaa !5
  %1696 = call ptr @__errno_location() #9
  store i32 %1695, ptr %1696, align 4, !tbaa !5
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror(i32 noundef %1700, ptr noundef @.str.4)
  %1702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror_debug(i32 noundef %1703, ptr noundef @.str.4)
  %1705 = call ptr @__errno_location() #9
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @strerror(i32 noundef %1706) #8
  %1708 = call ptr @__errno_location() #9
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1697, ptr noundef @.str.2, i32 noundef %1698, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1701, ptr noundef %1704, ptr noundef %1707, i32 noundef %1709) #8
  br label %1728

1711:                                             ; preds = %1689, %1682
  %1712 = load i32, ptr %39, align 4, !tbaa !5
  %1713 = call ptr @__errno_location() #9
  store i32 %1712, ptr %1713, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = load i32, ptr @test_count, align 4, !tbaa !5
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror(i32 noundef %1717, ptr noundef @.str.4)
  %1719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror_debug(i32 noundef %1720, ptr noundef @.str.4)
  %1722 = call ptr @__errno_location() #9
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @strerror(i32 noundef %1723) #8
  %1725 = call ptr @__errno_location() #9
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1714, ptr noundef @.str.5, i32 noundef %1715, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1718, ptr noundef %1721, ptr noundef %1724, i32 noundef %1726) #8
  br label %1728

1728:                                             ; preds = %1711, %1694
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

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

1731:                                             ; No predecessors!
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732, %1675
  br label %1734

1734:                                             ; preds = %1733
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = add nsw i32 %1737, 1
  store i32 %1738, ptr @test_count, align 4, !tbaa !5
  %1739 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 4), align 8, !tbaa !46
  %1740 = load ptr, ptr %35, align 8, !tbaa !9
  %1741 = call i32 %1739(ptr noundef %1740, ptr noundef %33)
  %1742 = icmp eq i32 %1741, -1
  br i1 %1742, label %1743, label %1796

1743:                                             ; preds = %1736
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1746 = call ptr @__errno_location() #9
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  store i32 %1747, ptr %40, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @s2n_print_stacktrace(ptr noundef %1748)
  %1750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1751 = trunc i8 %1750 to i1
  br i1 %1751, label %1752, label %1774

1752:                                             ; preds = %1745
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @fileno(ptr noundef %1753) #8
  %1755 = call i32 @isatty(i32 noundef %1754) #8
  %1756 = icmp ne i32 %1755, 0
  br i1 %1756, label %1757, label %1774

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

1774:                                             ; preds = %1752, %1745
  %1775 = load i32, ptr %40, align 4, !tbaa !5
  %1776 = call ptr @__errno_location() #9
  store i32 %1775, ptr %1776, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef @.str.4)
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call ptr @__errno_location() #9
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #8
  %1788 = call ptr @__errno_location() #9
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef @.str.5, i32 noundef %1778, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1781, ptr noundef %1784, ptr noundef %1787, i32 noundef %1789) #8
  br label %1791

1791:                                             ; preds = %1774, %1757
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

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

1794:                                             ; No predecessors!
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795, %1736
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  %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 = load ptr, ptr %35, align 8, !tbaa !9
  %1803 = getelementptr inbounds %struct.s2n_connection, ptr %1802, i32 0, i32 33
  %1804 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %1803, i32 0, i32 5
  %1805 = load i32, ptr %1804, align 8, !tbaa !19
  %1806 = icmp eq i32 %1805, 0
  br i1 %1806, label %1860, label %1807

1807:                                             ; preds = %1799
  br label %1808

1808:                                             ; preds = %1807
  br label %1809

1809:                                             ; preds = %1808
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1810 = call ptr @__errno_location() #9
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  store i32 %1811, ptr %41, align 4, !tbaa !5
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @s2n_print_stacktrace(ptr noundef %1812)
  %1814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1815 = trunc i8 %1814 to i1
  br i1 %1815, label %1816, label %1838

1816:                                             ; preds = %1809
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = call i32 @fileno(ptr noundef %1817) #8
  %1819 = call i32 @isatty(i32 noundef %1818) #8
  %1820 = icmp ne i32 %1819, 0
  br i1 %1820, label %1821, label %1838

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

1838:                                             ; preds = %1816, %1809
  %1839 = load i32, ptr %41, align 4, !tbaa !5
  %1840 = call ptr @__errno_location() #9
  store i32 %1839, ptr %1840, align 4, !tbaa !5
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = load i32, ptr @test_count, align 4, !tbaa !5
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef @.str.4)
  %1846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef @.str.4)
  %1849 = call ptr @__errno_location() #9
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @strerror(i32 noundef %1850) #8
  %1852 = call ptr @__errno_location() #9
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1841, ptr noundef @.str.5, i32 noundef %1842, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1845, ptr noundef %1848, ptr noundef %1851, i32 noundef %1853) #8
  br label %1855

1855:                                             ; preds = %1838, %1821
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

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

1858:                                             ; No predecessors!
  br label %1859

1859:                                             ; preds = %1858
  br label %1860

1860:                                             ; preds = %1859, %1799
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

1863:                                             ; preds = %1862
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = add nsw i32 %1864, 1
  store i32 %1865, ptr @test_count, align 4, !tbaa !5
  %1866 = load ptr, ptr %35, align 8, !tbaa !9
  %1867 = call i32 @s2n_connection_free(ptr noundef %1866)
  %1868 = icmp eq i32 %1867, -1
  br i1 %1868, label %1869, label %1922

1869:                                             ; preds = %1863
  br label %1870

1870:                                             ; preds = %1869
  br label %1871

1871:                                             ; preds = %1870
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %1872 = call ptr @__errno_location() #9
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  store i32 %1873, ptr %42, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = call i32 @s2n_print_stacktrace(ptr noundef %1874)
  %1876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1877 = trunc i8 %1876 to i1
  br i1 %1877, label %1878, label %1900

1878:                                             ; preds = %1871
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = call i32 @fileno(ptr noundef %1879) #8
  %1881 = call i32 @isatty(i32 noundef %1880) #8
  %1882 = icmp ne i32 %1881, 0
  br i1 %1882, label %1883, label %1900

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

1900:                                             ; preds = %1878, %1871
  %1901 = load i32, ptr %42, align 4, !tbaa !5
  %1902 = call ptr @__errno_location() #9
  store i32 %1901, ptr %1902, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror(i32 noundef %1906, ptr noundef @.str.4)
  %1908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror_debug(i32 noundef %1909, ptr noundef @.str.4)
  %1911 = call ptr @__errno_location() #9
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @strerror(i32 noundef %1912) #8
  %1914 = call ptr @__errno_location() #9
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1903, ptr noundef @.str.5, i32 noundef %1904, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1907, ptr noundef %1910, ptr noundef %1913, i32 noundef %1915) #8
  br label %1917

1917:                                             ; preds = %1900, %1883
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

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

1920:                                             ; No predecessors!
  br label %1921

1921:                                             ; preds = %1920
  br label %1922

1922:                                             ; preds = %1921, %1863
  br label %1923

1923:                                             ; preds = %1922
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  %1926 = load i32, ptr @test_count, align 4, !tbaa !5
  %1927 = add nsw i32 %1926, 1
  store i32 %1927, ptr @test_count, align 4, !tbaa !5
  %1928 = call i32 @s2n_stuffer_free(ptr noundef %33)
  %1929 = icmp eq i32 %1928, -1
  br i1 %1929, label %1930, label %1983

1930:                                             ; preds = %1925
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1933 = call ptr @__errno_location() #9
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  store i32 %1934, ptr %43, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @s2n_print_stacktrace(ptr noundef %1935)
  %1937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1938 = trunc i8 %1937 to i1
  br i1 %1938, label %1939, label %1961

1939:                                             ; preds = %1932
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @fileno(ptr noundef %1940) #8
  %1942 = call i32 @isatty(i32 noundef %1941) #8
  %1943 = icmp ne i32 %1942, 0
  br i1 %1943, label %1944, label %1961

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

1961:                                             ; preds = %1939, %1932
  %1962 = load i32, ptr %43, align 4, !tbaa !5
  %1963 = call ptr @__errno_location() #9
  store i32 %1962, ptr %1963, align 4, !tbaa !5
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = load i32, ptr @test_count, align 4, !tbaa !5
  %1966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call ptr @s2n_strerror(i32 noundef %1967, ptr noundef @.str.4)
  %1969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1970 = load i32, ptr %1969, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror_debug(i32 noundef %1970, ptr noundef @.str.4)
  %1972 = call ptr @__errno_location() #9
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  %1974 = call ptr @strerror(i32 noundef %1973) #8
  %1975 = call ptr @__errno_location() #9
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1964, ptr noundef @.str.5, i32 noundef %1965, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1968, ptr noundef %1971, ptr noundef %1974, i32 noundef %1976) #8
  br label %1978

1978:                                             ; preds = %1961, %1944
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

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

1981:                                             ; No predecessors!
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982, %1925
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %44) #8
  call void @llvm.memset.p0.i64(ptr align 8 %44, i8 0, i64 40, i1 false)
  br label %1986

1986:                                             ; preds = %1985
  %1987 = load i32, ptr @test_count, align 4, !tbaa !5
  %1988 = add nsw i32 %1987, 1
  store i32 %1988, ptr @test_count, align 4, !tbaa !5
  %1989 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %44, i32 noundef 0)
  %1990 = icmp eq i32 %1989, -1
  br i1 %1990, label %1991, label %2044

1991:                                             ; preds = %1986
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

1993:                                             ; preds = %1992
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %1994 = call ptr @__errno_location() #9
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  store i32 %1995, ptr %45, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = call i32 @s2n_print_stacktrace(ptr noundef %1996)
  %1998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1999 = trunc i8 %1998 to i1
  br i1 %1999, label %2000, label %2022

2000:                                             ; preds = %1993
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = call i32 @fileno(ptr noundef %2001) #8
  %2003 = call i32 @isatty(i32 noundef %2002) #8
  %2004 = icmp ne i32 %2003, 0
  br i1 %2004, label %2005, label %2022

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

2022:                                             ; preds = %2000, %1993
  %2023 = load i32, ptr %45, align 4, !tbaa !5
  %2024 = call ptr @__errno_location() #9
  store i32 %2023, ptr %2024, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef @.str.4)
  %2030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror_debug(i32 noundef %2031, ptr noundef @.str.4)
  %2033 = call ptr @__errno_location() #9
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call ptr @strerror(i32 noundef %2034) #8
  %2036 = call ptr @__errno_location() #9
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef @.str.5, i32 noundef %2026, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 94, ptr noundef %2029, ptr noundef %2032, ptr noundef %2035, i32 noundef %2037) #8
  br label %2039

2039:                                             ; preds = %2022, %2005
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

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

2042:                                             ; No predecessors!
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043, %1986
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  store ptr null, ptr %46, align 8, !tbaa !9
  br label %2047

2047:                                             ; preds = %2046
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = add nsw i32 %2048, 1
  store i32 %2049, ptr @test_count, align 4, !tbaa !5
  %2050 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2050, ptr %46, align 8, !tbaa !9
  %2051 = icmp eq ptr %2050, null
  br i1 %2051, label %2052, label %2105

2052:                                             ; preds = %2047
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2053
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2055 = call ptr @__errno_location() #9
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  store i32 %2056, ptr %47, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = call i32 @s2n_print_stacktrace(ptr noundef %2057)
  %2059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2060 = trunc i8 %2059 to i1
  br i1 %2060, label %2061, label %2083

2061:                                             ; preds = %2054
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = call i32 @fileno(ptr noundef %2062) #8
  %2064 = call i32 @isatty(i32 noundef %2063) #8
  %2065 = icmp ne i32 %2064, 0
  br i1 %2065, label %2066, label %2083

2066:                                             ; preds = %2061
  %2067 = load i32, ptr %47, align 4, !tbaa !5
  %2068 = call ptr @__errno_location() #9
  store i32 %2067, ptr %2068, align 4, !tbaa !5
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror(i32 noundef %2072, ptr noundef @.str.4)
  %2074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @s2n_strerror_debug(i32 noundef %2075, ptr noundef @.str.4)
  %2077 = call ptr @__errno_location() #9
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @strerror(i32 noundef %2078) #8
  %2080 = call ptr @__errno_location() #9
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2069, ptr noundef @.str.2, i32 noundef %2070, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2073, ptr noundef %2076, ptr noundef %2079, i32 noundef %2081) #8
  br label %2100

2083:                                             ; preds = %2061, %2054
  %2084 = load i32, ptr %47, align 4, !tbaa !5
  %2085 = call ptr @__errno_location() #9
  store i32 %2084, ptr %2085, align 4, !tbaa !5
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = load i32, ptr @test_count, align 4, !tbaa !5
  %2088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror(i32 noundef %2089, ptr noundef @.str.4)
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef @.str.4)
  %2094 = call ptr @__errno_location() #9
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @strerror(i32 noundef %2095) #8
  %2097 = call ptr @__errno_location() #9
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2086, ptr noundef @.str.5, i32 noundef %2087, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 97, ptr noundef %2090, ptr noundef %2093, ptr noundef %2096, i32 noundef %2098) #8
  br label %2100

2100:                                             ; preds = %2083, %2066
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

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

2103:                                             ; No predecessors!
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104, %2047
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  %2109 = load i32, ptr @test_count, align 4, !tbaa !5
  %2110 = add nsw i32 %2109, 1
  store i32 %2110, ptr @test_count, align 4, !tbaa !5
  %2111 = load ptr, ptr %46, align 8, !tbaa !9
  %2112 = getelementptr inbounds %struct.s2n_connection, ptr %2111, i32 0, i32 33
  %2113 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2112, i32 0, i32 5
  %2114 = load i32, ptr %2113, align 8, !tbaa !19
  %2115 = icmp eq i32 %2114, 0
  br i1 %2115, label %2169, label %2116

2116:                                             ; preds = %2108
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

2118:                                             ; preds = %2117
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %2119 = call ptr @__errno_location() #9
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  store i32 %2120, ptr %48, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @s2n_print_stacktrace(ptr noundef %2121)
  %2123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2124 = trunc i8 %2123 to i1
  br i1 %2124, label %2125, label %2147

2125:                                             ; preds = %2118
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = call i32 @fileno(ptr noundef %2126) #8
  %2128 = call i32 @isatty(i32 noundef %2127) #8
  %2129 = icmp ne i32 %2128, 0
  br i1 %2129, label %2130, label %2147

2130:                                             ; preds = %2125
  %2131 = load i32, ptr %48, align 4, !tbaa !5
  %2132 = call ptr @__errno_location() #9
  store i32 %2131, ptr %2132, align 4, !tbaa !5
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror(i32 noundef %2136, ptr noundef @.str.4)
  %2138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @s2n_strerror_debug(i32 noundef %2139, ptr noundef @.str.4)
  %2141 = call ptr @__errno_location() #9
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @strerror(i32 noundef %2142) #8
  %2144 = call ptr @__errno_location() #9
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2133, ptr noundef @.str.2, i32 noundef %2134, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2137, ptr noundef %2140, ptr noundef %2143, i32 noundef %2145) #8
  br label %2164

2147:                                             ; preds = %2125, %2118
  %2148 = load i32, ptr %48, align 4, !tbaa !5
  %2149 = call ptr @__errno_location() #9
  store i32 %2148, ptr %2149, align 4, !tbaa !5
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror(i32 noundef %2153, ptr noundef @.str.4)
  %2155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror_debug(i32 noundef %2156, ptr noundef @.str.4)
  %2158 = call ptr @__errno_location() #9
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @strerror(i32 noundef %2159) #8
  %2161 = call ptr @__errno_location() #9
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2150, ptr noundef @.str.5, i32 noundef %2151, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 98, ptr noundef %2154, ptr noundef %2157, ptr noundef %2160, i32 noundef %2162) #8
  br label %2164

2164:                                             ; preds = %2147, %2130
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

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

2167:                                             ; No predecessors!
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168, %2108
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170
  %2172 = load ptr, ptr %46, align 8, !tbaa !9
  %2173 = getelementptr inbounds %struct.s2n_connection, ptr %2172, i32 0, i32 23
  store i8 34, ptr %2173, align 4, !tbaa !45
  br label %2174

2174:                                             ; preds = %2171
  %2175 = load i32, ptr @test_count, align 4, !tbaa !5
  %2176 = add nsw i32 %2175, 1
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = call i32 @s2n_stuffer_write_uint8(ptr noundef %44, i8 noundef zeroext 1)
  %2178 = icmp eq i32 %2177, -1
  br i1 %2178, label %2179, label %2232

2179:                                             ; preds = %2174
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %2182 = call ptr @__errno_location() #9
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  store i32 %2183, ptr %49, align 4, !tbaa !5
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184)
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2187 = trunc i8 %2186 to i1
  br i1 %2187, label %2188, label %2210

2188:                                             ; preds = %2181
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @fileno(ptr noundef %2189) #8
  %2191 = call i32 @isatty(i32 noundef %2190) #8
  %2192 = icmp ne i32 %2191, 0
  br i1 %2192, label %2193, label %2210

2193:                                             ; preds = %2188
  %2194 = load i32, ptr %49, align 4, !tbaa !5
  %2195 = call ptr @__errno_location() #9
  store i32 %2194, ptr %2195, align 4, !tbaa !5
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef @.str.4)
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call ptr @__errno_location() #9
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #8
  %2207 = call ptr @__errno_location() #9
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef @.str.2, i32 noundef %2197, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 101, ptr noundef %2200, ptr noundef %2203, ptr noundef %2206, i32 noundef %2208) #8
  br label %2227

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

2227:                                             ; preds = %2210, %2193
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

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

2230:                                             ; No predecessors!
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231, %2174
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = add nsw i32 %2236, 1
  store i32 %2237, ptr @test_count, align 4, !tbaa !5
  %2238 = call i32 @s2n_stuffer_write_uint8(ptr noundef %44, i8 noundef zeroext 0)
  %2239 = icmp eq i32 %2238, -1
  br i1 %2239, label %2240, label %2293

2240:                                             ; preds = %2235
  br label %2241

2241:                                             ; preds = %2240
  br label %2242

2242:                                             ; preds = %2241
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %2243 = call ptr @__errno_location() #9
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  store i32 %2244, ptr %50, align 4, !tbaa !5
  %2245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2246 = call i32 @s2n_print_stacktrace(ptr noundef %2245)
  %2247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2248 = trunc i8 %2247 to i1
  br i1 %2248, label %2249, label %2271

2249:                                             ; preds = %2242
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @fileno(ptr noundef %2250) #8
  %2252 = call i32 @isatty(i32 noundef %2251) #8
  %2253 = icmp ne i32 %2252, 0
  br i1 %2253, label %2254, label %2271

2254:                                             ; preds = %2249
  %2255 = load i32, ptr %50, align 4, !tbaa !5
  %2256 = call ptr @__errno_location() #9
  store i32 %2255, ptr %2256, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call ptr @s2n_strerror(i32 noundef %2260, ptr noundef @.str.4)
  %2262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror_debug(i32 noundef %2263, ptr noundef @.str.4)
  %2265 = call ptr @__errno_location() #9
  %2266 = load i32, ptr %2265, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #8
  %2268 = call ptr @__errno_location() #9
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2257, ptr noundef @.str.2, i32 noundef %2258, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2261, ptr noundef %2264, ptr noundef %2267, i32 noundef %2269) #8
  br label %2288

2271:                                             ; preds = %2249, %2242
  %2272 = load i32, ptr %50, align 4, !tbaa !5
  %2273 = call ptr @__errno_location() #9
  store i32 %2272, ptr %2273, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror(i32 noundef %2277, ptr noundef @.str.4)
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror_debug(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call ptr @__errno_location() #9
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @strerror(i32 noundef %2283) #8
  %2285 = call ptr @__errno_location() #9
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2274, ptr noundef @.str.5, i32 noundef %2275, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2278, ptr noundef %2281, ptr noundef %2284, i32 noundef %2286) #8
  br label %2288

2288:                                             ; preds = %2271, %2254
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %2289

2289:                                             ; preds = %2288
  br label %2290

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

2291:                                             ; No predecessors!
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292, %2235
  br label %2294

2294:                                             ; preds = %2293
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = add nsw i32 %2297, 1
  store i32 %2298, ptr @test_count, align 4, !tbaa !5
  %2299 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 4), align 8, !tbaa !46
  %2300 = load ptr, ptr %46, align 8, !tbaa !9
  %2301 = call i32 %2299(ptr noundef %2300, ptr noundef %44)
  %2302 = icmp eq i32 %2301, -1
  br i1 %2302, label %2303, label %2356

2303:                                             ; preds = %2296
  br label %2304

2304:                                             ; preds = %2303
  br label %2305

2305:                                             ; preds = %2304
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %2306 = call ptr @__errno_location() #9
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  store i32 %2307, ptr %51, align 4, !tbaa !5
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = call i32 @s2n_print_stacktrace(ptr noundef %2308)
  %2310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2311 = trunc i8 %2310 to i1
  br i1 %2311, label %2312, label %2334

2312:                                             ; preds = %2305
  %2313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2314 = call i32 @fileno(ptr noundef %2313) #8
  %2315 = call i32 @isatty(i32 noundef %2314) #8
  %2316 = icmp ne i32 %2315, 0
  br i1 %2316, label %2317, label %2334

2317:                                             ; preds = %2312
  %2318 = load i32, ptr %51, align 4, !tbaa !5
  %2319 = call ptr @__errno_location() #9
  store i32 %2318, ptr %2319, align 4, !tbaa !5
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = load i32, ptr @test_count, align 4, !tbaa !5
  %2322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror(i32 noundef %2323, ptr noundef @.str.4)
  %2325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror_debug(i32 noundef %2326, ptr noundef @.str.4)
  %2328 = call ptr @__errno_location() #9
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call ptr @strerror(i32 noundef %2329) #8
  %2331 = call ptr @__errno_location() #9
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2320, ptr noundef @.str.2, i32 noundef %2321, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2324, ptr noundef %2327, ptr noundef %2330, i32 noundef %2332) #8
  br label %2351

2334:                                             ; preds = %2312, %2305
  %2335 = load i32, ptr %51, align 4, !tbaa !5
  %2336 = call ptr @__errno_location() #9
  store i32 %2335, ptr %2336, align 4, !tbaa !5
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = load i32, ptr @test_count, align 4, !tbaa !5
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @s2n_strerror_debug(i32 noundef %2343, ptr noundef @.str.4)
  %2345 = call ptr @__errno_location() #9
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @strerror(i32 noundef %2346) #8
  %2348 = call ptr @__errno_location() #9
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2337, ptr noundef @.str.5, i32 noundef %2338, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 104, ptr noundef %2341, ptr noundef %2344, ptr noundef %2347, i32 noundef %2349) #8
  br label %2351

2351:                                             ; preds = %2334, %2317
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

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

2354:                                             ; No predecessors!
  br label %2355

2355:                                             ; preds = %2354
  br label %2356

2356:                                             ; preds = %2355, %2296
  br label %2357

2357:                                             ; preds = %2356
  br label %2358

2358:                                             ; preds = %2357
  br label %2359

2359:                                             ; preds = %2358
  %2360 = load i32, ptr @test_count, align 4, !tbaa !5
  %2361 = add nsw i32 %2360, 1
  store i32 %2361, ptr @test_count, align 4, !tbaa !5
  %2362 = load ptr, ptr %46, align 8, !tbaa !9
  %2363 = getelementptr inbounds %struct.s2n_connection, ptr %2362, i32 0, i32 33
  %2364 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2363, i32 0, i32 5
  %2365 = load i32, ptr %2364, align 8, !tbaa !19
  %2366 = icmp eq i32 %2365, 0
  br i1 %2366, label %2420, label %2367

2367:                                             ; preds = %2359
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %2370 = call ptr @__errno_location() #9
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  store i32 %2371, ptr %52, align 4, !tbaa !5
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = call i32 @s2n_print_stacktrace(ptr noundef %2372)
  %2374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2375 = trunc i8 %2374 to i1
  br i1 %2375, label %2376, label %2398

2376:                                             ; preds = %2369
  %2377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2378 = call i32 @fileno(ptr noundef %2377) #8
  %2379 = call i32 @isatty(i32 noundef %2378) #8
  %2380 = icmp ne i32 %2379, 0
  br i1 %2380, label %2381, label %2398

2381:                                             ; preds = %2376
  %2382 = load i32, ptr %52, align 4, !tbaa !5
  %2383 = call ptr @__errno_location() #9
  store i32 %2382, ptr %2383, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror(i32 noundef %2387, ptr noundef @.str.4)
  %2389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror_debug(i32 noundef %2390, ptr noundef @.str.4)
  %2392 = call ptr @__errno_location() #9
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @strerror(i32 noundef %2393) #8
  %2395 = call ptr @__errno_location() #9
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2384, ptr noundef @.str.2, i32 noundef %2385, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2388, ptr noundef %2391, ptr noundef %2394, i32 noundef %2396) #8
  br label %2415

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

2415:                                             ; preds = %2398, %2381
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2416

2416:                                             ; preds = %2415
  br label %2417

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

2418:                                             ; No predecessors!
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419, %2359
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

2423:                                             ; preds = %2422
  %2424 = load i32, ptr @test_count, align 4, !tbaa !5
  %2425 = add nsw i32 %2424, 1
  store i32 %2425, ptr @test_count, align 4, !tbaa !5
  %2426 = load ptr, ptr %46, align 8, !tbaa !9
  %2427 = call i32 @s2n_connection_free(ptr noundef %2426)
  %2428 = icmp eq i32 %2427, -1
  br i1 %2428, label %2429, label %2482

2429:                                             ; preds = %2423
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2432 = call ptr @__errno_location() #9
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  store i32 %2433, ptr %53, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @s2n_print_stacktrace(ptr noundef %2434)
  %2436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2437 = trunc i8 %2436 to i1
  br i1 %2437, label %2438, label %2460

2438:                                             ; preds = %2431
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = call i32 @fileno(ptr noundef %2439) #8
  %2441 = call i32 @isatty(i32 noundef %2440) #8
  %2442 = icmp ne i32 %2441, 0
  br i1 %2442, label %2443, label %2460

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

2460:                                             ; preds = %2438, %2431
  %2461 = load i32, ptr %53, align 4, !tbaa !5
  %2462 = call ptr @__errno_location() #9
  store i32 %2461, ptr %2462, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef @.str.4)
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef @.str.4)
  %2471 = call ptr @__errno_location() #9
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @strerror(i32 noundef %2472) #8
  %2474 = call ptr @__errno_location() #9
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef @.str.5, i32 noundef %2464, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2467, ptr noundef %2470, ptr noundef %2473, i32 noundef %2475) #8
  br label %2477

2477:                                             ; preds = %2460, %2443
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2478

2478:                                             ; preds = %2477
  br label %2479

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

2480:                                             ; No predecessors!
  br label %2481

2481:                                             ; preds = %2480
  br label %2482

2482:                                             ; preds = %2481, %2423
  br label %2483

2483:                                             ; preds = %2482
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

2485:                                             ; preds = %2484
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = add nsw i32 %2486, 1
  store i32 %2487, ptr @test_count, align 4, !tbaa !5
  %2488 = call i32 @s2n_stuffer_free(ptr noundef %44)
  %2489 = icmp eq i32 %2488, -1
  br i1 %2489, label %2490, label %2543

2490:                                             ; preds = %2485
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %2493 = call ptr @__errno_location() #9
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  store i32 %2494, ptr %54, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @s2n_print_stacktrace(ptr noundef %2495)
  %2497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2498 = trunc i8 %2497 to i1
  br i1 %2498, label %2499, label %2521

2499:                                             ; preds = %2492
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @fileno(ptr noundef %2500) #8
  %2502 = call i32 @isatty(i32 noundef %2501) #8
  %2503 = icmp ne i32 %2502, 0
  br i1 %2503, label %2504, label %2521

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

2521:                                             ; preds = %2499, %2492
  %2522 = load i32, ptr %54, align 4, !tbaa !5
  %2523 = call ptr @__errno_location() #9
  store i32 %2522, ptr %2523, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef @.str.4)
  %2532 = call ptr @__errno_location() #9
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #8
  %2535 = call ptr @__errno_location() #9
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef @.str.5, i32 noundef %2525, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2528, ptr noundef %2531, ptr noundef %2534, i32 noundef %2536) #8
  br label %2538

2538:                                             ; preds = %2521, %2504
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2539

2539:                                             ; preds = %2538
  br label %2540

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

2541:                                             ; No predecessors!
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542, %2485
  br label %2544

2544:                                             ; preds = %2543
  br label %2545

2545:                                             ; preds = %2544
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %55) #8
  call void @llvm.memset.p0.i64(ptr align 8 %55, i8 0, i64 40, i1 false)
  br label %2546

2546:                                             ; preds = %2545
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = add nsw i32 %2547, 1
  store i32 %2548, ptr @test_count, align 4, !tbaa !5
  %2549 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %55, i32 noundef 0)
  %2550 = icmp eq i32 %2549, -1
  br i1 %2550, label %2551, label %2604

2551:                                             ; preds = %2546
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %2554 = call ptr @__errno_location() #9
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  store i32 %2555, ptr %56, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = call i32 @s2n_print_stacktrace(ptr noundef %2556)
  %2558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2559 = trunc i8 %2558 to i1
  br i1 %2559, label %2560, label %2582

2560:                                             ; preds = %2553
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = call i32 @fileno(ptr noundef %2561) #8
  %2563 = call i32 @isatty(i32 noundef %2562) #8
  %2564 = icmp ne i32 %2563, 0
  br i1 %2564, label %2565, label %2582

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

2582:                                             ; preds = %2560, %2553
  %2583 = load i32, ptr %56, align 4, !tbaa !5
  %2584 = call ptr @__errno_location() #9
  store i32 %2583, ptr %2584, align 4, !tbaa !5
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2586 = load i32, ptr @test_count, align 4, !tbaa !5
  %2587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror(i32 noundef %2588, ptr noundef @.str.4)
  %2590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror_debug(i32 noundef %2591, ptr noundef @.str.4)
  %2593 = call ptr @__errno_location() #9
  %2594 = load i32, ptr %2593, align 4, !tbaa !5
  %2595 = call ptr @strerror(i32 noundef %2594) #8
  %2596 = call ptr @__errno_location() #9
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2585, ptr noundef @.str.5, i32 noundef %2586, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2589, ptr noundef %2592, ptr noundef %2595, i32 noundef %2597) #8
  br label %2599

2599:                                             ; preds = %2582, %2565
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2600

2600:                                             ; preds = %2599
  br label %2601

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

2602:                                             ; No predecessors!
  br label %2603

2603:                                             ; preds = %2602
  br label %2604

2604:                                             ; preds = %2603, %2546
  br label %2605

2605:                                             ; preds = %2604
  br label %2606

2606:                                             ; preds = %2605
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  store ptr null, ptr %57, align 8, !tbaa !9
  br label %2607

2607:                                             ; preds = %2606
  %2608 = load i32, ptr @test_count, align 4, !tbaa !5
  %2609 = add nsw i32 %2608, 1
  store i32 %2609, ptr @test_count, align 4, !tbaa !5
  %2610 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2610, ptr %57, align 8, !tbaa !9
  %2611 = icmp eq ptr %2610, null
  br i1 %2611, label %2612, label %2665

2612:                                             ; preds = %2607
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %2615 = call ptr @__errno_location() #9
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  store i32 %2616, ptr %58, align 4, !tbaa !5
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = call i32 @s2n_print_stacktrace(ptr noundef %2617)
  %2619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2620 = trunc i8 %2619 to i1
  br i1 %2620, label %2621, label %2643

2621:                                             ; preds = %2614
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = call i32 @fileno(ptr noundef %2622) #8
  %2624 = call i32 @isatty(i32 noundef %2623) #8
  %2625 = icmp ne i32 %2624, 0
  br i1 %2625, label %2626, label %2643

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

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

2660:                                             ; preds = %2643, %2626
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

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

2663:                                             ; No predecessors!
  br label %2664

2664:                                             ; preds = %2663
  br label %2665

2665:                                             ; preds = %2664, %2607
  br label %2666

2666:                                             ; preds = %2665
  br label %2667

2667:                                             ; preds = %2666
  br label %2668

2668:                                             ; preds = %2667
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = add nsw i32 %2669, 1
  store i32 %2670, ptr @test_count, align 4, !tbaa !5
  %2671 = load ptr, ptr %57, align 8, !tbaa !9
  %2672 = getelementptr inbounds %struct.s2n_connection, ptr %2671, i32 0, i32 33
  %2673 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2672, i32 0, i32 5
  %2674 = load i32, ptr %2673, align 8, !tbaa !19
  %2675 = icmp eq i32 %2674, 0
  br i1 %2675, label %2729, label %2676

2676:                                             ; preds = %2668
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

2678:                                             ; preds = %2677
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %2679 = call ptr @__errno_location() #9
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  store i32 %2680, ptr %59, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = call i32 @s2n_print_stacktrace(ptr noundef %2681)
  %2683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2684 = trunc i8 %2683 to i1
  br i1 %2684, label %2685, label %2707

2685:                                             ; preds = %2678
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @fileno(ptr noundef %2686) #8
  %2688 = call i32 @isatty(i32 noundef %2687) #8
  %2689 = icmp ne i32 %2688, 0
  br i1 %2689, label %2690, label %2707

2690:                                             ; preds = %2685
  %2691 = load i32, ptr %59, align 4, !tbaa !5
  %2692 = call ptr @__errno_location() #9
  store i32 %2691, ptr %2692, align 4, !tbaa !5
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = load i32, ptr @test_count, align 4, !tbaa !5
  %2695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call ptr @s2n_strerror(i32 noundef %2696, ptr noundef @.str.4)
  %2698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror_debug(i32 noundef %2699, ptr noundef @.str.4)
  %2701 = call ptr @__errno_location() #9
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @strerror(i32 noundef %2702) #8
  %2704 = call ptr @__errno_location() #9
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2693, ptr noundef @.str.2, i32 noundef %2694, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2697, ptr noundef %2700, ptr noundef %2703, i32 noundef %2705) #8
  br label %2724

2707:                                             ; preds = %2685, %2678
  %2708 = load i32, ptr %59, align 4, !tbaa !5
  %2709 = call ptr @__errno_location() #9
  store i32 %2708, ptr %2709, align 4, !tbaa !5
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror(i32 noundef %2713, ptr noundef @.str.4)
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef @.str.4)
  %2718 = call ptr @__errno_location() #9
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @strerror(i32 noundef %2719) #8
  %2721 = call ptr @__errno_location() #9
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2710, ptr noundef @.str.5, i32 noundef %2711, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2714, ptr noundef %2717, ptr noundef %2720, i32 noundef %2722) #8
  br label %2724

2724:                                             ; preds = %2707, %2690
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %2725

2725:                                             ; preds = %2724
  br label %2726

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

2727:                                             ; No predecessors!
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

2729:                                             ; preds = %2728, %2668
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

2731:                                             ; preds = %2730
  %2732 = load ptr, ptr %57, align 8, !tbaa !9
  %2733 = getelementptr inbounds %struct.s2n_connection, ptr %2732, i32 0, i32 23
  store i8 34, ptr %2733, align 4, !tbaa !45
  br label %2734

2734:                                             ; preds = %2731
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr @test_count, align 4, !tbaa !5
  %2737 = call i32 @s2n_stuffer_write_uint8(ptr noundef %55, i8 noundef zeroext 2)
  %2738 = icmp eq i32 %2737, -1
  br i1 %2738, label %2739, label %2792

2739:                                             ; preds = %2734
  br label %2740

2740:                                             ; preds = %2739
  br label %2741

2741:                                             ; preds = %2740
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #8
  %2742 = call ptr @__errno_location() #9
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  store i32 %2743, ptr %60, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744)
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2747 = trunc i8 %2746 to i1
  br i1 %2747, label %2748, label %2770

2748:                                             ; preds = %2741
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @fileno(ptr noundef %2749) #8
  %2751 = call i32 @isatty(i32 noundef %2750) #8
  %2752 = icmp ne i32 %2751, 0
  br i1 %2752, label %2753, label %2770

2753:                                             ; preds = %2748
  %2754 = load i32, ptr %60, align 4, !tbaa !5
  %2755 = call ptr @__errno_location() #9
  store i32 %2754, ptr %2755, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2759 = load i32, ptr %2758, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror(i32 noundef %2759, ptr noundef @.str.4)
  %2761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2762 = load i32, ptr %2761, align 4, !tbaa !5
  %2763 = call ptr @s2n_strerror_debug(i32 noundef %2762, ptr noundef @.str.4)
  %2764 = call ptr @__errno_location() #9
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @strerror(i32 noundef %2765) #8
  %2767 = call ptr @__errno_location() #9
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2756, ptr noundef @.str.2, i32 noundef %2757, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2760, ptr noundef %2763, ptr noundef %2766, i32 noundef %2768) #8
  br label %2787

2770:                                             ; preds = %2748, %2741
  %2771 = load i32, ptr %60, align 4, !tbaa !5
  %2772 = call ptr @__errno_location() #9
  store i32 %2771, ptr %2772, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror(i32 noundef %2776, ptr noundef @.str.4)
  %2778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror_debug(i32 noundef %2779, ptr noundef @.str.4)
  %2781 = call ptr @__errno_location() #9
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @strerror(i32 noundef %2782) #8
  %2784 = call ptr @__errno_location() #9
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2773, ptr noundef @.str.5, i32 noundef %2774, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2777, ptr noundef %2780, ptr noundef %2783, i32 noundef %2785) #8
  br label %2787

2787:                                             ; preds = %2770, %2753
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %2788

2788:                                             ; preds = %2787
  br label %2789

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

2790:                                             ; No predecessors!
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791, %2734
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794
  %2796 = load i32, ptr @test_count, align 4, !tbaa !5
  %2797 = add nsw i32 %2796, 1
  store i32 %2797, ptr @test_count, align 4, !tbaa !5
  %2798 = call i32 @s2n_stuffer_write_uint8(ptr noundef %55, i8 noundef zeroext 0)
  %2799 = icmp eq i32 %2798, -1
  br i1 %2799, label %2800, label %2853

2800:                                             ; preds = %2795
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %2803 = call ptr @__errno_location() #9
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  store i32 %2804, ptr %61, align 4, !tbaa !5
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @s2n_print_stacktrace(ptr noundef %2805)
  %2807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2808 = trunc i8 %2807 to i1
  br i1 %2808, label %2809, label %2831

2809:                                             ; preds = %2802
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = call i32 @fileno(ptr noundef %2810) #8
  %2812 = call i32 @isatty(i32 noundef %2811) #8
  %2813 = icmp ne i32 %2812, 0
  br i1 %2813, label %2814, label %2831

2814:                                             ; preds = %2809
  %2815 = load i32, ptr %61, align 4, !tbaa !5
  %2816 = call ptr @__errno_location() #9
  store i32 %2815, ptr %2816, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = call ptr @s2n_strerror(i32 noundef %2820, ptr noundef @.str.4)
  %2822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror_debug(i32 noundef %2823, ptr noundef @.str.4)
  %2825 = call ptr @__errno_location() #9
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @strerror(i32 noundef %2826) #8
  %2828 = call ptr @__errno_location() #9
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef @.str.2, i32 noundef %2818, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2821, ptr noundef %2824, ptr noundef %2827, i32 noundef %2829) #8
  br label %2848

2831:                                             ; preds = %2809, %2802
  %2832 = load i32, ptr %61, align 4, !tbaa !5
  %2833 = call ptr @__errno_location() #9
  store i32 %2832, ptr %2833, align 4, !tbaa !5
  %2834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror(i32 noundef %2837, ptr noundef @.str.4)
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror_debug(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call ptr @__errno_location() #9
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @strerror(i32 noundef %2843) #8
  %2845 = call ptr @__errno_location() #9
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2834, ptr noundef @.str.5, i32 noundef %2835, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2838, ptr noundef %2841, ptr noundef %2844, i32 noundef %2846) #8
  br label %2848

2848:                                             ; preds = %2831, %2814
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

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

2851:                                             ; No predecessors!
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

2853:                                             ; preds = %2852, %2795
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

2856:                                             ; preds = %2855
  %2857 = load i32, ptr @test_count, align 4, !tbaa !5
  %2858 = add nsw i32 %2857, 1
  store i32 %2858, ptr @test_count, align 4, !tbaa !5
  %2859 = call i32 @s2n_stuffer_write_uint8(ptr noundef %55, i8 noundef zeroext 1)
  %2860 = icmp eq i32 %2859, -1
  br i1 %2860, label %2861, label %2914

2861:                                             ; preds = %2856
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

2863:                                             ; preds = %2862
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #8
  %2864 = call ptr @__errno_location() #9
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  store i32 %2865, ptr %62, align 4, !tbaa !5
  %2866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2867 = call i32 @s2n_print_stacktrace(ptr noundef %2866)
  %2868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2869 = trunc i8 %2868 to i1
  br i1 %2869, label %2870, label %2892

2870:                                             ; preds = %2863
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @fileno(ptr noundef %2871) #8
  %2873 = call i32 @isatty(i32 noundef %2872) #8
  %2874 = icmp ne i32 %2873, 0
  br i1 %2874, label %2875, label %2892

2875:                                             ; preds = %2870
  %2876 = load i32, ptr %62, align 4, !tbaa !5
  %2877 = call ptr @__errno_location() #9
  store i32 %2876, ptr %2877, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef @.str.4)
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror_debug(i32 noundef %2884, ptr noundef @.str.4)
  %2886 = call ptr @__errno_location() #9
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #8
  %2889 = call ptr @__errno_location() #9
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef @.str.2, i32 noundef %2879, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2882, ptr noundef %2885, ptr noundef %2888, i32 noundef %2890) #8
  br label %2909

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

2909:                                             ; preds = %2892, %2875
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

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

2912:                                             ; No predecessors!
  br label %2913

2913:                                             ; preds = %2912
  br label %2914

2914:                                             ; preds = %2913, %2856
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2916
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = add nsw i32 %2918, 1
  store i32 %2919, ptr @test_count, align 4, !tbaa !5
  %2920 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 4), align 8, !tbaa !46
  %2921 = load ptr, ptr %57, align 8, !tbaa !9
  %2922 = call i32 %2920(ptr noundef %2921, ptr noundef %55)
  %2923 = icmp eq i32 %2922, -1
  br i1 %2923, label %2924, label %2977

2924:                                             ; preds = %2917
  br label %2925

2925:                                             ; preds = %2924
  br label %2926

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

2933:                                             ; preds = %2926
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @fileno(ptr noundef %2934) #8
  %2936 = call i32 @isatty(i32 noundef %2935) #8
  %2937 = icmp ne i32 %2936, 0
  br i1 %2937, label %2938, label %2955

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

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

2972:                                             ; preds = %2955, %2938
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %2973

2973:                                             ; preds = %2972
  br label %2974

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

2975:                                             ; No predecessors!
  br label %2976

2976:                                             ; preds = %2975
  br label %2977

2977:                                             ; preds = %2976, %2917
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978
  br label %2980

2980:                                             ; preds = %2979
  %2981 = load i32, ptr @test_count, align 4, !tbaa !5
  %2982 = add nsw i32 %2981, 1
  store i32 %2982, ptr @test_count, align 4, !tbaa !5
  %2983 = load ptr, ptr %57, align 8, !tbaa !9
  %2984 = getelementptr inbounds %struct.s2n_connection, ptr %2983, i32 0, i32 33
  %2985 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %2984, i32 0, i32 5
  %2986 = load i32, ptr %2985, align 8, !tbaa !19
  %2987 = icmp eq i32 %2986, 2
  br i1 %2987, label %3041, label %2988

2988:                                             ; preds = %2980
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

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

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

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

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

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

3037:                                             ; preds = %3036
  br label %3038

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

3039:                                             ; No predecessors!
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

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

3042:                                             ; preds = %3041
  br label %3043

3043:                                             ; preds = %3042
  br label %3044

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

3050:                                             ; preds = %3044
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

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

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

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

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

3098:                                             ; preds = %3081, %3064
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %3099

3099:                                             ; preds = %3098
  br label %3100

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

3101:                                             ; No predecessors!
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

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

3104:                                             ; preds = %3103
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

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

3111:                                             ; preds = %3106
  br label %3112

3112:                                             ; preds = %3111
  br label %3113

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

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

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

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

3159:                                             ; preds = %3142, %3125
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

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

3162:                                             ; No predecessors!
  br label %3163

3163:                                             ; preds = %3162
  br label %3164

3164:                                             ; preds = %3163, %3106
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

3166:                                             ; preds = %3165
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %67) #8
  call void @llvm.memset.p0.i64(ptr align 8 %67, i8 0, i64 40, i1 false)
  br label %3167

3167:                                             ; preds = %3166
  %3168 = load i32, ptr @test_count, align 4, !tbaa !5
  %3169 = add nsw i32 %3168, 1
  store i32 %3169, ptr @test_count, align 4, !tbaa !5
  %3170 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %67, i32 noundef 0)
  %3171 = icmp eq i32 %3170, -1
  br i1 %3171, label %3172, label %3225

3172:                                             ; preds = %3167
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

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

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

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

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

3220:                                             ; preds = %3203, %3186
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

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

3223:                                             ; No predecessors!
  br label %3224

3224:                                             ; preds = %3223
  br label %3225

3225:                                             ; preds = %3224, %3167
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #8
  call void @llvm.memset.p0.i64(ptr align 8 %69, i8 0, i64 16, i1 false)
  br label %3228

3228:                                             ; preds = %3227
  %3229 = load i32, ptr @test_count, align 4, !tbaa !5
  %3230 = add nsw i32 %3229, 1
  store i32 %3230, ptr @test_count, align 4, !tbaa !5
  %3231 = call i32 @s2n_stuffer_reserve_uint8(ptr noundef %67, ptr noundef %69)
  %3232 = icmp eq i32 %3231, -1
  br i1 %3232, label %3233, label %3286

3233:                                             ; preds = %3228
  br label %3234

3234:                                             ; preds = %3233
  br label %3235

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

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

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

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

3281:                                             ; preds = %3264, %3247
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %3282

3282:                                             ; preds = %3281
  br label %3283

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

3284:                                             ; No predecessors!
  br label %3285

3285:                                             ; preds = %3284
  br label %3286

3286:                                             ; preds = %3285, %3228
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  br label %3289

3289:                                             ; preds = %3288
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = add nsw i32 %3290, 1
  store i32 %3291, ptr @test_count, align 4, !tbaa !5
  %3292 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext 11)
  %3293 = icmp eq i32 %3292, -1
  br i1 %3293, label %3294, label %3347

3294:                                             ; preds = %3289
  br label %3295

3295:                                             ; preds = %3294
  br label %3296

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

3303:                                             ; preds = %3296
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = call i32 @fileno(ptr noundef %3304) #8
  %3306 = call i32 @isatty(i32 noundef %3305) #8
  %3307 = icmp ne i32 %3306, 0
  br i1 %3307, label %3308, label %3325

3308:                                             ; preds = %3303
  %3309 = load i32, ptr %71, align 4, !tbaa !5
  %3310 = call ptr @__errno_location() #9
  store i32 %3309, ptr %3310, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror(i32 noundef %3314, ptr noundef @.str.4)
  %3316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @s2n_strerror_debug(i32 noundef %3317, ptr noundef @.str.4)
  %3319 = call ptr @__errno_location() #9
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call ptr @strerror(i32 noundef %3320) #8
  %3322 = call ptr @__errno_location() #9
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3311, ptr noundef @.str.2, i32 noundef %3312, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3315, ptr noundef %3318, ptr noundef %3321, i32 noundef %3323) #8
  br label %3342

3325:                                             ; preds = %3303, %3296
  %3326 = load i32, ptr %71, align 4, !tbaa !5
  %3327 = call ptr @__errno_location() #9
  store i32 %3326, ptr %3327, align 4, !tbaa !5
  %3328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3329 = load i32, ptr @test_count, align 4, !tbaa !5
  %3330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror(i32 noundef %3331, ptr noundef @.str.4)
  %3333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror_debug(i32 noundef %3334, ptr noundef @.str.4)
  %3336 = call ptr @__errno_location() #9
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @strerror(i32 noundef %3337) #8
  %3339 = call ptr @__errno_location() #9
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3328, ptr noundef @.str.5, i32 noundef %3329, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3332, ptr noundef %3335, ptr noundef %3338, i32 noundef %3340) #8
  br label %3342

3342:                                             ; preds = %3325, %3308
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

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

3345:                                             ; No predecessors!
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346, %3289
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

3350:                                             ; preds = %3349
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = add nsw i32 %3351, 1
  store i32 %3352, ptr @test_count, align 4, !tbaa !5
  %3353 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext 42)
  %3354 = icmp eq i32 %3353, -1
  br i1 %3354, label %3355, label %3408

3355:                                             ; preds = %3350
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

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

3364:                                             ; preds = %3357
  %3365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3366 = call i32 @fileno(ptr noundef %3365) #8
  %3367 = call i32 @isatty(i32 noundef %3366) #8
  %3368 = icmp ne i32 %3367, 0
  br i1 %3368, label %3369, label %3386

3369:                                             ; preds = %3364
  %3370 = load i32, ptr %72, align 4, !tbaa !5
  %3371 = call ptr @__errno_location() #9
  store i32 %3370, ptr %3371, align 4, !tbaa !5
  %3372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror(i32 noundef %3375, ptr noundef @.str.4)
  %3377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror_debug(i32 noundef %3378, ptr noundef @.str.4)
  %3380 = call ptr @__errno_location() #9
  %3381 = load i32, ptr %3380, align 4, !tbaa !5
  %3382 = call ptr @strerror(i32 noundef %3381) #8
  %3383 = call ptr @__errno_location() #9
  %3384 = load i32, ptr %3383, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3372, ptr noundef @.str.2, i32 noundef %3373, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3376, ptr noundef %3379, ptr noundef %3382, i32 noundef %3384) #8
  br label %3403

3386:                                             ; preds = %3364, %3357
  %3387 = load i32, ptr %72, align 4, !tbaa !5
  %3388 = call ptr @__errno_location() #9
  store i32 %3387, ptr %3388, align 4, !tbaa !5
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror(i32 noundef %3392, ptr noundef @.str.4)
  %3394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror_debug(i32 noundef %3395, ptr noundef @.str.4)
  %3397 = call ptr @__errno_location() #9
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call ptr @strerror(i32 noundef %3398) #8
  %3400 = call ptr @__errno_location() #9
  %3401 = load i32, ptr %3400, align 4, !tbaa !5
  %3402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3389, ptr noundef @.str.5, i32 noundef %3390, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3393, ptr noundef %3396, ptr noundef %3399, i32 noundef %3401) #8
  br label %3403

3403:                                             ; preds = %3386, %3369
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

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

3406:                                             ; No predecessors!
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

3408:                                             ; preds = %3407, %3350
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409
  br label %3411

3411:                                             ; preds = %3410
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = add nsw i32 %3412, 1
  store i32 %3413, ptr @test_count, align 4, !tbaa !5
  %3414 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext 73)
  %3415 = icmp eq i32 %3414, -1
  br i1 %3415, label %3416, label %3469

3416:                                             ; preds = %3411
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

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

3425:                                             ; preds = %3418
  %3426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3427 = call i32 @fileno(ptr noundef %3426) #8
  %3428 = call i32 @isatty(i32 noundef %3427) #8
  %3429 = icmp ne i32 %3428, 0
  br i1 %3429, label %3430, label %3447

3430:                                             ; preds = %3425
  %3431 = load i32, ptr %73, align 4, !tbaa !5
  %3432 = call ptr @__errno_location() #9
  store i32 %3431, ptr %3432, align 4, !tbaa !5
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef @.str.4)
  %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_debug(i32 noundef %3439, ptr noundef @.str.4)
  %3441 = call ptr @__errno_location() #9
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #8
  %3444 = call ptr @__errno_location() #9
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3433, ptr noundef @.str.2, i32 noundef %3434, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3437, ptr noundef %3440, ptr noundef %3443, i32 noundef %3445) #8
  br label %3464

3447:                                             ; preds = %3425, %3418
  %3448 = load i32, ptr %73, align 4, !tbaa !5
  %3449 = call ptr @__errno_location() #9
  store i32 %3448, ptr %3449, align 4, !tbaa !5
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @s2n_strerror(i32 noundef %3453, ptr noundef @.str.4)
  %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_debug(i32 noundef %3456, ptr noundef @.str.4)
  %3458 = call ptr @__errno_location() #9
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @strerror(i32 noundef %3459) #8
  %3461 = call ptr @__errno_location() #9
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3450, ptr noundef @.str.5, i32 noundef %3451, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3454, ptr noundef %3457, ptr noundef %3460, i32 noundef %3462) #8
  br label %3464

3464:                                             ; preds = %3447, %3430
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

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

3467:                                             ; No predecessors!
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468, %3411
  br label %3470

3470:                                             ; preds = %3469
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = add nsw i32 %3473, 1
  store i32 %3474, ptr @test_count, align 4, !tbaa !5
  %3475 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext 104)
  %3476 = icmp eq i32 %3475, -1
  br i1 %3476, label %3477, label %3530

3477:                                             ; preds = %3472
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #8
  %3480 = call ptr @__errno_location() #9
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  store i32 %3481, ptr %74, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = call i32 @s2n_print_stacktrace(ptr noundef %3482)
  %3484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3485 = trunc i8 %3484 to i1
  br i1 %3485, label %3486, label %3508

3486:                                             ; preds = %3479
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = call i32 @fileno(ptr noundef %3487) #8
  %3489 = call i32 @isatty(i32 noundef %3488) #8
  %3490 = icmp ne i32 %3489, 0
  br i1 %3490, label %3491, label %3508

3491:                                             ; preds = %3486
  %3492 = load i32, ptr %74, align 4, !tbaa !5
  %3493 = call ptr @__errno_location() #9
  store i32 %3492, ptr %3493, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror(i32 noundef %3497, ptr noundef @.str.4)
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror_debug(i32 noundef %3500, ptr noundef @.str.4)
  %3502 = call ptr @__errno_location() #9
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @strerror(i32 noundef %3503) #8
  %3505 = call ptr @__errno_location() #9
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3494, ptr noundef @.str.2, i32 noundef %3495, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3498, ptr noundef %3501, ptr noundef %3504, i32 noundef %3506) #8
  br label %3525

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

3525:                                             ; preds = %3508, %3491
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

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

3528:                                             ; No predecessors!
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

3530:                                             ; preds = %3529, %3472
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = add nsw i32 %3534, 1
  store i32 %3535, ptr @test_count, align 4, !tbaa !5
  %3536 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext -121)
  %3537 = icmp eq i32 %3536, -1
  br i1 %3537, label %3538, label %3591

3538:                                             ; preds = %3533
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %3541 = call ptr @__errno_location() #9
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  store i32 %3542, ptr %75, align 4, !tbaa !5
  %3543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3544 = call i32 @s2n_print_stacktrace(ptr noundef %3543)
  %3545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3546 = trunc i8 %3545 to i1
  br i1 %3546, label %3547, label %3569

3547:                                             ; preds = %3540
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = call i32 @fileno(ptr noundef %3548) #8
  %3550 = call i32 @isatty(i32 noundef %3549) #8
  %3551 = icmp ne i32 %3550, 0
  br i1 %3551, label %3552, label %3569

3552:                                             ; preds = %3547
  %3553 = load i32, ptr %75, align 4, !tbaa !5
  %3554 = call ptr @__errno_location() #9
  store i32 %3553, ptr %3554, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef @.str.4)
  %3560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef %3561, ptr noundef @.str.4)
  %3563 = call ptr @__errno_location() #9
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @strerror(i32 noundef %3564) #8
  %3566 = call ptr @__errno_location() #9
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3555, ptr noundef @.str.2, i32 noundef %3556, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3559, ptr noundef %3562, ptr noundef %3565, i32 noundef %3567) #8
  br label %3586

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

3586:                                             ; preds = %3569, %3552
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

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

3589:                                             ; No predecessors!
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

3591:                                             ; preds = %3590, %3533
  br label %3592

3592:                                             ; preds = %3591
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = add nsw i32 %3595, 1
  store i32 %3596, ptr @test_count, align 4, !tbaa !5
  %3597 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext -90)
  %3598 = icmp eq i32 %3597, -1
  br i1 %3598, label %3599, label %3652

3599:                                             ; preds = %3594
  br label %3600

3600:                                             ; preds = %3599
  br label %3601

3601:                                             ; preds = %3600
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %3602 = call ptr @__errno_location() #9
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  store i32 %3603, ptr %76, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @s2n_print_stacktrace(ptr noundef %3604)
  %3606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3607 = trunc i8 %3606 to i1
  br i1 %3607, label %3608, label %3630

3608:                                             ; preds = %3601
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = call i32 @fileno(ptr noundef %3609) #8
  %3611 = call i32 @isatty(i32 noundef %3610) #8
  %3612 = icmp ne i32 %3611, 0
  br i1 %3612, label %3613, label %3630

3613:                                             ; preds = %3608
  %3614 = load i32, ptr %76, align 4, !tbaa !5
  %3615 = call ptr @__errno_location() #9
  store i32 %3614, ptr %3615, align 4, !tbaa !5
  %3616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3617 = load i32, ptr @test_count, align 4, !tbaa !5
  %3618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @s2n_strerror(i32 noundef %3619, ptr noundef @.str.4)
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror_debug(i32 noundef %3622, ptr noundef @.str.4)
  %3624 = call ptr @__errno_location() #9
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @strerror(i32 noundef %3625) #8
  %3627 = call ptr @__errno_location() #9
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3616, ptr noundef @.str.2, i32 noundef %3617, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3620, ptr noundef %3623, ptr noundef %3626, i32 noundef %3628) #8
  br label %3647

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

3647:                                             ; preds = %3630, %3613
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

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

3650:                                             ; No predecessors!
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

3652:                                             ; preds = %3651, %3594
  br label %3653

3653:                                             ; preds = %3652
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = add nsw i32 %3656, 1
  store i32 %3657, ptr @test_count, align 4, !tbaa !5
  %3658 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext -59)
  %3659 = icmp eq i32 %3658, -1
  br i1 %3659, label %3660, label %3713

3660:                                             ; preds = %3655
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %3663 = call ptr @__errno_location() #9
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  store i32 %3664, ptr %77, align 4, !tbaa !5
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = call i32 @s2n_print_stacktrace(ptr noundef %3665)
  %3667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3668 = trunc i8 %3667 to i1
  br i1 %3668, label %3669, label %3691

3669:                                             ; preds = %3662
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @fileno(ptr noundef %3670) #8
  %3672 = call i32 @isatty(i32 noundef %3671) #8
  %3673 = icmp ne i32 %3672, 0
  br i1 %3673, label %3674, label %3691

3674:                                             ; preds = %3669
  %3675 = load i32, ptr %77, align 4, !tbaa !5
  %3676 = call ptr @__errno_location() #9
  store i32 %3675, ptr %3676, align 4, !tbaa !5
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @s2n_strerror(i32 noundef %3680, ptr noundef @.str.4)
  %3682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call ptr @s2n_strerror_debug(i32 noundef %3683, ptr noundef @.str.4)
  %3685 = call ptr @__errno_location() #9
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call ptr @strerror(i32 noundef %3686) #8
  %3688 = call ptr @__errno_location() #9
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3677, ptr noundef @.str.2, i32 noundef %3678, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3681, ptr noundef %3684, ptr noundef %3687, i32 noundef %3689) #8
  br label %3708

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

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

3709:                                             ; preds = %3708
  br label %3710

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

3711:                                             ; No predecessors!
  br label %3712

3712:                                             ; preds = %3711
  br label %3713

3713:                                             ; preds = %3712, %3655
  br label %3714

3714:                                             ; preds = %3713
  br label %3715

3715:                                             ; preds = %3714
  br label %3716

3716:                                             ; preds = %3715
  %3717 = load i32, ptr @test_count, align 4, !tbaa !5
  %3718 = add nsw i32 %3717, 1
  store i32 %3718, ptr @test_count, align 4, !tbaa !5
  %3719 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext -28)
  %3720 = icmp eq i32 %3719, -1
  br i1 %3720, label %3721, label %3774

3721:                                             ; preds = %3716
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  %3724 = call ptr @__errno_location() #9
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  store i32 %3725, ptr %78, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = call i32 @s2n_print_stacktrace(ptr noundef %3726)
  %3728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3729 = trunc i8 %3728 to i1
  br i1 %3729, label %3730, label %3752

3730:                                             ; preds = %3723
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @fileno(ptr noundef %3731) #8
  %3733 = call i32 @isatty(i32 noundef %3732) #8
  %3734 = icmp ne i32 %3733, 0
  br i1 %3734, label %3735, label %3752

3735:                                             ; preds = %3730
  %3736 = load i32, ptr %78, align 4, !tbaa !5
  %3737 = call ptr @__errno_location() #9
  store i32 %3736, ptr %3737, align 4, !tbaa !5
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = load i32, ptr @test_count, align 4, !tbaa !5
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3741 = load i32, ptr %3740, align 4, !tbaa !5
  %3742 = call ptr @s2n_strerror(i32 noundef %3741, ptr noundef @.str.4)
  %3743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3744 = load i32, ptr %3743, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef @.str.4)
  %3746 = call ptr @__errno_location() #9
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @strerror(i32 noundef %3747) #8
  %3749 = call ptr @__errno_location() #9
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3738, ptr noundef @.str.2, i32 noundef %3739, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3742, ptr noundef %3745, ptr noundef %3748, i32 noundef %3750) #8
  br label %3769

3752:                                             ; preds = %3730, %3723
  %3753 = load i32, ptr %78, align 4, !tbaa !5
  %3754 = call ptr @__errno_location() #9
  store i32 %3753, ptr %3754, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror(i32 noundef %3758, ptr noundef @.str.4)
  %3760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @s2n_strerror_debug(i32 noundef %3761, ptr noundef @.str.4)
  %3763 = call ptr @__errno_location() #9
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @strerror(i32 noundef %3764) #8
  %3766 = call ptr @__errno_location() #9
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef @.str.5, i32 noundef %3756, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3759, ptr noundef %3762, ptr noundef %3765, i32 noundef %3767) #8
  br label %3769

3769:                                             ; preds = %3752, %3735
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

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

3772:                                             ; No predecessors!
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773, %3716
  br label %3775

3775:                                             ; preds = %3774
  br label %3776

3776:                                             ; preds = %3775
  br label %3777

3777:                                             ; preds = %3776
  %3778 = load i32, ptr @test_count, align 4, !tbaa !5
  %3779 = add nsw i32 %3778, 1
  store i32 %3779, ptr @test_count, align 4, !tbaa !5
  %3780 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %69)
  %3781 = icmp eq i32 %3780, -1
  br i1 %3781, label %3782, label %3835

3782:                                             ; preds = %3777
  br label %3783

3783:                                             ; preds = %3782
  br label %3784

3784:                                             ; preds = %3783
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  %3785 = call ptr @__errno_location() #9
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  store i32 %3786, ptr %79, align 4, !tbaa !5
  %3787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3788 = call i32 @s2n_print_stacktrace(ptr noundef %3787)
  %3789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3790 = trunc i8 %3789 to i1
  br i1 %3790, label %3791, label %3813

3791:                                             ; preds = %3784
  %3792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3793 = call i32 @fileno(ptr noundef %3792) #8
  %3794 = call i32 @isatty(i32 noundef %3793) #8
  %3795 = icmp ne i32 %3794, 0
  br i1 %3795, label %3796, label %3813

3796:                                             ; preds = %3791
  %3797 = load i32, ptr %79, align 4, !tbaa !5
  %3798 = call ptr @__errno_location() #9
  store i32 %3797, ptr %3798, align 4, !tbaa !5
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = load i32, ptr @test_count, align 4, !tbaa !5
  %3801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror(i32 noundef %3802, ptr noundef @.str.4)
  %3804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @s2n_strerror_debug(i32 noundef %3805, ptr noundef @.str.4)
  %3807 = call ptr @__errno_location() #9
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call ptr @strerror(i32 noundef %3808) #8
  %3810 = call ptr @__errno_location() #9
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3799, ptr noundef @.str.2, i32 noundef %3800, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3803, ptr noundef %3806, ptr noundef %3809, i32 noundef %3811) #8
  br label %3830

3813:                                             ; preds = %3791, %3784
  %3814 = load i32, ptr %79, align 4, !tbaa !5
  %3815 = call ptr @__errno_location() #9
  store i32 %3814, ptr %3815, align 4, !tbaa !5
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = load i32, ptr @test_count, align 4, !tbaa !5
  %3818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call ptr @s2n_strerror(i32 noundef %3819, ptr noundef @.str.4)
  %3821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = call ptr @s2n_strerror_debug(i32 noundef %3822, ptr noundef @.str.4)
  %3824 = call ptr @__errno_location() #9
  %3825 = load i32, ptr %3824, align 4, !tbaa !5
  %3826 = call ptr @strerror(i32 noundef %3825) #8
  %3827 = call ptr @__errno_location() #9
  %3828 = load i32, ptr %3827, align 4, !tbaa !5
  %3829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3816, ptr noundef @.str.5, i32 noundef %3817, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3820, ptr noundef %3823, ptr noundef %3826, i32 noundef %3828) #8
  br label %3830

3830:                                             ; preds = %3813, %3796
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

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

3833:                                             ; No predecessors!
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

3835:                                             ; preds = %3834, %3777
  br label %3836

3836:                                             ; preds = %3835
  br label %3837

3837:                                             ; preds = %3836
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #8
  %3838 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3838, ptr %80, align 8, !tbaa !9
  br label %3839

3839:                                             ; preds = %3837
  %3840 = load i32, ptr @test_count, align 4, !tbaa !5
  %3841 = add nsw i32 %3840, 1
  store i32 %3841, ptr @test_count, align 4, !tbaa !5
  %3842 = load ptr, ptr %80, align 8, !tbaa !9
  %3843 = icmp eq ptr %3842, null
  br i1 %3843, label %3844, label %3897

3844:                                             ; preds = %3839
  br label %3845

3845:                                             ; preds = %3844
  br label %3846

3846:                                             ; preds = %3845
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %3847 = call ptr @__errno_location() #9
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  store i32 %3848, ptr %81, align 4, !tbaa !5
  %3849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3850 = call i32 @s2n_print_stacktrace(ptr noundef %3849)
  %3851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3852 = trunc i8 %3851 to i1
  br i1 %3852, label %3853, label %3875

3853:                                             ; preds = %3846
  %3854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3855 = call i32 @fileno(ptr noundef %3854) #8
  %3856 = call i32 @isatty(i32 noundef %3855) #8
  %3857 = icmp ne i32 %3856, 0
  br i1 %3857, label %3858, label %3875

3858:                                             ; preds = %3853
  %3859 = load i32, ptr %81, align 4, !tbaa !5
  %3860 = call ptr @__errno_location() #9
  store i32 %3859, ptr %3860, align 4, !tbaa !5
  %3861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3862 = load i32, ptr @test_count, align 4, !tbaa !5
  %3863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror(i32 noundef %3864, ptr noundef @.str.4)
  %3866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef @.str.4)
  %3869 = call ptr @__errno_location() #9
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @strerror(i32 noundef %3870) #8
  %3872 = call ptr @__errno_location() #9
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3861, ptr noundef @.str.2, i32 noundef %3862, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3865, ptr noundef %3868, ptr noundef %3871, i32 noundef %3873) #8
  br label %3892

3875:                                             ; preds = %3853, %3846
  %3876 = load i32, ptr %81, align 4, !tbaa !5
  %3877 = call ptr @__errno_location() #9
  store i32 %3876, ptr %3877, align 4, !tbaa !5
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = load i32, ptr @test_count, align 4, !tbaa !5
  %3880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3881 = load i32, ptr %3880, align 4, !tbaa !5
  %3882 = call ptr @s2n_strerror(i32 noundef %3881, ptr noundef @.str.4)
  %3883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3884 = load i32, ptr %3883, align 4, !tbaa !5
  %3885 = call ptr @s2n_strerror_debug(i32 noundef %3884, ptr noundef @.str.4)
  %3886 = call ptr @__errno_location() #9
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call ptr @strerror(i32 noundef %3887) #8
  %3889 = call ptr @__errno_location() #9
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  %3891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3878, ptr noundef @.str.5, i32 noundef %3879, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3882, ptr noundef %3885, ptr noundef %3888, i32 noundef %3890) #8
  br label %3892

3892:                                             ; preds = %3875, %3858
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %3893

3893:                                             ; preds = %3892
  br label %3894

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

3895:                                             ; No predecessors!
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

3897:                                             ; preds = %3896, %3839
  br label %3898

3898:                                             ; preds = %3897
  br label %3899

3899:                                             ; preds = %3898
  %3900 = load ptr, ptr %80, align 8, !tbaa !9
  %3901 = getelementptr inbounds %struct.s2n_connection, ptr %3900, i32 0, i32 23
  store i8 34, ptr %3901, align 4, !tbaa !45
  br label %3902

3902:                                             ; preds = %3899
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = add nsw i32 %3903, 1
  store i32 %3904, ptr @test_count, align 4, !tbaa !5
  %3905 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 4), align 8, !tbaa !46
  %3906 = load ptr, ptr %80, align 8, !tbaa !9
  %3907 = call i32 %3905(ptr noundef %3906, ptr noundef %67)
  %3908 = icmp eq i32 %3907, -1
  br i1 %3908, label %3909, label %3962

3909:                                             ; preds = %3902
  br label %3910

3910:                                             ; preds = %3909
  br label %3911

3911:                                             ; preds = %3910
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %3912 = call ptr @__errno_location() #9
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  store i32 %3913, ptr %82, align 4, !tbaa !5
  %3914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3915 = call i32 @s2n_print_stacktrace(ptr noundef %3914)
  %3916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3917 = trunc i8 %3916 to i1
  br i1 %3917, label %3918, label %3940

3918:                                             ; preds = %3911
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = call i32 @fileno(ptr noundef %3919) #8
  %3921 = call i32 @isatty(i32 noundef %3920) #8
  %3922 = icmp ne i32 %3921, 0
  br i1 %3922, label %3923, label %3940

3923:                                             ; preds = %3918
  %3924 = load i32, ptr %82, align 4, !tbaa !5
  %3925 = call ptr @__errno_location() #9
  store i32 %3924, ptr %3925, align 4, !tbaa !5
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror(i32 noundef %3929, ptr noundef @.str.4)
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror_debug(i32 noundef %3932, ptr noundef @.str.4)
  %3934 = call ptr @__errno_location() #9
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #8
  %3937 = call ptr @__errno_location() #9
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3926, ptr noundef @.str.2, i32 noundef %3927, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3930, ptr noundef %3933, ptr noundef %3936, i32 noundef %3938) #8
  br label %3957

3940:                                             ; preds = %3918, %3911
  %3941 = load i32, ptr %82, align 4, !tbaa !5
  %3942 = call ptr @__errno_location() #9
  store i32 %3941, ptr %3942, align 4, !tbaa !5
  %3943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3944 = load i32, ptr @test_count, align 4, !tbaa !5
  %3945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror(i32 noundef %3946, ptr noundef @.str.4)
  %3948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror_debug(i32 noundef %3949, ptr noundef @.str.4)
  %3951 = call ptr @__errno_location() #9
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @strerror(i32 noundef %3952) #8
  %3954 = call ptr @__errno_location() #9
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3943, ptr noundef @.str.5, i32 noundef %3944, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3947, ptr noundef %3950, ptr noundef %3953, i32 noundef %3955) #8
  br label %3957

3957:                                             ; preds = %3940, %3923
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %3958

3958:                                             ; preds = %3957
  br label %3959

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

3960:                                             ; No predecessors!
  br label %3961

3961:                                             ; preds = %3960
  br label %3962

3962:                                             ; preds = %3961, %3902
  br label %3963

3963:                                             ; preds = %3962
  br label %3964

3964:                                             ; preds = %3963
  br label %3965

3965:                                             ; preds = %3964
  %3966 = load i32, ptr @test_count, align 4, !tbaa !5
  %3967 = add nsw i32 %3966, 1
  store i32 %3967, ptr @test_count, align 4, !tbaa !5
  %3968 = load ptr, ptr %80, align 8, !tbaa !9
  %3969 = getelementptr inbounds %struct.s2n_connection, ptr %3968, i32 0, i32 33
  %3970 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %3969, i32 0, i32 5
  %3971 = load i32, ptr %3970, align 8, !tbaa !19
  %3972 = icmp eq i32 %3971, 0
  br i1 %3972, label %4026, label %3973

3973:                                             ; preds = %3965
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #8
  %3976 = call ptr @__errno_location() #9
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  store i32 %3977, ptr %83, align 4, !tbaa !5
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = call i32 @s2n_print_stacktrace(ptr noundef %3978)
  %3980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3981 = trunc i8 %3980 to i1
  br i1 %3981, label %3982, label %4004

3982:                                             ; preds = %3975
  %3983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3984 = call i32 @fileno(ptr noundef %3983) #8
  %3985 = call i32 @isatty(i32 noundef %3984) #8
  %3986 = icmp ne i32 %3985, 0
  br i1 %3986, label %3987, label %4004

3987:                                             ; preds = %3982
  %3988 = load i32, ptr %83, align 4, !tbaa !5
  %3989 = call ptr @__errno_location() #9
  store i32 %3988, ptr %3989, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror(i32 noundef %3993, ptr noundef @.str.4)
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror_debug(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call ptr @__errno_location() #9
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @strerror(i32 noundef %3999) #8
  %4001 = call ptr @__errno_location() #9
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3990, ptr noundef @.str.2, i32 noundef %3991, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3994, ptr noundef %3997, ptr noundef %4000, i32 noundef %4002) #8
  br label %4021

4004:                                             ; preds = %3982, %3975
  %4005 = load i32, ptr %83, align 4, !tbaa !5
  %4006 = call ptr @__errno_location() #9
  store i32 %4005, ptr %4006, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call ptr @s2n_strerror(i32 noundef %4010, ptr noundef @.str.4)
  %4012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror_debug(i32 noundef %4013, ptr noundef @.str.4)
  %4015 = call ptr @__errno_location() #9
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @strerror(i32 noundef %4016) #8
  %4018 = call ptr @__errno_location() #9
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4007, ptr noundef @.str.5, i32 noundef %4008, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4011, ptr noundef %4014, ptr noundef %4017, i32 noundef %4019) #8
  br label %4021

4021:                                             ; preds = %4004, %3987
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  br label %4022

4022:                                             ; preds = %4021
  br label %4023

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

4024:                                             ; No predecessors!
  br label %4025

4025:                                             ; preds = %4024
  br label %4026

4026:                                             ; preds = %4025, %3965
  br label %4027

4027:                                             ; preds = %4026
  br label %4028

4028:                                             ; preds = %4027
  br label %4029

4029:                                             ; preds = %4028
  %4030 = load i32, ptr @test_count, align 4, !tbaa !5
  %4031 = add nsw i32 %4030, 1
  store i32 %4031, ptr @test_count, align 4, !tbaa !5
  %4032 = load ptr, ptr %80, align 8, !tbaa !9
  %4033 = call i32 @s2n_connection_free(ptr noundef %4032)
  %4034 = icmp eq i32 %4033, -1
  br i1 %4034, label %4035, label %4088

4035:                                             ; preds = %4029
  br label %4036

4036:                                             ; preds = %4035
  br label %4037

4037:                                             ; preds = %4036
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #8
  %4038 = call ptr @__errno_location() #9
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  store i32 %4039, ptr %84, align 4, !tbaa !5
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = call i32 @s2n_print_stacktrace(ptr noundef %4040)
  %4042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4043 = trunc i8 %4042 to i1
  br i1 %4043, label %4044, label %4066

4044:                                             ; preds = %4037
  %4045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4046 = call i32 @fileno(ptr noundef %4045) #8
  %4047 = call i32 @isatty(i32 noundef %4046) #8
  %4048 = icmp ne i32 %4047, 0
  br i1 %4048, label %4049, label %4066

4049:                                             ; preds = %4044
  %4050 = load i32, ptr %84, align 4, !tbaa !5
  %4051 = call ptr @__errno_location() #9
  store i32 %4050, ptr %4051, align 4, !tbaa !5
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = load i32, ptr @test_count, align 4, !tbaa !5
  %4054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror(i32 noundef %4055, ptr noundef @.str.4)
  %4057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call ptr @s2n_strerror_debug(i32 noundef %4058, ptr noundef @.str.4)
  %4060 = call ptr @__errno_location() #9
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @strerror(i32 noundef %4061) #8
  %4063 = call ptr @__errno_location() #9
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4052, ptr noundef @.str.2, i32 noundef %4053, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4056, ptr noundef %4059, ptr noundef %4062, i32 noundef %4064) #8
  br label %4083

4066:                                             ; preds = %4044, %4037
  %4067 = load i32, ptr %84, align 4, !tbaa !5
  %4068 = call ptr @__errno_location() #9
  store i32 %4067, ptr %4068, align 4, !tbaa !5
  %4069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4070 = load i32, ptr @test_count, align 4, !tbaa !5
  %4071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4072 = load i32, ptr %4071, align 4, !tbaa !5
  %4073 = call ptr @s2n_strerror(i32 noundef %4072, ptr noundef @.str.4)
  %4074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4075 = load i32, ptr %4074, align 4, !tbaa !5
  %4076 = call ptr @s2n_strerror_debug(i32 noundef %4075, ptr noundef @.str.4)
  %4077 = call ptr @__errno_location() #9
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  %4079 = call ptr @strerror(i32 noundef %4078) #8
  %4080 = call ptr @__errno_location() #9
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4069, ptr noundef @.str.5, i32 noundef %4070, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4073, ptr noundef %4076, ptr noundef %4079, i32 noundef %4081) #8
  br label %4083

4083:                                             ; preds = %4066, %4049
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  br label %4084

4084:                                             ; preds = %4083
  br label %4085

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

4086:                                             ; No predecessors!
  br label %4087

4087:                                             ; preds = %4086
  br label %4088

4088:                                             ; preds = %4087, %4029
  br label %4089

4089:                                             ; preds = %4088
  br label %4090

4090:                                             ; preds = %4089
  br label %4091

4091:                                             ; preds = %4090
  %4092 = load i32, ptr @test_count, align 4, !tbaa !5
  %4093 = add nsw i32 %4092, 1
  store i32 %4093, ptr @test_count, align 4, !tbaa !5
  %4094 = call i32 @s2n_stuffer_reread(ptr noundef %67)
  %4095 = icmp eq i32 %4094, -1
  br i1 %4095, label %4096, label %4149

4096:                                             ; preds = %4091
  br label %4097

4097:                                             ; preds = %4096
  br label %4098

4098:                                             ; preds = %4097
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #8
  %4099 = call ptr @__errno_location() #9
  %4100 = load i32, ptr %4099, align 4, !tbaa !5
  store i32 %4100, ptr %85, align 4, !tbaa !5
  %4101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4102 = call i32 @s2n_print_stacktrace(ptr noundef %4101)
  %4103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4104 = trunc i8 %4103 to i1
  br i1 %4104, label %4105, label %4127

4105:                                             ; preds = %4098
  %4106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4107 = call i32 @fileno(ptr noundef %4106) #8
  %4108 = call i32 @isatty(i32 noundef %4107) #8
  %4109 = icmp ne i32 %4108, 0
  br i1 %4109, label %4110, label %4127

4110:                                             ; preds = %4105
  %4111 = load i32, ptr %85, align 4, !tbaa !5
  %4112 = call ptr @__errno_location() #9
  store i32 %4111, ptr %4112, align 4, !tbaa !5
  %4113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4114 = load i32, ptr @test_count, align 4, !tbaa !5
  %4115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call ptr @s2n_strerror(i32 noundef %4116, ptr noundef @.str.4)
  %4118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror_debug(i32 noundef %4119, ptr noundef @.str.4)
  %4121 = call ptr @__errno_location() #9
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @strerror(i32 noundef %4122) #8
  %4124 = call ptr @__errno_location() #9
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4113, ptr noundef @.str.2, i32 noundef %4114, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4117, ptr noundef %4120, ptr noundef %4123, i32 noundef %4125) #8
  br label %4144

4127:                                             ; preds = %4105, %4098
  %4128 = load i32, ptr %85, align 4, !tbaa !5
  %4129 = call ptr @__errno_location() #9
  store i32 %4128, ptr %4129, align 4, !tbaa !5
  %4130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4131 = load i32, ptr @test_count, align 4, !tbaa !5
  %4132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call ptr @s2n_strerror(i32 noundef %4133, ptr noundef @.str.4)
  %4135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call ptr @s2n_strerror_debug(i32 noundef %4136, ptr noundef @.str.4)
  %4138 = call ptr @__errno_location() #9
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @strerror(i32 noundef %4139) #8
  %4141 = call ptr @__errno_location() #9
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4130, ptr noundef @.str.5, i32 noundef %4131, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4134, ptr noundef %4137, ptr noundef %4140, i32 noundef %4142) #8
  br label %4144

4144:                                             ; preds = %4127, %4110
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #8
  br label %4145

4145:                                             ; preds = %4144
  br label %4146

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

4147:                                             ; No predecessors!
  br label %4148

4148:                                             ; preds = %4147
  br label %4149

4149:                                             ; preds = %4148, %4091
  br label %4150

4150:                                             ; preds = %4149
  br label %4151

4151:                                             ; preds = %4150
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #8
  %4152 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4152, ptr %86, align 8, !tbaa !9
  br label %4153

4153:                                             ; preds = %4151
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = add nsw i32 %4154, 1
  store i32 %4155, ptr @test_count, align 4, !tbaa !5
  %4156 = load ptr, ptr %86, align 8, !tbaa !9
  %4157 = icmp eq ptr %4156, null
  br i1 %4157, label %4158, label %4211

4158:                                             ; preds = %4153
  br label %4159

4159:                                             ; preds = %4158
  br label %4160

4160:                                             ; preds = %4159
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  %4161 = call ptr @__errno_location() #9
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  store i32 %4162, ptr %87, align 4, !tbaa !5
  %4163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4164 = call i32 @s2n_print_stacktrace(ptr noundef %4163)
  %4165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4166 = trunc i8 %4165 to i1
  br i1 %4166, label %4167, label %4189

4167:                                             ; preds = %4160
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = call i32 @fileno(ptr noundef %4168) #8
  %4170 = call i32 @isatty(i32 noundef %4169) #8
  %4171 = icmp ne i32 %4170, 0
  br i1 %4171, label %4172, label %4189

4172:                                             ; preds = %4167
  %4173 = load i32, ptr %87, align 4, !tbaa !5
  %4174 = call ptr @__errno_location() #9
  store i32 %4173, ptr %4174, align 4, !tbaa !5
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = load i32, ptr @test_count, align 4, !tbaa !5
  %4177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror(i32 noundef %4178, ptr noundef @.str.4)
  %4180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror_debug(i32 noundef %4181, ptr noundef @.str.4)
  %4183 = call ptr @__errno_location() #9
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call ptr @strerror(i32 noundef %4184) #8
  %4186 = call ptr @__errno_location() #9
  %4187 = load i32, ptr %4186, align 4, !tbaa !5
  %4188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4175, ptr noundef @.str.2, i32 noundef %4176, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4179, ptr noundef %4182, ptr noundef %4185, i32 noundef %4187) #8
  br label %4206

4189:                                             ; preds = %4167, %4160
  %4190 = load i32, ptr %87, align 4, !tbaa !5
  %4191 = call ptr @__errno_location() #9
  store i32 %4190, ptr %4191, align 4, !tbaa !5
  %4192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4193 = load i32, ptr @test_count, align 4, !tbaa !5
  %4194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = call ptr @s2n_strerror(i32 noundef %4195, ptr noundef @.str.4)
  %4197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call ptr @s2n_strerror_debug(i32 noundef %4198, ptr noundef @.str.4)
  %4200 = call ptr @__errno_location() #9
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call ptr @strerror(i32 noundef %4201) #8
  %4203 = call ptr @__errno_location() #9
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4192, ptr noundef @.str.5, i32 noundef %4193, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4196, ptr noundef %4199, ptr noundef %4202, i32 noundef %4204) #8
  br label %4206

4206:                                             ; preds = %4189, %4172
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %4207

4207:                                             ; preds = %4206
  br label %4208

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

4209:                                             ; No predecessors!
  br label %4210

4210:                                             ; preds = %4209
  br label %4211

4211:                                             ; preds = %4210, %4153
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212
  %4214 = load ptr, ptr %86, align 8, !tbaa !9
  %4215 = getelementptr inbounds %struct.s2n_connection, ptr %4214, i32 0, i32 23
  store i8 34, ptr %4215, align 4, !tbaa !45
  br label %4216

4216:                                             ; preds = %4213
  %4217 = load i32, ptr @test_count, align 4, !tbaa !5
  %4218 = add nsw i32 %4217, 1
  store i32 %4218, ptr @test_count, align 4, !tbaa !5
  %4219 = call i32 @s2n_stuffer_write_uint8(ptr noundef %67, i8 noundef zeroext 1)
  %4220 = icmp eq i32 %4219, -1
  br i1 %4220, label %4221, label %4274

4221:                                             ; preds = %4216
  br label %4222

4222:                                             ; preds = %4221
  br label %4223

4223:                                             ; preds = %4222
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %4224 = call ptr @__errno_location() #9
  %4225 = load i32, ptr %4224, align 4, !tbaa !5
  store i32 %4225, ptr %88, align 4, !tbaa !5
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4227 = call i32 @s2n_print_stacktrace(ptr noundef %4226)
  %4228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4229 = trunc i8 %4228 to i1
  br i1 %4229, label %4230, label %4252

4230:                                             ; preds = %4223
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @fileno(ptr noundef %4231) #8
  %4233 = call i32 @isatty(i32 noundef %4232) #8
  %4234 = icmp ne i32 %4233, 0
  br i1 %4234, label %4235, label %4252

4235:                                             ; preds = %4230
  %4236 = load i32, ptr %88, align 4, !tbaa !5
  %4237 = call ptr @__errno_location() #9
  store i32 %4236, ptr %4237, align 4, !tbaa !5
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = load i32, ptr @test_count, align 4, !tbaa !5
  %4240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @s2n_strerror(i32 noundef %4241, ptr noundef @.str.4)
  %4243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror_debug(i32 noundef %4244, ptr noundef @.str.4)
  %4246 = call ptr @__errno_location() #9
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @strerror(i32 noundef %4247) #8
  %4249 = call ptr @__errno_location() #9
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4238, ptr noundef @.str.2, i32 noundef %4239, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4242, ptr noundef %4245, ptr noundef %4248, i32 noundef %4250) #8
  br label %4269

4252:                                             ; preds = %4230, %4223
  %4253 = load i32, ptr %88, align 4, !tbaa !5
  %4254 = call ptr @__errno_location() #9
  store i32 %4253, ptr %4254, align 4, !tbaa !5
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = load i32, ptr @test_count, align 4, !tbaa !5
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror(i32 noundef %4258, ptr noundef @.str.4)
  %4260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror_debug(i32 noundef %4261, ptr noundef @.str.4)
  %4263 = call ptr @__errno_location() #9
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @strerror(i32 noundef %4264) #8
  %4266 = call ptr @__errno_location() #9
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4255, ptr noundef @.str.5, i32 noundef %4256, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 212, ptr noundef %4259, ptr noundef %4262, ptr noundef %4265, i32 noundef %4267) #8
  br label %4269

4269:                                             ; preds = %4252, %4235
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

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

4272:                                             ; No predecessors!
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273, %4216
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275
  br label %4277

4277:                                             ; preds = %4276
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = add nsw i32 %4278, 1
  store i32 %4279, ptr @test_count, align 4, !tbaa !5
  %4280 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %69)
  %4281 = icmp eq i32 %4280, -1
  br i1 %4281, label %4282, label %4335

4282:                                             ; preds = %4277
  br label %4283

4283:                                             ; preds = %4282
  br label %4284

4284:                                             ; preds = %4283
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  %4285 = call ptr @__errno_location() #9
  %4286 = load i32, ptr %4285, align 4, !tbaa !5
  store i32 %4286, ptr %89, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = call i32 @s2n_print_stacktrace(ptr noundef %4287)
  %4289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4290 = trunc i8 %4289 to i1
  br i1 %4290, label %4291, label %4313

4291:                                             ; preds = %4284
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = call i32 @fileno(ptr noundef %4292) #8
  %4294 = call i32 @isatty(i32 noundef %4293) #8
  %4295 = icmp ne i32 %4294, 0
  br i1 %4295, label %4296, label %4313

4296:                                             ; preds = %4291
  %4297 = load i32, ptr %89, align 4, !tbaa !5
  %4298 = call ptr @__errno_location() #9
  store i32 %4297, ptr %4298, align 4, !tbaa !5
  %4299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4300 = load i32, ptr @test_count, align 4, !tbaa !5
  %4301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @s2n_strerror(i32 noundef %4302, ptr noundef @.str.4)
  %4304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror_debug(i32 noundef %4305, ptr noundef @.str.4)
  %4307 = call ptr @__errno_location() #9
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call ptr @strerror(i32 noundef %4308) #8
  %4310 = call ptr @__errno_location() #9
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4299, ptr noundef @.str.2, i32 noundef %4300, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 213, ptr noundef %4303, ptr noundef %4306, ptr noundef %4309, i32 noundef %4311) #8
  br label %4330

4313:                                             ; preds = %4291, %4284
  %4314 = load i32, ptr %89, align 4, !tbaa !5
  %4315 = call ptr @__errno_location() #9
  store i32 %4314, ptr %4315, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = load i32, ptr @test_count, align 4, !tbaa !5
  %4318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror(i32 noundef %4319, ptr noundef @.str.4)
  %4321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call ptr @s2n_strerror_debug(i32 noundef %4322, ptr noundef @.str.4)
  %4324 = call ptr @__errno_location() #9
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call ptr @strerror(i32 noundef %4325) #8
  %4327 = call ptr @__errno_location() #9
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4316, ptr noundef @.str.5, i32 noundef %4317, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 213, ptr noundef %4320, ptr noundef %4323, ptr noundef %4326, i32 noundef %4328) #8
  br label %4330

4330:                                             ; preds = %4313, %4296
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %4331

4331:                                             ; preds = %4330
  br label %4332

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

4333:                                             ; No predecessors!
  br label %4334

4334:                                             ; preds = %4333
  br label %4335

4335:                                             ; preds = %4334, %4277
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

4337:                                             ; preds = %4336
  br label %4338

4338:                                             ; preds = %4337
  %4339 = load i32, ptr @test_count, align 4, !tbaa !5
  %4340 = add nsw i32 %4339, 1
  store i32 %4340, ptr @test_count, align 4, !tbaa !5
  %4341 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 4), align 8, !tbaa !46
  %4342 = load ptr, ptr %86, align 8, !tbaa !9
  %4343 = call i32 %4341(ptr noundef %4342, ptr noundef %67)
  %4344 = icmp eq i32 %4343, -1
  br i1 %4344, label %4345, label %4398

4345:                                             ; preds = %4338
  br label %4346

4346:                                             ; preds = %4345
  br label %4347

4347:                                             ; preds = %4346
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  %4348 = call ptr @__errno_location() #9
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  store i32 %4349, ptr %90, align 4, !tbaa !5
  %4350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4351 = call i32 @s2n_print_stacktrace(ptr noundef %4350)
  %4352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4353 = trunc i8 %4352 to i1
  br i1 %4353, label %4354, label %4376

4354:                                             ; preds = %4347
  %4355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4356 = call i32 @fileno(ptr noundef %4355) #8
  %4357 = call i32 @isatty(i32 noundef %4356) #8
  %4358 = icmp ne i32 %4357, 0
  br i1 %4358, label %4359, label %4376

4359:                                             ; preds = %4354
  %4360 = load i32, ptr %90, align 4, !tbaa !5
  %4361 = call ptr @__errno_location() #9
  store i32 %4360, ptr %4361, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = load i32, ptr @test_count, align 4, !tbaa !5
  %4364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4365 = load i32, ptr %4364, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror(i32 noundef %4365, ptr noundef @.str.4)
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror_debug(i32 noundef %4368, ptr noundef @.str.4)
  %4370 = call ptr @__errno_location() #9
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @strerror(i32 noundef %4371) #8
  %4373 = call ptr @__errno_location() #9
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4362, ptr noundef @.str.2, i32 noundef %4363, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4366, ptr noundef %4369, ptr noundef %4372, i32 noundef %4374) #8
  br label %4393

4376:                                             ; preds = %4354, %4347
  %4377 = load i32, ptr %90, align 4, !tbaa !5
  %4378 = call ptr @__errno_location() #9
  store i32 %4377, ptr %4378, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = load i32, ptr @test_count, align 4, !tbaa !5
  %4381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4382 = load i32, ptr %4381, align 4, !tbaa !5
  %4383 = call ptr @s2n_strerror(i32 noundef %4382, ptr noundef @.str.4)
  %4384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4385 = load i32, ptr %4384, align 4, !tbaa !5
  %4386 = call ptr @s2n_strerror_debug(i32 noundef %4385, ptr noundef @.str.4)
  %4387 = call ptr @__errno_location() #9
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  %4389 = call ptr @strerror(i32 noundef %4388) #8
  %4390 = call ptr @__errno_location() #9
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4379, ptr noundef @.str.5, i32 noundef %4380, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 215, ptr noundef %4383, ptr noundef %4386, ptr noundef %4389, i32 noundef %4391) #8
  br label %4393

4393:                                             ; preds = %4376, %4359
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  br label %4394

4394:                                             ; preds = %4393
  br label %4395

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

4396:                                             ; No predecessors!
  br label %4397

4397:                                             ; preds = %4396
  br label %4398

4398:                                             ; preds = %4397, %4338
  br label %4399

4399:                                             ; preds = %4398
  br label %4400

4400:                                             ; preds = %4399
  br label %4401

4401:                                             ; preds = %4400
  %4402 = load i32, ptr @test_count, align 4, !tbaa !5
  %4403 = add nsw i32 %4402, 1
  store i32 %4403, ptr @test_count, align 4, !tbaa !5
  %4404 = load ptr, ptr %86, align 8, !tbaa !9
  %4405 = getelementptr inbounds %struct.s2n_connection, ptr %4404, i32 0, i32 33
  %4406 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %4405, i32 0, i32 5
  %4407 = load i32, ptr %4406, align 8, !tbaa !19
  %4408 = icmp eq i32 %4407, 2
  br i1 %4408, label %4462, label %4409

4409:                                             ; preds = %4401
  br label %4410

4410:                                             ; preds = %4409
  br label %4411

4411:                                             ; preds = %4410
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  %4412 = call ptr @__errno_location() #9
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  store i32 %4413, ptr %91, align 4, !tbaa !5
  %4414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4415 = call i32 @s2n_print_stacktrace(ptr noundef %4414)
  %4416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4417 = trunc i8 %4416 to i1
  br i1 %4417, label %4418, label %4440

4418:                                             ; preds = %4411
  %4419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4420 = call i32 @fileno(ptr noundef %4419) #8
  %4421 = call i32 @isatty(i32 noundef %4420) #8
  %4422 = icmp ne i32 %4421, 0
  br i1 %4422, label %4423, label %4440

4423:                                             ; preds = %4418
  %4424 = load i32, ptr %91, align 4, !tbaa !5
  %4425 = call ptr @__errno_location() #9
  store i32 %4424, ptr %4425, align 4, !tbaa !5
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = load i32, ptr @test_count, align 4, !tbaa !5
  %4428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  %4430 = call ptr @s2n_strerror(i32 noundef %4429, ptr noundef @.str.4)
  %4431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call ptr @s2n_strerror_debug(i32 noundef %4432, ptr noundef @.str.4)
  %4434 = call ptr @__errno_location() #9
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call ptr @strerror(i32 noundef %4435) #8
  %4437 = call ptr @__errno_location() #9
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4426, ptr noundef @.str.2, i32 noundef %4427, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4430, ptr noundef %4433, ptr noundef %4436, i32 noundef %4438) #8
  br label %4457

4440:                                             ; preds = %4418, %4411
  %4441 = load i32, ptr %91, align 4, !tbaa !5
  %4442 = call ptr @__errno_location() #9
  store i32 %4441, ptr %4442, align 4, !tbaa !5
  %4443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror(i32 noundef %4446, ptr noundef @.str.4)
  %4448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @s2n_strerror_debug(i32 noundef %4449, ptr noundef @.str.4)
  %4451 = call ptr @__errno_location() #9
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @strerror(i32 noundef %4452) #8
  %4454 = call ptr @__errno_location() #9
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4443, ptr noundef @.str.5, i32 noundef %4444, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4447, ptr noundef %4450, ptr noundef %4453, i32 noundef %4455) #8
  br label %4457

4457:                                             ; preds = %4440, %4423
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

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

4460:                                             ; No predecessors!
  br label %4461

4461:                                             ; preds = %4460
  br label %4462

4462:                                             ; preds = %4461, %4401
  br label %4463

4463:                                             ; preds = %4462
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

4465:                                             ; preds = %4464
  %4466 = load i32, ptr @test_count, align 4, !tbaa !5
  %4467 = add nsw i32 %4466, 1
  store i32 %4467, ptr @test_count, align 4, !tbaa !5
  %4468 = load ptr, ptr %86, align 8, !tbaa !9
  %4469 = call i32 @s2n_connection_free(ptr noundef %4468)
  %4470 = icmp eq i32 %4469, -1
  br i1 %4470, label %4471, label %4524

4471:                                             ; preds = %4465
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

4473:                                             ; preds = %4472
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  %4474 = call ptr @__errno_location() #9
  %4475 = load i32, ptr %4474, align 4, !tbaa !5
  store i32 %4475, ptr %92, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = call i32 @s2n_print_stacktrace(ptr noundef %4476)
  %4478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4479 = trunc i8 %4478 to i1
  br i1 %4479, label %4480, label %4502

4480:                                             ; preds = %4473
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = call i32 @fileno(ptr noundef %4481) #8
  %4483 = call i32 @isatty(i32 noundef %4482) #8
  %4484 = icmp ne i32 %4483, 0
  br i1 %4484, label %4485, label %4502

4485:                                             ; preds = %4480
  %4486 = load i32, ptr %92, align 4, !tbaa !5
  %4487 = call ptr @__errno_location() #9
  store i32 %4486, ptr %4487, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror(i32 noundef %4491, ptr noundef @.str.4)
  %4493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror_debug(i32 noundef %4494, ptr noundef @.str.4)
  %4496 = call ptr @__errno_location() #9
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @strerror(i32 noundef %4497) #8
  %4499 = call ptr @__errno_location() #9
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4488, ptr noundef @.str.2, i32 noundef %4489, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4492, ptr noundef %4495, ptr noundef %4498, i32 noundef %4500) #8
  br label %4519

4502:                                             ; preds = %4480, %4473
  %4503 = load i32, ptr %92, align 4, !tbaa !5
  %4504 = call ptr @__errno_location() #9
  store i32 %4503, ptr %4504, align 4, !tbaa !5
  %4505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4506 = load i32, ptr @test_count, align 4, !tbaa !5
  %4507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call ptr @s2n_strerror(i32 noundef %4508, ptr noundef @.str.4)
  %4510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror_debug(i32 noundef %4511, ptr noundef @.str.4)
  %4513 = call ptr @__errno_location() #9
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @strerror(i32 noundef %4514) #8
  %4516 = call ptr @__errno_location() #9
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4505, ptr noundef @.str.5, i32 noundef %4506, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4509, ptr noundef %4512, ptr noundef %4515, i32 noundef %4517) #8
  br label %4519

4519:                                             ; preds = %4502, %4485
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

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

4522:                                             ; No predecessors!
  br label %4523

4523:                                             ; preds = %4522
  br label %4524

4524:                                             ; preds = %4523, %4465
  br label %4525

4525:                                             ; preds = %4524
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526
  %4528 = load i32, ptr @test_count, align 4, !tbaa !5
  %4529 = add nsw i32 %4528, 1
  store i32 %4529, ptr @test_count, align 4, !tbaa !5
  %4530 = call i32 @s2n_stuffer_reread(ptr noundef %67)
  %4531 = icmp eq i32 %4530, -1
  br i1 %4531, label %4532, label %4585

4532:                                             ; preds = %4527
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  %4535 = call ptr @__errno_location() #9
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  store i32 %4536, ptr %93, align 4, !tbaa !5
  %4537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4538 = call i32 @s2n_print_stacktrace(ptr noundef %4537)
  %4539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4540 = trunc i8 %4539 to i1
  br i1 %4540, label %4541, label %4563

4541:                                             ; preds = %4534
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = call i32 @fileno(ptr noundef %4542) #8
  %4544 = call i32 @isatty(i32 noundef %4543) #8
  %4545 = icmp ne i32 %4544, 0
  br i1 %4545, label %4546, label %4563

4546:                                             ; preds = %4541
  %4547 = load i32, ptr %93, align 4, !tbaa !5
  %4548 = call ptr @__errno_location() #9
  store i32 %4547, ptr %4548, align 4, !tbaa !5
  %4549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4550 = load i32, ptr @test_count, align 4, !tbaa !5
  %4551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror(i32 noundef %4552, ptr noundef @.str.4)
  %4554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call ptr @s2n_strerror_debug(i32 noundef %4555, ptr noundef @.str.4)
  %4557 = call ptr @__errno_location() #9
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call ptr @strerror(i32 noundef %4558) #8
  %4560 = call ptr @__errno_location() #9
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4549, ptr noundef @.str.2, i32 noundef %4550, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4553, ptr noundef %4556, ptr noundef %4559, i32 noundef %4561) #8
  br label %4580

4563:                                             ; preds = %4541, %4534
  %4564 = load i32, ptr %93, align 4, !tbaa !5
  %4565 = call ptr @__errno_location() #9
  store i32 %4564, ptr %4565, align 4, !tbaa !5
  %4566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4567 = load i32, ptr @test_count, align 4, !tbaa !5
  %4568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call ptr @s2n_strerror(i32 noundef %4569, ptr noundef @.str.4)
  %4571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror_debug(i32 noundef %4572, ptr noundef @.str.4)
  %4574 = call ptr @__errno_location() #9
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @strerror(i32 noundef %4575) #8
  %4577 = call ptr @__errno_location() #9
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4566, ptr noundef @.str.5, i32 noundef %4567, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4570, ptr noundef %4573, ptr noundef %4576, i32 noundef %4578) #8
  br label %4580

4580:                                             ; preds = %4563, %4546
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

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

4583:                                             ; No predecessors!
  br label %4584

4584:                                             ; preds = %4583
  br label %4585

4585:                                             ; preds = %4584, %4527
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #8
  %4588 = call i32 @s2n_stuffer_free(ptr noundef %67)
  call void @llvm.lifetime.end.p0(i64 40, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  %4589 = call ptr @s2n_config_new()
  store ptr %4589, ptr %94, align 8, !tbaa !9
  br label %4590

4590:                                             ; preds = %4587
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = add nsw i32 %4591, 1
  store i32 %4592, ptr @test_count, align 4, !tbaa !5
  %4593 = load ptr, ptr %94, align 8, !tbaa !9
  %4594 = icmp eq ptr %4593, null
  br i1 %4594, label %4595, label %4648

4595:                                             ; preds = %4590
  br label %4596

4596:                                             ; preds = %4595
  br label %4597

4597:                                             ; preds = %4596
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #8
  %4598 = call ptr @__errno_location() #9
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  store i32 %4599, ptr %95, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = call i32 @s2n_print_stacktrace(ptr noundef %4600)
  %4602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4603 = trunc i8 %4602 to i1
  br i1 %4603, label %4604, label %4626

4604:                                             ; preds = %4597
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = call i32 @fileno(ptr noundef %4605) #8
  %4607 = call i32 @isatty(i32 noundef %4606) #8
  %4608 = icmp ne i32 %4607, 0
  br i1 %4608, label %4609, label %4626

4609:                                             ; preds = %4604
  %4610 = load i32, ptr %95, align 4, !tbaa !5
  %4611 = call ptr @__errno_location() #9
  store i32 %4610, ptr %4611, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = load i32, ptr @test_count, align 4, !tbaa !5
  %4614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4615 = load i32, ptr %4614, align 4, !tbaa !5
  %4616 = call ptr @s2n_strerror(i32 noundef %4615, ptr noundef @.str.4)
  %4617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  %4619 = call ptr @s2n_strerror_debug(i32 noundef %4618, ptr noundef @.str.4)
  %4620 = call ptr @__errno_location() #9
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @strerror(i32 noundef %4621) #8
  %4623 = call ptr @__errno_location() #9
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4612, ptr noundef @.str.2, i32 noundef %4613, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4616, ptr noundef %4619, ptr noundef %4622, i32 noundef %4624) #8
  br label %4643

4626:                                             ; preds = %4604, %4597
  %4627 = load i32, ptr %95, align 4, !tbaa !5
  %4628 = call ptr @__errno_location() #9
  store i32 %4627, ptr %4628, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = load i32, ptr @test_count, align 4, !tbaa !5
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror(i32 noundef %4632, ptr noundef @.str.4)
  %4634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror_debug(i32 noundef %4635, ptr noundef @.str.4)
  %4637 = call ptr @__errno_location() #9
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @strerror(i32 noundef %4638) #8
  %4640 = call ptr @__errno_location() #9
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4629, ptr noundef @.str.5, i32 noundef %4630, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4633, ptr noundef %4636, ptr noundef %4639, i32 noundef %4641) #8
  br label %4643

4643:                                             ; preds = %4626, %4609
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

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

4646:                                             ; No predecessors!
  br label %4647

4647:                                             ; preds = %4646
  br label %4648

4648:                                             ; preds = %4647, %4590
  br label %4649

4649:                                             ; preds = %4648
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650
  %4652 = load i32, ptr @test_count, align 4, !tbaa !5
  %4653 = add nsw i32 %4652, 1
  store i32 %4653, ptr @test_count, align 4, !tbaa !5
  %4654 = load ptr, ptr %94, align 8, !tbaa !9
  %4655 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %4654, i8 noundef zeroext 0)
  %4656 = icmp eq i32 %4655, -1
  br i1 %4656, label %4657, label %4710

4657:                                             ; preds = %4651
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  %4660 = call ptr @__errno_location() #9
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  store i32 %4661, ptr %96, align 4, !tbaa !5
  %4662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4663 = call i32 @s2n_print_stacktrace(ptr noundef %4662)
  %4664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4665 = trunc i8 %4664 to i1
  br i1 %4665, label %4666, label %4688

4666:                                             ; preds = %4659
  %4667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4668 = call i32 @fileno(ptr noundef %4667) #8
  %4669 = call i32 @isatty(i32 noundef %4668) #8
  %4670 = icmp ne i32 %4669, 0
  br i1 %4670, label %4671, label %4688

4671:                                             ; preds = %4666
  %4672 = load i32, ptr %96, align 4, !tbaa !5
  %4673 = call ptr @__errno_location() #9
  store i32 %4672, ptr %4673, align 4, !tbaa !5
  %4674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4675 = load i32, ptr @test_count, align 4, !tbaa !5
  %4676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4677 = load i32, ptr %4676, align 4, !tbaa !5
  %4678 = call ptr @s2n_strerror(i32 noundef %4677, ptr noundef @.str.4)
  %4679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4680 = load i32, ptr %4679, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror_debug(i32 noundef %4680, ptr noundef @.str.4)
  %4682 = call ptr @__errno_location() #9
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  %4684 = call ptr @strerror(i32 noundef %4683) #8
  %4685 = call ptr @__errno_location() #9
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4674, ptr noundef @.str.2, i32 noundef %4675, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4678, ptr noundef %4681, ptr noundef %4684, i32 noundef %4686) #8
  br label %4705

4688:                                             ; preds = %4666, %4659
  %4689 = load i32, ptr %96, align 4, !tbaa !5
  %4690 = call ptr @__errno_location() #9
  store i32 %4689, ptr %4690, align 4, !tbaa !5
  %4691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4692 = load i32, ptr @test_count, align 4, !tbaa !5
  %4693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @s2n_strerror(i32 noundef %4694, ptr noundef @.str.4)
  %4696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @s2n_strerror_debug(i32 noundef %4697, ptr noundef @.str.4)
  %4699 = call ptr @__errno_location() #9
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @strerror(i32 noundef %4700) #8
  %4702 = call ptr @__errno_location() #9
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4691, ptr noundef @.str.5, i32 noundef %4692, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4695, ptr noundef %4698, ptr noundef %4701, i32 noundef %4703) #8
  br label %4705

4705:                                             ; preds = %4688, %4671
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %4706

4706:                                             ; preds = %4705
  br label %4707

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

4708:                                             ; No predecessors!
  br label %4709

4709:                                             ; preds = %4708
  br label %4710

4710:                                             ; preds = %4709, %4651
  br label %4711

4711:                                             ; preds = %4710
  br label %4712

4712:                                             ; preds = %4711
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %4713 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4713, ptr %97, align 8, !tbaa !9
  br label %4714

4714:                                             ; preds = %4712
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = add nsw i32 %4715, 1
  store i32 %4716, ptr @test_count, align 4, !tbaa !5
  %4717 = load ptr, ptr %97, align 8, !tbaa !9
  %4718 = load ptr, ptr %94, align 8, !tbaa !9
  %4719 = call i32 @s2n_connection_set_config(ptr noundef %4717, ptr noundef %4718)
  %4720 = icmp eq i32 %4719, -1
  br i1 %4720, label %4721, label %4774

4721:                                             ; preds = %4714
  br label %4722

4722:                                             ; preds = %4721
  br label %4723

4723:                                             ; preds = %4722
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #8
  %4724 = call ptr @__errno_location() #9
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  store i32 %4725, ptr %98, align 4, !tbaa !5
  %4726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4727 = call i32 @s2n_print_stacktrace(ptr noundef %4726)
  %4728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4729 = trunc i8 %4728 to i1
  br i1 %4729, label %4730, label %4752

4730:                                             ; preds = %4723
  %4731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4732 = call i32 @fileno(ptr noundef %4731) #8
  %4733 = call i32 @isatty(i32 noundef %4732) #8
  %4734 = icmp ne i32 %4733, 0
  br i1 %4734, label %4735, label %4752

4735:                                             ; preds = %4730
  %4736 = load i32, ptr %98, align 4, !tbaa !5
  %4737 = call ptr @__errno_location() #9
  store i32 %4736, ptr %4737, align 4, !tbaa !5
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = load i32, ptr @test_count, align 4, !tbaa !5
  %4740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call ptr @s2n_strerror(i32 noundef %4741, ptr noundef @.str.4)
  %4743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror_debug(i32 noundef %4744, ptr noundef @.str.4)
  %4746 = call ptr @__errno_location() #9
  %4747 = load i32, ptr %4746, align 4, !tbaa !5
  %4748 = call ptr @strerror(i32 noundef %4747) #8
  %4749 = call ptr @__errno_location() #9
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4738, ptr noundef @.str.2, i32 noundef %4739, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4742, ptr noundef %4745, ptr noundef %4748, i32 noundef %4750) #8
  br label %4769

4752:                                             ; preds = %4730, %4723
  %4753 = load i32, ptr %98, align 4, !tbaa !5
  %4754 = call ptr @__errno_location() #9
  store i32 %4753, ptr %4754, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror(i32 noundef %4758, ptr noundef @.str.4)
  %4760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror_debug(i32 noundef %4761, ptr noundef @.str.4)
  %4763 = call ptr @__errno_location() #9
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @strerror(i32 noundef %4764) #8
  %4766 = call ptr @__errno_location() #9
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4755, ptr noundef @.str.5, i32 noundef %4756, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4759, ptr noundef %4762, ptr noundef %4765, i32 noundef %4767) #8
  br label %4769

4769:                                             ; preds = %4752, %4735
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  br label %4770

4770:                                             ; preds = %4769
  br label %4771

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

4772:                                             ; No predecessors!
  br label %4773

4773:                                             ; preds = %4772
  br label %4774

4774:                                             ; preds = %4773, %4714
  br label %4775

4775:                                             ; preds = %4774
  br label %4776

4776:                                             ; preds = %4775
  br label %4777

4777:                                             ; preds = %4776
  %4778 = load i32, ptr @test_count, align 4, !tbaa !5
  %4779 = add nsw i32 %4778, 1
  store i32 %4779, ptr @test_count, align 4, !tbaa !5
  %4780 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 5), align 8, !tbaa !47
  %4781 = load ptr, ptr %97, align 8, !tbaa !9
  %4782 = call zeroext i1 %4780(ptr noundef %4781)
  br i1 %4782, label %4783, label %4836

4783:                                             ; preds = %4777
  br label %4784

4784:                                             ; preds = %4783
  br label %4785

4785:                                             ; preds = %4784
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #8
  %4786 = call ptr @__errno_location() #9
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  store i32 %4787, ptr %99, align 4, !tbaa !5
  %4788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4789 = call i32 @s2n_print_stacktrace(ptr noundef %4788)
  %4790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4791 = trunc i8 %4790 to i1
  br i1 %4791, label %4792, label %4814

4792:                                             ; preds = %4785
  %4793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4794 = call i32 @fileno(ptr noundef %4793) #8
  %4795 = call i32 @isatty(i32 noundef %4794) #8
  %4796 = icmp ne i32 %4795, 0
  br i1 %4796, label %4797, label %4814

4797:                                             ; preds = %4792
  %4798 = load i32, ptr %99, align 4, !tbaa !5
  %4799 = call ptr @__errno_location() #9
  store i32 %4798, ptr %4799, align 4, !tbaa !5
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = load i32, ptr @test_count, align 4, !tbaa !5
  %4802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call ptr @s2n_strerror(i32 noundef %4803, ptr noundef @.str.4)
  %4805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  %4807 = call ptr @s2n_strerror_debug(i32 noundef %4806, ptr noundef @.str.4)
  %4808 = call ptr @__errno_location() #9
  %4809 = load i32, ptr %4808, align 4, !tbaa !5
  %4810 = call ptr @strerror(i32 noundef %4809) #8
  %4811 = call ptr @__errno_location() #9
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  %4813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4800, ptr noundef @.str.2, i32 noundef %4801, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4804, ptr noundef %4807, ptr noundef %4810, i32 noundef %4812) #8
  br label %4831

4814:                                             ; preds = %4792, %4785
  %4815 = load i32, ptr %99, align 4, !tbaa !5
  %4816 = call ptr @__errno_location() #9
  store i32 %4815, ptr %4816, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = load i32, ptr @test_count, align 4, !tbaa !5
  %4819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @s2n_strerror(i32 noundef %4820, ptr noundef @.str.4)
  %4822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call ptr @s2n_strerror_debug(i32 noundef %4823, ptr noundef @.str.4)
  %4825 = call ptr @__errno_location() #9
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @strerror(i32 noundef %4826) #8
  %4828 = call ptr @__errno_location() #9
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4817, ptr noundef @.str.5, i32 noundef %4818, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4821, ptr noundef %4824, ptr noundef %4827, i32 noundef %4829) #8
  br label %4831

4831:                                             ; preds = %4814, %4797
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  br label %4832

4832:                                             ; preds = %4831
  br label %4833

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

4834:                                             ; No predecessors!
  br label %4835

4835:                                             ; preds = %4834
  br label %4836

4836:                                             ; preds = %4835, %4777
  br label %4837

4837:                                             ; preds = %4836
  br label %4838

4838:                                             ; preds = %4837
  %4839 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %4840 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %4839, ptr %4840, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  %4841 = call i32 @s2n_config_ptr_free(ptr noundef %94)
  %4842 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %4841, ptr %4842, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #8
  %4843 = call ptr @s2n_config_new()
  store ptr %4843, ptr %102, align 8, !tbaa !9
  br label %4844

4844:                                             ; preds = %4838
  %4845 = load i32, ptr @test_count, align 4, !tbaa !5
  %4846 = add nsw i32 %4845, 1
  store i32 %4846, ptr @test_count, align 4, !tbaa !5
  %4847 = load ptr, ptr %102, align 8, !tbaa !9
  %4848 = icmp eq ptr %4847, null
  br i1 %4848, label %4849, label %4902

4849:                                             ; preds = %4844
  br label %4850

4850:                                             ; preds = %4849
  br label %4851

4851:                                             ; preds = %4850
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #8
  %4852 = call ptr @__errno_location() #9
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  store i32 %4853, ptr %103, align 4, !tbaa !5
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = call i32 @s2n_print_stacktrace(ptr noundef %4854)
  %4856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4857 = trunc i8 %4856 to i1
  br i1 %4857, label %4858, label %4880

4858:                                             ; preds = %4851
  %4859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4860 = call i32 @fileno(ptr noundef %4859) #8
  %4861 = call i32 @isatty(i32 noundef %4860) #8
  %4862 = icmp ne i32 %4861, 0
  br i1 %4862, label %4863, label %4880

4863:                                             ; preds = %4858
  %4864 = load i32, ptr %103, align 4, !tbaa !5
  %4865 = call ptr @__errno_location() #9
  store i32 %4864, ptr %4865, align 4, !tbaa !5
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = load i32, ptr @test_count, align 4, !tbaa !5
  %4868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4869 = load i32, ptr %4868, align 4, !tbaa !5
  %4870 = call ptr @s2n_strerror(i32 noundef %4869, ptr noundef @.str.4)
  %4871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  %4873 = call ptr @s2n_strerror_debug(i32 noundef %4872, ptr noundef @.str.4)
  %4874 = call ptr @__errno_location() #9
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call ptr @strerror(i32 noundef %4875) #8
  %4877 = call ptr @__errno_location() #9
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4866, ptr noundef @.str.2, i32 noundef %4867, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4870, ptr noundef %4873, ptr noundef %4876, i32 noundef %4878) #8
  br label %4897

4880:                                             ; preds = %4858, %4851
  %4881 = load i32, ptr %103, align 4, !tbaa !5
  %4882 = call ptr @__errno_location() #9
  store i32 %4881, ptr %4882, align 4, !tbaa !5
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = load i32, ptr @test_count, align 4, !tbaa !5
  %4885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  %4887 = call ptr @s2n_strerror(i32 noundef %4886, ptr noundef @.str.4)
  %4888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  %4890 = call ptr @s2n_strerror_debug(i32 noundef %4889, ptr noundef @.str.4)
  %4891 = call ptr @__errno_location() #9
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @strerror(i32 noundef %4892) #8
  %4894 = call ptr @__errno_location() #9
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4883, ptr noundef @.str.5, i32 noundef %4884, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4887, ptr noundef %4890, ptr noundef %4893, i32 noundef %4895) #8
  br label %4897

4897:                                             ; preds = %4880, %4863
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  br label %4898

4898:                                             ; preds = %4897
  br label %4899

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

4900:                                             ; No predecessors!
  br label %4901

4901:                                             ; preds = %4900
  br label %4902

4902:                                             ; preds = %4901, %4844
  br label %4903

4903:                                             ; preds = %4902
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

4905:                                             ; preds = %4904
  %4906 = load i32, ptr @test_count, align 4, !tbaa !5
  %4907 = add nsw i32 %4906, 1
  store i32 %4907, ptr @test_count, align 4, !tbaa !5
  %4908 = load ptr, ptr %102, align 8, !tbaa !9
  %4909 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %4908, i8 noundef zeroext 1)
  %4910 = icmp eq i32 %4909, -1
  br i1 %4910, label %4911, label %4964

4911:                                             ; preds = %4905
  br label %4912

4912:                                             ; preds = %4911
  br label %4913

4913:                                             ; preds = %4912
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #8
  %4914 = call ptr @__errno_location() #9
  %4915 = load i32, ptr %4914, align 4, !tbaa !5
  store i32 %4915, ptr %104, align 4, !tbaa !5
  %4916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4917 = call i32 @s2n_print_stacktrace(ptr noundef %4916)
  %4918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4919 = trunc i8 %4918 to i1
  br i1 %4919, label %4920, label %4942

4920:                                             ; preds = %4913
  %4921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4922 = call i32 @fileno(ptr noundef %4921) #8
  %4923 = call i32 @isatty(i32 noundef %4922) #8
  %4924 = icmp ne i32 %4923, 0
  br i1 %4924, label %4925, label %4942

4925:                                             ; preds = %4920
  %4926 = load i32, ptr %104, align 4, !tbaa !5
  %4927 = call ptr @__errno_location() #9
  store i32 %4926, ptr %4927, align 4, !tbaa !5
  %4928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4929 = load i32, ptr @test_count, align 4, !tbaa !5
  %4930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4931 = load i32, ptr %4930, align 4, !tbaa !5
  %4932 = call ptr @s2n_strerror(i32 noundef %4931, ptr noundef @.str.4)
  %4933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4934 = load i32, ptr %4933, align 4, !tbaa !5
  %4935 = call ptr @s2n_strerror_debug(i32 noundef %4934, ptr noundef @.str.4)
  %4936 = call ptr @__errno_location() #9
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  %4938 = call ptr @strerror(i32 noundef %4937) #8
  %4939 = call ptr @__errno_location() #9
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4928, ptr noundef @.str.2, i32 noundef %4929, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 242, ptr noundef %4932, ptr noundef %4935, ptr noundef %4938, i32 noundef %4940) #8
  br label %4959

4942:                                             ; preds = %4920, %4913
  %4943 = load i32, ptr %104, align 4, !tbaa !5
  %4944 = call ptr @__errno_location() #9
  store i32 %4943, ptr %4944, align 4, !tbaa !5
  %4945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4946 = load i32, ptr @test_count, align 4, !tbaa !5
  %4947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror(i32 noundef %4948, ptr noundef @.str.4)
  %4950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call ptr @s2n_strerror_debug(i32 noundef %4951, ptr noundef @.str.4)
  %4953 = call ptr @__errno_location() #9
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call ptr @strerror(i32 noundef %4954) #8
  %4956 = call ptr @__errno_location() #9
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4945, ptr noundef @.str.5, i32 noundef %4946, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 242, ptr noundef %4949, ptr noundef %4952, ptr noundef %4955, i32 noundef %4957) #8
  br label %4959

4959:                                             ; preds = %4942, %4925
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #8
  br label %4960

4960:                                             ; preds = %4959
  br label %4961

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

4962:                                             ; No predecessors!
  br label %4963

4963:                                             ; preds = %4962
  br label %4964

4964:                                             ; preds = %4963, %4905
  br label %4965

4965:                                             ; preds = %4964
  br label %4966

4966:                                             ; preds = %4965
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #8
  %4967 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4967, ptr %105, align 8, !tbaa !9
  br label %4968

4968:                                             ; preds = %4966
  %4969 = load i32, ptr @test_count, align 4, !tbaa !5
  %4970 = add nsw i32 %4969, 1
  store i32 %4970, ptr @test_count, align 4, !tbaa !5
  %4971 = load ptr, ptr %105, align 8, !tbaa !9
  %4972 = load ptr, ptr %102, align 8, !tbaa !9
  %4973 = call i32 @s2n_connection_set_config(ptr noundef %4971, ptr noundef %4972)
  %4974 = icmp eq i32 %4973, -1
  br i1 %4974, label %4975, label %5028

4975:                                             ; preds = %4968
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  %4978 = call ptr @__errno_location() #9
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  store i32 %4979, ptr %106, align 4, !tbaa !5
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = call i32 @s2n_print_stacktrace(ptr noundef %4980)
  %4982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4983 = trunc i8 %4982 to i1
  br i1 %4983, label %4984, label %5006

4984:                                             ; preds = %4977
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = call i32 @fileno(ptr noundef %4985) #8
  %4987 = call i32 @isatty(i32 noundef %4986) #8
  %4988 = icmp ne i32 %4987, 0
  br i1 %4988, label %4989, label %5006

4989:                                             ; preds = %4984
  %4990 = load i32, ptr %106, align 4, !tbaa !5
  %4991 = call ptr @__errno_location() #9
  store i32 %4990, ptr %4991, align 4, !tbaa !5
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = load i32, ptr @test_count, align 4, !tbaa !5
  %4994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call ptr @s2n_strerror(i32 noundef %4995, ptr noundef @.str.4)
  %4997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call ptr @s2n_strerror_debug(i32 noundef %4998, ptr noundef @.str.4)
  %5000 = call ptr @__errno_location() #9
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  %5002 = call ptr @strerror(i32 noundef %5001) #8
  %5003 = call ptr @__errno_location() #9
  %5004 = load i32, ptr %5003, align 4, !tbaa !5
  %5005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4992, ptr noundef @.str.2, i32 noundef %4993, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4996, ptr noundef %4999, ptr noundef %5002, i32 noundef %5004) #8
  br label %5023

5006:                                             ; preds = %4984, %4977
  %5007 = load i32, ptr %106, align 4, !tbaa !5
  %5008 = call ptr @__errno_location() #9
  store i32 %5007, ptr %5008, align 4, !tbaa !5
  %5009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5010 = load i32, ptr @test_count, align 4, !tbaa !5
  %5011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call ptr @s2n_strerror(i32 noundef %5012, ptr noundef @.str.4)
  %5014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror_debug(i32 noundef %5015, ptr noundef @.str.4)
  %5017 = call ptr @__errno_location() #9
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @strerror(i32 noundef %5018) #8
  %5020 = call ptr @__errno_location() #9
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5009, ptr noundef @.str.5, i32 noundef %5010, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5013, ptr noundef %5016, ptr noundef %5019, i32 noundef %5021) #8
  br label %5023

5023:                                             ; preds = %5006, %4989
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  br label %5024

5024:                                             ; preds = %5023
  br label %5025

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

5026:                                             ; No predecessors!
  br label %5027

5027:                                             ; preds = %5026
  br label %5028

5028:                                             ; preds = %5027, %4968
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

5030:                                             ; preds = %5029
  br label %5031

5031:                                             ; preds = %5030
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = add nsw i32 %5032, 1
  store i32 %5033, ptr @test_count, align 4, !tbaa !5
  %5034 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 5), align 8, !tbaa !47
  %5035 = load ptr, ptr %105, align 8, !tbaa !9
  %5036 = call zeroext i1 %5034(ptr noundef %5035)
  br i1 %5036, label %5090, label %5037

5037:                                             ; preds = %5031
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #8
  %5040 = call ptr @__errno_location() #9
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  store i32 %5041, ptr %107, align 4, !tbaa !5
  %5042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5043 = call i32 @s2n_print_stacktrace(ptr noundef %5042)
  %5044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5045 = trunc i8 %5044 to i1
  br i1 %5045, label %5046, label %5068

5046:                                             ; preds = %5039
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = call i32 @fileno(ptr noundef %5047) #8
  %5049 = call i32 @isatty(i32 noundef %5048) #8
  %5050 = icmp ne i32 %5049, 0
  br i1 %5050, label %5051, label %5068

5051:                                             ; preds = %5046
  %5052 = load i32, ptr %107, align 4, !tbaa !5
  %5053 = call ptr @__errno_location() #9
  store i32 %5052, ptr %5053, align 4, !tbaa !5
  %5054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5055 = load i32, ptr @test_count, align 4, !tbaa !5
  %5056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  %5058 = call ptr @s2n_strerror(i32 noundef %5057, ptr noundef @.str.4)
  %5059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5060 = load i32, ptr %5059, align 4, !tbaa !5
  %5061 = call ptr @s2n_strerror_debug(i32 noundef %5060, ptr noundef @.str.4)
  %5062 = call ptr @__errno_location() #9
  %5063 = load i32, ptr %5062, align 4, !tbaa !5
  %5064 = call ptr @strerror(i32 noundef %5063) #8
  %5065 = call ptr @__errno_location() #9
  %5066 = load i32, ptr %5065, align 4, !tbaa !5
  %5067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5054, ptr noundef @.str.2, i32 noundef %5055, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5058, ptr noundef %5061, ptr noundef %5064, i32 noundef %5066) #8
  br label %5085

5068:                                             ; preds = %5046, %5039
  %5069 = load i32, ptr %107, align 4, !tbaa !5
  %5070 = call ptr @__errno_location() #9
  store i32 %5069, ptr %5070, align 4, !tbaa !5
  %5071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5072 = load i32, ptr @test_count, align 4, !tbaa !5
  %5073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  %5075 = call ptr @s2n_strerror(i32 noundef %5074, ptr noundef @.str.4)
  %5076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5077 = load i32, ptr %5076, align 4, !tbaa !5
  %5078 = call ptr @s2n_strerror_debug(i32 noundef %5077, ptr noundef @.str.4)
  %5079 = call ptr @__errno_location() #9
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @strerror(i32 noundef %5080) #8
  %5082 = call ptr @__errno_location() #9
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5071, ptr noundef @.str.5, i32 noundef %5072, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5075, ptr noundef %5078, ptr noundef %5081, i32 noundef %5083) #8
  br label %5085

5085:                                             ; preds = %5068, %5051
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  br label %5086

5086:                                             ; preds = %5085
  br label %5087

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

5088:                                             ; No predecessors!
  br label %5089

5089:                                             ; preds = %5088
  br label %5090

5090:                                             ; preds = %5089, %5031
  br label %5091

5091:                                             ; preds = %5090
  br label %5092

5092:                                             ; preds = %5091
  %5093 = call i32 @s2n_connection_ptr_free(ptr noundef %105)
  %5094 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %5093, ptr %5094, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  %5095 = call i32 @s2n_config_ptr_free(ptr noundef %102)
  %5096 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %5095, ptr %5096, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #8
  %5097 = call ptr @s2n_config_new()
  store ptr %5097, ptr %110, align 8, !tbaa !9
  br label %5098

5098:                                             ; preds = %5092
  %5099 = load i32, ptr @test_count, align 4, !tbaa !5
  %5100 = add nsw i32 %5099, 1
  store i32 %5100, ptr @test_count, align 4, !tbaa !5
  %5101 = load ptr, ptr %110, align 8, !tbaa !9
  %5102 = icmp eq ptr %5101, null
  br i1 %5102, label %5103, label %5156

5103:                                             ; preds = %5098
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  %5106 = call ptr @__errno_location() #9
  %5107 = load i32, ptr %5106, align 4, !tbaa !5
  store i32 %5107, ptr %111, align 4, !tbaa !5
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = call i32 @s2n_print_stacktrace(ptr noundef %5108)
  %5110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5111 = trunc i8 %5110 to i1
  br i1 %5111, label %5112, label %5134

5112:                                             ; preds = %5105
  %5113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5114 = call i32 @fileno(ptr noundef %5113) #8
  %5115 = call i32 @isatty(i32 noundef %5114) #8
  %5116 = icmp ne i32 %5115, 0
  br i1 %5116, label %5117, label %5134

5117:                                             ; preds = %5112
  %5118 = load i32, ptr %111, align 4, !tbaa !5
  %5119 = call ptr @__errno_location() #9
  store i32 %5118, ptr %5119, align 4, !tbaa !5
  %5120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5121 = load i32, ptr @test_count, align 4, !tbaa !5
  %5122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5123 = load i32, ptr %5122, align 4, !tbaa !5
  %5124 = call ptr @s2n_strerror(i32 noundef %5123, ptr noundef @.str.4)
  %5125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5126 = load i32, ptr %5125, align 4, !tbaa !5
  %5127 = call ptr @s2n_strerror_debug(i32 noundef %5126, ptr noundef @.str.4)
  %5128 = call ptr @__errno_location() #9
  %5129 = load i32, ptr %5128, align 4, !tbaa !5
  %5130 = call ptr @strerror(i32 noundef %5129) #8
  %5131 = call ptr @__errno_location() #9
  %5132 = load i32, ptr %5131, align 4, !tbaa !5
  %5133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5120, ptr noundef @.str.2, i32 noundef %5121, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 253, ptr noundef %5124, ptr noundef %5127, ptr noundef %5130, i32 noundef %5132) #8
  br label %5151

5134:                                             ; preds = %5112, %5105
  %5135 = load i32, ptr %111, align 4, !tbaa !5
  %5136 = call ptr @__errno_location() #9
  store i32 %5135, ptr %5136, align 4, !tbaa !5
  %5137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5138 = load i32, ptr @test_count, align 4, !tbaa !5
  %5139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5140 = load i32, ptr %5139, align 4, !tbaa !5
  %5141 = call ptr @s2n_strerror(i32 noundef %5140, ptr noundef @.str.4)
  %5142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror_debug(i32 noundef %5143, ptr noundef @.str.4)
  %5145 = call ptr @__errno_location() #9
  %5146 = load i32, ptr %5145, align 4, !tbaa !5
  %5147 = call ptr @strerror(i32 noundef %5146) #8
  %5148 = call ptr @__errno_location() #9
  %5149 = load i32, ptr %5148, align 4, !tbaa !5
  %5150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5137, ptr noundef @.str.5, i32 noundef %5138, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 253, ptr noundef %5141, ptr noundef %5144, ptr noundef %5147, i32 noundef %5149) #8
  br label %5151

5151:                                             ; preds = %5134, %5117
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  br label %5152

5152:                                             ; preds = %5151
  br label %5153

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

5154:                                             ; No predecessors!
  br label %5155

5155:                                             ; preds = %5154
  br label %5156

5156:                                             ; preds = %5155, %5098
  br label %5157

5157:                                             ; preds = %5156
  br label %5158

5158:                                             ; preds = %5157
  br label %5159

5159:                                             ; preds = %5158
  %5160 = load i32, ptr @test_count, align 4, !tbaa !5
  %5161 = add nsw i32 %5160, 1
  store i32 %5161, ptr @test_count, align 4, !tbaa !5
  %5162 = load ptr, ptr %110, align 8, !tbaa !9
  %5163 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %5162, i8 noundef zeroext 0)
  %5164 = icmp eq i32 %5163, -1
  br i1 %5164, label %5165, label %5218

5165:                                             ; preds = %5159
  br label %5166

5166:                                             ; preds = %5165
  br label %5167

5167:                                             ; preds = %5166
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #8
  %5168 = call ptr @__errno_location() #9
  %5169 = load i32, ptr %5168, align 4, !tbaa !5
  store i32 %5169, ptr %112, align 4, !tbaa !5
  %5170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5171 = call i32 @s2n_print_stacktrace(ptr noundef %5170)
  %5172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5173 = trunc i8 %5172 to i1
  br i1 %5173, label %5174, label %5196

5174:                                             ; preds = %5167
  %5175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5176 = call i32 @fileno(ptr noundef %5175) #8
  %5177 = call i32 @isatty(i32 noundef %5176) #8
  %5178 = icmp ne i32 %5177, 0
  br i1 %5178, label %5179, label %5196

5179:                                             ; preds = %5174
  %5180 = load i32, ptr %112, align 4, !tbaa !5
  %5181 = call ptr @__errno_location() #9
  store i32 %5180, ptr %5181, align 4, !tbaa !5
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = load i32, ptr @test_count, align 4, !tbaa !5
  %5184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call ptr @s2n_strerror(i32 noundef %5185, ptr noundef @.str.4)
  %5187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror_debug(i32 noundef %5188, ptr noundef @.str.4)
  %5190 = call ptr @__errno_location() #9
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @strerror(i32 noundef %5191) #8
  %5193 = call ptr @__errno_location() #9
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5182, ptr noundef @.str.2, i32 noundef %5183, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 254, ptr noundef %5186, ptr noundef %5189, ptr noundef %5192, i32 noundef %5194) #8
  br label %5213

5196:                                             ; preds = %5174, %5167
  %5197 = load i32, ptr %112, align 4, !tbaa !5
  %5198 = call ptr @__errno_location() #9
  store i32 %5197, ptr %5198, align 4, !tbaa !5
  %5199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5200 = load i32, ptr @test_count, align 4, !tbaa !5
  %5201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5202 = load i32, ptr %5201, align 4, !tbaa !5
  %5203 = call ptr @s2n_strerror(i32 noundef %5202, ptr noundef @.str.4)
  %5204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call ptr @s2n_strerror_debug(i32 noundef %5205, ptr noundef @.str.4)
  %5207 = call ptr @__errno_location() #9
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @strerror(i32 noundef %5208) #8
  %5210 = call ptr @__errno_location() #9
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5199, ptr noundef @.str.5, i32 noundef %5200, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 254, ptr noundef %5203, ptr noundef %5206, ptr noundef %5209, i32 noundef %5211) #8
  br label %5213

5213:                                             ; preds = %5196, %5179
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  br label %5214

5214:                                             ; preds = %5213
  br label %5215

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

5216:                                             ; No predecessors!
  br label %5217

5217:                                             ; preds = %5216
  br label %5218

5218:                                             ; preds = %5217, %5159
  br label %5219

5219:                                             ; preds = %5218
  br label %5220

5220:                                             ; preds = %5219
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #8
  %5221 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5221, ptr %113, align 8, !tbaa !9
  br label %5222

5222:                                             ; preds = %5220
  %5223 = load i32, ptr @test_count, align 4, !tbaa !5
  %5224 = add nsw i32 %5223, 1
  store i32 %5224, ptr @test_count, align 4, !tbaa !5
  %5225 = load ptr, ptr %113, align 8, !tbaa !9
  %5226 = load ptr, ptr %110, align 8, !tbaa !9
  %5227 = call i32 @s2n_connection_set_config(ptr noundef %5225, ptr noundef %5226)
  %5228 = icmp eq i32 %5227, -1
  br i1 %5228, label %5229, label %5282

5229:                                             ; preds = %5222
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #8
  %5232 = call ptr @__errno_location() #9
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  store i32 %5233, ptr %114, align 4, !tbaa !5
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @s2n_print_stacktrace(ptr noundef %5234)
  %5236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5237 = trunc i8 %5236 to i1
  br i1 %5237, label %5238, label %5260

5238:                                             ; preds = %5231
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = call i32 @fileno(ptr noundef %5239) #8
  %5241 = call i32 @isatty(i32 noundef %5240) #8
  %5242 = icmp ne i32 %5241, 0
  br i1 %5242, label %5243, label %5260

5243:                                             ; preds = %5238
  %5244 = load i32, ptr %114, align 4, !tbaa !5
  %5245 = call ptr @__errno_location() #9
  store i32 %5244, ptr %5245, align 4, !tbaa !5
  %5246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5247 = load i32, ptr @test_count, align 4, !tbaa !5
  %5248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5249 = load i32, ptr %5248, align 4, !tbaa !5
  %5250 = call ptr @s2n_strerror(i32 noundef %5249, ptr noundef @.str.4)
  %5251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror_debug(i32 noundef %5252, ptr noundef @.str.4)
  %5254 = call ptr @__errno_location() #9
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @strerror(i32 noundef %5255) #8
  %5257 = call ptr @__errno_location() #9
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5246, ptr noundef @.str.2, i32 noundef %5247, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 257, ptr noundef %5250, ptr noundef %5253, ptr noundef %5256, i32 noundef %5258) #8
  br label %5277

5260:                                             ; preds = %5238, %5231
  %5261 = load i32, ptr %114, align 4, !tbaa !5
  %5262 = call ptr @__errno_location() #9
  store i32 %5261, ptr %5262, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = load i32, ptr @test_count, align 4, !tbaa !5
  %5265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  %5267 = call ptr @s2n_strerror(i32 noundef %5266, ptr noundef @.str.4)
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror_debug(i32 noundef %5269, ptr noundef @.str.4)
  %5271 = call ptr @__errno_location() #9
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @strerror(i32 noundef %5272) #8
  %5274 = call ptr @__errno_location() #9
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5263, ptr noundef @.str.5, i32 noundef %5264, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 257, ptr noundef %5267, ptr noundef %5270, ptr noundef %5273, i32 noundef %5275) #8
  br label %5277

5277:                                             ; preds = %5260, %5243
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

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

5280:                                             ; No predecessors!
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

5282:                                             ; preds = %5281, %5222
  br label %5283

5283:                                             ; preds = %5282
  br label %5284

5284:                                             ; preds = %5283
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  %5285 = load ptr, ptr %113, align 8, !tbaa !9
  %5286 = call ptr @s2n_test_psk_new(ptr noundef %5285)
  store ptr %5286, ptr %115, align 8, !tbaa !9
  br label %5287

5287:                                             ; preds = %5284
  %5288 = load i32, ptr @test_count, align 4, !tbaa !5
  %5289 = add nsw i32 %5288, 1
  store i32 %5289, ptr @test_count, align 4, !tbaa !5
  %5290 = load ptr, ptr %113, align 8, !tbaa !9
  %5291 = load ptr, ptr %115, align 8, !tbaa !9
  %5292 = call i32 @s2n_connection_append_psk(ptr noundef %5290, ptr noundef %5291)
  %5293 = icmp eq i32 %5292, -1
  br i1 %5293, label %5294, label %5347

5294:                                             ; preds = %5287
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #8
  %5297 = call ptr @__errno_location() #9
  %5298 = load i32, ptr %5297, align 4, !tbaa !5
  store i32 %5298, ptr %116, align 4, !tbaa !5
  %5299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5300 = call i32 @s2n_print_stacktrace(ptr noundef %5299)
  %5301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5302 = trunc i8 %5301 to i1
  br i1 %5302, label %5303, label %5325

5303:                                             ; preds = %5296
  %5304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5305 = call i32 @fileno(ptr noundef %5304) #8
  %5306 = call i32 @isatty(i32 noundef %5305) #8
  %5307 = icmp ne i32 %5306, 0
  br i1 %5307, label %5308, label %5325

5308:                                             ; preds = %5303
  %5309 = load i32, ptr %116, align 4, !tbaa !5
  %5310 = call ptr @__errno_location() #9
  store i32 %5309, ptr %5310, align 4, !tbaa !5
  %5311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5312 = load i32, ptr @test_count, align 4, !tbaa !5
  %5313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call ptr @s2n_strerror(i32 noundef %5314, ptr noundef @.str.4)
  %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 = call ptr @__errno_location() #9
  %5320 = load i32, ptr %5319, align 4, !tbaa !5
  %5321 = call ptr @strerror(i32 noundef %5320) #8
  %5322 = call ptr @__errno_location() #9
  %5323 = load i32, ptr %5322, align 4, !tbaa !5
  %5324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5311, ptr noundef @.str.2, i32 noundef %5312, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 260, ptr noundef %5315, ptr noundef %5318, ptr noundef %5321, i32 noundef %5323) #8
  br label %5342

5325:                                             ; preds = %5303, %5296
  %5326 = load i32, ptr %116, align 4, !tbaa !5
  %5327 = call ptr @__errno_location() #9
  store i32 %5326, ptr %5327, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = load i32, ptr @test_count, align 4, !tbaa !5
  %5330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @s2n_strerror(i32 noundef %5331, ptr noundef @.str.4)
  %5333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5334 = load i32, ptr %5333, align 4, !tbaa !5
  %5335 = call ptr @s2n_strerror_debug(i32 noundef %5334, ptr noundef @.str.4)
  %5336 = call ptr @__errno_location() #9
  %5337 = load i32, ptr %5336, align 4, !tbaa !5
  %5338 = call ptr @strerror(i32 noundef %5337) #8
  %5339 = call ptr @__errno_location() #9
  %5340 = load i32, ptr %5339, align 4, !tbaa !5
  %5341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5328, ptr noundef @.str.5, i32 noundef %5329, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 260, ptr noundef %5332, ptr noundef %5335, ptr noundef %5338, i32 noundef %5340) #8
  br label %5342

5342:                                             ; preds = %5325, %5308
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #8
  br label %5343

5343:                                             ; preds = %5342
  br label %5344

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

5345:                                             ; No predecessors!
  br label %5346

5346:                                             ; preds = %5345
  br label %5347

5347:                                             ; preds = %5346, %5287
  br label %5348

5348:                                             ; preds = %5347
  br label %5349

5349:                                             ; preds = %5348
  br label %5350

5350:                                             ; preds = %5349
  %5351 = load i32, ptr @test_count, align 4, !tbaa !5
  %5352 = add nsw i32 %5351, 1
  store i32 %5352, ptr @test_count, align 4, !tbaa !5
  %5353 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 5), align 8, !tbaa !47
  %5354 = load ptr, ptr %113, align 8, !tbaa !9
  %5355 = call zeroext i1 %5353(ptr noundef %5354)
  br i1 %5355, label %5409, label %5356

5356:                                             ; preds = %5350
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

5358:                                             ; preds = %5357
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #8
  %5359 = call ptr @__errno_location() #9
  %5360 = load i32, ptr %5359, align 4, !tbaa !5
  store i32 %5360, ptr %117, align 4, !tbaa !5
  %5361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5362 = call i32 @s2n_print_stacktrace(ptr noundef %5361)
  %5363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5364 = trunc i8 %5363 to i1
  br i1 %5364, label %5365, label %5387

5365:                                             ; preds = %5358
  %5366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5367 = call i32 @fileno(ptr noundef %5366) #8
  %5368 = call i32 @isatty(i32 noundef %5367) #8
  %5369 = icmp ne i32 %5368, 0
  br i1 %5369, label %5370, label %5387

5370:                                             ; preds = %5365
  %5371 = load i32, ptr %117, align 4, !tbaa !5
  %5372 = call ptr @__errno_location() #9
  store i32 %5371, ptr %5372, align 4, !tbaa !5
  %5373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5374 = load i32, ptr @test_count, align 4, !tbaa !5
  %5375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5376 = load i32, ptr %5375, align 4, !tbaa !5
  %5377 = call ptr @s2n_strerror(i32 noundef %5376, ptr noundef @.str.4)
  %5378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  %5380 = call ptr @s2n_strerror_debug(i32 noundef %5379, ptr noundef @.str.4)
  %5381 = call ptr @__errno_location() #9
  %5382 = load i32, ptr %5381, align 4, !tbaa !5
  %5383 = call ptr @strerror(i32 noundef %5382) #8
  %5384 = call ptr @__errno_location() #9
  %5385 = load i32, ptr %5384, align 4, !tbaa !5
  %5386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5373, ptr noundef @.str.2, i32 noundef %5374, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5377, ptr noundef %5380, ptr noundef %5383, i32 noundef %5385) #8
  br label %5404

5387:                                             ; preds = %5365, %5358
  %5388 = load i32, ptr %117, align 4, !tbaa !5
  %5389 = call ptr @__errno_location() #9
  store i32 %5388, ptr %5389, align 4, !tbaa !5
  %5390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5391 = load i32, ptr @test_count, align 4, !tbaa !5
  %5392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5393 = load i32, ptr %5392, align 4, !tbaa !5
  %5394 = call ptr @s2n_strerror(i32 noundef %5393, ptr noundef @.str.4)
  %5395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5396 = load i32, ptr %5395, align 4, !tbaa !5
  %5397 = call ptr @s2n_strerror_debug(i32 noundef %5396, ptr noundef @.str.4)
  %5398 = call ptr @__errno_location() #9
  %5399 = load i32, ptr %5398, align 4, !tbaa !5
  %5400 = call ptr @strerror(i32 noundef %5399) #8
  %5401 = call ptr @__errno_location() #9
  %5402 = load i32, ptr %5401, align 4, !tbaa !5
  %5403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5390, ptr noundef @.str.5, i32 noundef %5391, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5394, ptr noundef %5397, ptr noundef %5400, i32 noundef %5402) #8
  br label %5404

5404:                                             ; preds = %5387, %5370
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #8
  br label %5405

5405:                                             ; preds = %5404
  br label %5406

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

5407:                                             ; No predecessors!
  br label %5408

5408:                                             ; preds = %5407
  br label %5409

5409:                                             ; preds = %5408, %5350
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

5411:                                             ; preds = %5410
  %5412 = call i32 @s2n_psk_free(ptr noundef %115)
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  %5413 = call i32 @s2n_connection_ptr_free(ptr noundef %113)
  %5414 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %5413, ptr %5414, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #8
  %5415 = call i32 @s2n_config_ptr_free(ptr noundef %110)
  %5416 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %5415, ptr %5416, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %120) #8
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 40, i1 false)
  br label %5417

5417:                                             ; preds = %5411
  %5418 = load i32, ptr @test_count, align 4, !tbaa !5
  %5419 = add nsw i32 %5418, 1
  store i32 %5419, ptr @test_count, align 4, !tbaa !5
  %5420 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %120, i32 noundef 0)
  %5421 = icmp eq i32 %5420, -1
  br i1 %5421, label %5422, label %5475

5422:                                             ; preds = %5417
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #8
  %5425 = call ptr @__errno_location() #9
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  store i32 %5426, ptr %121, align 4, !tbaa !5
  %5427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5428 = call i32 @s2n_print_stacktrace(ptr noundef %5427)
  %5429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5430 = trunc i8 %5429 to i1
  br i1 %5430, label %5431, label %5453

5431:                                             ; preds = %5424
  %5432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5433 = call i32 @fileno(ptr noundef %5432) #8
  %5434 = call i32 @isatty(i32 noundef %5433) #8
  %5435 = icmp ne i32 %5434, 0
  br i1 %5435, label %5436, label %5453

5436:                                             ; preds = %5431
  %5437 = load i32, ptr %121, align 4, !tbaa !5
  %5438 = call ptr @__errno_location() #9
  store i32 %5437, ptr %5438, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  %5443 = call ptr @s2n_strerror(i32 noundef %5442, ptr noundef @.str.4)
  %5444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call ptr @s2n_strerror_debug(i32 noundef %5445, ptr noundef @.str.4)
  %5447 = call ptr @__errno_location() #9
  %5448 = load i32, ptr %5447, align 4, !tbaa !5
  %5449 = call ptr @strerror(i32 noundef %5448) #8
  %5450 = call ptr @__errno_location() #9
  %5451 = load i32, ptr %5450, align 4, !tbaa !5
  %5452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef @.str.2, i32 noundef %5440, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5443, ptr noundef %5446, ptr noundef %5449, i32 noundef %5451) #8
  br label %5470

5453:                                             ; preds = %5431, %5424
  %5454 = load i32, ptr %121, align 4, !tbaa !5
  %5455 = call ptr @__errno_location() #9
  store i32 %5454, ptr %5455, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = load i32, ptr @test_count, align 4, !tbaa !5
  %5458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5459 = load i32, ptr %5458, align 4, !tbaa !5
  %5460 = call ptr @s2n_strerror(i32 noundef %5459, ptr noundef @.str.4)
  %5461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5462 = load i32, ptr %5461, align 4, !tbaa !5
  %5463 = call ptr @s2n_strerror_debug(i32 noundef %5462, ptr noundef @.str.4)
  %5464 = call ptr @__errno_location() #9
  %5465 = load i32, ptr %5464, align 4, !tbaa !5
  %5466 = call ptr @strerror(i32 noundef %5465) #8
  %5467 = call ptr @__errno_location() #9
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  %5469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5456, ptr noundef @.str.5, i32 noundef %5457, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5460, ptr noundef %5463, ptr noundef %5466, i32 noundef %5468) #8
  br label %5470

5470:                                             ; preds = %5453, %5436
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  br label %5471

5471:                                             ; preds = %5470
  br label %5472

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

5473:                                             ; No predecessors!
  br label %5474

5474:                                             ; preds = %5473
  br label %5475

5475:                                             ; preds = %5474, %5417
  br label %5476

5476:                                             ; preds = %5475
  br label %5477

5477:                                             ; preds = %5476
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #8
  store ptr null, ptr %122, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #8
  store ptr null, ptr %123, align 8, !tbaa !9
  br label %5478

5478:                                             ; preds = %5477
  %5479 = load i32, ptr @test_count, align 4, !tbaa !5
  %5480 = add nsw i32 %5479, 1
  store i32 %5480, ptr @test_count, align 4, !tbaa !5
  %5481 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5481, ptr %122, align 8, !tbaa !9
  %5482 = icmp eq ptr %5481, null
  br i1 %5482, label %5483, label %5536

5483:                                             ; preds = %5478
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

5485:                                             ; preds = %5484
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #8
  %5486 = call ptr @__errno_location() #9
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  store i32 %5487, ptr %124, align 4, !tbaa !5
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = call i32 @s2n_print_stacktrace(ptr noundef %5488)
  %5490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5491 = trunc i8 %5490 to i1
  br i1 %5491, label %5492, label %5514

5492:                                             ; preds = %5485
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @fileno(ptr noundef %5493) #8
  %5495 = call i32 @isatty(i32 noundef %5494) #8
  %5496 = icmp ne i32 %5495, 0
  br i1 %5496, label %5497, label %5514

5497:                                             ; preds = %5492
  %5498 = load i32, ptr %124, align 4, !tbaa !5
  %5499 = call ptr @__errno_location() #9
  store i32 %5498, ptr %5499, align 4, !tbaa !5
  %5500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5501 = load i32, ptr @test_count, align 4, !tbaa !5
  %5502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5503 = load i32, ptr %5502, align 4, !tbaa !5
  %5504 = call ptr @s2n_strerror(i32 noundef %5503, ptr noundef @.str.4)
  %5505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5506 = load i32, ptr %5505, align 4, !tbaa !5
  %5507 = call ptr @s2n_strerror_debug(i32 noundef %5506, ptr noundef @.str.4)
  %5508 = call ptr @__errno_location() #9
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call ptr @strerror(i32 noundef %5509) #8
  %5511 = call ptr @__errno_location() #9
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5500, ptr noundef @.str.2, i32 noundef %5501, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5504, ptr noundef %5507, ptr noundef %5510, i32 noundef %5512) #8
  br label %5531

5514:                                             ; preds = %5492, %5485
  %5515 = load i32, ptr %124, align 4, !tbaa !5
  %5516 = call ptr @__errno_location() #9
  store i32 %5515, ptr %5516, align 4, !tbaa !5
  %5517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5518 = load i32, ptr @test_count, align 4, !tbaa !5
  %5519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5520 = load i32, ptr %5519, align 4, !tbaa !5
  %5521 = call ptr @s2n_strerror(i32 noundef %5520, ptr noundef @.str.4)
  %5522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call ptr @s2n_strerror_debug(i32 noundef %5523, ptr noundef @.str.4)
  %5525 = call ptr @__errno_location() #9
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call ptr @strerror(i32 noundef %5526) #8
  %5528 = call ptr @__errno_location() #9
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5517, ptr noundef @.str.5, i32 noundef %5518, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5521, ptr noundef %5524, ptr noundef %5527, i32 noundef %5529) #8
  br label %5531

5531:                                             ; preds = %5514, %5497
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #8
  br label %5532

5532:                                             ; preds = %5531
  br label %5533

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

5534:                                             ; No predecessors!
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

5536:                                             ; preds = %5535, %5478
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

5538:                                             ; preds = %5537
  br label %5539

5539:                                             ; preds = %5538
  %5540 = load i32, ptr @test_count, align 4, !tbaa !5
  %5541 = add nsw i32 %5540, 1
  store i32 %5541, ptr @test_count, align 4, !tbaa !5
  %5542 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5542, ptr %123, align 8, !tbaa !9
  %5543 = icmp eq ptr %5542, null
  br i1 %5543, label %5544, label %5597

5544:                                             ; preds = %5539
  br label %5545

5545:                                             ; preds = %5544
  br label %5546

5546:                                             ; preds = %5545
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #8
  %5547 = call ptr @__errno_location() #9
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  store i32 %5548, ptr %125, align 4, !tbaa !5
  %5549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5550 = call i32 @s2n_print_stacktrace(ptr noundef %5549)
  %5551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5552 = trunc i8 %5551 to i1
  br i1 %5552, label %5553, label %5575

5553:                                             ; preds = %5546
  %5554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5555 = call i32 @fileno(ptr noundef %5554) #8
  %5556 = call i32 @isatty(i32 noundef %5555) #8
  %5557 = icmp ne i32 %5556, 0
  br i1 %5557, label %5558, label %5575

5558:                                             ; preds = %5553
  %5559 = load i32, ptr %125, align 4, !tbaa !5
  %5560 = call ptr @__errno_location() #9
  store i32 %5559, ptr %5560, align 4, !tbaa !5
  %5561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5562 = load i32, ptr @test_count, align 4, !tbaa !5
  %5563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5564 = load i32, ptr %5563, align 4, !tbaa !5
  %5565 = call ptr @s2n_strerror(i32 noundef %5564, ptr noundef @.str.4)
  %5566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5567 = load i32, ptr %5566, align 4, !tbaa !5
  %5568 = call ptr @s2n_strerror_debug(i32 noundef %5567, ptr noundef @.str.4)
  %5569 = call ptr @__errno_location() #9
  %5570 = load i32, ptr %5569, align 4, !tbaa !5
  %5571 = call ptr @strerror(i32 noundef %5570) #8
  %5572 = call ptr @__errno_location() #9
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5561, ptr noundef @.str.2, i32 noundef %5562, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5565, ptr noundef %5568, ptr noundef %5571, i32 noundef %5573) #8
  br label %5592

5575:                                             ; preds = %5553, %5546
  %5576 = load i32, ptr %125, align 4, !tbaa !5
  %5577 = call ptr @__errno_location() #9
  store i32 %5576, ptr %5577, align 4, !tbaa !5
  %5578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5579 = load i32, ptr @test_count, align 4, !tbaa !5
  %5580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  %5582 = call ptr @s2n_strerror(i32 noundef %5581, ptr noundef @.str.4)
  %5583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @s2n_strerror_debug(i32 noundef %5584, ptr noundef @.str.4)
  %5586 = call ptr @__errno_location() #9
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @strerror(i32 noundef %5587) #8
  %5589 = call ptr @__errno_location() #9
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5578, ptr noundef @.str.5, i32 noundef %5579, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 274, ptr noundef %5582, ptr noundef %5585, ptr noundef %5588, i32 noundef %5590) #8
  br label %5592

5592:                                             ; preds = %5575, %5558
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #8
  br label %5593

5593:                                             ; preds = %5592
  br label %5594

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

5595:                                             ; No predecessors!
  br label %5596

5596:                                             ; preds = %5595
  br label %5597

5597:                                             ; preds = %5596, %5539
  br label %5598

5598:                                             ; preds = %5597
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

5600:                                             ; preds = %5599
  %5601 = load i32, ptr @test_count, align 4, !tbaa !5
  %5602 = add nsw i32 %5601, 1
  store i32 %5602, ptr @test_count, align 4, !tbaa !5
  %5603 = load ptr, ptr %122, align 8, !tbaa !9
  %5604 = getelementptr inbounds %struct.s2n_connection, ptr %5603, i32 0, i32 33
  %5605 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5604, i32 0, i32 5
  %5606 = load i32, ptr %5605, align 8, !tbaa !19
  %5607 = icmp eq i32 %5606, 0
  br i1 %5607, label %5661, label %5608

5608:                                             ; preds = %5600
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

5610:                                             ; preds = %5609
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #8
  %5611 = call ptr @__errno_location() #9
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  store i32 %5612, ptr %126, align 4, !tbaa !5
  %5613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5614 = call i32 @s2n_print_stacktrace(ptr noundef %5613)
  %5615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5616 = trunc i8 %5615 to i1
  br i1 %5616, label %5617, label %5639

5617:                                             ; preds = %5610
  %5618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5619 = call i32 @fileno(ptr noundef %5618) #8
  %5620 = call i32 @isatty(i32 noundef %5619) #8
  %5621 = icmp ne i32 %5620, 0
  br i1 %5621, label %5622, label %5639

5622:                                             ; preds = %5617
  %5623 = load i32, ptr %126, align 4, !tbaa !5
  %5624 = call ptr @__errno_location() #9
  store i32 %5623, ptr %5624, align 4, !tbaa !5
  %5625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5626 = load i32, ptr @test_count, align 4, !tbaa !5
  %5627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  %5629 = call ptr @s2n_strerror(i32 noundef %5628, ptr noundef @.str.4)
  %5630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5631 = load i32, ptr %5630, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror_debug(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call ptr @__errno_location() #9
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @strerror(i32 noundef %5634) #8
  %5636 = call ptr @__errno_location() #9
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5625, ptr noundef @.str.2, i32 noundef %5626, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5629, ptr noundef %5632, ptr noundef %5635, i32 noundef %5637) #8
  br label %5656

5639:                                             ; preds = %5617, %5610
  %5640 = load i32, ptr %126, align 4, !tbaa !5
  %5641 = call ptr @__errno_location() #9
  store i32 %5640, ptr %5641, align 4, !tbaa !5
  %5642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5643 = load i32, ptr @test_count, align 4, !tbaa !5
  %5644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call ptr @s2n_strerror(i32 noundef %5645, ptr noundef @.str.4)
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror_debug(i32 noundef %5648, ptr noundef @.str.4)
  %5650 = call ptr @__errno_location() #9
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @strerror(i32 noundef %5651) #8
  %5653 = call ptr @__errno_location() #9
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5642, ptr noundef @.str.5, i32 noundef %5643, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5646, ptr noundef %5649, ptr noundef %5652, i32 noundef %5654) #8
  br label %5656

5656:                                             ; preds = %5639, %5622
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #8
  br label %5657

5657:                                             ; preds = %5656
  br label %5658

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

5659:                                             ; No predecessors!
  br label %5660

5660:                                             ; preds = %5659
  br label %5661

5661:                                             ; preds = %5660, %5600
  br label %5662

5662:                                             ; preds = %5661
  br label %5663

5663:                                             ; preds = %5662
  %5664 = load ptr, ptr %122, align 8, !tbaa !9
  %5665 = getelementptr inbounds %struct.s2n_connection, ptr %5664, i32 0, i32 23
  store i8 34, ptr %5665, align 4, !tbaa !45
  %5666 = load ptr, ptr %123, align 8, !tbaa !9
  %5667 = getelementptr inbounds %struct.s2n_connection, ptr %5666, i32 0, i32 23
  store i8 34, ptr %5667, align 4, !tbaa !45
  br label %5668

5668:                                             ; preds = %5663
  %5669 = load i32, ptr @test_count, align 4, !tbaa !5
  %5670 = add nsw i32 %5669, 1
  store i32 %5670, ptr @test_count, align 4, !tbaa !5
  %5671 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 3), align 8, !tbaa !15
  %5672 = load ptr, ptr %123, align 8, !tbaa !9
  %5673 = call i32 %5671(ptr noundef %5672, ptr noundef %120)
  %5674 = icmp eq i32 %5673, -1
  br i1 %5674, label %5675, label %5728

5675:                                             ; preds = %5668
  br label %5676

5676:                                             ; preds = %5675
  br label %5677

5677:                                             ; preds = %5676
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #8
  %5678 = call ptr @__errno_location() #9
  %5679 = load i32, ptr %5678, align 4, !tbaa !5
  store i32 %5679, ptr %127, align 4, !tbaa !5
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = call i32 @s2n_print_stacktrace(ptr noundef %5680)
  %5682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5683 = trunc i8 %5682 to i1
  br i1 %5683, label %5684, label %5706

5684:                                             ; preds = %5677
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = call i32 @fileno(ptr noundef %5685) #8
  %5687 = call i32 @isatty(i32 noundef %5686) #8
  %5688 = icmp ne i32 %5687, 0
  br i1 %5688, label %5689, label %5706

5689:                                             ; preds = %5684
  %5690 = load i32, ptr %127, align 4, !tbaa !5
  %5691 = call ptr @__errno_location() #9
  store i32 %5690, ptr %5691, align 4, !tbaa !5
  %5692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5693 = load i32, ptr @test_count, align 4, !tbaa !5
  %5694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5695 = load i32, ptr %5694, align 4, !tbaa !5
  %5696 = call ptr @s2n_strerror(i32 noundef %5695, ptr noundef @.str.4)
  %5697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  %5699 = call ptr @s2n_strerror_debug(i32 noundef %5698, ptr noundef @.str.4)
  %5700 = call ptr @__errno_location() #9
  %5701 = load i32, ptr %5700, align 4, !tbaa !5
  %5702 = call ptr @strerror(i32 noundef %5701) #8
  %5703 = call ptr @__errno_location() #9
  %5704 = load i32, ptr %5703, align 4, !tbaa !5
  %5705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5692, ptr noundef @.str.2, i32 noundef %5693, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5696, ptr noundef %5699, ptr noundef %5702, i32 noundef %5704) #8
  br label %5723

5706:                                             ; preds = %5684, %5677
  %5707 = load i32, ptr %127, align 4, !tbaa !5
  %5708 = call ptr @__errno_location() #9
  store i32 %5707, ptr %5708, align 4, !tbaa !5
  %5709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5710 = load i32, ptr @test_count, align 4, !tbaa !5
  %5711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5712 = load i32, ptr %5711, align 4, !tbaa !5
  %5713 = call ptr @s2n_strerror(i32 noundef %5712, ptr noundef @.str.4)
  %5714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5715 = load i32, ptr %5714, align 4, !tbaa !5
  %5716 = call ptr @s2n_strerror_debug(i32 noundef %5715, ptr noundef @.str.4)
  %5717 = call ptr @__errno_location() #9
  %5718 = load i32, ptr %5717, align 4, !tbaa !5
  %5719 = call ptr @strerror(i32 noundef %5718) #8
  %5720 = call ptr @__errno_location() #9
  %5721 = load i32, ptr %5720, align 4, !tbaa !5
  %5722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5709, ptr noundef @.str.5, i32 noundef %5710, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5713, ptr noundef %5716, ptr noundef %5719, i32 noundef %5721) #8
  br label %5723

5723:                                             ; preds = %5706, %5689
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #8
  br label %5724

5724:                                             ; preds = %5723
  br label %5725

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

5726:                                             ; No predecessors!
  br label %5727

5727:                                             ; preds = %5726
  br label %5728

5728:                                             ; preds = %5727, %5668
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  %5732 = load i32, ptr @test_count, align 4, !tbaa !5
  %5733 = add nsw i32 %5732, 1
  store i32 %5733, ptr @test_count, align 4, !tbaa !5
  %5734 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_psk_key_exchange_modes_extension, i32 0, i32 4), align 8, !tbaa !46
  %5735 = load ptr, ptr %122, align 8, !tbaa !9
  %5736 = call i32 %5734(ptr noundef %5735, ptr noundef %120)
  %5737 = icmp eq i32 %5736, -1
  br i1 %5737, label %5738, label %5791

5738:                                             ; preds = %5731
  br label %5739

5739:                                             ; preds = %5738
  br label %5740

5740:                                             ; preds = %5739
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #8
  %5741 = call ptr @__errno_location() #9
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  store i32 %5742, ptr %128, align 4, !tbaa !5
  %5743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5744 = call i32 @s2n_print_stacktrace(ptr noundef %5743)
  %5745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5746 = trunc i8 %5745 to i1
  br i1 %5746, label %5747, label %5769

5747:                                             ; preds = %5740
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = call i32 @fileno(ptr noundef %5748) #8
  %5750 = call i32 @isatty(i32 noundef %5749) #8
  %5751 = icmp ne i32 %5750, 0
  br i1 %5751, label %5752, label %5769

5752:                                             ; preds = %5747
  %5753 = load i32, ptr %128, align 4, !tbaa !5
  %5754 = call ptr @__errno_location() #9
  store i32 %5753, ptr %5754, align 4, !tbaa !5
  %5755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5756 = load i32, ptr @test_count, align 4, !tbaa !5
  %5757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5758 = load i32, ptr %5757, align 4, !tbaa !5
  %5759 = call ptr @s2n_strerror(i32 noundef %5758, ptr noundef @.str.4)
  %5760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5761 = load i32, ptr %5760, align 4, !tbaa !5
  %5762 = call ptr @s2n_strerror_debug(i32 noundef %5761, ptr noundef @.str.4)
  %5763 = call ptr @__errno_location() #9
  %5764 = load i32, ptr %5763, align 4, !tbaa !5
  %5765 = call ptr @strerror(i32 noundef %5764) #8
  %5766 = call ptr @__errno_location() #9
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  %5768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5755, ptr noundef @.str.2, i32 noundef %5756, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5759, ptr noundef %5762, ptr noundef %5765, i32 noundef %5767) #8
  br label %5786

5769:                                             ; preds = %5747, %5740
  %5770 = load i32, ptr %128, align 4, !tbaa !5
  %5771 = call ptr @__errno_location() #9
  store i32 %5770, ptr %5771, align 4, !tbaa !5
  %5772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5773 = load i32, ptr @test_count, align 4, !tbaa !5
  %5774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5775 = load i32, ptr %5774, align 4, !tbaa !5
  %5776 = call ptr @s2n_strerror(i32 noundef %5775, ptr noundef @.str.4)
  %5777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5778 = load i32, ptr %5777, align 4, !tbaa !5
  %5779 = call ptr @s2n_strerror_debug(i32 noundef %5778, ptr noundef @.str.4)
  %5780 = call ptr @__errno_location() #9
  %5781 = load i32, ptr %5780, align 4, !tbaa !5
  %5782 = call ptr @strerror(i32 noundef %5781) #8
  %5783 = call ptr @__errno_location() #9
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5772, ptr noundef @.str.5, i32 noundef %5773, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5776, ptr noundef %5779, ptr noundef %5782, i32 noundef %5784) #8
  br label %5786

5786:                                             ; preds = %5769, %5752
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #8
  br label %5787

5787:                                             ; preds = %5786
  br label %5788

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

5789:                                             ; No predecessors!
  br label %5790

5790:                                             ; preds = %5789
  br label %5791

5791:                                             ; preds = %5790, %5731
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792
  br label %5794

5794:                                             ; preds = %5793
  %5795 = load i32, ptr @test_count, align 4, !tbaa !5
  %5796 = add nsw i32 %5795, 1
  store i32 %5796, ptr @test_count, align 4, !tbaa !5
  %5797 = load ptr, ptr %122, align 8, !tbaa !9
  %5798 = getelementptr inbounds %struct.s2n_connection, ptr %5797, i32 0, i32 33
  %5799 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %5798, i32 0, i32 5
  %5800 = load i32, ptr %5799, align 8, !tbaa !19
  %5801 = icmp eq i32 %5800, 2
  br i1 %5801, label %5855, label %5802

5802:                                             ; preds = %5794
  br label %5803

5803:                                             ; preds = %5802
  br label %5804

5804:                                             ; preds = %5803
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #8
  %5805 = call ptr @__errno_location() #9
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  store i32 %5806, ptr %129, align 4, !tbaa !5
  %5807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5808 = call i32 @s2n_print_stacktrace(ptr noundef %5807)
  %5809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5810 = trunc i8 %5809 to i1
  br i1 %5810, label %5811, label %5833

5811:                                             ; preds = %5804
  %5812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5813 = call i32 @fileno(ptr noundef %5812) #8
  %5814 = call i32 @isatty(i32 noundef %5813) #8
  %5815 = icmp ne i32 %5814, 0
  br i1 %5815, label %5816, label %5833

5816:                                             ; preds = %5811
  %5817 = load i32, ptr %129, align 4, !tbaa !5
  %5818 = call ptr @__errno_location() #9
  store i32 %5817, ptr %5818, align 4, !tbaa !5
  %5819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5820 = load i32, ptr @test_count, align 4, !tbaa !5
  %5821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5822 = load i32, ptr %5821, align 4, !tbaa !5
  %5823 = call ptr @s2n_strerror(i32 noundef %5822, ptr noundef @.str.4)
  %5824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5825 = load i32, ptr %5824, align 4, !tbaa !5
  %5826 = call ptr @s2n_strerror_debug(i32 noundef %5825, ptr noundef @.str.4)
  %5827 = call ptr @__errno_location() #9
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @strerror(i32 noundef %5828) #8
  %5830 = call ptr @__errno_location() #9
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5819, ptr noundef @.str.2, i32 noundef %5820, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 283, ptr noundef %5823, ptr noundef %5826, ptr noundef %5829, i32 noundef %5831) #8
  br label %5850

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

5850:                                             ; preds = %5833, %5816
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #8
  br label %5851

5851:                                             ; preds = %5850
  br label %5852

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

5853:                                             ; No predecessors!
  br label %5854

5854:                                             ; preds = %5853
  br label %5855

5855:                                             ; preds = %5854, %5794
  br label %5856

5856:                                             ; preds = %5855
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

5858:                                             ; preds = %5857
  %5859 = load i32, ptr @test_count, align 4, !tbaa !5
  %5860 = add nsw i32 %5859, 1
  store i32 %5860, ptr @test_count, align 4, !tbaa !5
  %5861 = load ptr, ptr %122, align 8, !tbaa !9
  %5862 = call i32 @s2n_connection_free(ptr noundef %5861)
  %5863 = icmp eq i32 %5862, -1
  br i1 %5863, label %5864, label %5917

5864:                                             ; preds = %5858
  br label %5865

5865:                                             ; preds = %5864
  br label %5866

5866:                                             ; preds = %5865
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #8
  %5867 = call ptr @__errno_location() #9
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  store i32 %5868, ptr %130, align 4, !tbaa !5
  %5869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5870 = call i32 @s2n_print_stacktrace(ptr noundef %5869)
  %5871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5872 = trunc i8 %5871 to i1
  br i1 %5872, label %5873, label %5895

5873:                                             ; preds = %5866
  %5874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5875 = call i32 @fileno(ptr noundef %5874) #8
  %5876 = call i32 @isatty(i32 noundef %5875) #8
  %5877 = icmp ne i32 %5876, 0
  br i1 %5877, label %5878, label %5895

5878:                                             ; preds = %5873
  %5879 = load i32, ptr %130, align 4, !tbaa !5
  %5880 = call ptr @__errno_location() #9
  store i32 %5879, ptr %5880, align 4, !tbaa !5
  %5881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5882 = load i32, ptr @test_count, align 4, !tbaa !5
  %5883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  %5885 = call ptr @s2n_strerror(i32 noundef %5884, ptr noundef @.str.4)
  %5886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5887 = load i32, ptr %5886, align 4, !tbaa !5
  %5888 = call ptr @s2n_strerror_debug(i32 noundef %5887, ptr noundef @.str.4)
  %5889 = call ptr @__errno_location() #9
  %5890 = load i32, ptr %5889, align 4, !tbaa !5
  %5891 = call ptr @strerror(i32 noundef %5890) #8
  %5892 = call ptr @__errno_location() #9
  %5893 = load i32, ptr %5892, align 4, !tbaa !5
  %5894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5881, ptr noundef @.str.2, i32 noundef %5882, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5885, ptr noundef %5888, ptr noundef %5891, i32 noundef %5893) #8
  br label %5912

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

5912:                                             ; preds = %5895, %5878
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #8
  br label %5913

5913:                                             ; preds = %5912
  br label %5914

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

5915:                                             ; No predecessors!
  br label %5916

5916:                                             ; preds = %5915
  br label %5917

5917:                                             ; preds = %5916, %5858
  br label %5918

5918:                                             ; preds = %5917
  br label %5919

5919:                                             ; preds = %5918
  br label %5920

5920:                                             ; preds = %5919
  %5921 = load i32, ptr @test_count, align 4, !tbaa !5
  %5922 = add nsw i32 %5921, 1
  store i32 %5922, ptr @test_count, align 4, !tbaa !5
  %5923 = load ptr, ptr %123, align 8, !tbaa !9
  %5924 = call i32 @s2n_connection_free(ptr noundef %5923)
  %5925 = icmp eq i32 %5924, -1
  br i1 %5925, label %5926, label %5979

5926:                                             ; preds = %5920
  br label %5927

5927:                                             ; preds = %5926
  br label %5928

5928:                                             ; preds = %5927
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #8
  %5929 = call ptr @__errno_location() #9
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  store i32 %5930, ptr %131, align 4, !tbaa !5
  %5931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5932 = call i32 @s2n_print_stacktrace(ptr noundef %5931)
  %5933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5934 = trunc i8 %5933 to i1
  br i1 %5934, label %5935, label %5957

5935:                                             ; preds = %5928
  %5936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5937 = call i32 @fileno(ptr noundef %5936) #8
  %5938 = call i32 @isatty(i32 noundef %5937) #8
  %5939 = icmp ne i32 %5938, 0
  br i1 %5939, label %5940, label %5957

5940:                                             ; preds = %5935
  %5941 = load i32, ptr %131, align 4, !tbaa !5
  %5942 = call ptr @__errno_location() #9
  store i32 %5941, ptr %5942, align 4, !tbaa !5
  %5943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5944 = load i32, ptr @test_count, align 4, !tbaa !5
  %5945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call ptr @s2n_strerror(i32 noundef %5946, ptr noundef @.str.4)
  %5948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call ptr @s2n_strerror_debug(i32 noundef %5949, ptr noundef @.str.4)
  %5951 = call ptr @__errno_location() #9
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @strerror(i32 noundef %5952) #8
  %5954 = call ptr @__errno_location() #9
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5943, ptr noundef @.str.2, i32 noundef %5944, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5947, ptr noundef %5950, ptr noundef %5953, i32 noundef %5955) #8
  br label %5974

5957:                                             ; preds = %5935, %5928
  %5958 = load i32, ptr %131, align 4, !tbaa !5
  %5959 = call ptr @__errno_location() #9
  store i32 %5958, ptr %5959, align 4, !tbaa !5
  %5960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5961 = load i32, ptr @test_count, align 4, !tbaa !5
  %5962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5963 = load i32, ptr %5962, align 4, !tbaa !5
  %5964 = call ptr @s2n_strerror(i32 noundef %5963, ptr noundef @.str.4)
  %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_debug(i32 noundef %5966, ptr noundef @.str.4)
  %5968 = call ptr @__errno_location() #9
  %5969 = load i32, ptr %5968, align 4, !tbaa !5
  %5970 = call ptr @strerror(i32 noundef %5969) #8
  %5971 = call ptr @__errno_location() #9
  %5972 = load i32, ptr %5971, align 4, !tbaa !5
  %5973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5960, ptr noundef @.str.5, i32 noundef %5961, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5964, ptr noundef %5967, ptr noundef %5970, i32 noundef %5972) #8
  br label %5974

5974:                                             ; preds = %5957, %5940
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #8
  br label %5975

5975:                                             ; preds = %5974
  br label %5976

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

5977:                                             ; No predecessors!
  br label %5978

5978:                                             ; preds = %5977
  br label %5979

5979:                                             ; preds = %5978, %5920
  br label %5980

5980:                                             ; preds = %5979
  br label %5981

5981:                                             ; preds = %5980
  br label %5982

5982:                                             ; preds = %5981
  %5983 = load i32, ptr @test_count, align 4, !tbaa !5
  %5984 = add nsw i32 %5983, 1
  store i32 %5984, ptr @test_count, align 4, !tbaa !5
  %5985 = call i32 @s2n_stuffer_free(ptr noundef %120)
  %5986 = icmp eq i32 %5985, -1
  br i1 %5986, label %5987, label %6040

5987:                                             ; preds = %5982
  br label %5988

5988:                                             ; preds = %5987
  br label %5989

5989:                                             ; preds = %5988
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #8
  %5990 = call ptr @__errno_location() #9
  %5991 = load i32, ptr %5990, align 4, !tbaa !5
  store i32 %5991, ptr %132, align 4, !tbaa !5
  %5992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5993 = call i32 @s2n_print_stacktrace(ptr noundef %5992)
  %5994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5995 = trunc i8 %5994 to i1
  br i1 %5995, label %5996, label %6018

5996:                                             ; preds = %5989
  %5997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5998 = call i32 @fileno(ptr noundef %5997) #8
  %5999 = call i32 @isatty(i32 noundef %5998) #8
  %6000 = icmp ne i32 %5999, 0
  br i1 %6000, label %6001, label %6018

6001:                                             ; preds = %5996
  %6002 = load i32, ptr %132, align 4, !tbaa !5
  %6003 = call ptr @__errno_location() #9
  store i32 %6002, ptr %6003, align 4, !tbaa !5
  %6004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6005 = load i32, ptr @test_count, align 4, !tbaa !5
  %6006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @s2n_strerror(i32 noundef %6007, ptr noundef @.str.4)
  %6009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call ptr @s2n_strerror_debug(i32 noundef %6010, ptr noundef @.str.4)
  %6012 = call ptr @__errno_location() #9
  %6013 = load i32, ptr %6012, align 4, !tbaa !5
  %6014 = call ptr @strerror(i32 noundef %6013) #8
  %6015 = call ptr @__errno_location() #9
  %6016 = load i32, ptr %6015, align 4, !tbaa !5
  %6017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6004, ptr noundef @.str.2, i32 noundef %6005, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 287, ptr noundef %6008, ptr noundef %6011, ptr noundef %6014, i32 noundef %6016) #8
  br label %6035

6018:                                             ; preds = %5996, %5989
  %6019 = load i32, ptr %132, align 4, !tbaa !5
  %6020 = call ptr @__errno_location() #9
  store i32 %6019, ptr %6020, align 4, !tbaa !5
  %6021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6022 = load i32, ptr @test_count, align 4, !tbaa !5
  %6023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6024 = load i32, ptr %6023, align 4, !tbaa !5
  %6025 = call ptr @s2n_strerror(i32 noundef %6024, ptr noundef @.str.4)
  %6026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6027 = load i32, ptr %6026, align 4, !tbaa !5
  %6028 = call ptr @s2n_strerror_debug(i32 noundef %6027, ptr noundef @.str.4)
  %6029 = call ptr @__errno_location() #9
  %6030 = load i32, ptr %6029, align 4, !tbaa !5
  %6031 = call ptr @strerror(i32 noundef %6030) #8
  %6032 = call ptr @__errno_location() #9
  %6033 = load i32, ptr %6032, align 4, !tbaa !5
  %6034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6021, ptr noundef @.str.5, i32 noundef %6022, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 287, ptr noundef %6025, ptr noundef %6028, ptr noundef %6031, i32 noundef %6033) #8
  br label %6035

6035:                                             ; preds = %6018, %6001
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #8
  br label %6036

6036:                                             ; preds = %6035
  br label %6037

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

6038:                                             ; No predecessors!
  br label %6039

6039:                                             ; preds = %6038
  br label %6040

6040:                                             ; preds = %6039, %5982
  br label %6041

6041:                                             ; preds = %6040
  br label %6042

6042:                                             ; preds = %6041
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %120) #8
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

6044:                                             ; preds = %6043
  %6045 = call i32 @s2n_cleanup()
  %6046 = icmp eq i32 %6045, -1
  br i1 %6046, label %6047, label %6098

6047:                                             ; preds = %6044
  br label %6048

6048:                                             ; preds = %6047
  br label %6049

6049:                                             ; preds = %6048
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #8
  %6050 = call ptr @__errno_location() #9
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  store i32 %6051, ptr %133, align 4, !tbaa !5
  %6052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6053 = call i32 @s2n_print_stacktrace(ptr noundef %6052)
  %6054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6055 = trunc i8 %6054 to i1
  br i1 %6055, label %6056, label %6078

6056:                                             ; preds = %6049
  %6057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6058 = call i32 @fileno(ptr noundef %6057) #8
  %6059 = call i32 @isatty(i32 noundef %6058) #8
  %6060 = icmp ne i32 %6059, 0
  br i1 %6060, label %6061, label %6078

6061:                                             ; preds = %6056
  %6062 = load i32, ptr %133, align 4, !tbaa !5
  %6063 = call ptr @__errno_location() #9
  store i32 %6062, ptr %6063, align 4, !tbaa !5
  %6064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6065 = load i32, ptr @test_count, align 4, !tbaa !5
  %6066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6067 = load i32, ptr %6066, align 4, !tbaa !5
  %6068 = call ptr @s2n_strerror(i32 noundef %6067, ptr noundef @.str.4)
  %6069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6070 = load i32, ptr %6069, align 4, !tbaa !5
  %6071 = call ptr @s2n_strerror_debug(i32 noundef %6070, ptr noundef @.str.4)
  %6072 = call ptr @__errno_location() #9
  %6073 = load i32, ptr %6072, align 4, !tbaa !5
  %6074 = call ptr @strerror(i32 noundef %6073) #8
  %6075 = call ptr @__errno_location() #9
  %6076 = load i32, ptr %6075, align 4, !tbaa !5
  %6077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6064, ptr noundef @.str.2, i32 noundef %6065, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6068, ptr noundef %6071, ptr noundef %6074, i32 noundef %6076) #8
  br label %6095

6078:                                             ; preds = %6056, %6049
  %6079 = load i32, ptr %133, align 4, !tbaa !5
  %6080 = call ptr @__errno_location() #9
  store i32 %6079, ptr %6080, align 4, !tbaa !5
  %6081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6082 = load i32, ptr @test_count, align 4, !tbaa !5
  %6083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6084 = load i32, ptr %6083, align 4, !tbaa !5
  %6085 = call ptr @s2n_strerror(i32 noundef %6084, ptr noundef @.str.4)
  %6086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  %6088 = call ptr @s2n_strerror_debug(i32 noundef %6087, ptr noundef @.str.4)
  %6089 = call ptr @__errno_location() #9
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  %6091 = call ptr @strerror(i32 noundef %6090) #8
  %6092 = call ptr @__errno_location() #9
  %6093 = load i32, ptr %6092, align 4, !tbaa !5
  %6094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6081, ptr noundef @.str.5, i32 noundef %6082, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6085, ptr noundef %6088, ptr noundef %6091, i32 noundef %6093) #8
  br label %6095

6095:                                             ; preds = %6078, %6061
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #8
  br label %6096

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

6097:                                             ; No predecessors!
  br label %6098

6098:                                             ; preds = %6097, %6044
  br label %6099

6099:                                             ; preds = %6098
  br label %6100

6100:                                             ; preds = %6099
  br label %6101

6101:                                             ; preds = %6100
  %6102 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6103 = icmp eq i32 %6102, -1
  br i1 %6103, label %6104, label %6155

6104:                                             ; preds = %6101
  br label %6105

6105:                                             ; preds = %6104
  br label %6106

6106:                                             ; preds = %6105
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #8
  %6107 = call ptr @__errno_location() #9
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  store i32 %6108, ptr %134, align 4, !tbaa !5
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = call i32 @s2n_print_stacktrace(ptr noundef %6109)
  %6111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6112 = trunc i8 %6111 to i1
  br i1 %6112, label %6113, label %6135

6113:                                             ; preds = %6106
  %6114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6115 = call i32 @fileno(ptr noundef %6114) #8
  %6116 = call i32 @isatty(i32 noundef %6115) #8
  %6117 = icmp ne i32 %6116, 0
  br i1 %6117, label %6118, label %6135

6118:                                             ; preds = %6113
  %6119 = load i32, ptr %134, align 4, !tbaa !5
  %6120 = call ptr @__errno_location() #9
  store i32 %6119, ptr %6120, align 4, !tbaa !5
  %6121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6122 = load i32, ptr @test_count, align 4, !tbaa !5
  %6123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  %6125 = call ptr @s2n_strerror(i32 noundef %6124, ptr noundef @.str.4)
  %6126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6127 = load i32, ptr %6126, align 4, !tbaa !5
  %6128 = call ptr @s2n_strerror_debug(i32 noundef %6127, ptr noundef @.str.4)
  %6129 = call ptr @__errno_location() #9
  %6130 = load i32, ptr %6129, align 4, !tbaa !5
  %6131 = call ptr @strerror(i32 noundef %6130) #8
  %6132 = call ptr @__errno_location() #9
  %6133 = load i32, ptr %6132, align 4, !tbaa !5
  %6134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6121, ptr noundef @.str.2, i32 noundef %6122, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6125, ptr noundef %6128, ptr noundef %6131, i32 noundef %6133) #8
  br label %6152

6135:                                             ; preds = %6113, %6106
  %6136 = load i32, ptr %134, align 4, !tbaa !5
  %6137 = call ptr @__errno_location() #9
  store i32 %6136, ptr %6137, align 4, !tbaa !5
  %6138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6139 = load i32, ptr @test_count, align 4, !tbaa !5
  %6140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6141 = load i32, ptr %6140, align 4, !tbaa !5
  %6142 = call ptr @s2n_strerror(i32 noundef %6141, ptr noundef @.str.4)
  %6143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6144 = load i32, ptr %6143, align 4, !tbaa !5
  %6145 = call ptr @s2n_strerror_debug(i32 noundef %6144, ptr noundef @.str.4)
  %6146 = call ptr @__errno_location() #9
  %6147 = load i32, ptr %6146, align 4, !tbaa !5
  %6148 = call ptr @strerror(i32 noundef %6147) #8
  %6149 = call ptr @__errno_location() #9
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  %6151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6138, ptr noundef @.str.5, i32 noundef %6139, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6142, ptr noundef %6145, ptr noundef %6148, i32 noundef %6150) #8
  br label %6152

6152:                                             ; preds = %6135, %6118
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #8
  br label %6153

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

6154:                                             ; No predecessors!
  br label %6155

6155:                                             ; preds = %6154, %6101
  br label %6156

6156:                                             ; preds = %6155
  %6157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6158 = trunc i8 %6157 to i1
  br i1 %6158, label %6159, label %6175

6159:                                             ; preds = %6156
  %6160 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6161 = call i32 @fileno(ptr noundef %6160) #8
  %6162 = call i32 @isatty(i32 noundef %6161) #8
  %6163 = icmp ne i32 %6162, 0
  br i1 %6163, label %6164, label %6175

6164:                                             ; preds = %6159
  %6165 = load i32, ptr @test_count, align 4, !tbaa !5
  %6166 = icmp ne i32 %6165, 0
  br i1 %6166, label %6167, label %6171

6167:                                             ; preds = %6164
  %6168 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6169 = load i32, ptr @test_count, align 4, !tbaa !5
  %6170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6168, ptr noundef @.str.64, i32 noundef %6169) #8
  br label %6174

6171:                                             ; preds = %6164
  %6172 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6172, ptr noundef @.str.65) #8
  br label %6174

6174:                                             ; preds = %6171, %6167
  br label %6186

6175:                                             ; preds = %6159, %6156
  %6176 = load i32, ptr @test_count, align 4, !tbaa !5
  %6177 = icmp ne i32 %6176, 0
  br i1 %6177, label %6178, label %6182

6178:                                             ; preds = %6175
  %6179 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6180 = load i32, ptr @test_count, align 4, !tbaa !5
  %6181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6179, ptr noundef @.str.66, i32 noundef %6180) #8
  br label %6185

6182:                                             ; preds = %6175
  %6183 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6183, ptr noundef @.str.67) #8
  br label %6185

6185:                                             ; preds = %6182, %6178
  br label %6186

6186:                                             ; preds = %6185, %6174
  store i32 0, ptr %3, align 4
  br label %6188

6187:                                             ; No predecessors!
  br label %6188

6188:                                             ; preds = %6187, %6186
  %6189 = load i32, ptr %3, align 4
  ret i32 %6189
}

; 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

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

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) #2

declare i32 @s2n_stuffer_reread(ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare ptr @s2n_test_psk_new(ptr noundef) #2

declare i32 @s2n_psk_free(ptr noundef) #2

declare i32 @s2n_connection_append_psk(ptr noundef, 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 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { noreturn nounwind }

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

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


; 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 }
%struct.s2n_stuffer_reservation = type { ptr, 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 [100 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 [64 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_psk_key_exchange_modes_extension = external constant %struct.s2n_extension_type, align 8
@.str.10 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.67 = 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 %struct.s2n_stuffer, align 8
  %4 = alloca i8, align 1
  %5 = alloca i8, align 1
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca %struct.s2n_stuffer_reservation, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %20 = load ptr, ptr @stdout, align 8, !tbaa !9
  %21 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %22 = load ptr, ptr @stdout, align 8, !tbaa !9
  %23 = tail call i32 @fflush(ptr noundef %22)
  %24 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %25 = icmp eq i32 %24, -1
  br i1 %25, label %26, label %50

26:                                               ; preds = %2
  %27 = tail call ptr @__errno_location() #10
  %28 = load i32, ptr %27, align 4, !tbaa !5
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = tail call i32 @s2n_print_stacktrace(ptr noundef %29) #9
  %31 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %32 = trunc nuw i8 %31 to i1
  br i1 %32, label %33, label %37

33:                                               ; preds = %26
  %34 = load ptr, ptr @stderr, align 8, !tbaa !9
  %35 = tail call i32 @fileno(ptr noundef %34) #9
  %36 = tail call i32 @isatty(i32 noundef %35) #9
  %.not347 = icmp eq i32 %36, 0
  br i1 %.not347, label %37, label %38

37:                                               ; preds = %33, %26
  br label %38

38:                                               ; preds = %33, %37
  %.str.5.sink = phi ptr [ @.str.5, %37 ], [ @.str.2, %33 ]
  store i32 %28, ptr %27, align 4, !tbaa !5
  %39 = load ptr, ptr @stderr, align 8, !tbaa !9
  %40 = load i32, ptr @test_count, align 4, !tbaa !5
  %41 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %42 = load i32, ptr %41, align 4, !tbaa !5
  %43 = tail call ptr @s2n_strerror(i32 noundef %42, ptr noundef nonnull @.str.4) #9
  %44 = load i32, ptr %41, align 4, !tbaa !5
  %45 = tail call ptr @s2n_strerror_debug(i32 noundef %44, ptr noundef nonnull @.str.4) #9
  %46 = load i32, ptr %27, align 4, !tbaa !5
  %47 = tail call ptr @strerror(i32 noundef %46) #9
  %48 = load i32, ptr %27, align 4, !tbaa !5
  %49 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %39, ptr noundef nonnull %.str.5.sink, i32 noundef %40, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %43, ptr noundef %45, ptr noundef %47, i32 noundef %48) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

50:                                               ; preds = %2
  %51 = load i32, ptr @test_count, align 4, !tbaa !5
  %52 = add nsw i32 %51, 1
  store i32 %52, ptr @test_count, align 4, !tbaa !5
  %53 = tail call i32 @s2n_enable_atexit() #9
  %54 = icmp eq i32 %53, -1
  br i1 %54, label %55, label %79

55:                                               ; preds = %50
  %56 = tail call ptr @__errno_location() #10
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @s2n_print_stacktrace(ptr noundef %58) #9
  %60 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %61 = trunc nuw i8 %60 to i1
  br i1 %61, label %62, label %66

62:                                               ; preds = %55
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = tail call i32 @fileno(ptr noundef %63) #9
  %65 = tail call i32 @isatty(i32 noundef %64) #9
  %.not346 = icmp eq i32 %65, 0
  br i1 %.not346, label %66, label %67

66:                                               ; preds = %62, %55
  br label %67

67:                                               ; preds = %62, %66
  %.str.5.sink358 = phi ptr [ @.str.5, %66 ], [ @.str.2, %62 ]
  store i32 %57, ptr %56, align 4, !tbaa !5
  %68 = load ptr, ptr @stderr, align 8, !tbaa !9
  %69 = load i32, ptr @test_count, align 4, !tbaa !5
  %70 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = tail call ptr @s2n_strerror(i32 noundef %71, ptr noundef nonnull @.str.4) #9
  %73 = load i32, ptr %70, align 4, !tbaa !5
  %74 = tail call ptr @s2n_strerror_debug(i32 noundef %73, ptr noundef nonnull @.str.4) #9
  %75 = load i32, ptr %56, align 4, !tbaa !5
  %76 = tail call ptr @strerror(i32 noundef %75) #9
  %77 = load i32, ptr %56, align 4, !tbaa !5
  %78 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %68, ptr noundef nonnull %.str.5.sink358, i32 noundef %69, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %72, ptr noundef %74, ptr noundef %76, i32 noundef %77) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

79:                                               ; preds = %50
  %80 = tail call i32 @s2n_init() #9
  %81 = icmp eq i32 %80, -1
  br i1 %81, label %82, label %106

82:                                               ; preds = %79
  %83 = tail call ptr @__errno_location() #10
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @s2n_print_stacktrace(ptr noundef %85) #9
  %87 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %88 = trunc nuw i8 %87 to i1
  br i1 %88, label %89, label %93

89:                                               ; preds = %82
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = tail call i32 @fileno(ptr noundef %90) #9
  %92 = tail call i32 @isatty(i32 noundef %91) #9
  %.not345 = icmp eq i32 %92, 0
  br i1 %.not345, label %93, label %94

93:                                               ; preds = %89, %82
  br label %94

94:                                               ; preds = %89, %93
  %.str.5.sink369 = phi ptr [ @.str.5, %93 ], [ @.str.2, %89 ]
  store i32 %84, ptr %83, align 4, !tbaa !5
  %95 = load ptr, ptr @stderr, align 8, !tbaa !9
  %96 = load i32, ptr @test_count, align 4, !tbaa !5
  %97 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %98 = load i32, ptr %97, align 4, !tbaa !5
  %99 = tail call ptr @s2n_strerror(i32 noundef %98, ptr noundef nonnull @.str.4) #9
  %100 = load i32, ptr %97, align 4, !tbaa !5
  %101 = tail call ptr @s2n_strerror_debug(i32 noundef %100, ptr noundef nonnull @.str.4) #9
  %102 = load i32, ptr %83, align 4, !tbaa !5
  %103 = tail call ptr @strerror(i32 noundef %102) #9
  %104 = load i32, ptr %83, align 4, !tbaa !5
  %105 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef nonnull %.str.5.sink369, i32 noundef %96, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef %99, ptr noundef %101, ptr noundef %103, i32 noundef %104) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

106:                                              ; preds = %79
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, i8 0, i64 40, i1 false)
  %107 = load i32, ptr @test_count, align 4, !tbaa !5
  %108 = add nsw i32 %107, 1
  store i32 %108, ptr @test_count, align 4, !tbaa !5
  %109 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #9
  %110 = icmp eq i32 %109, -1
  br i1 %110, label %111, label %135

111:                                              ; preds = %106
  %112 = tail call ptr @__errno_location() #10
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = call i32 @s2n_print_stacktrace(ptr noundef %114) #9
  %116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %117 = trunc nuw i8 %116 to i1
  br i1 %117, label %118, label %122

118:                                              ; preds = %111
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = call i32 @fileno(ptr noundef %119) #9
  %121 = call i32 @isatty(i32 noundef %120) #9
  %.not344 = icmp eq i32 %121, 0
  br i1 %.not344, label %122, label %123

122:                                              ; preds = %118, %111
  br label %123

123:                                              ; preds = %118, %122
  %.str.5.sink380 = phi ptr [ @.str.5, %122 ], [ @.str.2, %118 ]
  store i32 %113, ptr %112, align 4, !tbaa !5
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call ptr @s2n_strerror(i32 noundef %127, ptr noundef nonnull @.str.4) #9
  %129 = load i32, ptr %126, align 4, !tbaa !5
  %130 = call ptr @s2n_strerror_debug(i32 noundef %129, ptr noundef nonnull @.str.4) #9
  %131 = load i32, ptr %112, align 4, !tbaa !5
  %132 = call ptr @strerror(i32 noundef %131) #9
  %133 = load i32, ptr %112, align 4, !tbaa !5
  %134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef nonnull %.str.5.sink380, i32 noundef %125, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef %128, ptr noundef %130, ptr noundef %132, i32 noundef %133) #11
  call void @exit(i32 noundef 1) #12
  unreachable

135:                                              ; preds = %106
  %136 = load i32, ptr @test_count, align 4, !tbaa !5
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr @test_count, align 4, !tbaa !5
  %138 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %139 = icmp eq ptr %138, null
  br i1 %139, label %140, label %164

140:                                              ; preds = %135
  %141 = tail call ptr @__errno_location() #10
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = call i32 @s2n_print_stacktrace(ptr noundef %143) #9
  %145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %146 = trunc nuw i8 %145 to i1
  br i1 %146, label %147, label %151

147:                                              ; preds = %140
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = call i32 @fileno(ptr noundef %148) #9
  %150 = call i32 @isatty(i32 noundef %149) #9
  %.not343 = icmp eq i32 %150, 0
  br i1 %.not343, label %151, label %152

151:                                              ; preds = %147, %140
  br label %152

152:                                              ; preds = %147, %151
  %.str.5.sink391 = phi ptr [ @.str.5, %151 ], [ @.str.2, %147 ]
  store i32 %142, ptr %141, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = call ptr @s2n_strerror(i32 noundef %156, ptr noundef nonnull @.str.4) #9
  %158 = load i32, ptr %155, align 4, !tbaa !5
  %159 = call ptr @s2n_strerror_debug(i32 noundef %158, ptr noundef nonnull @.str.4) #9
  %160 = load i32, ptr %141, align 4, !tbaa !5
  %161 = call ptr @strerror(i32 noundef %160) #9
  %162 = load i32, ptr %141, align 4, !tbaa !5
  %163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef nonnull %.str.5.sink391, i32 noundef %154, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %157, ptr noundef %159, ptr noundef %161, i32 noundef %162) #11
  call void @exit(i32 noundef 1) #12
  unreachable

164:                                              ; preds = %135
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr @test_count, align 4, !tbaa !5
  %167 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_psk_key_exchange_modes_extension, i64 8), align 8, !tbaa !15
  %168 = call i32 %167(ptr noundef nonnull %138, ptr noundef nonnull %3) #9
  %169 = icmp eq i32 %168, -1
  br i1 %169, label %170, label %194

170:                                              ; preds = %164
  %171 = tail call ptr @__errno_location() #10
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @s2n_print_stacktrace(ptr noundef %173) #9
  %175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %176 = trunc nuw i8 %175 to i1
  br i1 %176, label %177, label %181

177:                                              ; preds = %170
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = call i32 @fileno(ptr noundef %178) #9
  %180 = call i32 @isatty(i32 noundef %179) #9
  %.not342 = icmp eq i32 %180, 0
  br i1 %.not342, label %181, label %182

181:                                              ; preds = %177, %170
  br label %182

182:                                              ; preds = %177, %181
  %.str.5.sink402 = phi ptr [ @.str.5, %181 ], [ @.str.2, %177 ]
  store i32 %172, ptr %171, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @s2n_strerror(i32 noundef %186, ptr noundef nonnull @.str.4) #9
  %188 = load i32, ptr %185, align 4, !tbaa !5
  %189 = call ptr @s2n_strerror_debug(i32 noundef %188, ptr noundef nonnull @.str.4) #9
  %190 = load i32, ptr %171, align 4, !tbaa !5
  %191 = call ptr @strerror(i32 noundef %190) #9
  %192 = load i32, ptr %171, align 4, !tbaa !5
  %193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull %.str.5.sink402, i32 noundef %184, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %187, ptr noundef %189, ptr noundef %191, i32 noundef %192) #11
  call void @exit(i32 noundef 1) #12
  unreachable

194:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #9
  store i8 0, ptr %4, align 1, !tbaa !18
  %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_stuffer_read_uint8(ptr noundef nonnull %3, ptr noundef nonnull %4) #9
  %198 = icmp eq i32 %197, -1
  br i1 %198, label %199, label %223

199:                                              ; preds = %194
  %200 = tail call ptr @__errno_location() #10
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = call i32 @s2n_print_stacktrace(ptr noundef %202) #9
  %204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %205 = trunc nuw i8 %204 to i1
  br i1 %205, label %206, label %210

206:                                              ; preds = %199
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = call i32 @fileno(ptr noundef %207) #9
  %209 = call i32 @isatty(i32 noundef %208) #9
  %.not341 = icmp eq i32 %209, 0
  br i1 %.not341, label %210, label %211

210:                                              ; preds = %206, %199
  br label %211

211:                                              ; preds = %206, %210
  %.str.5.sink413 = phi ptr [ @.str.5, %210 ], [ @.str.2, %206 ]
  store i32 %201, ptr %200, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror(i32 noundef %215, ptr noundef nonnull @.str.4) #9
  %217 = load i32, ptr %214, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror_debug(i32 noundef %217, ptr noundef nonnull @.str.4) #9
  %219 = load i32, ptr %200, align 4, !tbaa !5
  %220 = call ptr @strerror(i32 noundef %219) #9
  %221 = load i32, ptr %200, align 4, !tbaa !5
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %212, ptr noundef nonnull %.str.5.sink413, i32 noundef %213, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 35, ptr noundef %216, ptr noundef %218, ptr noundef %220, i32 noundef %221) #11
  call void @exit(i32 noundef 1) #12
  unreachable

223:                                              ; preds = %194
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = load i8, ptr %4, align 1, !tbaa !18
  %227 = icmp eq i8 %226, 1
  br i1 %227, label %252, label %228

228:                                              ; preds = %223
  %229 = tail call ptr @__errno_location() #10
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @s2n_print_stacktrace(ptr noundef %231) #9
  %233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %234 = trunc nuw i8 %233 to i1
  br i1 %234, label %235, label %239

235:                                              ; preds = %228
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @fileno(ptr noundef %236) #9
  %238 = call i32 @isatty(i32 noundef %237) #9
  %.not = icmp eq i32 %238, 0
  br i1 %.not, label %239, label %240

239:                                              ; preds = %235, %228
  br label %240

240:                                              ; preds = %235, %239
  %.str.5.sink424 = phi ptr [ @.str.5, %239 ], [ @.str.2, %235 ]
  store i32 %230, ptr %229, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror(i32 noundef %244, ptr noundef nonnull @.str.4) #9
  %246 = load i32, ptr %243, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror_debug(i32 noundef %246, ptr noundef nonnull @.str.4) #9
  %248 = load i32, ptr %229, align 4, !tbaa !5
  %249 = call ptr @strerror(i32 noundef %248) #9
  %250 = load i32, ptr %229, align 4, !tbaa !5
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %241, ptr noundef nonnull %.str.5.sink424, i32 noundef %242, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %245, ptr noundef %247, ptr noundef %249, i32 noundef %250) #11
  call void @exit(i32 noundef 1) #12
  unreachable

252:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9
  store i8 0, ptr %5, align 1, !tbaa !18
  %253 = add nsw i32 %224, 2
  store i32 %253, ptr @test_count, align 4, !tbaa !5
  %254 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %3, ptr noundef nonnull %5) #9
  %255 = icmp eq i32 %254, -1
  br i1 %255, label %256, label %280

256:                                              ; preds = %252
  %257 = tail call ptr @__errno_location() #10
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = call i32 @s2n_print_stacktrace(ptr noundef %259) #9
  %261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %262 = trunc nuw i8 %261 to i1
  br i1 %262, label %263, label %267

263:                                              ; preds = %256
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @fileno(ptr noundef %264) #9
  %266 = call i32 @isatty(i32 noundef %265) #9
  %.not340 = icmp eq i32 %266, 0
  br i1 %.not340, label %267, label %268

267:                                              ; preds = %263, %256
  br label %268

268:                                              ; preds = %263, %267
  %.str.5.sink435 = phi ptr [ @.str.5, %267 ], [ @.str.2, %263 ]
  store i32 %258, ptr %257, align 4, !tbaa !5
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call ptr @s2n_strerror(i32 noundef %272, ptr noundef nonnull @.str.4) #9
  %274 = load i32, ptr %271, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror_debug(i32 noundef %274, ptr noundef nonnull @.str.4) #9
  %276 = load i32, ptr %257, align 4, !tbaa !5
  %277 = call ptr @strerror(i32 noundef %276) #9
  %278 = load i32, ptr %257, align 4, !tbaa !5
  %279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %269, ptr noundef nonnull %.str.5.sink435, i32 noundef %270, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %273, ptr noundef %275, ptr noundef %277, i32 noundef %278) #11
  call void @exit(i32 noundef 1) #12
  unreachable

280:                                              ; preds = %252
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = add nsw i32 %281, 1
  store i32 %282, ptr @test_count, align 4, !tbaa !5
  %283 = load i8, ptr %5, align 1, !tbaa !18
  %284 = icmp eq i8 %283, 1
  br i1 %284, label %309, label %285

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

292:                                              ; preds = %285
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = call i32 @fileno(ptr noundef %293) #9
  %295 = call i32 @isatty(i32 noundef %294) #9
  %.not249 = icmp eq i32 %295, 0
  br i1 %.not249, label %296, label %297

296:                                              ; preds = %292, %285
  br label %297

297:                                              ; preds = %292, %296
  %.str.5.sink446 = phi ptr [ @.str.5, %296 ], [ @.str.2, %292 ]
  store i32 %287, ptr %286, align 4, !tbaa !5
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %301 = load i32, ptr %300, align 4, !tbaa !5
  %302 = call ptr @s2n_strerror(i32 noundef %301, ptr noundef nonnull @.str.4) #9
  %303 = load i32, ptr %300, align 4, !tbaa !5
  %304 = call ptr @s2n_strerror_debug(i32 noundef %303, ptr noundef nonnull @.str.4) #9
  %305 = load i32, ptr %286, align 4, !tbaa !5
  %306 = call ptr @strerror(i32 noundef %305) #9
  %307 = load i32, ptr %286, align 4, !tbaa !5
  %308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %298, ptr noundef nonnull %.str.5.sink446, i32 noundef %299, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %302, ptr noundef %304, ptr noundef %306, i32 noundef %307) #11
  call void @exit(i32 noundef 1) #12
  unreachable

309:                                              ; preds = %280
  %310 = add nsw i32 %281, 2
  store i32 %310, ptr @test_count, align 4, !tbaa !5
  %311 = call i32 @s2n_connection_free(ptr noundef nonnull %138) #9
  %312 = icmp eq i32 %311, -1
  br i1 %312, label %313, label %337

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

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

324:                                              ; preds = %320, %313
  br label %325

325:                                              ; preds = %320, %324
  %.str.5.sink457 = phi ptr [ @.str.5, %324 ], [ @.str.2, %320 ]
  store i32 %315, ptr %314, align 4, !tbaa !5
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror(i32 noundef %329, ptr noundef nonnull @.str.4) #9
  %331 = load i32, ptr %328, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror_debug(i32 noundef %331, ptr noundef nonnull @.str.4) #9
  %333 = load i32, ptr %314, align 4, !tbaa !5
  %334 = call ptr @strerror(i32 noundef %333) #9
  %335 = load i32, ptr %314, align 4, !tbaa !5
  %336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %326, ptr noundef nonnull %.str.5.sink457, i32 noundef %327, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %330, ptr noundef %332, ptr noundef %334, i32 noundef %335) #11
  call void @exit(i32 noundef 1) #12
  unreachable

337:                                              ; preds = %309
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr @test_count, align 4, !tbaa !5
  %340 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #9
  %341 = icmp eq i32 %340, -1
  br i1 %341, label %342, label %366

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

349:                                              ; preds = %342
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @fileno(ptr noundef %350) #9
  %352 = call i32 @isatty(i32 noundef %351) #9
  %.not338 = icmp eq i32 %352, 0
  br i1 %.not338, label %353, label %354

353:                                              ; preds = %349, %342
  br label %354

354:                                              ; preds = %349, %353
  %.str.5.sink468 = phi ptr [ @.str.5, %353 ], [ @.str.2, %349 ]
  store i32 %344, ptr %343, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror(i32 noundef %358, ptr noundef nonnull @.str.4) #9
  %360 = load i32, ptr %357, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror_debug(i32 noundef %360, ptr noundef nonnull @.str.4) #9
  %362 = load i32, ptr %343, align 4, !tbaa !5
  %363 = call ptr @strerror(i32 noundef %362) #9
  %364 = load i32, ptr %343, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %355, ptr noundef nonnull %.str.5.sink468, i32 noundef %356, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %359, ptr noundef %361, ptr noundef %363, i32 noundef %364) #11
  call void @exit(i32 noundef 1) #12
  unreachable

366:                                              ; preds = %337
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #9
  %370 = icmp eq i32 %369, -1
  br i1 %370, label %371, label %395

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

378:                                              ; preds = %371
  %379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %380 = call i32 @fileno(ptr noundef %379) #9
  %381 = call i32 @isatty(i32 noundef %380) #9
  %.not337 = icmp eq i32 %381, 0
  br i1 %.not337, label %382, label %383

382:                                              ; preds = %378, %371
  br label %383

383:                                              ; preds = %378, %382
  %.str.5.sink479 = phi ptr [ @.str.5, %382 ], [ @.str.2, %378 ]
  store i32 %373, ptr %372, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror(i32 noundef %387, ptr noundef nonnull @.str.4) #9
  %389 = load i32, ptr %386, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror_debug(i32 noundef %389, ptr noundef nonnull @.str.4) #9
  %391 = load i32, ptr %372, align 4, !tbaa !5
  %392 = call ptr @strerror(i32 noundef %391) #9
  %393 = load i32, ptr %372, align 4, !tbaa !5
  %394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull %.str.5.sink479, i32 noundef %385, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %388, ptr noundef %390, ptr noundef %392, i32 noundef %393) #11
  call void @exit(i32 noundef 1) #12
  unreachable

395:                                              ; preds = %366
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %399 = icmp eq ptr %398, null
  br i1 %399, label %400, label %424

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

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

411:                                              ; preds = %407, %400
  br label %412

412:                                              ; preds = %407, %411
  %.str.5.sink490 = phi ptr [ @.str.5, %411 ], [ @.str.2, %407 ]
  store i32 %402, ptr %401, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef nonnull @.str.4) #9
  %418 = load i32, ptr %415, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef nonnull @.str.4) #9
  %420 = load i32, ptr %401, align 4, !tbaa !5
  %421 = call ptr @strerror(i32 noundef %420) #9
  %422 = load i32, ptr %401, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef nonnull %.str.5.sink490, i32 noundef %414, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %417, ptr noundef %419, ptr noundef %421, i32 noundef %422) #11
  call void @exit(i32 noundef 1) #12
  unreachable

424:                                              ; preds = %395
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = getelementptr inbounds i8, ptr %398, i64 1744
  %428 = load i32, ptr %427, align 8, !tbaa !19
  %429 = icmp eq i32 %428, 0
  br i1 %429, label %454, label %430

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

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @fileno(ptr noundef %438) #9
  %440 = call i32 @isatty(i32 noundef %439) #9
  %.not250 = icmp eq i32 %440, 0
  br i1 %.not250, label %441, label %442

441:                                              ; preds = %437, %430
  br label %442

442:                                              ; preds = %437, %441
  %.str.5.sink501 = phi ptr [ @.str.5, %441 ], [ @.str.2, %437 ]
  store i32 %432, ptr %431, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef nonnull @.str.4) #9
  %448 = load i32, ptr %445, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror_debug(i32 noundef %448, ptr noundef nonnull @.str.4) #9
  %450 = load i32, ptr %431, align 4, !tbaa !5
  %451 = call ptr @strerror(i32 noundef %450) #9
  %452 = load i32, ptr %431, align 4, !tbaa !5
  %453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.5.sink501, i32 noundef %444, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %447, ptr noundef %449, ptr noundef %451, i32 noundef %452) #11
  call void @exit(i32 noundef 1) #12
  unreachable

454:                                              ; preds = %424
  %455 = getelementptr inbounds i8, ptr %398, i64 220
  store i8 33, ptr %455, align 4, !tbaa !45
  %456 = add nsw i32 %425, 2
  store i32 %456, ptr @test_count, align 4, !tbaa !5
  %457 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %6, i8 noundef zeroext 1) #9
  %458 = icmp eq i32 %457, -1
  br i1 %458, label %459, label %483

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

466:                                              ; preds = %459
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = call i32 @fileno(ptr noundef %467) #9
  %469 = call i32 @isatty(i32 noundef %468) #9
  %.not335 = icmp eq i32 %469, 0
  br i1 %.not335, label %470, label %471

470:                                              ; preds = %466, %459
  br label %471

471:                                              ; preds = %466, %470
  %.str.5.sink512 = phi ptr [ @.str.5, %470 ], [ @.str.2, %466 ]
  store i32 %461, ptr %460, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror(i32 noundef %475, ptr noundef nonnull @.str.4) #9
  %477 = load i32, ptr %474, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef nonnull @.str.4) #9
  %479 = load i32, ptr %460, align 4, !tbaa !5
  %480 = call ptr @strerror(i32 noundef %479) #9
  %481 = load i32, ptr %460, align 4, !tbaa !5
  %482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %472, ptr noundef nonnull %.str.5.sink512, i32 noundef %473, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %476, ptr noundef %478, ptr noundef %480, i32 noundef %481) #11
  call void @exit(i32 noundef 1) #12
  unreachable

483:                                              ; preds = %454
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = add nsw i32 %484, 1
  store i32 %485, ptr @test_count, align 4, !tbaa !5
  %486 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %6, i8 noundef zeroext 1) #9
  %487 = icmp eq i32 %486, -1
  br i1 %487, label %488, label %512

488:                                              ; preds = %483
  %489 = tail call ptr @__errno_location() #10
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @s2n_print_stacktrace(ptr noundef %491) #9
  %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 = %488
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @fileno(ptr noundef %496) #9
  %498 = call i32 @isatty(i32 noundef %497) #9
  %.not334 = icmp eq i32 %498, 0
  br i1 %.not334, label %499, label %500

499:                                              ; preds = %495, %488
  br label %500

500:                                              ; preds = %495, %499
  %.str.5.sink523 = phi ptr [ @.str.5, %499 ], [ @.str.2, %495 ]
  store i32 %490, ptr %489, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror(i32 noundef %504, ptr noundef nonnull @.str.4) #9
  %506 = load i32, ptr %503, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef nonnull @.str.4) #9
  %508 = load i32, ptr %489, align 4, !tbaa !5
  %509 = call ptr @strerror(i32 noundef %508) #9
  %510 = load i32, ptr %489, align 4, !tbaa !5
  %511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %501, ptr noundef nonnull %.str.5.sink523, i32 noundef %502, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %505, ptr noundef %507, ptr noundef %509, i32 noundef %510) #11
  call void @exit(i32 noundef 1) #12
  unreachable

512:                                              ; preds = %483
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  %515 = call i32 @s2n_extension_recv(ptr noundef nonnull @s2n_psk_key_exchange_modes_extension, ptr noundef nonnull %398, ptr noundef nonnull %6) #9
  %516 = icmp eq i32 %515, -1
  br i1 %516, label %517, label %541

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

524:                                              ; preds = %517
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = call i32 @fileno(ptr noundef %525) #9
  %527 = call i32 @isatty(i32 noundef %526) #9
  %.not333 = icmp eq i32 %527, 0
  br i1 %.not333, label %528, label %529

528:                                              ; preds = %524, %517
  br label %529

529:                                              ; preds = %524, %528
  %.str.5.sink534 = phi ptr [ @.str.5, %528 ], [ @.str.2, %524 ]
  store i32 %519, ptr %518, align 4, !tbaa !5
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %533, ptr noundef nonnull @.str.4) #9
  %535 = load i32, ptr %532, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror_debug(i32 noundef %535, ptr noundef nonnull @.str.4) #9
  %537 = load i32, ptr %518, align 4, !tbaa !5
  %538 = call ptr @strerror(i32 noundef %537) #9
  %539 = load i32, ptr %518, align 4, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef nonnull %.str.5.sink534, i32 noundef %531, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %534, ptr noundef %536, ptr noundef %538, i32 noundef %539) #11
  call void @exit(i32 noundef 1) #12
  unreachable

541:                                              ; preds = %512
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr @test_count, align 4, !tbaa !5
  %544 = load i32, ptr %427, align 8, !tbaa !19
  %545 = icmp eq i32 %544, 0
  br i1 %545, label %570, label %546

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

553:                                              ; preds = %546
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @fileno(ptr noundef %554) #9
  %556 = call i32 @isatty(i32 noundef %555) #9
  %.not251 = icmp eq i32 %556, 0
  br i1 %.not251, label %557, label %558

557:                                              ; preds = %553, %546
  br label %558

558:                                              ; preds = %553, %557
  %.str.5.sink545 = phi ptr [ @.str.5, %557 ], [ @.str.2, %553 ]
  store i32 %548, ptr %547, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror(i32 noundef %562, ptr noundef nonnull @.str.4) #9
  %564 = load i32, ptr %561, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror_debug(i32 noundef %564, ptr noundef nonnull @.str.4) #9
  %566 = load i32, ptr %547, align 4, !tbaa !5
  %567 = call ptr @strerror(i32 noundef %566) #9
  %568 = load i32, ptr %547, align 4, !tbaa !5
  %569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %559, ptr noundef nonnull %.str.5.sink545, i32 noundef %560, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %563, ptr noundef %565, ptr noundef %567, i32 noundef %568) #11
  call void @exit(i32 noundef 1) #12
  unreachable

570:                                              ; preds = %541
  %571 = add nsw i32 %542, 2
  store i32 %571, ptr @test_count, align 4, !tbaa !5
  %572 = call i32 @s2n_connection_free(ptr noundef nonnull %398) #9
  %573 = icmp eq i32 %572, -1
  br i1 %573, label %574, label %598

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

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

585:                                              ; preds = %581, %574
  br label %586

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

598:                                              ; preds = %570
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = add nsw i32 %599, 1
  store i32 %600, ptr @test_count, align 4, !tbaa !5
  %601 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #9
  %602 = icmp eq i32 %601, -1
  br i1 %602, label %603, label %627

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

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

614:                                              ; preds = %610, %603
  br label %615

615:                                              ; preds = %610, %614
  %.str.5.sink567 = phi ptr [ @.str.5, %614 ], [ @.str.2, %610 ]
  store i32 %605, ptr %604, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror(i32 noundef %619, ptr noundef nonnull @.str.4) #9
  %621 = load i32, ptr %618, align 4, !tbaa !5
  %622 = call ptr @s2n_strerror_debug(i32 noundef %621, ptr noundef nonnull @.str.4) #9
  %623 = load i32, ptr %604, align 4, !tbaa !5
  %624 = call ptr @strerror(i32 noundef %623) #9
  %625 = load i32, ptr %604, align 4, !tbaa !5
  %626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef nonnull %.str.5.sink567, i32 noundef %617, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %620, ptr noundef %622, ptr noundef %624, i32 noundef %625) #11
  call void @exit(i32 noundef 1) #12
  unreachable

627:                                              ; preds = %598
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr @test_count, align 4, !tbaa !5
  %630 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #9
  %631 = icmp eq i32 %630, -1
  br i1 %631, label %632, label %656

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

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

643:                                              ; preds = %639, %632
  br label %644

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

656:                                              ; preds = %627
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = add nsw i32 %657, 1
  store i32 %658, ptr @test_count, align 4, !tbaa !5
  %659 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %660 = icmp eq ptr %659, null
  br i1 %660, label %661, label %685

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

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

672:                                              ; preds = %668, %661
  br label %673

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

685:                                              ; preds = %656
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = getelementptr inbounds i8, ptr %659, i64 1744
  %689 = load i32, ptr %688, align 8, !tbaa !19
  %690 = icmp eq i32 %689, 0
  br i1 %690, label %715, label %691

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

698:                                              ; preds = %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @fileno(ptr noundef %699) #9
  %701 = call i32 @isatty(i32 noundef %700) #9
  %.not252 = icmp eq i32 %701, 0
  br i1 %.not252, label %702, label %703

702:                                              ; preds = %698, %691
  br label %703

703:                                              ; preds = %698, %702
  %.str.5.sink600 = phi ptr [ @.str.5, %702 ], [ @.str.2, %698 ]
  store i32 %693, ptr %692, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %707, ptr noundef nonnull @.str.4) #9
  %709 = load i32, ptr %706, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror_debug(i32 noundef %709, ptr noundef nonnull @.str.4) #9
  %711 = load i32, ptr %692, align 4, !tbaa !5
  %712 = call ptr @strerror(i32 noundef %711) #9
  %713 = load i32, ptr %692, align 4, !tbaa !5
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %704, ptr noundef nonnull %.str.5.sink600, i32 noundef %705, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %708, ptr noundef %710, ptr noundef %712, i32 noundef %713) #11
  call void @exit(i32 noundef 1) #12
  unreachable

715:                                              ; preds = %685
  %716 = getelementptr inbounds i8, ptr %659, i64 220
  store i8 34, ptr %716, align 4, !tbaa !45
  %717 = add nsw i32 %686, 2
  store i32 %717, ptr @test_count, align 4, !tbaa !5
  %718 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %7, i8 noundef zeroext 2) #9
  %719 = icmp eq i32 %718, -1
  br i1 %719, label %720, label %744

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

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #9
  %730 = call i32 @isatty(i32 noundef %729) #9
  %.not328 = icmp eq i32 %730, 0
  br i1 %.not328, label %731, label %732

731:                                              ; preds = %727, %720
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink611 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %721, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #9
  %738 = load i32, ptr %735, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #9
  %740 = load i32, ptr %721, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #9
  %742 = load i32, ptr %721, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink611, i32 noundef %734, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #11
  call void @exit(i32 noundef 1) #12
  unreachable

744:                                              ; preds = %715
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %7, i8 noundef zeroext 1) #9
  %748 = icmp eq i32 %747, -1
  br i1 %748, label %749, label %773

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

756:                                              ; preds = %749
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @fileno(ptr noundef %757) #9
  %759 = call i32 @isatty(i32 noundef %758) #9
  %.not327 = icmp eq i32 %759, 0
  br i1 %.not327, label %760, label %761

760:                                              ; preds = %756, %749
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink622 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %750, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror(i32 noundef %765, ptr noundef nonnull @.str.4) #9
  %767 = load i32, ptr %764, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef nonnull @.str.4) #9
  %769 = load i32, ptr %750, align 4, !tbaa !5
  %770 = call ptr @strerror(i32 noundef %769) #9
  %771 = load i32, ptr %750, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink622, i32 noundef %763, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %766, ptr noundef %768, ptr noundef %770, i32 noundef %771) #11
  call void @exit(i32 noundef 1) #12
  unreachable

773:                                              ; preds = %744
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = add nsw i32 %774, 1
  store i32 %775, ptr @test_count, align 4, !tbaa !5
  %776 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_psk_key_exchange_modes_extension, i64 16), align 8, !tbaa !46
  %777 = call i32 %776(ptr noundef nonnull %659, ptr noundef nonnull %7) #9
  %778 = icmp eq i32 %777, -1
  br i1 %778, label %779, label %803

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

786:                                              ; preds = %779
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @fileno(ptr noundef %787) #9
  %789 = call i32 @isatty(i32 noundef %788) #9
  %.not326 = icmp eq i32 %789, 0
  br i1 %.not326, label %790, label %791

790:                                              ; preds = %786, %779
  br label %791

791:                                              ; preds = %786, %790
  %.str.5.sink633 = phi ptr [ @.str.5, %790 ], [ @.str.2, %786 ]
  store i32 %781, ptr %780, align 4, !tbaa !5
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror(i32 noundef %795, ptr noundef nonnull @.str.4) #9
  %797 = load i32, ptr %794, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror_debug(i32 noundef %797, ptr noundef nonnull @.str.4) #9
  %799 = load i32, ptr %780, align 4, !tbaa !5
  %800 = call ptr @strerror(i32 noundef %799) #9
  %801 = load i32, ptr %780, align 4, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef nonnull %.str.5.sink633, i32 noundef %793, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %796, ptr noundef %798, ptr noundef %800, i32 noundef %801) #11
  call void @exit(i32 noundef 1) #12
  unreachable

803:                                              ; preds = %773
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = add nsw i32 %804, 1
  store i32 %805, ptr @test_count, align 4, !tbaa !5
  %806 = load i32, ptr %688, align 8, !tbaa !19
  %807 = icmp eq i32 %806, 0
  br i1 %807, label %832, label %808

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

815:                                              ; preds = %808
  %816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %817 = call i32 @fileno(ptr noundef %816) #9
  %818 = call i32 @isatty(i32 noundef %817) #9
  %.not253 = icmp eq i32 %818, 0
  br i1 %.not253, label %819, label %820

819:                                              ; preds = %815, %808
  br label %820

820:                                              ; preds = %815, %819
  %.str.5.sink644 = phi ptr [ @.str.5, %819 ], [ @.str.2, %815 ]
  store i32 %810, ptr %809, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = load i32, ptr @test_count, align 4, !tbaa !5
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef nonnull @.str.4) #9
  %826 = load i32, ptr %823, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror_debug(i32 noundef %826, ptr noundef nonnull @.str.4) #9
  %828 = load i32, ptr %809, align 4, !tbaa !5
  %829 = call ptr @strerror(i32 noundef %828) #9
  %830 = load i32, ptr %809, align 4, !tbaa !5
  %831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef nonnull %.str.5.sink644, i32 noundef %822, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %825, ptr noundef %827, ptr noundef %829, i32 noundef %830) #11
  call void @exit(i32 noundef 1) #12
  unreachable

832:                                              ; preds = %803
  %833 = add nsw i32 %804, 2
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = call i32 @s2n_connection_free(ptr noundef nonnull %659) #9
  %835 = icmp eq i32 %834, -1
  br i1 %835, label %836, label %860

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

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

847:                                              ; preds = %843, %836
  br label %848

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

860:                                              ; preds = %832
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = add nsw i32 %861, 1
  store i32 %862, ptr @test_count, align 4, !tbaa !5
  %863 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #9
  %864 = icmp eq i32 %863, -1
  br i1 %864, label %865, label %889

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

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

876:                                              ; preds = %872, %865
  br label %877

877:                                              ; preds = %872, %876
  %.str.5.sink666 = phi ptr [ @.str.5, %876 ], [ @.str.2, %872 ]
  store i32 %867, ptr %866, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef nonnull @.str.4) #9
  %883 = load i32, ptr %880, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef nonnull @.str.4) #9
  %885 = load i32, ptr %866, align 4, !tbaa !5
  %886 = call ptr @strerror(i32 noundef %885) #9
  %887 = load i32, ptr %866, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef nonnull %.str.5.sink666, i32 noundef %879, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %882, ptr noundef %884, ptr noundef %886, i32 noundef %887) #11
  call void @exit(i32 noundef 1) #12
  unreachable

889:                                              ; preds = %860
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = add nsw i32 %890, 1
  store i32 %891, ptr @test_count, align 4, !tbaa !5
  %892 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #9
  %893 = icmp eq i32 %892, -1
  br i1 %893, label %894, label %918

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

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

905:                                              ; preds = %901, %894
  br label %906

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

918:                                              ; preds = %889
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = add nsw i32 %919, 1
  store i32 %920, ptr @test_count, align 4, !tbaa !5
  %921 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %922 = icmp eq ptr %921, null
  br i1 %922, label %923, label %947

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

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

934:                                              ; preds = %930, %923
  br label %935

935:                                              ; preds = %930, %934
  %.str.5.sink688 = phi ptr [ @.str.5, %934 ], [ @.str.2, %930 ]
  store i32 %925, ptr %924, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror(i32 noundef %939, ptr noundef nonnull @.str.4) #9
  %941 = load i32, ptr %938, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror_debug(i32 noundef %941, ptr noundef nonnull @.str.4) #9
  %943 = load i32, ptr %924, align 4, !tbaa !5
  %944 = call ptr @strerror(i32 noundef %943) #9
  %945 = load i32, ptr %924, align 4, !tbaa !5
  %946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %936, ptr noundef nonnull %.str.5.sink688, i32 noundef %937, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %940, ptr noundef %942, ptr noundef %944, i32 noundef %945) #11
  call void @exit(i32 noundef 1) #12
  unreachable

947:                                              ; preds = %918
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = add nsw i32 %948, 1
  store i32 %949, ptr @test_count, align 4, !tbaa !5
  %950 = getelementptr inbounds i8, ptr %921, i64 1744
  %951 = load i32, ptr %950, align 8, !tbaa !19
  %952 = icmp eq i32 %951, 0
  br i1 %952, label %977, label %953

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

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

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

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

977:                                              ; preds = %947
  %978 = getelementptr inbounds i8, ptr %921, i64 220
  store i8 34, ptr %978, align 4, !tbaa !45
  %979 = add nsw i32 %948, 2
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %8, i8 noundef zeroext 1) #9
  %981 = icmp eq i32 %980, -1
  br i1 %981, label %982, label %1006

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

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

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

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

1006:                                             ; preds = %977
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %8, i8 noundef zeroext 0) #9
  %1010 = icmp eq i32 %1009, -1
  br i1 %1010, label %1011, label %1035

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

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

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

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

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

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

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

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

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

1064:                                             ; preds = %1035
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr @test_count, align 4, !tbaa !5
  %1067 = load i32, ptr %950, align 8, !tbaa !19
  %1068 = icmp eq i32 %1067, 0
  br i1 %1068, label %1093, label %1069

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

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

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

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

1093:                                             ; preds = %1064
  %1094 = add nsw i32 %1065, 2
  store i32 %1094, ptr @test_count, align 4, !tbaa !5
  %1095 = call i32 @s2n_connection_free(ptr noundef nonnull %921) #9
  %1096 = icmp eq i32 %1095, -1
  br i1 %1096, label %1097, label %1121

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

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

1108:                                             ; preds = %1104, %1097
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.5.sink754 = phi ptr [ @.str.5, %1108 ], [ @.str.2, %1104 ]
  store i32 %1099, ptr %1098, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror(i32 noundef %1113, ptr noundef nonnull @.str.4) #9
  %1115 = load i32, ptr %1112, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror_debug(i32 noundef %1115, ptr noundef nonnull @.str.4) #9
  %1117 = load i32, ptr %1098, align 4, !tbaa !5
  %1118 = call ptr @strerror(i32 noundef %1117) #9
  %1119 = load i32, ptr %1098, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.5.sink754, i32 noundef %1111, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %1114, ptr noundef %1116, ptr noundef %1118, i32 noundef %1119) #11
  call void @exit(i32 noundef 1) #12
  unreachable

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

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

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

1137:                                             ; preds = %1133, %1126
  br label %1138

1138:                                             ; preds = %1133, %1137
  %.str.5.sink765 = phi ptr [ @.str.5, %1137 ], [ @.str.2, %1133 ]
  store i32 %1128, ptr %1127, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef nonnull @.str.4) #9
  %1144 = load i32, ptr %1141, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror_debug(i32 noundef %1144, ptr noundef nonnull @.str.4) #9
  %1146 = load i32, ptr %1127, align 4, !tbaa !5
  %1147 = call ptr @strerror(i32 noundef %1146) #9
  %1148 = load i32, ptr %1127, align 4, !tbaa !5
  %1149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef nonnull %.str.5.sink765, i32 noundef %1140, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %1143, ptr noundef %1145, ptr noundef %1147, i32 noundef %1148) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1150:                                             ; preds = %1121
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = add nsw i32 %1151, 1
  store i32 %1152, ptr @test_count, align 4, !tbaa !5
  %1153 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #9
  %1154 = icmp eq i32 %1153, -1
  br i1 %1154, label %1155, label %1179

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

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

1166:                                             ; preds = %1162, %1155
  br label %1167

1167:                                             ; preds = %1162, %1166
  %.str.5.sink776 = phi ptr [ @.str.5, %1166 ], [ @.str.2, %1162 ]
  store i32 %1157, ptr %1156, 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 nonnull @.str.4) #9
  %1173 = load i32, ptr %1170, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror_debug(i32 noundef %1173, ptr noundef nonnull @.str.4) #9
  %1175 = load i32, ptr %1156, align 4, !tbaa !5
  %1176 = call ptr @strerror(i32 noundef %1175) #9
  %1177 = load i32, ptr %1156, align 4, !tbaa !5
  %1178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef nonnull %.str.5.sink776, i32 noundef %1169, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1172, ptr noundef %1174, ptr noundef %1176, i32 noundef %1177) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1179:                                             ; preds = %1150
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = add nsw i32 %1180, 1
  store i32 %1181, ptr @test_count, align 4, !tbaa !5
  %1182 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %1183 = icmp eq ptr %1182, null
  br i1 %1183, label %1184, label %1208

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

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

1195:                                             ; preds = %1191, %1184
  br label %1196

1196:                                             ; preds = %1191, %1195
  %.str.5.sink787 = phi ptr [ @.str.5, %1195 ], [ @.str.2, %1191 ]
  store i32 %1186, ptr %1185, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = load i32, ptr @test_count, align 4, !tbaa !5
  %1199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror(i32 noundef %1200, ptr noundef nonnull @.str.4) #9
  %1202 = load i32, ptr %1199, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef nonnull @.str.4) #9
  %1204 = load i32, ptr %1185, align 4, !tbaa !5
  %1205 = call ptr @strerror(i32 noundef %1204) #9
  %1206 = load i32, ptr %1185, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef nonnull %.str.5.sink787, i32 noundef %1198, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1201, ptr noundef %1203, ptr noundef %1205, i32 noundef %1206) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1208:                                             ; preds = %1179
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = add nsw i32 %1209, 1
  store i32 %1210, ptr @test_count, align 4, !tbaa !5
  %1211 = getelementptr inbounds i8, ptr %1182, i64 1744
  %1212 = load i32, ptr %1211, align 8, !tbaa !19
  %1213 = icmp eq i32 %1212, 0
  br i1 %1213, label %1238, label %1214

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

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

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

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

1238:                                             ; preds = %1208
  %1239 = getelementptr inbounds i8, ptr %1182, i64 220
  store i8 34, ptr %1239, align 4, !tbaa !45
  %1240 = add nsw i32 %1209, 2
  store i32 %1240, ptr @test_count, align 4, !tbaa !5
  %1241 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %9, i8 noundef zeroext 2) #9
  %1242 = icmp eq i32 %1241, -1
  br i1 %1242, label %1243, label %1267

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

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

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

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

1267:                                             ; preds = %1238
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %9, i8 noundef zeroext 0) #9
  %1271 = icmp eq i32 %1270, -1
  br i1 %1271, label %1272, label %1296

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1354:                                             ; preds = %1325
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = add nsw i32 %1355, 1
  store i32 %1356, ptr @test_count, align 4, !tbaa !5
  %1357 = load i32, ptr %1211, align 8, !tbaa !19
  %1358 = icmp eq i32 %1357, 2
  br i1 %1358, label %1383, label %1359

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

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

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

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

1383:                                             ; preds = %1354
  %1384 = add nsw i32 %1355, 2
  store i32 %1384, ptr @test_count, align 4, !tbaa !5
  %1385 = call i32 @s2n_connection_free(ptr noundef nonnull %1182) #9
  %1386 = icmp eq i32 %1385, -1
  br i1 %1386, label %1387, label %1411

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

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

1398:                                             ; preds = %1394, %1387
  br label %1399

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

1411:                                             ; preds = %1383
  %1412 = load i32, ptr @test_count, align 4, !tbaa !5
  %1413 = add nsw i32 %1412, 1
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #9
  %1415 = icmp eq i32 %1414, -1
  br i1 %1415, label %1416, label %1440

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

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

1427:                                             ; preds = %1423, %1416
  br label %1428

1428:                                             ; preds = %1423, %1427
  %.str.5.sink875 = phi ptr [ @.str.5, %1427 ], [ @.str.2, %1423 ]
  store i32 %1418, ptr %1417, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef nonnull @.str.4) #9
  %1434 = load i32, ptr %1431, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef nonnull @.str.4) #9
  %1436 = load i32, ptr %1417, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #9
  %1438 = load i32, ptr %1417, align 4, !tbaa !5
  %1439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef nonnull %.str.5.sink875, i32 noundef %1430, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1433, ptr noundef %1435, ptr noundef %1437, i32 noundef %1438) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1440:                                             ; preds = %1411
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %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_stuffer_growable_alloc(ptr noundef nonnull %10, i32 noundef 0) #9
  %1444 = icmp eq i32 %1443, -1
  br i1 %1444, label %1445, label %1469

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

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

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

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

1469:                                             ; preds = %1440
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false)
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = add nsw i32 %1470, 1
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = call i32 @s2n_stuffer_reserve_uint8(ptr noundef nonnull %10, ptr noundef nonnull %11) #9
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1498

1474:                                             ; preds = %1469
  %1475 = tail call ptr @__errno_location() #10
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @s2n_print_stacktrace(ptr noundef %1477) #9
  %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 = %1474
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @fileno(ptr noundef %1482) #9
  %1484 = call i32 @isatty(i32 noundef %1483) #9
  %.not307 = icmp eq i32 %1484, 0
  br i1 %.not307, label %1485, label %1486

1485:                                             ; preds = %1481, %1474
  br label %1486

1486:                                             ; preds = %1481, %1485
  %.str.5.sink897 = phi ptr [ @.str.5, %1485 ], [ @.str.2, %1481 ]
  store i32 %1476, ptr %1475, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #9
  %1492 = load i32, ptr %1489, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #9
  %1494 = load i32, ptr %1475, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #9
  %1496 = load i32, ptr %1475, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef nonnull %.str.5.sink897, i32 noundef %1488, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1498:                                             ; preds = %1469
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext 11) #9
  %1502 = icmp eq i32 %1501, -1
  br i1 %1502, label %1503, label %1527

1503:                                             ; preds = %1498
  %1504 = tail call ptr @__errno_location() #10
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #9
  %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 = %1503
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #9
  %1513 = call i32 @isatty(i32 noundef %1512) #9
  %.not306 = icmp eq i32 %1513, 0
  br i1 %.not306, label %1514, label %1515

1514:                                             ; preds = %1510, %1503
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.5.sink908 = phi ptr [ @.str.5, %1514 ], [ @.str.2, %1510 ]
  store i32 %1505, ptr %1504, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.4) #9
  %1521 = load i32, ptr %1518, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.4) #9
  %1523 = load i32, ptr %1504, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #9
  %1525 = load i32, ptr %1504, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.5.sink908, i32 noundef %1517, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1527:                                             ; preds = %1498
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr @test_count, align 4, !tbaa !5
  %1530 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext 42) #9
  %1531 = icmp eq i32 %1530, -1
  br i1 %1531, label %1532, label %1556

1532:                                             ; preds = %1527
  %1533 = tail call ptr @__errno_location() #10
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @s2n_print_stacktrace(ptr noundef %1535) #9
  %1537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1538 = trunc nuw i8 %1537 to i1
  br i1 %1538, label %1539, label %1543

1539:                                             ; preds = %1532
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @fileno(ptr noundef %1540) #9
  %1542 = call i32 @isatty(i32 noundef %1541) #9
  %.not305 = icmp eq i32 %1542, 0
  br i1 %.not305, label %1543, label %1544

1543:                                             ; preds = %1539, %1532
  br label %1544

1544:                                             ; preds = %1539, %1543
  %.str.5.sink919 = phi ptr [ @.str.5, %1543 ], [ @.str.2, %1539 ]
  store i32 %1534, ptr %1533, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef nonnull @.str.4) #9
  %1550 = load i32, ptr %1547, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef nonnull @.str.4) #9
  %1552 = load i32, ptr %1533, align 4, !tbaa !5
  %1553 = call ptr @strerror(i32 noundef %1552) #9
  %1554 = load i32, ptr %1533, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef nonnull %.str.5.sink919, i32 noundef %1546, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1549, ptr noundef %1551, ptr noundef %1553, i32 noundef %1554) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1556:                                             ; preds = %1527
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = add nsw i32 %1557, 1
  store i32 %1558, ptr @test_count, align 4, !tbaa !5
  %1559 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext 73) #9
  %1560 = icmp eq i32 %1559, -1
  br i1 %1560, label %1561, label %1585

1561:                                             ; preds = %1556
  %1562 = tail call ptr @__errno_location() #10
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = call i32 @s2n_print_stacktrace(ptr noundef %1564) #9
  %1566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1567 = trunc nuw i8 %1566 to i1
  br i1 %1567, label %1568, label %1572

1568:                                             ; preds = %1561
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @fileno(ptr noundef %1569) #9
  %1571 = call i32 @isatty(i32 noundef %1570) #9
  %.not304 = icmp eq i32 %1571, 0
  br i1 %.not304, label %1572, label %1573

1572:                                             ; preds = %1568, %1561
  br label %1573

1573:                                             ; preds = %1568, %1572
  %.str.5.sink930 = phi ptr [ @.str.5, %1572 ], [ @.str.2, %1568 ]
  store i32 %1563, ptr %1562, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror(i32 noundef %1577, ptr noundef nonnull @.str.4) #9
  %1579 = load i32, ptr %1576, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror_debug(i32 noundef %1579, ptr noundef nonnull @.str.4) #9
  %1581 = load i32, ptr %1562, align 4, !tbaa !5
  %1582 = call ptr @strerror(i32 noundef %1581) #9
  %1583 = load i32, ptr %1562, align 4, !tbaa !5
  %1584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1574, ptr noundef nonnull %.str.5.sink930, i32 noundef %1575, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1578, ptr noundef %1580, ptr noundef %1582, i32 noundef %1583) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1585:                                             ; preds = %1556
  %1586 = load i32, ptr @test_count, align 4, !tbaa !5
  %1587 = add nsw i32 %1586, 1
  store i32 %1587, ptr @test_count, align 4, !tbaa !5
  %1588 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext 104) #9
  %1589 = icmp eq i32 %1588, -1
  br i1 %1589, label %1590, label %1614

1590:                                             ; preds = %1585
  %1591 = tail call ptr @__errno_location() #10
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @s2n_print_stacktrace(ptr noundef %1593) #9
  %1595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1596 = trunc nuw i8 %1595 to i1
  br i1 %1596, label %1597, label %1601

1597:                                             ; preds = %1590
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @fileno(ptr noundef %1598) #9
  %1600 = call i32 @isatty(i32 noundef %1599) #9
  %.not303 = icmp eq i32 %1600, 0
  br i1 %.not303, label %1601, label %1602

1601:                                             ; preds = %1597, %1590
  br label %1602

1602:                                             ; preds = %1597, %1601
  %.str.5.sink941 = phi ptr [ @.str.5, %1601 ], [ @.str.2, %1597 ]
  store i32 %1592, ptr %1591, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror(i32 noundef %1606, ptr noundef nonnull @.str.4) #9
  %1608 = load i32, ptr %1605, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror_debug(i32 noundef %1608, ptr noundef nonnull @.str.4) #9
  %1610 = load i32, ptr %1591, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #9
  %1612 = load i32, ptr %1591, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1603, ptr noundef nonnull %.str.5.sink941, i32 noundef %1604, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1607, ptr noundef %1609, ptr noundef %1611, i32 noundef %1612) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1614:                                             ; preds = %1585
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr @test_count, align 4, !tbaa !5
  %1617 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext -121) #9
  %1618 = icmp eq i32 %1617, -1
  br i1 %1618, label %1619, label %1643

1619:                                             ; preds = %1614
  %1620 = tail call ptr @__errno_location() #10
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @s2n_print_stacktrace(ptr noundef %1622) #9
  %1624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1625 = trunc nuw i8 %1624 to i1
  br i1 %1625, label %1626, label %1630

1626:                                             ; preds = %1619
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @fileno(ptr noundef %1627) #9
  %1629 = call i32 @isatty(i32 noundef %1628) #9
  %.not302 = icmp eq i32 %1629, 0
  br i1 %.not302, label %1630, label %1631

1630:                                             ; preds = %1626, %1619
  br label %1631

1631:                                             ; preds = %1626, %1630
  %.str.5.sink952 = phi ptr [ @.str.5, %1630 ], [ @.str.2, %1626 ]
  store i32 %1621, ptr %1620, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror(i32 noundef %1635, ptr noundef nonnull @.str.4) #9
  %1637 = load i32, ptr %1634, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror_debug(i32 noundef %1637, ptr noundef nonnull @.str.4) #9
  %1639 = load i32, ptr %1620, align 4, !tbaa !5
  %1640 = call ptr @strerror(i32 noundef %1639) #9
  %1641 = load i32, ptr %1620, align 4, !tbaa !5
  %1642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef nonnull %.str.5.sink952, i32 noundef %1633, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1636, ptr noundef %1638, ptr noundef %1640, i32 noundef %1641) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1643:                                             ; preds = %1614
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = add nsw i32 %1644, 1
  store i32 %1645, ptr @test_count, align 4, !tbaa !5
  %1646 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext -90) #9
  %1647 = icmp eq i32 %1646, -1
  br i1 %1647, label %1648, label %1672

1648:                                             ; preds = %1643
  %1649 = tail call ptr @__errno_location() #10
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @s2n_print_stacktrace(ptr noundef %1651) #9
  %1653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1654 = trunc nuw i8 %1653 to i1
  br i1 %1654, label %1655, label %1659

1655:                                             ; preds = %1648
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @fileno(ptr noundef %1656) #9
  %1658 = call i32 @isatty(i32 noundef %1657) #9
  %.not301 = icmp eq i32 %1658, 0
  br i1 %.not301, label %1659, label %1660

1659:                                             ; preds = %1655, %1648
  br label %1660

1660:                                             ; preds = %1655, %1659
  %.str.5.sink963 = phi ptr [ @.str.5, %1659 ], [ @.str.2, %1655 ]
  store i32 %1650, ptr %1649, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef nonnull @.str.4) #9
  %1666 = load i32, ptr %1663, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror_debug(i32 noundef %1666, ptr noundef nonnull @.str.4) #9
  %1668 = load i32, ptr %1649, align 4, !tbaa !5
  %1669 = call ptr @strerror(i32 noundef %1668) #9
  %1670 = load i32, ptr %1649, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef nonnull %.str.5.sink963, i32 noundef %1662, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1665, ptr noundef %1667, ptr noundef %1669, i32 noundef %1670) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1672:                                             ; preds = %1643
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = add nsw i32 %1673, 1
  store i32 %1674, ptr @test_count, align 4, !tbaa !5
  %1675 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext -59) #9
  %1676 = icmp eq i32 %1675, -1
  br i1 %1676, label %1677, label %1701

1677:                                             ; preds = %1672
  %1678 = tail call ptr @__errno_location() #10
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @s2n_print_stacktrace(ptr noundef %1680) #9
  %1682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1683 = trunc nuw i8 %1682 to i1
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #9
  %1687 = call i32 @isatty(i32 noundef %1686) #9
  %.not300 = icmp eq i32 %1687, 0
  br i1 %.not300, label %1688, label %1689

1688:                                             ; preds = %1684, %1677
  br label %1689

1689:                                             ; preds = %1684, %1688
  %.str.5.sink974 = phi ptr [ @.str.5, %1688 ], [ @.str.2, %1684 ]
  store i32 %1679, ptr %1678, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.4) #9
  %1695 = load i32, ptr %1692, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.4) #9
  %1697 = load i32, ptr %1678, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #9
  %1699 = load i32, ptr %1678, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull %.str.5.sink974, i32 noundef %1691, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1701:                                             ; preds = %1672
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext -28) #9
  %1705 = icmp eq i32 %1704, -1
  br i1 %1705, label %1706, label %1730

1706:                                             ; preds = %1701
  %1707 = tail call ptr @__errno_location() #10
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = call i32 @s2n_print_stacktrace(ptr noundef %1709) #9
  %1711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1712 = trunc nuw i8 %1711 to i1
  br i1 %1712, label %1713, label %1717

1713:                                             ; preds = %1706
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @fileno(ptr noundef %1714) #9
  %1716 = call i32 @isatty(i32 noundef %1715) #9
  %.not299 = icmp eq i32 %1716, 0
  br i1 %.not299, label %1717, label %1718

1717:                                             ; preds = %1713, %1706
  br label %1718

1718:                                             ; preds = %1713, %1717
  %.str.5.sink985 = phi ptr [ @.str.5, %1717 ], [ @.str.2, %1713 ]
  store i32 %1708, ptr %1707, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef nonnull @.str.4) #9
  %1724 = load i32, ptr %1721, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror_debug(i32 noundef %1724, ptr noundef nonnull @.str.4) #9
  %1726 = load i32, ptr %1707, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #9
  %1728 = load i32, ptr %1707, align 4, !tbaa !5
  %1729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef nonnull %.str.5.sink985, i32 noundef %1720, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1723, ptr noundef %1725, ptr noundef %1727, i32 noundef %1728) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1730:                                             ; preds = %1701
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = add nsw i32 %1731, 1
  store i32 %1732, ptr @test_count, align 4, !tbaa !5
  %1733 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %11) #9
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1759

1735:                                             ; preds = %1730
  %1736 = tail call ptr @__errno_location() #10
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = call i32 @s2n_print_stacktrace(ptr noundef %1738) #9
  %1740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1741 = trunc nuw i8 %1740 to i1
  br i1 %1741, label %1742, label %1746

1742:                                             ; preds = %1735
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @fileno(ptr noundef %1743) #9
  %1745 = call i32 @isatty(i32 noundef %1744) #9
  %.not298 = icmp eq i32 %1745, 0
  br i1 %.not298, label %1746, label %1747

1746:                                             ; preds = %1742, %1735
  br label %1747

1747:                                             ; preds = %1742, %1746
  %.str.5.sink996 = phi ptr [ @.str.5, %1746 ], [ @.str.2, %1742 ]
  store i32 %1737, ptr %1736, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = load i32, ptr @test_count, align 4, !tbaa !5
  %1750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror(i32 noundef %1751, ptr noundef nonnull @.str.4) #9
  %1753 = load i32, ptr %1750, align 4, !tbaa !5
  %1754 = call ptr @s2n_strerror_debug(i32 noundef %1753, ptr noundef nonnull @.str.4) #9
  %1755 = load i32, ptr %1736, align 4, !tbaa !5
  %1756 = call ptr @strerror(i32 noundef %1755) #9
  %1757 = load i32, ptr %1736, align 4, !tbaa !5
  %1758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1748, ptr noundef nonnull %.str.5.sink996, i32 noundef %1749, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1752, ptr noundef %1754, ptr noundef %1756, i32 noundef %1757) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1759:                                             ; preds = %1730
  %1760 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = add nsw i32 %1761, 1
  store i32 %1762, ptr @test_count, align 4, !tbaa !5
  %1763 = icmp eq ptr %1760, null
  br i1 %1763, label %1764, label %1788

1764:                                             ; preds = %1759
  %1765 = tail call ptr @__errno_location() #10
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @s2n_print_stacktrace(ptr noundef %1767) #9
  %1769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1770 = trunc nuw i8 %1769 to i1
  br i1 %1770, label %1771, label %1775

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

1775:                                             ; preds = %1771, %1764
  br label %1776

1776:                                             ; preds = %1771, %1775
  %.str.5.sink1007 = phi ptr [ @.str.5, %1775 ], [ @.str.2, %1771 ]
  store i32 %1766, ptr %1765, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef nonnull @.str.4) #9
  %1782 = load i32, ptr %1779, align 4, !tbaa !5
  %1783 = call ptr @s2n_strerror_debug(i32 noundef %1782, ptr noundef nonnull @.str.4) #9
  %1784 = load i32, ptr %1765, align 4, !tbaa !5
  %1785 = call ptr @strerror(i32 noundef %1784) #9
  %1786 = load i32, ptr %1765, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef nonnull %.str.5.sink1007, i32 noundef %1778, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1781, ptr noundef %1783, ptr noundef %1785, i32 noundef %1786) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1788:                                             ; preds = %1759
  %1789 = getelementptr inbounds i8, ptr %1760, i64 220
  store i8 34, ptr %1789, align 4, !tbaa !45
  %1790 = add nsw i32 %1761, 2
  store i32 %1790, ptr @test_count, align 4, !tbaa !5
  %1791 = call i32 %776(ptr noundef nonnull %1760, ptr noundef nonnull %10) #9
  %1792 = icmp eq i32 %1791, -1
  br i1 %1792, label %1793, label %1817

1793:                                             ; preds = %1788
  %1794 = tail call ptr @__errno_location() #10
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @s2n_print_stacktrace(ptr noundef %1796) #9
  %1798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1799 = trunc nuw i8 %1798 to i1
  br i1 %1799, label %1800, label %1804

1800:                                             ; preds = %1793
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = call i32 @fileno(ptr noundef %1801) #9
  %1803 = call i32 @isatty(i32 noundef %1802) #9
  %.not296 = icmp eq i32 %1803, 0
  br i1 %.not296, label %1804, label %1805

1804:                                             ; preds = %1800, %1793
  br label %1805

1805:                                             ; preds = %1800, %1804
  %.str.5.sink1018 = phi ptr [ @.str.5, %1804 ], [ @.str.2, %1800 ]
  store i32 %1795, ptr %1794, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef nonnull @.str.4) #9
  %1811 = load i32, ptr %1808, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror_debug(i32 noundef %1811, ptr noundef nonnull @.str.4) #9
  %1813 = load i32, ptr %1794, align 4, !tbaa !5
  %1814 = call ptr @strerror(i32 noundef %1813) #9
  %1815 = load i32, ptr %1794, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef nonnull %.str.5.sink1018, i32 noundef %1807, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1810, ptr noundef %1812, ptr noundef %1814, i32 noundef %1815) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1817:                                             ; preds = %1788
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = add nsw i32 %1818, 1
  store i32 %1819, ptr @test_count, align 4, !tbaa !5
  %1820 = getelementptr inbounds i8, ptr %1760, i64 1744
  %1821 = load i32, ptr %1820, align 8, !tbaa !19
  %1822 = icmp eq i32 %1821, 0
  br i1 %1822, label %1847, label %1823

1823:                                             ; preds = %1817
  %1824 = tail call ptr @__errno_location() #10
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826) #9
  %1828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1829 = trunc nuw i8 %1828 to i1
  br i1 %1829, label %1830, label %1834

1830:                                             ; preds = %1823
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @fileno(ptr noundef %1831) #9
  %1833 = call i32 @isatty(i32 noundef %1832) #9
  %.not258 = icmp eq i32 %1833, 0
  br i1 %.not258, label %1834, label %1835

1834:                                             ; preds = %1830, %1823
  br label %1835

1835:                                             ; preds = %1830, %1834
  %.str.5.sink1029 = phi ptr [ @.str.5, %1834 ], [ @.str.2, %1830 ]
  store i32 %1825, ptr %1824, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef nonnull @.str.4) #9
  %1841 = load i32, ptr %1838, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef nonnull @.str.4) #9
  %1843 = load i32, ptr %1824, align 4, !tbaa !5
  %1844 = call ptr @strerror(i32 noundef %1843) #9
  %1845 = load i32, ptr %1824, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef nonnull %.str.5.sink1029, i32 noundef %1837, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1840, ptr noundef %1842, ptr noundef %1844, i32 noundef %1845) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1847:                                             ; preds = %1817
  %1848 = add nsw i32 %1818, 2
  store i32 %1848, ptr @test_count, align 4, !tbaa !5
  %1849 = call i32 @s2n_connection_free(ptr noundef nonnull %1760) #9
  %1850 = icmp eq i32 %1849, -1
  br i1 %1850, label %1851, label %1875

1851:                                             ; preds = %1847
  %1852 = tail call ptr @__errno_location() #10
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = call i32 @s2n_print_stacktrace(ptr noundef %1854) #9
  %1856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1857 = trunc nuw i8 %1856 to i1
  br i1 %1857, label %1858, label %1862

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

1862:                                             ; preds = %1858, %1851
  br label %1863

1863:                                             ; preds = %1858, %1862
  %.str.5.sink1040 = phi ptr [ @.str.5, %1862 ], [ @.str.2, %1858 ]
  store i32 %1853, ptr %1852, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = load i32, ptr @test_count, align 4, !tbaa !5
  %1866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror(i32 noundef %1867, ptr noundef nonnull @.str.4) #9
  %1869 = load i32, ptr %1866, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef nonnull @.str.4) #9
  %1871 = load i32, ptr %1852, align 4, !tbaa !5
  %1872 = call ptr @strerror(i32 noundef %1871) #9
  %1873 = load i32, ptr %1852, align 4, !tbaa !5
  %1874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1864, ptr noundef nonnull %.str.5.sink1040, i32 noundef %1865, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1868, ptr noundef %1870, ptr noundef %1872, i32 noundef %1873) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1875:                                             ; preds = %1847
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = add nsw i32 %1876, 1
  store i32 %1877, ptr @test_count, align 4, !tbaa !5
  %1878 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %10) #9
  %1879 = icmp eq i32 %1878, -1
  br i1 %1879, label %1880, label %1904

1880:                                             ; preds = %1875
  %1881 = tail call ptr @__errno_location() #10
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = call i32 @s2n_print_stacktrace(ptr noundef %1883) #9
  %1885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1886 = trunc nuw i8 %1885 to i1
  br i1 %1886, label %1887, label %1891

1887:                                             ; preds = %1880
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @fileno(ptr noundef %1888) #9
  %1890 = call i32 @isatty(i32 noundef %1889) #9
  %.not294 = icmp eq i32 %1890, 0
  br i1 %.not294, label %1891, label %1892

1891:                                             ; preds = %1887, %1880
  br label %1892

1892:                                             ; preds = %1887, %1891
  %.str.5.sink1051 = phi ptr [ @.str.5, %1891 ], [ @.str.2, %1887 ]
  store i32 %1882, ptr %1881, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @s2n_strerror(i32 noundef %1896, ptr noundef nonnull @.str.4) #9
  %1898 = load i32, ptr %1895, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef %1898, ptr noundef nonnull @.str.4) #9
  %1900 = load i32, ptr %1881, align 4, !tbaa !5
  %1901 = call ptr @strerror(i32 noundef %1900) #9
  %1902 = load i32, ptr %1881, align 4, !tbaa !5
  %1903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef nonnull %.str.5.sink1051, i32 noundef %1894, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1897, ptr noundef %1899, ptr noundef %1901, i32 noundef %1902) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1904:                                             ; preds = %1875
  %1905 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr @test_count, align 4, !tbaa !5
  %1908 = icmp eq ptr %1905, null
  br i1 %1908, label %1909, label %1933

1909:                                             ; preds = %1904
  %1910 = tail call ptr @__errno_location() #10
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = call i32 @s2n_print_stacktrace(ptr noundef %1912) #9
  %1914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1915 = trunc nuw i8 %1914 to i1
  br i1 %1915, label %1916, label %1920

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

1920:                                             ; preds = %1916, %1909
  br label %1921

1921:                                             ; preds = %1916, %1920
  %.str.5.sink1062 = phi ptr [ @.str.5, %1920 ], [ @.str.2, %1916 ]
  store i32 %1911, ptr %1910, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef nonnull @.str.4) #9
  %1927 = load i32, ptr %1924, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror_debug(i32 noundef %1927, ptr noundef nonnull @.str.4) #9
  %1929 = load i32, ptr %1910, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #9
  %1931 = load i32, ptr %1910, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1922, ptr noundef nonnull %.str.5.sink1062, i32 noundef %1923, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1926, ptr noundef %1928, ptr noundef %1930, i32 noundef %1931) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1933:                                             ; preds = %1904
  %1934 = getelementptr inbounds i8, ptr %1905, i64 220
  store i8 34, ptr %1934, align 4, !tbaa !45
  %1935 = add nsw i32 %1906, 2
  store i32 %1935, ptr @test_count, align 4, !tbaa !5
  %1936 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %10, i8 noundef zeroext 1) #9
  %1937 = icmp eq i32 %1936, -1
  br i1 %1937, label %1938, label %1962

1938:                                             ; preds = %1933
  %1939 = tail call ptr @__errno_location() #10
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @s2n_print_stacktrace(ptr noundef %1941) #9
  %1943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1944 = trunc nuw i8 %1943 to i1
  br i1 %1944, label %1945, label %1949

1945:                                             ; preds = %1938
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @fileno(ptr noundef %1946) #9
  %1948 = call i32 @isatty(i32 noundef %1947) #9
  %.not292 = icmp eq i32 %1948, 0
  br i1 %.not292, label %1949, label %1950

1949:                                             ; preds = %1945, %1938
  br label %1950

1950:                                             ; preds = %1945, %1949
  %.str.5.sink1073 = phi ptr [ @.str.5, %1949 ], [ @.str.2, %1945 ]
  store i32 %1940, ptr %1939, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror(i32 noundef %1954, ptr noundef nonnull @.str.4) #9
  %1956 = load i32, ptr %1953, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror_debug(i32 noundef %1956, ptr noundef nonnull @.str.4) #9
  %1958 = load i32, ptr %1939, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #9
  %1960 = load i32, ptr %1939, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1951, ptr noundef nonnull %.str.5.sink1073, i32 noundef %1952, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1955, ptr noundef %1957, ptr noundef %1959, i32 noundef %1960) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1962:                                             ; preds = %1933
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = add nsw i32 %1963, 1
  store i32 %1964, ptr @test_count, align 4, !tbaa !5
  %1965 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %11) #9
  %1966 = icmp eq i32 %1965, -1
  br i1 %1966, label %1967, label %1991

1967:                                             ; preds = %1962
  %1968 = tail call ptr @__errno_location() #10
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @s2n_print_stacktrace(ptr noundef %1970) #9
  %1972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1973 = trunc nuw i8 %1972 to i1
  br i1 %1973, label %1974, label %1978

1974:                                             ; preds = %1967
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @fileno(ptr noundef %1975) #9
  %1977 = call i32 @isatty(i32 noundef %1976) #9
  %.not291 = icmp eq i32 %1977, 0
  br i1 %.not291, label %1978, label %1979

1978:                                             ; preds = %1974, %1967
  br label %1979

1979:                                             ; preds = %1974, %1978
  %.str.5.sink1084 = phi ptr [ @.str.5, %1978 ], [ @.str.2, %1974 ]
  store i32 %1969, ptr %1968, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef nonnull @.str.4) #9
  %1985 = load i32, ptr %1982, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef nonnull @.str.4) #9
  %1987 = load i32, ptr %1968, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #9
  %1989 = load i32, ptr %1968, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef nonnull %.str.5.sink1084, i32 noundef %1981, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1984, ptr noundef %1986, ptr noundef %1988, i32 noundef %1989) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1991:                                             ; preds = %1962
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = add nsw i32 %1992, 1
  store i32 %1993, ptr @test_count, align 4, !tbaa !5
  %1994 = call i32 %776(ptr noundef nonnull %1905, ptr noundef nonnull %10) #9
  %1995 = icmp eq i32 %1994, -1
  br i1 %1995, label %1996, label %2020

1996:                                             ; preds = %1991
  %1997 = tail call ptr @__errno_location() #10
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @s2n_print_stacktrace(ptr noundef %1999) #9
  %2001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2002 = trunc nuw i8 %2001 to i1
  br i1 %2002, label %2003, label %2007

2003:                                             ; preds = %1996
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @fileno(ptr noundef %2004) #9
  %2006 = call i32 @isatty(i32 noundef %2005) #9
  %.not290 = icmp eq i32 %2006, 0
  br i1 %.not290, label %2007, label %2008

2007:                                             ; preds = %2003, %1996
  br label %2008

2008:                                             ; preds = %2003, %2007
  %.str.5.sink1095 = phi ptr [ @.str.5, %2007 ], [ @.str.2, %2003 ]
  store i32 %1998, ptr %1997, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror(i32 noundef %2012, ptr noundef nonnull @.str.4) #9
  %2014 = load i32, ptr %2011, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror_debug(i32 noundef %2014, ptr noundef nonnull @.str.4) #9
  %2016 = load i32, ptr %1997, align 4, !tbaa !5
  %2017 = call ptr @strerror(i32 noundef %2016) #9
  %2018 = load i32, ptr %1997, align 4, !tbaa !5
  %2019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef nonnull %.str.5.sink1095, i32 noundef %2010, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %2013, ptr noundef %2015, ptr noundef %2017, i32 noundef %2018) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2020:                                             ; preds = %1991
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = add nsw i32 %2021, 1
  store i32 %2022, ptr @test_count, align 4, !tbaa !5
  %2023 = getelementptr inbounds i8, ptr %1905, i64 1744
  %2024 = load i32, ptr %2023, align 8, !tbaa !19
  %2025 = icmp eq i32 %2024, 2
  br i1 %2025, label %2050, label %2026

2026:                                             ; preds = %2020
  %2027 = tail call ptr @__errno_location() #10
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = call i32 @s2n_print_stacktrace(ptr noundef %2029) #9
  %2031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2032 = trunc nuw i8 %2031 to i1
  br i1 %2032, label %2033, label %2037

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

2037:                                             ; preds = %2033, %2026
  br label %2038

2038:                                             ; preds = %2033, %2037
  %.str.5.sink1106 = phi ptr [ @.str.5, %2037 ], [ @.str.2, %2033 ]
  store i32 %2028, ptr %2027, align 4, !tbaa !5
  %2039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror(i32 noundef %2042, ptr noundef nonnull @.str.4) #9
  %2044 = load i32, ptr %2041, align 4, !tbaa !5
  %2045 = call ptr @s2n_strerror_debug(i32 noundef %2044, ptr noundef nonnull @.str.4) #9
  %2046 = load i32, ptr %2027, align 4, !tbaa !5
  %2047 = call ptr @strerror(i32 noundef %2046) #9
  %2048 = load i32, ptr %2027, align 4, !tbaa !5
  %2049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2039, ptr noundef nonnull %.str.5.sink1106, i32 noundef %2040, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2043, ptr noundef %2045, ptr noundef %2047, i32 noundef %2048) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2050:                                             ; preds = %2020
  %2051 = add nsw i32 %2021, 2
  store i32 %2051, ptr @test_count, align 4, !tbaa !5
  %2052 = call i32 @s2n_connection_free(ptr noundef nonnull %1905) #9
  %2053 = icmp eq i32 %2052, -1
  br i1 %2053, label %2054, label %2078

2054:                                             ; preds = %2050
  %2055 = tail call ptr @__errno_location() #10
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = call i32 @s2n_print_stacktrace(ptr noundef %2057) #9
  %2059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2060 = trunc nuw i8 %2059 to i1
  br i1 %2060, label %2061, label %2065

2061:                                             ; preds = %2054
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = call i32 @fileno(ptr noundef %2062) #9
  %2064 = call i32 @isatty(i32 noundef %2063) #9
  %.not289 = icmp eq i32 %2064, 0
  br i1 %.not289, label %2065, label %2066

2065:                                             ; preds = %2061, %2054
  br label %2066

2066:                                             ; preds = %2061, %2065
  %.str.5.sink1117 = phi ptr [ @.str.5, %2065 ], [ @.str.2, %2061 ]
  store i32 %2056, ptr %2055, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef nonnull @.str.4) #9
  %2072 = load i32, ptr %2069, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror_debug(i32 noundef %2072, ptr noundef nonnull @.str.4) #9
  %2074 = load i32, ptr %2055, align 4, !tbaa !5
  %2075 = call ptr @strerror(i32 noundef %2074) #9
  %2076 = load i32, ptr %2055, align 4, !tbaa !5
  %2077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef nonnull %.str.5.sink1117, i32 noundef %2068, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %2071, ptr noundef %2073, ptr noundef %2075, i32 noundef %2076) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2078:                                             ; preds = %2050
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = add nsw i32 %2079, 1
  store i32 %2080, ptr @test_count, align 4, !tbaa !5
  %2081 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %10) #9
  %2082 = icmp eq i32 %2081, -1
  br i1 %2082, label %2083, label %2107

2083:                                             ; preds = %2078
  %2084 = tail call ptr @__errno_location() #10
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = call i32 @s2n_print_stacktrace(ptr noundef %2086) #9
  %2088 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2089 = trunc nuw i8 %2088 to i1
  br i1 %2089, label %2090, label %2094

2090:                                             ; preds = %2083
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = call i32 @fileno(ptr noundef %2091) #9
  %2093 = call i32 @isatty(i32 noundef %2092) #9
  %.not288 = icmp eq i32 %2093, 0
  br i1 %.not288, label %2094, label %2095

2094:                                             ; preds = %2090, %2083
  br label %2095

2095:                                             ; preds = %2090, %2094
  %.str.5.sink1128 = phi ptr [ @.str.5, %2094 ], [ @.str.2, %2090 ]
  store i32 %2085, ptr %2084, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef nonnull @.str.4) #9
  %2101 = load i32, ptr %2098, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror_debug(i32 noundef %2101, ptr noundef nonnull @.str.4) #9
  %2103 = load i32, ptr %2084, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #9
  %2105 = load i32, ptr %2084, align 4, !tbaa !5
  %2106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef nonnull %.str.5.sink1128, i32 noundef %2097, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2100, ptr noundef %2102, ptr noundef %2104, i32 noundef %2105) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2107:                                             ; preds = %2078
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #9
  %2108 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %2109 = call ptr @s2n_config_new() #9
  store ptr %2109, ptr %12, align 8, !tbaa !9
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = add nsw i32 %2110, 1
  store i32 %2111, ptr @test_count, align 4, !tbaa !5
  %2112 = icmp eq ptr %2109, null
  br i1 %2112, label %2113, label %2137

2113:                                             ; preds = %2107
  %2114 = tail call ptr @__errno_location() #10
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @s2n_print_stacktrace(ptr noundef %2116) #9
  %2118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2119 = trunc nuw i8 %2118 to i1
  br i1 %2119, label %2120, label %2124

2120:                                             ; preds = %2113
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @fileno(ptr noundef %2121) #9
  %2123 = call i32 @isatty(i32 noundef %2122) #9
  %.not287 = icmp eq i32 %2123, 0
  br i1 %.not287, label %2124, label %2125

2124:                                             ; preds = %2120, %2113
  br label %2125

2125:                                             ; preds = %2120, %2124
  %.str.5.sink1139 = phi ptr [ @.str.5, %2124 ], [ @.str.2, %2120 ]
  store i32 %2115, ptr %2114, align 4, !tbaa !5
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = load i32, ptr @test_count, align 4, !tbaa !5
  %2128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @s2n_strerror(i32 noundef %2129, ptr noundef nonnull @.str.4) #9
  %2131 = load i32, ptr %2128, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror_debug(i32 noundef %2131, ptr noundef nonnull @.str.4) #9
  %2133 = load i32, ptr %2114, align 4, !tbaa !5
  %2134 = call ptr @strerror(i32 noundef %2133) #9
  %2135 = load i32, ptr %2114, align 4, !tbaa !5
  %2136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2126, ptr noundef nonnull %.str.5.sink1139, i32 noundef %2127, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2130, ptr noundef %2132, ptr noundef %2134, i32 noundef %2135) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2137:                                             ; preds = %2107
  %2138 = add nsw i32 %2110, 2
  store i32 %2138, ptr @test_count, align 4, !tbaa !5
  %2139 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %2109, i8 noundef zeroext 0) #9
  %2140 = icmp eq i32 %2139, -1
  br i1 %2140, label %2141, label %2165

2141:                                             ; preds = %2137
  %2142 = tail call ptr @__errno_location() #10
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @s2n_print_stacktrace(ptr noundef %2144) #9
  %2146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2147 = trunc nuw i8 %2146 to i1
  br i1 %2147, label %2148, label %2152

2148:                                             ; preds = %2141
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = call i32 @fileno(ptr noundef %2149) #9
  %2151 = call i32 @isatty(i32 noundef %2150) #9
  %.not286 = icmp eq i32 %2151, 0
  br i1 %.not286, label %2152, label %2153

2152:                                             ; preds = %2148, %2141
  br label %2153

2153:                                             ; preds = %2148, %2152
  %.str.5.sink1150 = phi ptr [ @.str.5, %2152 ], [ @.str.2, %2148 ]
  store i32 %2143, ptr %2142, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror(i32 noundef %2157, ptr noundef nonnull @.str.4) #9
  %2159 = load i32, ptr %2156, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror_debug(i32 noundef %2159, ptr noundef nonnull @.str.4) #9
  %2161 = load i32, ptr %2142, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #9
  %2163 = load i32, ptr %2142, align 4, !tbaa !5
  %2164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2154, ptr noundef nonnull %.str.5.sink1150, i32 noundef %2155, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %2158, ptr noundef %2160, ptr noundef %2162, i32 noundef %2163) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2165:                                             ; preds = %2137
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %2166 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %2166, ptr %13, align 8, !tbaa !9
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = add nsw i32 %2167, 1
  store i32 %2168, ptr @test_count, align 4, !tbaa !5
  %2169 = load ptr, ptr %12, align 8, !tbaa !9
  %2170 = call i32 @s2n_connection_set_config(ptr noundef %2166, ptr noundef %2169) #9
  %2171 = icmp eq i32 %2170, -1
  br i1 %2171, label %2172, label %2196

2172:                                             ; preds = %2165
  %2173 = tail call ptr @__errno_location() #10
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = call i32 @s2n_print_stacktrace(ptr noundef %2175) #9
  %2177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2178 = trunc nuw i8 %2177 to i1
  br i1 %2178, label %2179, label %2183

2179:                                             ; preds = %2172
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = call i32 @fileno(ptr noundef %2180) #9
  %2182 = call i32 @isatty(i32 noundef %2181) #9
  %.not285 = icmp eq i32 %2182, 0
  br i1 %.not285, label %2183, label %2184

2183:                                             ; preds = %2179, %2172
  br label %2184

2184:                                             ; preds = %2179, %2183
  %.str.5.sink1161 = phi ptr [ @.str.5, %2183 ], [ @.str.2, %2179 ]
  store i32 %2174, ptr %2173, align 4, !tbaa !5
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = load i32, ptr @test_count, align 4, !tbaa !5
  %2187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror(i32 noundef %2188, ptr noundef nonnull @.str.4) #9
  %2190 = load i32, ptr %2187, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror_debug(i32 noundef %2190, ptr noundef nonnull @.str.4) #9
  %2192 = load i32, ptr %2173, align 4, !tbaa !5
  %2193 = call ptr @strerror(i32 noundef %2192) #9
  %2194 = load i32, ptr %2173, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2185, ptr noundef nonnull %.str.5.sink1161, i32 noundef %2186, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2189, ptr noundef %2191, ptr noundef %2193, i32 noundef %2194) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2196:                                             ; preds = %2165
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr @test_count, align 4, !tbaa !5
  %2199 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_psk_key_exchange_modes_extension, i64 24), align 8, !tbaa !47
  %2200 = load ptr, ptr %13, align 8, !tbaa !9
  %2201 = call zeroext i1 %2199(ptr noundef %2200) #9
  br i1 %2201, label %2202, label %2226

2202:                                             ; preds = %2196
  %2203 = tail call ptr @__errno_location() #10
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @s2n_print_stacktrace(ptr noundef %2205) #9
  %2207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2208 = trunc nuw i8 %2207 to i1
  br i1 %2208, label %2209, label %2213

2209:                                             ; preds = %2202
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @fileno(ptr noundef %2210) #9
  %2212 = call i32 @isatty(i32 noundef %2211) #9
  %.not284 = icmp eq i32 %2212, 0
  br i1 %.not284, label %2213, label %2214

2213:                                             ; preds = %2209, %2202
  br label %2214

2214:                                             ; preds = %2209, %2213
  %.str.5.sink1172 = phi ptr [ @.str.5, %2213 ], [ @.str.2, %2209 ]
  store i32 %2204, ptr %2203, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror(i32 noundef %2218, ptr noundef nonnull @.str.4) #9
  %2220 = load i32, ptr %2217, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror_debug(i32 noundef %2220, ptr noundef nonnull @.str.4) #9
  %2222 = load i32, ptr %2203, align 4, !tbaa !5
  %2223 = call ptr @strerror(i32 noundef %2222) #9
  %2224 = load i32, ptr %2203, align 4, !tbaa !5
  %2225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef nonnull %.str.5.sink1172, i32 noundef %2216, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2219, ptr noundef %2221, ptr noundef %2223, i32 noundef %2224) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2226:                                             ; preds = %2196
  %2227 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %2228 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %2229 = call ptr @s2n_config_new() #9
  store ptr %2229, ptr %14, align 8, !tbaa !9
  %2230 = load i32, ptr @test_count, align 4, !tbaa !5
  %2231 = add nsw i32 %2230, 1
  store i32 %2231, ptr @test_count, align 4, !tbaa !5
  %2232 = icmp eq ptr %2229, null
  br i1 %2232, label %2233, label %2257

2233:                                             ; preds = %2226
  %2234 = tail call ptr @__errno_location() #10
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = call i32 @s2n_print_stacktrace(ptr noundef %2236) #9
  %2238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2239 = trunc nuw i8 %2238 to i1
  br i1 %2239, label %2240, label %2244

2240:                                             ; preds = %2233
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @fileno(ptr noundef %2241) #9
  %2243 = call i32 @isatty(i32 noundef %2242) #9
  %.not283 = icmp eq i32 %2243, 0
  br i1 %.not283, label %2244, label %2245

2244:                                             ; preds = %2240, %2233
  br label %2245

2245:                                             ; preds = %2240, %2244
  %.str.5.sink1183 = phi ptr [ @.str.5, %2244 ], [ @.str.2, %2240 ]
  store i32 %2235, ptr %2234, align 4, !tbaa !5
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = load i32, ptr @test_count, align 4, !tbaa !5
  %2248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call ptr @s2n_strerror(i32 noundef %2249, ptr noundef nonnull @.str.4) #9
  %2251 = load i32, ptr %2248, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror_debug(i32 noundef %2251, ptr noundef nonnull @.str.4) #9
  %2253 = load i32, ptr %2234, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #9
  %2255 = load i32, ptr %2234, align 4, !tbaa !5
  %2256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2246, ptr noundef nonnull %.str.5.sink1183, i32 noundef %2247, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2250, ptr noundef %2252, ptr noundef %2254, i32 noundef %2255) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2257:                                             ; preds = %2226
  %2258 = add nsw i32 %2230, 2
  store i32 %2258, ptr @test_count, align 4, !tbaa !5
  %2259 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %2229, i8 noundef zeroext 1) #9
  %2260 = icmp eq i32 %2259, -1
  br i1 %2260, label %2261, label %2285

2261:                                             ; preds = %2257
  %2262 = tail call ptr @__errno_location() #10
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = call i32 @s2n_print_stacktrace(ptr noundef %2264) #9
  %2266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2267 = trunc nuw i8 %2266 to i1
  br i1 %2267, label %2268, label %2272

2268:                                             ; preds = %2261
  %2269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2270 = call i32 @fileno(ptr noundef %2269) #9
  %2271 = call i32 @isatty(i32 noundef %2270) #9
  %.not282 = icmp eq i32 %2271, 0
  br i1 %.not282, label %2272, label %2273

2272:                                             ; preds = %2268, %2261
  br label %2273

2273:                                             ; preds = %2268, %2272
  %.str.5.sink1194 = phi ptr [ @.str.5, %2272 ], [ @.str.2, %2268 ]
  store i32 %2263, ptr %2262, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @s2n_strerror(i32 noundef %2277, ptr noundef nonnull @.str.4) #9
  %2279 = load i32, ptr %2276, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef nonnull @.str.4) #9
  %2281 = load i32, ptr %2262, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #9
  %2283 = load i32, ptr %2262, align 4, !tbaa !5
  %2284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2274, ptr noundef nonnull %.str.5.sink1194, i32 noundef %2275, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2278, ptr noundef %2280, ptr noundef %2282, i32 noundef %2283) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2285:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  %2286 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %2286, ptr %15, align 8, !tbaa !9
  %2287 = load i32, ptr @test_count, align 4, !tbaa !5
  %2288 = add nsw i32 %2287, 1
  store i32 %2288, ptr @test_count, align 4, !tbaa !5
  %2289 = load ptr, ptr %14, align 8, !tbaa !9
  %2290 = call i32 @s2n_connection_set_config(ptr noundef %2286, ptr noundef %2289) #9
  %2291 = icmp eq i32 %2290, -1
  br i1 %2291, label %2292, label %2316

2292:                                             ; preds = %2285
  %2293 = tail call ptr @__errno_location() #10
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = call i32 @s2n_print_stacktrace(ptr noundef %2295) #9
  %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 = %2292
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = call i32 @fileno(ptr noundef %2300) #9
  %2302 = call i32 @isatty(i32 noundef %2301) #9
  %.not281 = icmp eq i32 %2302, 0
  br i1 %.not281, label %2303, label %2304

2303:                                             ; preds = %2299, %2292
  br label %2304

2304:                                             ; preds = %2299, %2303
  %.str.5.sink1205 = phi ptr [ @.str.5, %2303 ], [ @.str.2, %2299 ]
  store i32 %2294, ptr %2293, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2308, ptr noundef nonnull @.str.4) #9
  %2310 = load i32, ptr %2307, align 4, !tbaa !5
  %2311 = call ptr @s2n_strerror_debug(i32 noundef %2310, ptr noundef nonnull @.str.4) #9
  %2312 = load i32, ptr %2293, align 4, !tbaa !5
  %2313 = call ptr @strerror(i32 noundef %2312) #9
  %2314 = load i32, ptr %2293, align 4, !tbaa !5
  %2315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2305, ptr noundef nonnull %.str.5.sink1205, i32 noundef %2306, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2309, ptr noundef %2311, ptr noundef %2313, i32 noundef %2314) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2316:                                             ; preds = %2285
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = add nsw i32 %2317, 1
  store i32 %2318, ptr @test_count, align 4, !tbaa !5
  %2319 = load ptr, ptr %15, align 8, !tbaa !9
  %2320 = call zeroext i1 %2199(ptr noundef %2319) #9
  br i1 %2320, label %2345, label %2321

2321:                                             ; preds = %2316
  %2322 = tail call ptr @__errno_location() #10
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @s2n_print_stacktrace(ptr noundef %2324) #9
  %2326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2327 = trunc nuw i8 %2326 to i1
  br i1 %2327, label %2328, label %2332

2328:                                             ; preds = %2321
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = call i32 @fileno(ptr noundef %2329) #9
  %2331 = call i32 @isatty(i32 noundef %2330) #9
  %.not260 = icmp eq i32 %2331, 0
  br i1 %.not260, label %2332, label %2333

2332:                                             ; preds = %2328, %2321
  br label %2333

2333:                                             ; preds = %2328, %2332
  %.str.5.sink1216 = phi ptr [ @.str.5, %2332 ], [ @.str.2, %2328 ]
  store i32 %2323, ptr %2322, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror(i32 noundef %2337, ptr noundef nonnull @.str.4) #9
  %2339 = load i32, ptr %2336, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror_debug(i32 noundef %2339, ptr noundef nonnull @.str.4) #9
  %2341 = load i32, ptr %2322, align 4, !tbaa !5
  %2342 = call ptr @strerror(i32 noundef %2341) #9
  %2343 = load i32, ptr %2322, align 4, !tbaa !5
  %2344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2334, ptr noundef nonnull %.str.5.sink1216, i32 noundef %2335, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2338, ptr noundef %2340, ptr noundef %2342, i32 noundef %2343) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2345:                                             ; preds = %2316
  %2346 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  %2347 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #9
  %2348 = call ptr @s2n_config_new() #9
  store ptr %2348, ptr %16, align 8, !tbaa !9
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = add nsw i32 %2349, 1
  store i32 %2350, ptr @test_count, align 4, !tbaa !5
  %2351 = icmp eq ptr %2348, null
  br i1 %2351, label %2352, label %2376

2352:                                             ; preds = %2345
  %2353 = tail call ptr @__errno_location() #10
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @s2n_print_stacktrace(ptr noundef %2355) #9
  %2357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2358 = trunc nuw i8 %2357 to i1
  br i1 %2358, label %2359, label %2363

2359:                                             ; preds = %2352
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = call i32 @fileno(ptr noundef %2360) #9
  %2362 = call i32 @isatty(i32 noundef %2361) #9
  %.not280 = icmp eq i32 %2362, 0
  br i1 %.not280, label %2363, label %2364

2363:                                             ; preds = %2359, %2352
  br label %2364

2364:                                             ; preds = %2359, %2363
  %.str.5.sink1227 = phi ptr [ @.str.5, %2363 ], [ @.str.2, %2359 ]
  store i32 %2354, ptr %2353, align 4, !tbaa !5
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = load i32, ptr @test_count, align 4, !tbaa !5
  %2367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror(i32 noundef %2368, ptr noundef nonnull @.str.4) #9
  %2370 = load i32, ptr %2367, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror_debug(i32 noundef %2370, ptr noundef nonnull @.str.4) #9
  %2372 = load i32, ptr %2353, align 4, !tbaa !5
  %2373 = call ptr @strerror(i32 noundef %2372) #9
  %2374 = load i32, ptr %2353, align 4, !tbaa !5
  %2375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2365, ptr noundef nonnull %.str.5.sink1227, i32 noundef %2366, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %2369, ptr noundef %2371, ptr noundef %2373, i32 noundef %2374) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2376:                                             ; preds = %2345
  %2377 = add nsw i32 %2349, 2
  store i32 %2377, ptr @test_count, align 4, !tbaa !5
  %2378 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %2348, i8 noundef zeroext 0) #9
  %2379 = icmp eq i32 %2378, -1
  br i1 %2379, label %2380, label %2404

2380:                                             ; preds = %2376
  %2381 = tail call ptr @__errno_location() #10
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @s2n_print_stacktrace(ptr noundef %2383) #9
  %2385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2386 = trunc nuw i8 %2385 to i1
  br i1 %2386, label %2387, label %2391

2387:                                             ; preds = %2380
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @fileno(ptr noundef %2388) #9
  %2390 = call i32 @isatty(i32 noundef %2389) #9
  %.not279 = icmp eq i32 %2390, 0
  br i1 %.not279, label %2391, label %2392

2391:                                             ; preds = %2387, %2380
  br label %2392

2392:                                             ; preds = %2387, %2391
  %.str.5.sink1238 = phi ptr [ @.str.5, %2391 ], [ @.str.2, %2387 ]
  store i32 %2382, ptr %2381, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef nonnull @.str.4) #9
  %2398 = load i32, ptr %2395, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror_debug(i32 noundef %2398, ptr noundef nonnull @.str.4) #9
  %2400 = load i32, ptr %2381, align 4, !tbaa !5
  %2401 = call ptr @strerror(i32 noundef %2400) #9
  %2402 = load i32, ptr %2381, align 4, !tbaa !5
  %2403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef nonnull %.str.5.sink1238, i32 noundef %2394, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %2397, ptr noundef %2399, ptr noundef %2401, i32 noundef %2402) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2404:                                             ; preds = %2376
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  %2405 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %2405, ptr %17, align 8, !tbaa !9
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = add nsw i32 %2406, 1
  store i32 %2407, ptr @test_count, align 4, !tbaa !5
  %2408 = load ptr, ptr %16, align 8, !tbaa !9
  %2409 = call i32 @s2n_connection_set_config(ptr noundef %2405, ptr noundef %2408) #9
  %2410 = icmp eq i32 %2409, -1
  br i1 %2410, label %2411, label %2435

2411:                                             ; preds = %2404
  %2412 = tail call ptr @__errno_location() #10
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = call i32 @s2n_print_stacktrace(ptr noundef %2414) #9
  %2416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2417 = trunc nuw i8 %2416 to i1
  br i1 %2417, label %2418, label %2422

2418:                                             ; preds = %2411
  %2419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2420 = call i32 @fileno(ptr noundef %2419) #9
  %2421 = call i32 @isatty(i32 noundef %2420) #9
  %.not278 = icmp eq i32 %2421, 0
  br i1 %.not278, label %2422, label %2423

2422:                                             ; preds = %2418, %2411
  br label %2423

2423:                                             ; preds = %2418, %2422
  %.str.5.sink1249 = phi ptr [ @.str.5, %2422 ], [ @.str.2, %2418 ]
  store i32 %2413, ptr %2412, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = load i32, ptr @test_count, align 4, !tbaa !5
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef nonnull @.str.4) #9
  %2429 = load i32, ptr %2426, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror_debug(i32 noundef %2429, ptr noundef nonnull @.str.4) #9
  %2431 = load i32, ptr %2412, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #9
  %2433 = load i32, ptr %2412, align 4, !tbaa !5
  %2434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2424, ptr noundef nonnull %.str.5.sink1249, i32 noundef %2425, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %2428, ptr noundef %2430, ptr noundef %2432, i32 noundef %2433) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2435:                                             ; preds = %2404
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  %2436 = load ptr, ptr %17, align 8, !tbaa !9
  %2437 = call ptr @s2n_test_psk_new(ptr noundef %2436) #9
  store ptr %2437, ptr %18, align 8, !tbaa !9
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr @test_count, align 4, !tbaa !5
  %2440 = load ptr, ptr %17, align 8, !tbaa !9
  %2441 = call i32 @s2n_connection_append_psk(ptr noundef %2440, ptr noundef %2437) #9
  %2442 = icmp eq i32 %2441, -1
  br i1 %2442, label %2443, label %2467

2443:                                             ; preds = %2435
  %2444 = tail call ptr @__errno_location() #10
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = call i32 @s2n_print_stacktrace(ptr noundef %2446) #9
  %2448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2449 = trunc nuw i8 %2448 to i1
  br i1 %2449, label %2450, label %2454

2450:                                             ; preds = %2443
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = call i32 @fileno(ptr noundef %2451) #9
  %2453 = call i32 @isatty(i32 noundef %2452) #9
  %.not277 = icmp eq i32 %2453, 0
  br i1 %.not277, label %2454, label %2455

2454:                                             ; preds = %2450, %2443
  br label %2455

2455:                                             ; preds = %2450, %2454
  %.str.5.sink1260 = phi ptr [ @.str.5, %2454 ], [ @.str.2, %2450 ]
  store i32 %2445, ptr %2444, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror(i32 noundef %2459, ptr noundef nonnull @.str.4) #9
  %2461 = load i32, ptr %2458, align 4, !tbaa !5
  %2462 = call ptr @s2n_strerror_debug(i32 noundef %2461, ptr noundef nonnull @.str.4) #9
  %2463 = load i32, ptr %2444, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #9
  %2465 = load i32, ptr %2444, align 4, !tbaa !5
  %2466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2456, ptr noundef nonnull %.str.5.sink1260, i32 noundef %2457, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2460, ptr noundef %2462, ptr noundef %2464, i32 noundef %2465) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2467:                                             ; preds = %2435
  %2468 = load i32, ptr @test_count, align 4, !tbaa !5
  %2469 = add nsw i32 %2468, 1
  store i32 %2469, ptr @test_count, align 4, !tbaa !5
  %2470 = load ptr, ptr %17, align 8, !tbaa !9
  %2471 = call zeroext i1 %2199(ptr noundef %2470) #9
  br i1 %2471, label %2496, label %2472

2472:                                             ; preds = %2467
  %2473 = tail call ptr @__errno_location() #10
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = call i32 @s2n_print_stacktrace(ptr noundef %2475) #9
  %2477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2478 = trunc nuw i8 %2477 to i1
  br i1 %2478, label %2479, label %2483

2479:                                             ; preds = %2472
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @fileno(ptr noundef %2480) #9
  %2482 = call i32 @isatty(i32 noundef %2481) #9
  %.not261 = icmp eq i32 %2482, 0
  br i1 %.not261, label %2483, label %2484

2483:                                             ; preds = %2479, %2472
  br label %2484

2484:                                             ; preds = %2479, %2483
  %.str.5.sink1271 = phi ptr [ @.str.5, %2483 ], [ @.str.2, %2479 ]
  store i32 %2474, ptr %2473, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror(i32 noundef %2488, ptr noundef nonnull @.str.4) #9
  %2490 = load i32, ptr %2487, align 4, !tbaa !5
  %2491 = call ptr @s2n_strerror_debug(i32 noundef %2490, ptr noundef nonnull @.str.4) #9
  %2492 = load i32, ptr %2473, align 4, !tbaa !5
  %2493 = call ptr @strerror(i32 noundef %2492) #9
  %2494 = load i32, ptr %2473, align 4, !tbaa !5
  %2495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef nonnull %.str.5.sink1271, i32 noundef %2486, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2489, ptr noundef %2491, ptr noundef %2493, i32 noundef %2494) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2496:                                             ; preds = %2467
  %2497 = call i32 @s2n_psk_free(ptr noundef nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  %2498 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  %2499 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false)
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %2501 = add nsw i32 %2500, 1
  store i32 %2501, ptr @test_count, align 4, !tbaa !5
  %2502 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %19, i32 noundef 0) #9
  %2503 = icmp eq i32 %2502, -1
  br i1 %2503, label %2504, label %2528

2504:                                             ; preds = %2496
  %2505 = tail call ptr @__errno_location() #10
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @s2n_print_stacktrace(ptr noundef %2507) #9
  %2509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2510 = trunc nuw i8 %2509 to i1
  br i1 %2510, label %2511, label %2515

2511:                                             ; preds = %2504
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @fileno(ptr noundef %2512) #9
  %2514 = call i32 @isatty(i32 noundef %2513) #9
  %.not276 = icmp eq i32 %2514, 0
  br i1 %.not276, label %2515, label %2516

2515:                                             ; preds = %2511, %2504
  br label %2516

2516:                                             ; preds = %2511, %2515
  %.str.5.sink1282 = phi ptr [ @.str.5, %2515 ], [ @.str.2, %2511 ]
  store i32 %2506, ptr %2505, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror(i32 noundef %2520, ptr noundef nonnull @.str.4) #9
  %2522 = load i32, ptr %2519, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror_debug(i32 noundef %2522, ptr noundef nonnull @.str.4) #9
  %2524 = load i32, ptr %2505, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #9
  %2526 = load i32, ptr %2505, align 4, !tbaa !5
  %2527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef nonnull %.str.5.sink1282, i32 noundef %2518, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2521, ptr noundef %2523, ptr noundef %2525, i32 noundef %2526) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2528:                                             ; preds = %2496
  %2529 = load i32, ptr @test_count, align 4, !tbaa !5
  %2530 = add nsw i32 %2529, 1
  store i32 %2530, ptr @test_count, align 4, !tbaa !5
  %2531 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %2532 = icmp eq ptr %2531, null
  br i1 %2532, label %2533, label %2557

2533:                                             ; preds = %2528
  %2534 = tail call ptr @__errno_location() #10
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2537 = call i32 @s2n_print_stacktrace(ptr noundef %2536) #9
  %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 = %2533
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = call i32 @fileno(ptr noundef %2541) #9
  %2543 = call i32 @isatty(i32 noundef %2542) #9
  %.not275 = icmp eq i32 %2543, 0
  br i1 %.not275, label %2544, label %2545

2544:                                             ; preds = %2540, %2533
  br label %2545

2545:                                             ; preds = %2540, %2544
  %.str.5.sink1293 = phi ptr [ @.str.5, %2544 ], [ @.str.2, %2540 ]
  store i32 %2535, ptr %2534, align 4, !tbaa !5
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2549 = load i32, ptr %2548, align 4, !tbaa !5
  %2550 = call ptr @s2n_strerror(i32 noundef %2549, ptr noundef nonnull @.str.4) #9
  %2551 = load i32, ptr %2548, align 4, !tbaa !5
  %2552 = call ptr @s2n_strerror_debug(i32 noundef %2551, ptr noundef nonnull @.str.4) #9
  %2553 = load i32, ptr %2534, align 4, !tbaa !5
  %2554 = call ptr @strerror(i32 noundef %2553) #9
  %2555 = load i32, ptr %2534, align 4, !tbaa !5
  %2556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2546, ptr noundef nonnull %.str.5.sink1293, i32 noundef %2547, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2550, ptr noundef %2552, ptr noundef %2554, i32 noundef %2555) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2557:                                             ; preds = %2528
  %2558 = load i32, ptr @test_count, align 4, !tbaa !5
  %2559 = add nsw i32 %2558, 1
  store i32 %2559, ptr @test_count, align 4, !tbaa !5
  %2560 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %2561 = icmp eq ptr %2560, null
  br i1 %2561, label %2562, label %2586

2562:                                             ; preds = %2557
  %2563 = tail call ptr @__errno_location() #10
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @s2n_print_stacktrace(ptr noundef %2565) #9
  %2567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2568 = trunc nuw i8 %2567 to i1
  br i1 %2568, label %2569, label %2573

2569:                                             ; preds = %2562
  %2570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2571 = call i32 @fileno(ptr noundef %2570) #9
  %2572 = call i32 @isatty(i32 noundef %2571) #9
  %.not274 = icmp eq i32 %2572, 0
  br i1 %.not274, label %2573, label %2574

2573:                                             ; preds = %2569, %2562
  br label %2574

2574:                                             ; preds = %2569, %2573
  %.str.5.sink1304 = phi ptr [ @.str.5, %2573 ], [ @.str.2, %2569 ]
  store i32 %2564, ptr %2563, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @s2n_strerror(i32 noundef %2578, ptr noundef nonnull @.str.4) #9
  %2580 = load i32, ptr %2577, align 4, !tbaa !5
  %2581 = call ptr @s2n_strerror_debug(i32 noundef %2580, ptr noundef nonnull @.str.4) #9
  %2582 = load i32, ptr %2563, align 4, !tbaa !5
  %2583 = call ptr @strerror(i32 noundef %2582) #9
  %2584 = load i32, ptr %2563, align 4, !tbaa !5
  %2585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2575, ptr noundef nonnull %.str.5.sink1304, i32 noundef %2576, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2579, ptr noundef %2581, ptr noundef %2583, i32 noundef %2584) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2586:                                             ; preds = %2557
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = add nsw i32 %2587, 1
  store i32 %2588, ptr @test_count, align 4, !tbaa !5
  %2589 = getelementptr inbounds i8, ptr %2531, i64 1744
  %2590 = load i32, ptr %2589, align 8, !tbaa !19
  %2591 = icmp eq i32 %2590, 0
  br i1 %2591, label %2616, label %2592

2592:                                             ; preds = %2586
  %2593 = tail call ptr @__errno_location() #10
  %2594 = load i32, ptr %2593, align 4, !tbaa !5
  %2595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2596 = call i32 @s2n_print_stacktrace(ptr noundef %2595) #9
  %2597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2598 = trunc nuw i8 %2597 to i1
  br i1 %2598, label %2599, label %2603

2599:                                             ; preds = %2592
  %2600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2601 = call i32 @fileno(ptr noundef %2600) #9
  %2602 = call i32 @isatty(i32 noundef %2601) #9
  %.not262 = icmp eq i32 %2602, 0
  br i1 %.not262, label %2603, label %2604

2603:                                             ; preds = %2599, %2592
  br label %2604

2604:                                             ; preds = %2599, %2603
  %.str.5.sink1315 = phi ptr [ @.str.5, %2603 ], [ @.str.2, %2599 ]
  store i32 %2594, ptr %2593, align 4, !tbaa !5
  %2605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2606 = load i32, ptr @test_count, align 4, !tbaa !5
  %2607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call ptr @s2n_strerror(i32 noundef %2608, ptr noundef nonnull @.str.4) #9
  %2610 = load i32, ptr %2607, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror_debug(i32 noundef %2610, ptr noundef nonnull @.str.4) #9
  %2612 = load i32, ptr %2593, align 4, !tbaa !5
  %2613 = call ptr @strerror(i32 noundef %2612) #9
  %2614 = load i32, ptr %2593, align 4, !tbaa !5
  %2615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2605, ptr noundef nonnull %.str.5.sink1315, i32 noundef %2606, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %2609, ptr noundef %2611, ptr noundef %2613, i32 noundef %2614) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2616:                                             ; preds = %2586
  %2617 = getelementptr inbounds i8, ptr %2531, i64 220
  store i8 34, ptr %2617, align 4, !tbaa !45
  %2618 = getelementptr inbounds i8, ptr %2560, i64 220
  store i8 34, ptr %2618, align 4, !tbaa !45
  %2619 = add nsw i32 %2587, 2
  store i32 %2619, ptr @test_count, align 4, !tbaa !5
  %2620 = call i32 %167(ptr noundef nonnull %2560, ptr noundef nonnull %19) #9
  %2621 = icmp eq i32 %2620, -1
  br i1 %2621, label %2622, label %2646

2622:                                             ; preds = %2616
  %2623 = tail call ptr @__errno_location() #10
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = call i32 @s2n_print_stacktrace(ptr noundef %2625) #9
  %2627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2628 = trunc nuw i8 %2627 to i1
  br i1 %2628, label %2629, label %2633

2629:                                             ; preds = %2622
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = call i32 @fileno(ptr noundef %2630) #9
  %2632 = call i32 @isatty(i32 noundef %2631) #9
  %.not273 = icmp eq i32 %2632, 0
  br i1 %.not273, label %2633, label %2634

2633:                                             ; preds = %2629, %2622
  br label %2634

2634:                                             ; preds = %2629, %2633
  %.str.5.sink1326 = phi ptr [ @.str.5, %2633 ], [ @.str.2, %2629 ]
  store i32 %2624, ptr %2623, align 4, !tbaa !5
  %2635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2636 = load i32, ptr @test_count, align 4, !tbaa !5
  %2637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call ptr @s2n_strerror(i32 noundef %2638, ptr noundef nonnull @.str.4) #9
  %2640 = load i32, ptr %2637, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror_debug(i32 noundef %2640, ptr noundef nonnull @.str.4) #9
  %2642 = load i32, ptr %2623, align 4, !tbaa !5
  %2643 = call ptr @strerror(i32 noundef %2642) #9
  %2644 = load i32, ptr %2623, align 4, !tbaa !5
  %2645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2635, ptr noundef nonnull %.str.5.sink1326, i32 noundef %2636, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %2639, ptr noundef %2641, ptr noundef %2643, i32 noundef %2644) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2646:                                             ; preds = %2616
  %2647 = load i32, ptr @test_count, align 4, !tbaa !5
  %2648 = add nsw i32 %2647, 1
  store i32 %2648, ptr @test_count, align 4, !tbaa !5
  %2649 = call i32 %776(ptr noundef nonnull %2531, ptr noundef nonnull %19) #9
  %2650 = icmp eq i32 %2649, -1
  br i1 %2650, label %2651, label %2675

2651:                                             ; preds = %2646
  %2652 = tail call ptr @__errno_location() #10
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = call i32 @s2n_print_stacktrace(ptr noundef %2654) #9
  %2656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2657 = trunc nuw i8 %2656 to i1
  br i1 %2657, label %2658, label %2662

2658:                                             ; preds = %2651
  %2659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2660 = call i32 @fileno(ptr noundef %2659) #9
  %2661 = call i32 @isatty(i32 noundef %2660) #9
  %.not272 = icmp eq i32 %2661, 0
  br i1 %.not272, label %2662, label %2663

2662:                                             ; preds = %2658, %2651
  br label %2663

2663:                                             ; preds = %2658, %2662
  %.str.5.sink1337 = phi ptr [ @.str.5, %2662 ], [ @.str.2, %2658 ]
  store i32 %2653, ptr %2652, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef nonnull @.str.4) #9
  %2669 = load i32, ptr %2666, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror_debug(i32 noundef %2669, ptr noundef nonnull @.str.4) #9
  %2671 = load i32, ptr %2652, align 4, !tbaa !5
  %2672 = call ptr @strerror(i32 noundef %2671) #9
  %2673 = load i32, ptr %2652, align 4, !tbaa !5
  %2674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2664, ptr noundef nonnull %.str.5.sink1337, i32 noundef %2665, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2668, ptr noundef %2670, ptr noundef %2672, i32 noundef %2673) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2675:                                             ; preds = %2646
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = add nsw i32 %2676, 1
  store i32 %2677, ptr @test_count, align 4, !tbaa !5
  %2678 = load i32, ptr %2589, align 8, !tbaa !19
  %2679 = icmp eq i32 %2678, 2
  br i1 %2679, label %2704, label %2680

2680:                                             ; preds = %2675
  %2681 = tail call ptr @__errno_location() #10
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = call i32 @s2n_print_stacktrace(ptr noundef %2683) #9
  %2685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2686 = trunc nuw i8 %2685 to i1
  br i1 %2686, label %2687, label %2691

2687:                                             ; preds = %2680
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = call i32 @fileno(ptr noundef %2688) #9
  %2690 = call i32 @isatty(i32 noundef %2689) #9
  %.not263 = icmp eq i32 %2690, 0
  br i1 %.not263, label %2691, label %2692

2691:                                             ; preds = %2687, %2680
  br label %2692

2692:                                             ; preds = %2687, %2691
  %.str.5.sink1348 = phi ptr [ @.str.5, %2691 ], [ @.str.2, %2687 ]
  store i32 %2682, ptr %2681, align 4, !tbaa !5
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = load i32, ptr @test_count, align 4, !tbaa !5
  %2695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call ptr @s2n_strerror(i32 noundef %2696, ptr noundef nonnull @.str.4) #9
  %2698 = load i32, ptr %2695, align 4, !tbaa !5
  %2699 = call ptr @s2n_strerror_debug(i32 noundef %2698, ptr noundef nonnull @.str.4) #9
  %2700 = load i32, ptr %2681, align 4, !tbaa !5
  %2701 = call ptr @strerror(i32 noundef %2700) #9
  %2702 = load i32, ptr %2681, align 4, !tbaa !5
  %2703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2693, ptr noundef nonnull %.str.5.sink1348, i32 noundef %2694, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2697, ptr noundef %2699, ptr noundef %2701, i32 noundef %2702) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2704:                                             ; preds = %2675
  %2705 = add nsw i32 %2676, 2
  store i32 %2705, ptr @test_count, align 4, !tbaa !5
  %2706 = call i32 @s2n_connection_free(ptr noundef nonnull %2531) #9
  %2707 = icmp eq i32 %2706, -1
  br i1 %2707, label %2708, label %2732

2708:                                             ; preds = %2704
  %2709 = tail call ptr @__errno_location() #10
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = call i32 @s2n_print_stacktrace(ptr noundef %2711) #9
  %2713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2714 = trunc nuw i8 %2713 to i1
  br i1 %2714, label %2715, label %2719

2715:                                             ; preds = %2708
  %2716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2717 = call i32 @fileno(ptr noundef %2716) #9
  %2718 = call i32 @isatty(i32 noundef %2717) #9
  %.not271 = icmp eq i32 %2718, 0
  br i1 %.not271, label %2719, label %2720

2719:                                             ; preds = %2715, %2708
  br label %2720

2720:                                             ; preds = %2715, %2719
  %.str.5.sink1359 = phi ptr [ @.str.5, %2719 ], [ @.str.2, %2715 ]
  store i32 %2710, ptr %2709, align 4, !tbaa !5
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = load i32, ptr @test_count, align 4, !tbaa !5
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef nonnull @.str.4) #9
  %2726 = load i32, ptr %2723, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef nonnull @.str.4) #9
  %2728 = load i32, ptr %2709, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #9
  %2730 = load i32, ptr %2709, align 4, !tbaa !5
  %2731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2721, ptr noundef nonnull %.str.5.sink1359, i32 noundef %2722, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2725, ptr noundef %2727, ptr noundef %2729, i32 noundef %2730) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2732:                                             ; preds = %2704
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = add nsw i32 %2733, 1
  store i32 %2734, ptr @test_count, align 4, !tbaa !5
  %2735 = call i32 @s2n_connection_free(ptr noundef nonnull %2560) #9
  %2736 = icmp eq i32 %2735, -1
  br i1 %2736, label %2737, label %2761

2737:                                             ; preds = %2732
  %2738 = tail call ptr @__errno_location() #10
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @s2n_print_stacktrace(ptr noundef %2740) #9
  %2742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2743 = trunc nuw i8 %2742 to i1
  br i1 %2743, label %2744, label %2748

2744:                                             ; preds = %2737
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @fileno(ptr noundef %2745) #9
  %2747 = call i32 @isatty(i32 noundef %2746) #9
  %.not270 = icmp eq i32 %2747, 0
  br i1 %.not270, label %2748, label %2749

2748:                                             ; preds = %2744, %2737
  br label %2749

2749:                                             ; preds = %2744, %2748
  %.str.5.sink1370 = phi ptr [ @.str.5, %2748 ], [ @.str.2, %2744 ]
  store i32 %2739, ptr %2738, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = load i32, ptr @test_count, align 4, !tbaa !5
  %2752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @s2n_strerror(i32 noundef %2753, ptr noundef nonnull @.str.4) #9
  %2755 = load i32, ptr %2752, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef nonnull @.str.4) #9
  %2757 = load i32, ptr %2738, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #9
  %2759 = load i32, ptr %2738, align 4, !tbaa !5
  %2760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2750, ptr noundef nonnull %.str.5.sink1370, i32 noundef %2751, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2754, ptr noundef %2756, ptr noundef %2758, i32 noundef %2759) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2761:                                             ; preds = %2732
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = add nsw i32 %2762, 1
  store i32 %2763, ptr @test_count, align 4, !tbaa !5
  %2764 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #9
  %2765 = icmp eq i32 %2764, -1
  br i1 %2765, label %2766, label %2790

2766:                                             ; preds = %2761
  %2767 = tail call ptr @__errno_location() #10
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = call i32 @s2n_print_stacktrace(ptr noundef %2769) #9
  %2771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2772 = trunc nuw i8 %2771 to i1
  br i1 %2772, label %2773, label %2777

2773:                                             ; preds = %2766
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = call i32 @fileno(ptr noundef %2774) #9
  %2776 = call i32 @isatty(i32 noundef %2775) #9
  %.not269 = icmp eq i32 %2776, 0
  br i1 %.not269, label %2777, label %2778

2777:                                             ; preds = %2773, %2766
  br label %2778

2778:                                             ; preds = %2773, %2777
  %.str.5.sink1381 = phi ptr [ @.str.5, %2777 ], [ @.str.2, %2773 ]
  store i32 %2768, ptr %2767, align 4, !tbaa !5
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = load i32, ptr @test_count, align 4, !tbaa !5
  %2781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @s2n_strerror(i32 noundef %2782, ptr noundef nonnull @.str.4) #9
  %2784 = load i32, ptr %2781, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror_debug(i32 noundef %2784, ptr noundef nonnull @.str.4) #9
  %2786 = load i32, ptr %2767, align 4, !tbaa !5
  %2787 = call ptr @strerror(i32 noundef %2786) #9
  %2788 = load i32, ptr %2767, align 4, !tbaa !5
  %2789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2779, ptr noundef nonnull %.str.5.sink1381, i32 noundef %2780, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %2783, ptr noundef %2785, ptr noundef %2787, i32 noundef %2788) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2790:                                             ; preds = %2761
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #9
  %2791 = call i32 @s2n_cleanup() #9
  %2792 = icmp eq i32 %2791, -1
  br i1 %2792, label %2793, label %2817

2793:                                             ; preds = %2790
  %2794 = tail call ptr @__errno_location() #10
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = call i32 @s2n_print_stacktrace(ptr noundef %2796) #9
  %2798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2799 = trunc nuw i8 %2798 to i1
  br i1 %2799, label %2800, label %2804

2800:                                             ; preds = %2793
  %2801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2802 = call i32 @fileno(ptr noundef %2801) #9
  %2803 = call i32 @isatty(i32 noundef %2802) #9
  %.not268 = icmp eq i32 %2803, 0
  br i1 %.not268, label %2804, label %2805

2804:                                             ; preds = %2800, %2793
  br label %2805

2805:                                             ; preds = %2800, %2804
  %.str.5.sink1392 = phi ptr [ @.str.5, %2804 ], [ @.str.2, %2800 ]
  store i32 %2795, ptr %2794, align 4, !tbaa !5
  %2806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2807 = load i32, ptr @test_count, align 4, !tbaa !5
  %2808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @s2n_strerror(i32 noundef %2809, ptr noundef nonnull @.str.4) #9
  %2811 = load i32, ptr %2808, align 4, !tbaa !5
  %2812 = call ptr @s2n_strerror_debug(i32 noundef %2811, ptr noundef nonnull @.str.4) #9
  %2813 = load i32, ptr %2794, align 4, !tbaa !5
  %2814 = call ptr @strerror(i32 noundef %2813) #9
  %2815 = load i32, ptr %2794, align 4, !tbaa !5
  %2816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2806, ptr noundef nonnull %.str.5.sink1392, i32 noundef %2807, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2810, ptr noundef %2812, ptr noundef %2814, i32 noundef %2815) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2817:                                             ; preds = %2790
  %2818 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %2819 = icmp eq i32 %2818, -1
  br i1 %2819, label %2820, label %2844

2820:                                             ; preds = %2817
  %2821 = tail call ptr @__errno_location() #10
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2824 = call i32 @s2n_print_stacktrace(ptr noundef %2823) #9
  %2825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2826 = trunc nuw i8 %2825 to i1
  br i1 %2826, label %2827, label %2831

2827:                                             ; preds = %2820
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = call i32 @fileno(ptr noundef %2828) #9
  %2830 = call i32 @isatty(i32 noundef %2829) #9
  %.not267 = icmp eq i32 %2830, 0
  br i1 %.not267, label %2831, label %2832

2831:                                             ; preds = %2827, %2820
  br label %2832

2832:                                             ; preds = %2827, %2831
  %.str.5.sink1403 = phi ptr [ @.str.5, %2831 ], [ @.str.2, %2827 ]
  store i32 %2822, ptr %2821, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror(i32 noundef %2836, ptr noundef nonnull @.str.4) #9
  %2838 = load i32, ptr %2835, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror_debug(i32 noundef %2838, ptr noundef nonnull @.str.4) #9
  %2840 = load i32, ptr %2821, align 4, !tbaa !5
  %2841 = call ptr @strerror(i32 noundef %2840) #9
  %2842 = load i32, ptr %2821, align 4, !tbaa !5
  %2843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2833, ptr noundef nonnull %.str.5.sink1403, i32 noundef %2834, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2837, ptr noundef %2839, ptr noundef %2841, i32 noundef %2842) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2844:                                             ; preds = %2817
  %2845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2846 = trunc nuw i8 %2845 to i1
  br i1 %2846, label %2847, label %2858

2847:                                             ; preds = %2844
  %2848 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2849 = call i32 @fileno(ptr noundef %2848) #9
  %2850 = call i32 @isatty(i32 noundef %2849) #9
  %.not264 = icmp eq i32 %2850, 0
  br i1 %.not264, label %2858, label %2851

2851:                                             ; preds = %2847
  %2852 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not266 = icmp eq i32 %2852, 0
  %2853 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not266, label %2856, label %2854

2854:                                             ; preds = %2851
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2853, ptr noundef nonnull @.str.64, i32 noundef %2852) #9
  br label %2865

2856:                                             ; preds = %2851
  %2857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2853, ptr noundef nonnull @.str.65) #9
  br label %2865

2858:                                             ; preds = %2847, %2844
  %2859 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not265 = icmp eq i32 %2859, 0
  %2860 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not265, label %2863, label %2861

2861:                                             ; preds = %2858
  %2862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2860, ptr noundef nonnull @.str.66, i32 noundef %2859) #9
  br label %2865

2863:                                             ; preds = %2858
  %2864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2860, ptr noundef nonnull @.str.67) #9
  br label %2865

2865:                                             ; preds = %2861, %2863, %2854, %2856
  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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_test_psk_new(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_psk_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_append_psk(ptr noundef, 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 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { cold nounwind }
attributes #12 = { noreturn nounwind }

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

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


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