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

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

%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_test_io_pair = type { i32, 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 [93 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [81 x i8], align 1
@__const.main.client_verify_data = external hidden unnamed_addr constant [19 x i8], align 16
@__const.main.server_verify_data = external hidden unnamed_addr constant [19 x i8], align 16
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_server_renegotiation_info_extension = external constant %struct.s2n_extension_type, align 8
@.str.18 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca [19 x i8], align 16
  %18 = alloca [19 x i8], align 16
  %19 = alloca i8, align 1
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_stuffer, align 8
  %46 = alloca i32, align 4
  %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 %struct.s2n_result, align 4
  %53 = alloca %struct.s2n_result, align 4
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_stuffer, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_stuffer, align 8
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca 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 %struct.s2n_result, align 4
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca %struct.s2n_result, align 4
  %91 = alloca ptr, align 8
  %92 = alloca i32, align 4
  %93 = alloca i64, align 8
  %94 = alloca i32, align 4
  %95 = alloca i64, align 8
  %96 = alloca i32, align 4
  %97 = alloca i8, align 1
  %98 = alloca %struct.s2n_stuffer, align 8
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_stuffer, align 8
  %105 = alloca %struct.s2n_result, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_stuffer, align 8
  %109 = alloca %struct.s2n_result, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca %struct.s2n_stuffer, align 8
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca %struct.s2n_stuffer, align 8
  %127 = alloca %struct.s2n_result, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca %struct.s2n_stuffer, align 8
  %133 = alloca %struct.s2n_result, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca %struct.s2n_stuffer, align 8
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca ptr, align 8
  %146 = alloca i32, align 4
  %147 = alloca i64, align 8
  %148 = alloca i32, align 4
  %149 = alloca i64, align 8
  %150 = alloca i32, align 4
  %151 = alloca ptr, align 8
  %152 = alloca i32, align 4
  %153 = alloca i64, align 8
  %154 = alloca i32, align 4
  %155 = alloca i64, align 8
  %156 = alloca i32, align 4
  %157 = alloca %struct.s2n_stuffer, align 8
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca %struct.s2n_stuffer, align 8
  %162 = alloca %struct.s2n_result, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca %struct.s2n_result, align 4
  %168 = alloca %struct.s2n_result, align 4
  %169 = alloca ptr, align 8
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca ptr, align 8
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca %struct.s2n_result, align 4
  %189 = alloca %struct.s2n_result, align 4
  %190 = alloca ptr, align 8
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca ptr, align 8
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca %struct.s2n_test_io_pair, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca %struct.s2n_result, align 4
  %207 = alloca %struct.s2n_result, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca %struct.s2n_result, align 4
  %212 = alloca %struct.s2n_result, 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 %213

213:                                              ; preds = %2
  br label %214

214:                                              ; preds = %213
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %215 = load ptr, ptr @stdout, align 8, !tbaa !9
  %216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef @.str, ptr noundef @.str.1) #11
  %217 = load ptr, ptr @stdout, align 8, !tbaa !9
  %218 = call i32 @fflush(ptr noundef %217)
  br label %219

219:                                              ; preds = %214
  %220 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %221 = icmp eq i32 %220, -1
  br i1 %221, label %222, label %273

222:                                              ; preds = %219
  br label %223

223:                                              ; preds = %222
  br label %224

224:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %225 = call ptr @__errno_location() #12
  %226 = load i32, ptr %225, align 4, !tbaa !5
  store i32 %226, ptr %6, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = call i32 @s2n_print_stacktrace(ptr noundef %227)
  %229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %230 = trunc i8 %229 to i1
  br i1 %230, label %231, label %253

231:                                              ; preds = %224
  %232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %233 = call i32 @fileno(ptr noundef %232) #11
  %234 = call i32 @isatty(i32 noundef %233) #11
  %235 = icmp ne i32 %234, 0
  br i1 %235, label %236, label %253

236:                                              ; preds = %231
  %237 = load i32, ptr %6, align 4, !tbaa !5
  %238 = call ptr @__errno_location() #12
  store i32 %237, ptr %238, align 4, !tbaa !5
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %242, ptr noundef @.str.4)
  %244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @s2n_strerror_debug(i32 noundef %245, ptr noundef @.str.4)
  %247 = call ptr @__errno_location() #12
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @strerror(i32 noundef %248) #11
  %250 = call ptr @__errno_location() #12
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef @.str.2, i32 noundef %240, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 44, ptr noundef %243, ptr noundef %246, ptr noundef %249, i32 noundef %251) #11
  br label %270

253:                                              ; preds = %231, %224
  %254 = load i32, ptr %6, align 4, !tbaa !5
  %255 = call ptr @__errno_location() #12
  store i32 %254, ptr %255, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %259 = load i32, ptr %258, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror(i32 noundef %259, ptr noundef @.str.4)
  %261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call ptr @s2n_strerror_debug(i32 noundef %262, ptr noundef @.str.4)
  %264 = call ptr @__errno_location() #12
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call ptr @strerror(i32 noundef %265) #11
  %267 = call ptr @__errno_location() #12
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef @.str.5, i32 noundef %257, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 44, ptr noundef %260, ptr noundef %263, ptr noundef %266, i32 noundef %268) #11
  br label %270

270:                                              ; preds = %253, %236
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %271

271:                                              ; preds = %270
  call void @exit(i32 noundef 1) #13
  unreachable

272:                                              ; No predecessors!
  br label %273

273:                                              ; preds = %272, %219
  br label %274

274:                                              ; preds = %273
  br label %275

275:                                              ; preds = %274
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr @test_count, align 4, !tbaa !5
  %278 = call i32 @s2n_enable_atexit()
  %279 = icmp eq i32 %278, -1
  br i1 %279, label %280, label %331

280:                                              ; preds = %275
  br label %281

281:                                              ; preds = %280
  br label %282

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %283 = call ptr @__errno_location() #12
  %284 = load i32, ptr %283, align 4, !tbaa !5
  store i32 %284, ptr %7, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @s2n_print_stacktrace(ptr noundef %285)
  %287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %288 = trunc i8 %287 to i1
  br i1 %288, label %289, label %311

289:                                              ; preds = %282
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = call i32 @fileno(ptr noundef %290) #11
  %292 = call i32 @isatty(i32 noundef %291) #11
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %294, label %311

294:                                              ; preds = %289
  %295 = load i32, ptr %7, align 4, !tbaa !5
  %296 = call ptr @__errno_location() #12
  store i32 %295, ptr %296, align 4, !tbaa !5
  %297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %298 = load i32, ptr @test_count, align 4, !tbaa !5
  %299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call ptr @s2n_strerror(i32 noundef %300, ptr noundef @.str.4)
  %302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = call ptr @s2n_strerror_debug(i32 noundef %303, ptr noundef @.str.4)
  %305 = call ptr @__errno_location() #12
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = call ptr @strerror(i32 noundef %306) #11
  %308 = call ptr @__errno_location() #12
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %297, ptr noundef @.str.2, i32 noundef %298, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 44, ptr noundef %301, ptr noundef %304, ptr noundef %307, i32 noundef %309) #11
  br label %328

311:                                              ; preds = %289, %282
  %312 = load i32, ptr %7, align 4, !tbaa !5
  %313 = call ptr @__errno_location() #12
  store i32 %312, ptr %313, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @s2n_strerror(i32 noundef %317, ptr noundef @.str.4)
  %319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef @.str.4)
  %322 = call ptr @__errno_location() #12
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call ptr @strerror(i32 noundef %323) #11
  %325 = call ptr @__errno_location() #12
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef @.str.5, i32 noundef %315, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 44, ptr noundef %318, ptr noundef %321, ptr noundef %324, i32 noundef %326) #11
  br label %328

328:                                              ; preds = %311, %294
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %329

329:                                              ; preds = %328
  call void @exit(i32 noundef 1) #13
  unreachable

330:                                              ; No predecessors!
  br label %331

331:                                              ; preds = %330, %275
  br label %332

332:                                              ; preds = %331
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  %335 = call i32 @s2n_init()
  %336 = icmp eq i32 %335, -1
  br i1 %336, label %337, label %388

337:                                              ; preds = %334
  br label %338

338:                                              ; preds = %337
  br label %339

339:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %340 = call ptr @__errno_location() #12
  %341 = load i32, ptr %340, align 4, !tbaa !5
  store i32 %341, ptr %8, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = call i32 @s2n_print_stacktrace(ptr noundef %342)
  %344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %345 = trunc i8 %344 to i1
  br i1 %345, label %346, label %368

346:                                              ; preds = %339
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = call i32 @fileno(ptr noundef %347) #11
  %349 = call i32 @isatty(i32 noundef %348) #11
  %350 = icmp ne i32 %349, 0
  br i1 %350, label %351, label %368

351:                                              ; preds = %346
  %352 = load i32, ptr %8, align 4, !tbaa !5
  %353 = call ptr @__errno_location() #12
  store i32 %352, ptr %353, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror(i32 noundef %357, ptr noundef @.str.4)
  %359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror_debug(i32 noundef %360, ptr noundef @.str.4)
  %362 = call ptr @__errno_location() #12
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @strerror(i32 noundef %363) #11
  %365 = call ptr @__errno_location() #12
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef @.str.2, i32 noundef %355, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 44, ptr noundef %358, ptr noundef %361, ptr noundef %364, i32 noundef %366) #11
  br label %385

368:                                              ; preds = %346, %339
  %369 = load i32, ptr %8, align 4, !tbaa !5
  %370 = call ptr @__errno_location() #12
  store i32 %369, ptr %370, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %374 = load i32, ptr %373, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror(i32 noundef %374, ptr noundef @.str.4)
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror_debug(i32 noundef %377, ptr noundef @.str.4)
  %379 = call ptr @__errno_location() #12
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @strerror(i32 noundef %380) #11
  %382 = call ptr @__errno_location() #12
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %371, ptr noundef @.str.5, i32 noundef %372, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 44, ptr noundef %375, ptr noundef %378, ptr noundef %381, i32 noundef %383) #11
  br label %385

385:                                              ; preds = %368, %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %386

386:                                              ; preds = %385
  call void @exit(i32 noundef 1) #13
  unreachable

387:                                              ; No predecessors!
  br label %388

388:                                              ; preds = %387, %334
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr @test_count, align 4, !tbaa !5
  %394 = call i32 (...) @s2n_disable_tls13_in_test()
  %395 = icmp eq i32 %394, -1
  br i1 %395, label %396, label %447

396:                                              ; preds = %391
  br label %397

397:                                              ; preds = %396
  br label %398

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %399 = call ptr @__errno_location() #12
  %400 = load i32, ptr %399, align 4, !tbaa !5
  store i32 %400, ptr %9, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = call i32 @s2n_print_stacktrace(ptr noundef %401)
  %403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %404 = trunc i8 %403 to i1
  br i1 %404, label %405, label %427

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

410:                                              ; preds = %405
  %411 = load i32, ptr %9, align 4, !tbaa !5
  %412 = call ptr @__errno_location() #12
  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() #12
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #11
  %424 = call ptr @__errno_location() #12
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef @.str.2, i32 noundef %414, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 45, ptr noundef %417, ptr noundef %420, ptr noundef %423, i32 noundef %425) #11
  br label %444

427:                                              ; preds = %405, %398
  %428 = load i32, ptr %9, align 4, !tbaa !5
  %429 = call ptr @__errno_location() #12
  store i32 %428, ptr %429, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef @.str.4)
  %435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef @.str.4)
  %438 = call ptr @__errno_location() #12
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @strerror(i32 noundef %439) #11
  %441 = call ptr @__errno_location() #12
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef @.str.5, i32 noundef %431, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 45, ptr noundef %434, ptr noundef %437, ptr noundef %440, i32 noundef %442) #11
  br label %444

444:                                              ; preds = %427, %410
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %445

445:                                              ; preds = %444
  call void @exit(i32 noundef 1) #13
  unreachable

446:                                              ; No predecessors!
  br label %447

447:                                              ; preds = %446, %391
  br label %448

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

449:                                              ; preds = %448
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.9, ptr noundef @.str.10)
  %453 = icmp eq i32 %452, -1
  br i1 %453, label %454, label %507

454:                                              ; preds = %449
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %457 = call ptr @__errno_location() #12
  %458 = load i32, ptr %457, align 4, !tbaa !5
  store i32 %458, ptr %11, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459)
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %485

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

468:                                              ; preds = %463
  %469 = load i32, ptr %11, align 4, !tbaa !5
  %470 = call ptr @__errno_location() #12
  store i32 %469, ptr %470, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef @.str.4)
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef @.str.4)
  %479 = call ptr @__errno_location() #12
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #11
  %482 = call ptr @__errno_location() #12
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.2, i32 noundef %472, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 49, ptr noundef %475, ptr noundef %478, ptr noundef %481, i32 noundef %483) #11
  br label %502

485:                                              ; preds = %463, %456
  %486 = load i32, ptr %11, align 4, !tbaa !5
  %487 = call ptr @__errno_location() #12
  store i32 %486, ptr %487, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef @.str.4)
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef @.str.4)
  %496 = call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #11
  %499 = call ptr @__errno_location() #12
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef @.str.5, i32 noundef %489, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 49, ptr noundef %492, ptr noundef %495, ptr noundef %498, i32 noundef %500) #11
  br label %502

502:                                              ; preds = %485, %468
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  call void @exit(i32 noundef 1) #13
  unreachable

505:                                              ; No predecessors!
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506, %449
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  %510 = call ptr @s2n_config_new()
  store ptr %510, ptr %12, align 8, !tbaa !9
  br label %511

511:                                              ; preds = %509
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = load ptr, ptr %12, align 8, !tbaa !9
  %515 = icmp eq ptr %514, null
  br i1 %515, label %516, label %569

516:                                              ; preds = %511
  br label %517

517:                                              ; preds = %516
  br label %518

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

525:                                              ; preds = %518
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @fileno(ptr noundef %526) #11
  %528 = call i32 @isatty(i32 noundef %527) #11
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %547

530:                                              ; preds = %525
  %531 = load i32, ptr %13, align 4, !tbaa !5
  %532 = call ptr @__errno_location() #12
  store i32 %531, ptr %532, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef @.str.4)
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror_debug(i32 noundef %539, ptr noundef @.str.4)
  %541 = call ptr @__errno_location() #12
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #11
  %544 = call ptr @__errno_location() #12
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef @.str.2, i32 noundef %534, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 52, ptr noundef %537, ptr noundef %540, ptr noundef %543, i32 noundef %545) #11
  br label %564

547:                                              ; preds = %525, %518
  %548 = load i32, ptr %13, align 4, !tbaa !5
  %549 = call ptr @__errno_location() #12
  store i32 %548, ptr %549, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef @.str.4)
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef @.str.4)
  %558 = call ptr @__errno_location() #12
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #11
  %561 = call ptr @__errno_location() #12
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef @.str.5, i32 noundef %551, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 52, ptr noundef %554, ptr noundef %557, ptr noundef %560, i32 noundef %562) #11
  br label %564

564:                                              ; preds = %547, %530
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  call void @exit(i32 noundef 1) #13
  unreachable

567:                                              ; No predecessors!
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568, %511
  br label %570

570:                                              ; preds = %569
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = load ptr, ptr %12, align 8, !tbaa !9
  %576 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %575)
  %577 = icmp eq i32 %576, -1
  br i1 %577, label %578, label %631

578:                                              ; preds = %572
  br label %579

579:                                              ; preds = %578
  br label %580

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

587:                                              ; preds = %580
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = call i32 @fileno(ptr noundef %588) #11
  %590 = call i32 @isatty(i32 noundef %589) #11
  %591 = icmp ne i32 %590, 0
  br i1 %591, label %592, label %609

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

609:                                              ; preds = %587, %580
  %610 = load i32, ptr %14, align 4, !tbaa !5
  %611 = call ptr @__errno_location() #12
  store i32 %610, ptr %611, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef @.str.4)
  %617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef @.str.4)
  %620 = call ptr @__errno_location() #12
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #11
  %623 = call ptr @__errno_location() #12
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef @.str.5, i32 noundef %613, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 53, ptr noundef %616, ptr noundef %619, ptr noundef %622, i32 noundef %624) #11
  br label %626

626:                                              ; preds = %609, %592
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @exit(i32 noundef 1) #13
  unreachable

629:                                              ; No predecessors!
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630, %572
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  %635 = load i32, ptr @test_count, align 4, !tbaa !5
  %636 = add nsw i32 %635, 1
  store i32 %636, ptr @test_count, align 4, !tbaa !5
  %637 = load ptr, ptr %12, align 8, !tbaa !9
  %638 = load ptr, ptr %10, align 8, !tbaa !9
  %639 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %637, ptr noundef %638)
  %640 = icmp eq i32 %639, -1
  br i1 %640, label %641, label %694

641:                                              ; preds = %634
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %644 = call ptr @__errno_location() #12
  %645 = load i32, ptr %644, align 4, !tbaa !5
  store i32 %645, ptr %15, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = call i32 @s2n_print_stacktrace(ptr noundef %646)
  %648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %649 = trunc i8 %648 to i1
  br i1 %649, label %650, label %672

650:                                              ; preds = %643
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @fileno(ptr noundef %651) #11
  %653 = call i32 @isatty(i32 noundef %652) #11
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %672

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

672:                                              ; preds = %650, %643
  %673 = load i32, ptr %15, align 4, !tbaa !5
  %674 = call ptr @__errno_location() #12
  store i32 %673, ptr %674, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef @.str.4)
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror_debug(i32 noundef %681, ptr noundef @.str.4)
  %683 = call ptr @__errno_location() #12
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #11
  %686 = call ptr @__errno_location() #12
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef @.str.5, i32 noundef %676, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %679, ptr noundef %682, ptr noundef %685, i32 noundef %687) #11
  br label %689

689:                                              ; preds = %672, %655
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  call void @exit(i32 noundef 1) #13
  unreachable

692:                                              ; No predecessors!
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693, %634
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr @test_count, align 4, !tbaa !5
  %700 = load ptr, ptr %12, align 8, !tbaa !9
  %701 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %700, ptr noundef @.str.15)
  %702 = icmp eq i32 %701, -1
  br i1 %702, label %703, label %756

703:                                              ; preds = %697
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %706 = call ptr @__errno_location() #12
  %707 = load i32, ptr %706, align 4, !tbaa !5
  store i32 %707, ptr %16, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708)
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc i8 %710 to i1
  br i1 %711, label %712, label %734

712:                                              ; preds = %705
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #11
  %715 = call i32 @isatty(i32 noundef %714) #11
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %734

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

734:                                              ; preds = %712, %705
  %735 = load i32, ptr %16, align 4, !tbaa !5
  %736 = call ptr @__errno_location() #12
  store i32 %735, ptr %736, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror(i32 noundef %740, ptr noundef @.str.4)
  %742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror_debug(i32 noundef %743, ptr noundef @.str.4)
  %745 = call ptr @__errno_location() #12
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #11
  %748 = call ptr @__errno_location() #12
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef @.str.5, i32 noundef %738, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 55, ptr noundef %741, ptr noundef %744, ptr noundef %747, i32 noundef %749) #11
  br label %751

751:                                              ; preds = %734, %717
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %752

752:                                              ; preds = %751
  br label %753

753:                                              ; preds = %752
  call void @exit(i32 noundef 1) #13
  unreachable

754:                                              ; No predecessors!
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755, %697
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 19, ptr %17) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %17, ptr align 16 @__const.main.client_verify_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 19, ptr %18) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %18, ptr align 16 @__const.main.server_verify_data, i64 19, i1 false)
  br label %759

759:                                              ; preds = %758
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr @test_count, align 4, !tbaa !5
  br label %762

762:                                              ; preds = %759
  br label %763

763:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #11
  store i8 19, ptr %19, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #11
  store ptr null, ptr %20, align 8, !tbaa !9
  br label %764

764:                                              ; preds = %763
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %767, ptr %20, align 8, !tbaa !9
  %768 = icmp eq ptr %767, null
  br i1 %768, label %769, label %822

769:                                              ; preds = %764
  br label %770

770:                                              ; preds = %769
  br label %771

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

778:                                              ; preds = %771
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @fileno(ptr noundef %779) #11
  %781 = call i32 @isatty(i32 noundef %780) #11
  %782 = icmp ne i32 %781, 0
  br i1 %782, label %783, label %800

783:                                              ; preds = %778
  %784 = load i32, ptr %21, align 4, !tbaa !5
  %785 = call ptr @__errno_location() #12
  store i32 %784, ptr %785, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef @.str.4)
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef @.str.4)
  %794 = call ptr @__errno_location() #12
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #11
  %797 = call ptr @__errno_location() #12
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef @.str.2, i32 noundef %787, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 72, ptr noundef %790, ptr noundef %793, ptr noundef %796, i32 noundef %798) #11
  br label %817

800:                                              ; preds = %778, %771
  %801 = load i32, ptr %21, align 4, !tbaa !5
  %802 = call ptr @__errno_location() #12
  store i32 %801, ptr %802, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = load i32, ptr @test_count, align 4, !tbaa !5
  %805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror(i32 noundef %806, ptr noundef @.str.4)
  %808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror_debug(i32 noundef %809, ptr noundef @.str.4)
  %811 = call ptr @__errno_location() #12
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @strerror(i32 noundef %812) #11
  %814 = call ptr @__errno_location() #12
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %803, ptr noundef @.str.5, i32 noundef %804, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 72, ptr noundef %807, ptr noundef %810, ptr noundef %813, i32 noundef %815) #11
  br label %817

817:                                              ; preds = %800, %783
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  call void @exit(i32 noundef 1) #13
  unreachable

820:                                              ; No predecessors!
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821, %764
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  %825 = load ptr, ptr %20, align 8, !tbaa !9
  %826 = getelementptr inbounds %struct.s2n_connection, ptr %825, i32 0, i32 23
  store i8 33, ptr %826, align 4, !tbaa !16
  %827 = load ptr, ptr %20, align 8, !tbaa !9
  %828 = load i32, ptr %827, align 8
  %829 = and i32 %828, -9
  %830 = or i32 %829, 0
  store i32 %830, ptr %827, align 8
  br label %831

831:                                              ; preds = %824
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !43
  %835 = load ptr, ptr %20, align 8, !tbaa !9
  %836 = call zeroext i1 %834(ptr noundef %835)
  br i1 %836, label %837, label %890

837:                                              ; preds = %831
  br label %838

838:                                              ; preds = %837
  br label %839

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

846:                                              ; preds = %839
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @fileno(ptr noundef %847) #11
  %849 = call i32 @isatty(i32 noundef %848) #11
  %850 = icmp ne i32 %849, 0
  br i1 %850, label %851, label %868

851:                                              ; preds = %846
  %852 = load i32, ptr %22, align 4, !tbaa !5
  %853 = call ptr @__errno_location() #12
  store i32 %852, ptr %853, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = load i32, ptr @test_count, align 4, !tbaa !5
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror(i32 noundef %857, ptr noundef @.str.4)
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror_debug(i32 noundef %860, ptr noundef @.str.4)
  %862 = call ptr @__errno_location() #12
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #11
  %865 = call ptr @__errno_location() #12
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %854, ptr noundef @.str.2, i32 noundef %855, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 77, ptr noundef %858, ptr noundef %861, ptr noundef %864, i32 noundef %866) #11
  br label %885

868:                                              ; preds = %846, %839
  %869 = load i32, ptr %22, align 4, !tbaa !5
  %870 = call ptr @__errno_location() #12
  store i32 %869, ptr %870, align 4, !tbaa !5
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror(i32 noundef %874, ptr noundef @.str.4)
  %876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @s2n_strerror_debug(i32 noundef %877, ptr noundef @.str.4)
  %879 = call ptr @__errno_location() #12
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #11
  %882 = call ptr @__errno_location() #12
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %871, ptr noundef @.str.5, i32 noundef %872, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 77, ptr noundef %875, ptr noundef %878, ptr noundef %881, i32 noundef %883) #11
  br label %885

885:                                              ; preds = %868, %851
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886
  call void @exit(i32 noundef 1) #13
  unreachable

888:                                              ; No predecessors!
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889, %831
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  %893 = load ptr, ptr %20, align 8, !tbaa !9
  %894 = getelementptr inbounds %struct.s2n_connection, ptr %893, i32 0, i32 23
  store i8 34, ptr %894, align 4, !tbaa !16
  %895 = load ptr, ptr %20, align 8, !tbaa !9
  %896 = load i32, ptr %895, align 8
  %897 = and i32 %896, -9
  %898 = or i32 %897, 0
  store i32 %898, ptr %895, align 8
  br label %899

899:                                              ; preds = %892
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !43
  %903 = load ptr, ptr %20, align 8, !tbaa !9
  %904 = call zeroext i1 %902(ptr noundef %903)
  br i1 %904, label %905, label %958

905:                                              ; preds = %899
  br label %906

906:                                              ; preds = %905
  br label %907

907:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %908 = call ptr @__errno_location() #12
  %909 = load i32, ptr %908, align 4, !tbaa !5
  store i32 %909, ptr %23, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @s2n_print_stacktrace(ptr noundef %910)
  %912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %913 = trunc i8 %912 to i1
  br i1 %913, label %914, label %936

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

919:                                              ; preds = %914
  %920 = load i32, ptr %23, align 4, !tbaa !5
  %921 = call ptr @__errno_location() #12
  store i32 %920, ptr %921, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef @.str.4)
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef @.str.4)
  %930 = call ptr @__errno_location() #12
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #11
  %933 = call ptr @__errno_location() #12
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str.2, i32 noundef %923, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 82, ptr noundef %926, ptr noundef %929, ptr noundef %932, i32 noundef %934) #11
  br label %953

936:                                              ; preds = %914, %907
  %937 = load i32, ptr %23, align 4, !tbaa !5
  %938 = call ptr @__errno_location() #12
  store i32 %937, ptr %938, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef @.str.4)
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef @.str.4)
  %947 = call ptr @__errno_location() #12
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @strerror(i32 noundef %948) #11
  %950 = call ptr @__errno_location() #12
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef @.str.5, i32 noundef %940, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 82, ptr noundef %943, ptr noundef %946, ptr noundef %949, i32 noundef %951) #11
  br label %953

953:                                              ; preds = %936, %919
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  call void @exit(i32 noundef 1) #13
  unreachable

956:                                              ; No predecessors!
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957, %899
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  %961 = load ptr, ptr %20, align 8, !tbaa !9
  %962 = getelementptr inbounds %struct.s2n_connection, ptr %961, i32 0, i32 23
  store i8 34, ptr %962, align 4, !tbaa !16
  %963 = load ptr, ptr %20, align 8, !tbaa !9
  %964 = load i32, ptr %963, align 8
  %965 = and i32 %964, -9
  %966 = or i32 %965, 8
  store i32 %966, ptr %963, align 8
  br label %967

967:                                              ; preds = %960
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr @test_count, align 4, !tbaa !5
  %970 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !43
  %971 = load ptr, ptr %20, align 8, !tbaa !9
  %972 = call zeroext i1 %970(ptr noundef %971)
  br i1 %972, label %973, label %1026

973:                                              ; preds = %967
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %976 = call ptr @__errno_location() #12
  %977 = load i32, ptr %976, align 4, !tbaa !5
  store i32 %977, ptr %24, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978)
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc i8 %980 to i1
  br i1 %981, label %982, label %1004

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

987:                                              ; preds = %982
  %988 = load i32, ptr %24, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #12
  store i32 %988, ptr %989, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef @.str.4)
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef @.str.4)
  %998 = call ptr @__errno_location() #12
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #11
  %1001 = call ptr @__errno_location() #12
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef @.str.2, i32 noundef %991, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 87, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #11
  br label %1021

1004:                                             ; preds = %982, %975
  %1005 = load i32, ptr %24, align 4, !tbaa !5
  %1006 = call ptr @__errno_location() #12
  store i32 %1005, ptr %1006, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef @.str.4)
  %1015 = call ptr @__errno_location() #12
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #11
  %1018 = call ptr @__errno_location() #12
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1007, ptr noundef @.str.5, i32 noundef %1008, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1011, ptr noundef %1014, ptr noundef %1017, i32 noundef %1019) #11
  br label %1021

1021:                                             ; preds = %1004, %987
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  call void @exit(i32 noundef 1) #13
  unreachable

1024:                                             ; No predecessors!
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025, %967
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  %1029 = load ptr, ptr %20, align 8, !tbaa !9
  %1030 = getelementptr inbounds %struct.s2n_connection, ptr %1029, i32 0, i32 23
  store i8 33, ptr %1030, align 4, !tbaa !16
  %1031 = load ptr, ptr %20, align 8, !tbaa !9
  %1032 = load i32, ptr %1031, align 8
  %1033 = and i32 %1032, -9
  %1034 = or i32 %1033, 8
  store i32 %1034, ptr %1031, align 8
  br label %1035

1035:                                             ; preds = %1028
  %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 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !43
  %1039 = load ptr, ptr %20, align 8, !tbaa !9
  %1040 = call zeroext i1 %1038(ptr noundef %1039)
  br i1 %1040, label %1094, label %1041

1041:                                             ; preds = %1035
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

1043:                                             ; preds = %1042
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %1044 = call ptr @__errno_location() #12
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  store i32 %1045, ptr %25, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @s2n_print_stacktrace(ptr noundef %1046)
  %1048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1049 = trunc i8 %1048 to i1
  br i1 %1049, label %1050, label %1072

1050:                                             ; preds = %1043
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = call i32 @fileno(ptr noundef %1051) #11
  %1053 = call i32 @isatty(i32 noundef %1052) #11
  %1054 = icmp ne i32 %1053, 0
  br i1 %1054, label %1055, label %1072

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

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

1089:                                             ; preds = %1072, %1055
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

1091:                                             ; preds = %1090
  call void @exit(i32 noundef 1) #13
  unreachable

1092:                                             ; No predecessors!
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093, %1035
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = add nsw i32 %1098, 1
  store i32 %1099, ptr @test_count, align 4, !tbaa !5
  %1100 = load ptr, ptr %20, align 8, !tbaa !9
  %1101 = call i32 @s2n_connection_free(ptr noundef %1100)
  %1102 = icmp eq i32 %1101, -1
  br i1 %1102, label %1103, label %1156

1103:                                             ; preds = %1097
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1106 = call ptr @__errno_location() #12
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  store i32 %1107, ptr %26, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = call i32 @s2n_print_stacktrace(ptr noundef %1108)
  %1110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1111 = trunc i8 %1110 to i1
  br i1 %1111, label %1112, label %1134

1112:                                             ; preds = %1105
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = call i32 @fileno(ptr noundef %1113) #11
  %1115 = call i32 @isatty(i32 noundef %1114) #11
  %1116 = icmp ne i32 %1115, 0
  br i1 %1116, label %1117, label %1134

1117:                                             ; preds = %1112
  %1118 = load i32, ptr %26, align 4, !tbaa !5
  %1119 = call ptr @__errno_location() #12
  store i32 %1118, ptr %1119, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call ptr @s2n_strerror(i32 noundef %1123, ptr noundef @.str.4)
  %1125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1126 = load i32, ptr %1125, align 4, !tbaa !5
  %1127 = call ptr @s2n_strerror_debug(i32 noundef %1126, ptr noundef @.str.4)
  %1128 = call ptr @__errno_location() #12
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #11
  %1131 = call ptr @__errno_location() #12
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1120, ptr noundef @.str.2, i32 noundef %1121, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1124, ptr noundef %1127, ptr noundef %1130, i32 noundef %1132) #11
  br label %1151

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

1151:                                             ; preds = %1134, %1117
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1152

1152:                                             ; preds = %1151
  br label %1153

1153:                                             ; preds = %1152
  call void @exit(i32 noundef 1) #13
  unreachable

1154:                                             ; No predecessors!
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155, %1097
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  store ptr null, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  store ptr null, ptr %28, align 8, !tbaa !9
  br label %1159

1159:                                             ; preds = %1158
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr @test_count, align 4, !tbaa !5
  %1162 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1162, ptr %27, align 8, !tbaa !9
  %1163 = icmp eq ptr %1162, null
  br i1 %1163, label %1164, label %1217

1164:                                             ; preds = %1159
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

1166:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1167 = call ptr @__errno_location() #12
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  store i32 %1168, ptr %29, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169)
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc i8 %1171 to i1
  br i1 %1172, label %1173, label %1195

1173:                                             ; preds = %1166
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @fileno(ptr noundef %1174) #11
  %1176 = call i32 @isatty(i32 noundef %1175) #11
  %1177 = icmp ne i32 %1176, 0
  br i1 %1177, label %1178, label %1195

1178:                                             ; preds = %1173
  %1179 = load i32, ptr %29, align 4, !tbaa !5
  %1180 = call ptr @__errno_location() #12
  store i32 %1179, ptr %1180, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror(i32 noundef %1184, ptr noundef @.str.4)
  %1186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror_debug(i32 noundef %1187, ptr noundef @.str.4)
  %1189 = call ptr @__errno_location() #12
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #11
  %1192 = call ptr @__errno_location() #12
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1181, ptr noundef @.str.2, i32 noundef %1182, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 108, ptr noundef %1185, ptr noundef %1188, ptr noundef %1191, i32 noundef %1193) #11
  br label %1212

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

1212:                                             ; preds = %1195, %1178
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1213

1213:                                             ; preds = %1212
  br label %1214

1214:                                             ; preds = %1213
  call void @exit(i32 noundef 1) #13
  unreachable

1215:                                             ; No predecessors!
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216, %1159
  br label %1218

1218:                                             ; preds = %1217
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr @test_count, align 4, !tbaa !5
  %1223 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1223, ptr %28, align 8, !tbaa !9
  %1224 = icmp eq ptr %1223, null
  br i1 %1224, label %1225, label %1278

1225:                                             ; preds = %1220
  br label %1226

1226:                                             ; preds = %1225
  br label %1227

1227:                                             ; preds = %1226
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %1228 = call ptr @__errno_location() #12
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  store i32 %1229, ptr %30, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @s2n_print_stacktrace(ptr noundef %1230)
  %1232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1233 = trunc i8 %1232 to i1
  br i1 %1233, label %1234, label %1256

1234:                                             ; preds = %1227
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @fileno(ptr noundef %1235) #11
  %1237 = call i32 @isatty(i32 noundef %1236) #11
  %1238 = icmp ne i32 %1237, 0
  br i1 %1238, label %1239, label %1256

1239:                                             ; preds = %1234
  %1240 = load i32, ptr %30, align 4, !tbaa !5
  %1241 = call ptr @__errno_location() #12
  store i32 %1240, ptr %1241, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror(i32 noundef %1245, ptr noundef @.str.4)
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror_debug(i32 noundef %1248, ptr noundef @.str.4)
  %1250 = call ptr @__errno_location() #12
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #11
  %1253 = call ptr @__errno_location() #12
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1242, ptr noundef @.str.2, i32 noundef %1243, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1246, ptr noundef %1249, ptr noundef %1252, i32 noundef %1254) #11
  br label %1273

1256:                                             ; preds = %1234, %1227
  %1257 = load i32, ptr %30, align 4, !tbaa !5
  %1258 = call ptr @__errno_location() #12
  store i32 %1257, ptr %1258, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call ptr @s2n_strerror(i32 noundef %1262, ptr noundef @.str.4)
  %1264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror_debug(i32 noundef %1265, ptr noundef @.str.4)
  %1267 = call ptr @__errno_location() #12
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #11
  %1270 = call ptr @__errno_location() #12
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1259, ptr noundef @.str.5, i32 noundef %1260, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1263, ptr noundef %1266, ptr noundef %1269, i32 noundef %1271) #11
  br label %1273

1273:                                             ; preds = %1256, %1239
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1274

1274:                                             ; preds = %1273
  br label %1275

1275:                                             ; preds = %1274
  call void @exit(i32 noundef 1) #13
  unreachable

1276:                                             ; No predecessors!
  br label %1277

1277:                                             ; preds = %1276
  br label %1278

1278:                                             ; preds = %1277, %1220
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

1280:                                             ; preds = %1279
  call void @llvm.lifetime.start.p0(i64 40, ptr %31) #11
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 40, i1 false)
  br label %1281

1281:                                             ; preds = %1280
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr @test_count, align 4, !tbaa !5
  %1284 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %31, i32 noundef 0)
  %1285 = icmp eq i32 %1284, -1
  br i1 %1285, label %1286, label %1339

1286:                                             ; preds = %1281
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1289 = call ptr @__errno_location() #12
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  store i32 %1290, ptr %32, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @s2n_print_stacktrace(ptr noundef %1291)
  %1293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1294 = trunc i8 %1293 to i1
  br i1 %1294, label %1295, label %1317

1295:                                             ; preds = %1288
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @fileno(ptr noundef %1296) #11
  %1298 = call i32 @isatty(i32 noundef %1297) #11
  %1299 = icmp ne i32 %1298, 0
  br i1 %1299, label %1300, label %1317

1300:                                             ; preds = %1295
  %1301 = load i32, ptr %32, align 4, !tbaa !5
  %1302 = call ptr @__errno_location() #12
  store i32 %1301, ptr %1302, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef @.str.4)
  %1311 = call ptr @__errno_location() #12
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #11
  %1314 = call ptr @__errno_location() #12
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1303, ptr noundef @.str.2, i32 noundef %1304, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1307, ptr noundef %1310, ptr noundef %1313, i32 noundef %1315) #11
  br label %1334

1317:                                             ; preds = %1295, %1288
  %1318 = load i32, ptr %32, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #12
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.4)
  %1328 = call ptr @__errno_location() #12
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #11
  %1331 = call ptr @__errno_location() #12
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.5, i32 noundef %1321, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #11
  br label %1334

1334:                                             ; preds = %1317, %1300
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335
  call void @exit(i32 noundef 1) #13
  unreachable

1337:                                             ; No predecessors!
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338, %1281
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  %1342 = load ptr, ptr %27, align 8, !tbaa !9
  %1343 = getelementptr inbounds %struct.s2n_connection, ptr %1342, i32 0, i32 23
  store i8 33, ptr %1343, align 4, !tbaa !16
  %1344 = load ptr, ptr %27, align 8, !tbaa !9
  %1345 = load i32, ptr %1344, align 8
  %1346 = and i32 %1345, -9
  %1347 = or i32 %1346, 8
  store i32 %1347, ptr %1344, align 8
  br label %1348

1348:                                             ; preds = %1341
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !45
  %1352 = load ptr, ptr %27, align 8, !tbaa !9
  %1353 = call i32 %1351(ptr noundef %1352, ptr noundef %31)
  %1354 = icmp eq i32 %1353, -1
  br i1 %1354, label %1355, label %1408

1355:                                             ; preds = %1348
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1358 = call ptr @__errno_location() #12
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  store i32 %1359, ptr %33, align 4, !tbaa !5
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @s2n_print_stacktrace(ptr noundef %1360)
  %1362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1363 = trunc i8 %1362 to i1
  br i1 %1363, label %1364, label %1386

1364:                                             ; preds = %1357
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = call i32 @fileno(ptr noundef %1365) #11
  %1367 = call i32 @isatty(i32 noundef %1366) #11
  %1368 = icmp ne i32 %1367, 0
  br i1 %1368, label %1369, label %1386

1369:                                             ; preds = %1364
  %1370 = load i32, ptr %33, align 4, !tbaa !5
  %1371 = call ptr @__errno_location() #12
  store i32 %1370, ptr %1371, 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 @.str.4)
  %1377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror_debug(i32 noundef %1378, ptr noundef @.str.4)
  %1380 = call ptr @__errno_location() #12
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @strerror(i32 noundef %1381) #11
  %1383 = call ptr @__errno_location() #12
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1372, ptr noundef @.str.2, i32 noundef %1373, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1376, ptr noundef %1379, ptr noundef %1382, i32 noundef %1384) #11
  br label %1403

1386:                                             ; preds = %1364, %1357
  %1387 = load i32, ptr %33, align 4, !tbaa !5
  %1388 = call ptr @__errno_location() #12
  store i32 %1387, ptr %1388, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror(i32 noundef %1392, ptr noundef @.str.4)
  %1394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1395 = load i32, ptr %1394, align 4, !tbaa !5
  %1396 = call ptr @s2n_strerror_debug(i32 noundef %1395, ptr noundef @.str.4)
  %1397 = call ptr @__errno_location() #12
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @strerror(i32 noundef %1398) #11
  %1400 = call ptr @__errno_location() #12
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1389, ptr noundef @.str.5, i32 noundef %1390, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1393, ptr noundef %1396, ptr noundef %1399, i32 noundef %1401) #11
  br label %1403

1403:                                             ; preds = %1386, %1369
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1404

1404:                                             ; preds = %1403
  br label %1405

1405:                                             ; preds = %1404
  call void @exit(i32 noundef 1) #13
  unreachable

1406:                                             ; No predecessors!
  br label %1407

1407:                                             ; preds = %1406
  br label %1408

1408:                                             ; preds = %1407, %1348
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  %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 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 2
  %1415 = load i32, ptr %1414, align 4, !tbaa !46
  %1416 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 1
  %1417 = load i32, ptr %1416, align 8, !tbaa !47
  %1418 = sub i32 %1415, %1417
  %1419 = icmp eq i32 %1418, 0
  br i1 %1419, label %1420, label %1473

1420:                                             ; preds = %1411
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1423 = call ptr @__errno_location() #12
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  store i32 %1424, ptr %34, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @s2n_print_stacktrace(ptr noundef %1425)
  %1427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1428 = trunc i8 %1427 to i1
  br i1 %1428, label %1429, label %1451

1429:                                             ; preds = %1422
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = call i32 @fileno(ptr noundef %1430) #11
  %1432 = call i32 @isatty(i32 noundef %1431) #11
  %1433 = icmp ne i32 %1432, 0
  br i1 %1433, label %1434, label %1451

1434:                                             ; preds = %1429
  %1435 = load i32, ptr %34, align 4, !tbaa !5
  %1436 = call ptr @__errno_location() #12
  store i32 %1435, ptr %1436, align 4, !tbaa !5
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror(i32 noundef %1440, ptr noundef @.str.4)
  %1442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror_debug(i32 noundef %1443, ptr noundef @.str.4)
  %1445 = call ptr @__errno_location() #12
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @strerror(i32 noundef %1446) #11
  %1448 = call ptr @__errno_location() #12
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1437, ptr noundef @.str.2, i32 noundef %1438, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1441, ptr noundef %1444, ptr noundef %1447, i32 noundef %1449) #11
  br label %1468

1451:                                             ; preds = %1429, %1422
  %1452 = load i32, ptr %34, align 4, !tbaa !5
  %1453 = call ptr @__errno_location() #12
  store i32 %1452, ptr %1453, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef @.str.4)
  %1459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef @.str.4)
  %1462 = call ptr @__errno_location() #12
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @strerror(i32 noundef %1463) #11
  %1465 = call ptr @__errno_location() #12
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef @.str.5, i32 noundef %1455, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1458, ptr noundef %1461, ptr noundef %1464, i32 noundef %1466) #11
  br label %1468

1468:                                             ; preds = %1451, %1434
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469
  call void @exit(i32 noundef 1) #13
  unreachable

1471:                                             ; No predecessors!
  br label %1472

1472:                                             ; preds = %1471
  br label %1473

1473:                                             ; preds = %1472, %1411
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = add nsw i32 %1477, 1
  store i32 %1478, ptr @test_count, align 4, !tbaa !5
  %1479 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %1480 = load ptr, ptr %28, align 8, !tbaa !9
  %1481 = call i32 %1479(ptr noundef %1480, ptr noundef %31)
  %1482 = icmp eq i32 %1481, -1
  br i1 %1482, label %1483, label %1536

1483:                                             ; preds = %1476
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1486 = call ptr @__errno_location() #12
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  store i32 %1487, ptr %35, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = call i32 @s2n_print_stacktrace(ptr noundef %1488)
  %1490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1491 = trunc i8 %1490 to i1
  br i1 %1491, label %1492, label %1514

1492:                                             ; preds = %1485
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @fileno(ptr noundef %1493) #11
  %1495 = call i32 @isatty(i32 noundef %1494) #11
  %1496 = icmp ne i32 %1495, 0
  br i1 %1496, label %1497, label %1514

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

1514:                                             ; preds = %1492, %1485
  %1515 = load i32, ptr %35, align 4, !tbaa !5
  %1516 = call ptr @__errno_location() #12
  store i32 %1515, ptr %1516, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = load i32, ptr @test_count, align 4, !tbaa !5
  %1519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call ptr @s2n_strerror(i32 noundef %1520, ptr noundef @.str.4)
  %1522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1523 = load i32, ptr %1522, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror_debug(i32 noundef %1523, ptr noundef @.str.4)
  %1525 = call ptr @__errno_location() #12
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @strerror(i32 noundef %1526) #11
  %1528 = call ptr @__errno_location() #12
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1517, ptr noundef @.str.5, i32 noundef %1518, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1521, ptr noundef %1524, ptr noundef %1527, i32 noundef %1529) #11
  br label %1531

1531:                                             ; preds = %1514, %1497
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1532

1532:                                             ; preds = %1531
  br label %1533

1533:                                             ; preds = %1532
  call void @exit(i32 noundef 1) #13
  unreachable

1534:                                             ; No predecessors!
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535, %1476
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538
  %1540 = load i32, ptr @test_count, align 4, !tbaa !5
  %1541 = add nsw i32 %1540, 1
  store i32 %1541, ptr @test_count, align 4, !tbaa !5
  %1542 = load ptr, ptr %28, align 8, !tbaa !9
  %1543 = load i32, ptr %1542, align 8
  %1544 = lshr i32 %1543, 3
  %1545 = and i32 %1544, 1
  %1546 = icmp eq i32 %1545, 1
  br i1 %1546, label %1600, label %1547

1547:                                             ; preds = %1539
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1550 = call ptr @__errno_location() #12
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  store i32 %1551, ptr %36, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @s2n_print_stacktrace(ptr noundef %1552)
  %1554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1555 = trunc i8 %1554 to i1
  br i1 %1555, label %1556, label %1578

1556:                                             ; preds = %1549
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @fileno(ptr noundef %1557) #11
  %1559 = call i32 @isatty(i32 noundef %1558) #11
  %1560 = icmp ne i32 %1559, 0
  br i1 %1560, label %1561, label %1578

1561:                                             ; preds = %1556
  %1562 = load i32, ptr %36, align 4, !tbaa !5
  %1563 = call ptr @__errno_location() #12
  store i32 %1562, ptr %1563, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror(i32 noundef %1567, ptr noundef @.str.4)
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef @.str.4)
  %1572 = call ptr @__errno_location() #12
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @strerror(i32 noundef %1573) #11
  %1575 = call ptr @__errno_location() #12
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1564, ptr noundef @.str.2, i32 noundef %1565, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1568, ptr noundef %1571, ptr noundef %1574, i32 noundef %1576) #11
  br label %1595

1578:                                             ; preds = %1556, %1549
  %1579 = load i32, ptr %36, align 4, !tbaa !5
  %1580 = call ptr @__errno_location() #12
  store i32 %1579, ptr %1580, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef @.str.4)
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call ptr @__errno_location() #12
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @strerror(i32 noundef %1590) #11
  %1592 = call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1581, ptr noundef @.str.5, i32 noundef %1582, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1585, ptr noundef %1588, ptr noundef %1591, i32 noundef %1593) #11
  br label %1595

1595:                                             ; preds = %1578, %1561
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

1597:                                             ; preds = %1596
  call void @exit(i32 noundef 1) #13
  unreachable

1598:                                             ; No predecessors!
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599, %1539
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601
  br label %1603

1603:                                             ; preds = %1602
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr @test_count, align 4, !tbaa !5
  %1606 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 2
  %1607 = load i32, ptr %1606, align 4, !tbaa !46
  %1608 = getelementptr inbounds %struct.s2n_stuffer, ptr %31, i32 0, i32 1
  %1609 = load i32, ptr %1608, align 8, !tbaa !47
  %1610 = sub i32 %1607, %1609
  %1611 = icmp eq i32 %1610, 0
  br i1 %1611, label %1665, label %1612

1612:                                             ; preds = %1603
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

1614:                                             ; preds = %1613
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1615 = call ptr @__errno_location() #12
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  store i32 %1616, ptr %37, align 4, !tbaa !5
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = call i32 @s2n_print_stacktrace(ptr noundef %1617)
  %1619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1620 = trunc i8 %1619 to i1
  br i1 %1620, label %1621, label %1643

1621:                                             ; preds = %1614
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @fileno(ptr noundef %1622) #11
  %1624 = call i32 @isatty(i32 noundef %1623) #11
  %1625 = icmp ne i32 %1624, 0
  br i1 %1625, label %1626, label %1643

1626:                                             ; preds = %1621
  %1627 = load i32, ptr %37, align 4, !tbaa !5
  %1628 = call ptr @__errno_location() #12
  store i32 %1627, ptr %1628, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef @.str.4)
  %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_debug(i32 noundef %1635, ptr noundef @.str.4)
  %1637 = call ptr @__errno_location() #12
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #11
  %1640 = call ptr @__errno_location() #12
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef @.str.2, i32 noundef %1630, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1633, ptr noundef %1636, ptr noundef %1639, i32 noundef %1641) #11
  br label %1660

1643:                                             ; preds = %1621, %1614
  %1644 = load i32, ptr %37, align 4, !tbaa !5
  %1645 = call ptr @__errno_location() #12
  store i32 %1644, ptr %1645, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror(i32 noundef %1649, ptr noundef @.str.4)
  %1651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror_debug(i32 noundef %1652, ptr noundef @.str.4)
  %1654 = call ptr @__errno_location() #12
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call ptr @strerror(i32 noundef %1655) #11
  %1657 = call ptr @__errno_location() #12
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1646, ptr noundef @.str.5, i32 noundef %1647, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1650, ptr noundef %1653, ptr noundef %1656, i32 noundef %1658) #11
  br label %1660

1660:                                             ; preds = %1643, %1626
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661
  call void @exit(i32 noundef 1) #13
  unreachable

1663:                                             ; No predecessors!
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664, %1603
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr @test_count, align 4, !tbaa !5
  %1671 = call i32 @s2n_stuffer_free(ptr noundef %31)
  %1672 = icmp eq i32 %1671, -1
  br i1 %1672, label %1673, label %1726

1673:                                             ; preds = %1668
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1676 = call ptr @__errno_location() #12
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  store i32 %1677, ptr %38, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @s2n_print_stacktrace(ptr noundef %1678)
  %1680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1681 = trunc i8 %1680 to i1
  br i1 %1681, label %1682, label %1704

1682:                                             ; preds = %1675
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = call i32 @fileno(ptr noundef %1683) #11
  %1685 = call i32 @isatty(i32 noundef %1684) #11
  %1686 = icmp ne i32 %1685, 0
  br i1 %1686, label %1687, label %1704

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

1704:                                             ; preds = %1682, %1675
  %1705 = load i32, ptr %38, align 4, !tbaa !5
  %1706 = call ptr @__errno_location() #12
  store i32 %1705, ptr %1706, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef @.str.4)
  %1712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef @.str.4)
  %1715 = call ptr @__errno_location() #12
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @strerror(i32 noundef %1716) #11
  %1718 = call ptr @__errno_location() #12
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1707, ptr noundef @.str.5, i32 noundef %1708, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1711, ptr noundef %1714, ptr noundef %1717, i32 noundef %1719) #11
  br label %1721

1721:                                             ; preds = %1704, %1687
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  call void @exit(i32 noundef 1) #13
  unreachable

1724:                                             ; No predecessors!
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

1726:                                             ; preds = %1725, %1668
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = load ptr, ptr %28, align 8, !tbaa !9
  %1733 = call i32 @s2n_connection_free(ptr noundef %1732)
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1788

1735:                                             ; preds = %1729
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1738 = call ptr @__errno_location() #12
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  store i32 %1739, ptr %39, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @s2n_print_stacktrace(ptr noundef %1740)
  %1742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1743 = trunc i8 %1742 to i1
  br i1 %1743, label %1744, label %1766

1744:                                             ; preds = %1737
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @fileno(ptr noundef %1745) #11
  %1747 = call i32 @isatty(i32 noundef %1746) #11
  %1748 = icmp ne i32 %1747, 0
  br i1 %1748, label %1749, label %1766

1749:                                             ; preds = %1744
  %1750 = load i32, ptr %39, align 4, !tbaa !5
  %1751 = call ptr @__errno_location() #12
  store i32 %1750, ptr %1751, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = load i32, ptr @test_count, align 4, !tbaa !5
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror(i32 noundef %1755, ptr noundef @.str.4)
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror_debug(i32 noundef %1758, ptr noundef @.str.4)
  %1760 = call ptr @__errno_location() #12
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #11
  %1763 = call ptr @__errno_location() #12
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1752, ptr noundef @.str.2, i32 noundef %1753, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1756, ptr noundef %1759, ptr noundef %1762, i32 noundef %1764) #11
  br label %1783

1766:                                             ; preds = %1744, %1737
  %1767 = load i32, ptr %39, align 4, !tbaa !5
  %1768 = call ptr @__errno_location() #12
  store i32 %1767, ptr %1768, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call ptr @__errno_location() #12
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #11
  %1780 = call ptr @__errno_location() #12
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef @.str.5, i32 noundef %1770, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1773, ptr noundef %1776, ptr noundef %1779, i32 noundef %1781) #11
  br label %1783

1783:                                             ; preds = %1766, %1749
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  call void @exit(i32 noundef 1) #13
  unreachable

1786:                                             ; No predecessors!
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787, %1729
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = load ptr, ptr %27, align 8, !tbaa !9
  %1795 = call i32 @s2n_connection_free(ptr noundef %1794)
  %1796 = icmp eq i32 %1795, -1
  br i1 %1796, label %1797, label %1850

1797:                                             ; preds = %1791
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1800 = call ptr @__errno_location() #12
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  store i32 %1801, ptr %40, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @s2n_print_stacktrace(ptr noundef %1802)
  %1804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1805 = trunc i8 %1804 to i1
  br i1 %1805, label %1806, label %1828

1806:                                             ; preds = %1799
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @fileno(ptr noundef %1807) #11
  %1809 = call i32 @isatty(i32 noundef %1808) #11
  %1810 = icmp ne i32 %1809, 0
  br i1 %1810, label %1811, label %1828

1811:                                             ; preds = %1806
  %1812 = load i32, ptr %40, align 4, !tbaa !5
  %1813 = call ptr @__errno_location() #12
  store i32 %1812, ptr %1813, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = load i32, ptr @test_count, align 4, !tbaa !5
  %1816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef @.str.4)
  %1819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef @.str.4)
  %1822 = call ptr @__errno_location() #12
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #11
  %1825 = call ptr @__errno_location() #12
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef @.str.2, i32 noundef %1815, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1818, ptr noundef %1821, ptr noundef %1824, i32 noundef %1826) #11
  br label %1845

1828:                                             ; preds = %1806, %1799
  %1829 = load i32, ptr %40, align 4, !tbaa !5
  %1830 = call ptr @__errno_location() #12
  store i32 %1829, ptr %1830, align 4, !tbaa !5
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef @.str.4)
  %1839 = call ptr @__errno_location() #12
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call ptr @strerror(i32 noundef %1840) #11
  %1842 = call ptr @__errno_location() #12
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1831, ptr noundef @.str.5, i32 noundef %1832, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1835, ptr noundef %1838, ptr noundef %1841, i32 noundef %1843) #11
  br label %1845

1845:                                             ; preds = %1828, %1811
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  call void @exit(i32 noundef 1) #13
  unreachable

1848:                                             ; No predecessors!
  br label %1849

1849:                                             ; preds = %1848
  br label %1850

1850:                                             ; preds = %1849, %1791
  br label %1851

1851:                                             ; preds = %1850
  br label %1852

1852:                                             ; preds = %1851
  call void @llvm.lifetime.end.p0(i64 40, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  %1853 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1853, ptr %41, align 8, !tbaa !9
  br label %1854

1854:                                             ; preds = %1852
  %1855 = load i32, ptr @test_count, align 4, !tbaa !5
  %1856 = add nsw i32 %1855, 1
  store i32 %1856, ptr @test_count, align 4, !tbaa !5
  %1857 = load ptr, ptr %41, align 8, !tbaa !9
  %1858 = icmp eq ptr %1857, null
  br i1 %1858, label %1859, label %1912

1859:                                             ; preds = %1854
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1862 = call ptr @__errno_location() #12
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  store i32 %1863, ptr %42, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @s2n_print_stacktrace(ptr noundef %1864)
  %1866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1867 = trunc i8 %1866 to i1
  br i1 %1867, label %1868, label %1890

1868:                                             ; preds = %1861
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #11
  %1871 = call i32 @isatty(i32 noundef %1870) #11
  %1872 = icmp ne i32 %1871, 0
  br i1 %1872, label %1873, label %1890

1873:                                             ; preds = %1868
  %1874 = load i32, ptr %42, align 4, !tbaa !5
  %1875 = call ptr @__errno_location() #12
  store i32 %1874, ptr %1875, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror(i32 noundef %1879, ptr noundef @.str.4)
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call ptr @__errno_location() #12
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #11
  %1887 = call ptr @__errno_location() #12
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef @.str.2, i32 noundef %1877, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 141, ptr noundef %1880, ptr noundef %1883, ptr noundef %1886, i32 noundef %1888) #11
  br label %1907

1890:                                             ; preds = %1868, %1861
  %1891 = load i32, ptr %42, align 4, !tbaa !5
  %1892 = call ptr @__errno_location() #12
  store i32 %1891, ptr %1892, 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 @.str.4)
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror_debug(i32 noundef %1899, ptr noundef @.str.4)
  %1901 = call ptr @__errno_location() #12
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #11
  %1904 = call ptr @__errno_location() #12
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef @.str.5, i32 noundef %1894, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 141, ptr noundef %1897, ptr noundef %1900, ptr noundef %1903, i32 noundef %1905) #11
  br label %1907

1907:                                             ; preds = %1890, %1873
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  call void @exit(i32 noundef 1) #13
  unreachable

1910:                                             ; No predecessors!
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911, %1854
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  %1915 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1915, ptr %43, align 8, !tbaa !9
  br label %1916

1916:                                             ; preds = %1914
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = load ptr, ptr %43, align 8, !tbaa !9
  %1920 = icmp eq ptr %1919, null
  br i1 %1920, label %1921, label %1974

1921:                                             ; preds = %1916
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

1923:                                             ; preds = %1922
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1924 = call ptr @__errno_location() #12
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  store i32 %1925, ptr %44, align 4, !tbaa !5
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = call i32 @s2n_print_stacktrace(ptr noundef %1926)
  %1928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1929 = trunc i8 %1928 to i1
  br i1 %1929, label %1930, label %1952

1930:                                             ; preds = %1923
  %1931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1932 = call i32 @fileno(ptr noundef %1931) #11
  %1933 = call i32 @isatty(i32 noundef %1932) #11
  %1934 = icmp ne i32 %1933, 0
  br i1 %1934, label %1935, label %1952

1935:                                             ; preds = %1930
  %1936 = load i32, ptr %44, align 4, !tbaa !5
  %1937 = call ptr @__errno_location() #12
  store i32 %1936, ptr %1937, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call ptr @__errno_location() #12
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #11
  %1949 = call ptr @__errno_location() #12
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef @.str.2, i32 noundef %1939, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 144, ptr noundef %1942, ptr noundef %1945, ptr noundef %1948, i32 noundef %1950) #11
  br label %1969

1952:                                             ; preds = %1930, %1923
  %1953 = load i32, ptr %44, align 4, !tbaa !5
  %1954 = call ptr @__errno_location() #12
  store i32 %1953, ptr %1954, align 4, !tbaa !5
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = load i32, ptr @test_count, align 4, !tbaa !5
  %1957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror(i32 noundef %1958, ptr noundef @.str.4)
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror_debug(i32 noundef %1961, ptr noundef @.str.4)
  %1963 = call ptr @__errno_location() #12
  %1964 = load i32, ptr %1963, align 4, !tbaa !5
  %1965 = call ptr @strerror(i32 noundef %1964) #11
  %1966 = call ptr @__errno_location() #12
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1955, ptr noundef @.str.5, i32 noundef %1956, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 144, ptr noundef %1959, ptr noundef %1962, ptr noundef %1965, i32 noundef %1967) #11
  br label %1969

1969:                                             ; preds = %1952, %1935
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970
  call void @exit(i32 noundef 1) #13
  unreachable

1972:                                             ; No predecessors!
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

1974:                                             ; preds = %1973, %1916
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975
  call void @llvm.lifetime.start.p0(i64 40, ptr %45) #11
  call void @llvm.memset.p0.i64(ptr align 8 %45, i8 0, i64 40, i1 false)
  br label %1977

1977:                                             ; preds = %1976
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %45, i32 noundef 0)
  %1981 = icmp eq i32 %1980, -1
  br i1 %1981, label %1982, label %2035

1982:                                             ; preds = %1977
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1985 = call ptr @__errno_location() #12
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  store i32 %1986, ptr %46, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = call i32 @s2n_print_stacktrace(ptr noundef %1987)
  %1989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1990 = trunc i8 %1989 to i1
  br i1 %1990, label %1991, label %2013

1991:                                             ; preds = %1984
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = call i32 @fileno(ptr noundef %1992) #11
  %1994 = call i32 @isatty(i32 noundef %1993) #11
  %1995 = icmp ne i32 %1994, 0
  br i1 %1995, label %1996, label %2013

1996:                                             ; preds = %1991
  %1997 = load i32, ptr %46, align 4, !tbaa !5
  %1998 = call ptr @__errno_location() #12
  store i32 %1997, ptr %1998, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror(i32 noundef %2002, ptr noundef @.str.4)
  %2004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef @.str.4)
  %2007 = call ptr @__errno_location() #12
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @strerror(i32 noundef %2008) #11
  %2010 = call ptr @__errno_location() #12
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef @.str.2, i32 noundef %2000, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2003, ptr noundef %2006, ptr noundef %2009, i32 noundef %2011) #11
  br label %2030

2013:                                             ; preds = %1991, %1984
  %2014 = load i32, ptr %46, align 4, !tbaa !5
  %2015 = call ptr @__errno_location() #12
  store i32 %2014, ptr %2015, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror(i32 noundef %2019, ptr noundef @.str.4)
  %2021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror_debug(i32 noundef %2022, ptr noundef @.str.4)
  %2024 = call ptr @__errno_location() #12
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #11
  %2027 = call ptr @__errno_location() #12
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef @.str.5, i32 noundef %2017, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2020, ptr noundef %2023, ptr noundef %2026, i32 noundef %2028) #11
  br label %2030

2030:                                             ; preds = %2013, %1996
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  call void @exit(i32 noundef 1) #13
  unreachable

2033:                                             ; No predecessors!
  br label %2034

2034:                                             ; preds = %2033
  br label %2035

2035:                                             ; preds = %2034, %1977
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036
  %2038 = load ptr, ptr %41, align 8, !tbaa !9
  %2039 = getelementptr inbounds %struct.s2n_connection, ptr %2038, i32 0, i32 23
  store i8 33, ptr %2039, align 4, !tbaa !16
  %2040 = load ptr, ptr %41, align 8, !tbaa !9
  %2041 = load i32, ptr %2040, align 8
  %2042 = and i32 %2041, -9
  %2043 = or i32 %2042, 8
  store i32 %2043, ptr %2040, align 8
  br label %2044

2044:                                             ; preds = %2037
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !45
  %2048 = load ptr, ptr %41, align 8, !tbaa !9
  %2049 = call i32 %2047(ptr noundef %2048, ptr noundef %45)
  %2050 = icmp eq i32 %2049, -1
  br i1 %2050, label %2051, label %2104

2051:                                             ; preds = %2044
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

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

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

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

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

2099:                                             ; preds = %2082, %2065
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

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

2102:                                             ; No predecessors!
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103, %2044
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = add nsw i32 %2108, 1
  store i32 %2109, ptr @test_count, align 4, !tbaa !5
  %2110 = getelementptr inbounds %struct.s2n_stuffer, ptr %45, i32 0, i32 2
  %2111 = load i32, ptr %2110, align 4, !tbaa !46
  %2112 = getelementptr inbounds %struct.s2n_stuffer, ptr %45, i32 0, i32 1
  %2113 = load i32, ptr %2112, align 8, !tbaa !47
  %2114 = sub i32 %2111, %2113
  %2115 = icmp eq i32 %2114, 0
  br i1 %2115, label %2116, label %2169

2116:                                             ; preds = %2107
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

2118:                                             ; preds = %2117
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2119 = call ptr @__errno_location() #12
  %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) #11
  %2128 = call i32 @isatty(i32 noundef %2127) #11
  %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() #12
  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() #12
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @strerror(i32 noundef %2142) #11
  %2144 = call ptr @__errno_location() #12
  %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.25, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2137, ptr noundef %2140, ptr noundef %2143, i32 noundef %2145) #11
  br label %2164

2147:                                             ; preds = %2125, %2118
  %2148 = load i32, ptr %48, align 4, !tbaa !5
  %2149 = call ptr @__errno_location() #12
  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() #12
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @strerror(i32 noundef %2159) #11
  %2161 = call ptr @__errno_location() #12
  %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.25, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2154, ptr noundef %2157, ptr noundef %2160, i32 noundef %2162) #11
  br label %2164

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

2165:                                             ; preds = %2164
  br label %2166

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

2167:                                             ; No predecessors!
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

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

2170:                                             ; preds = %2169
  br label %2171

2171:                                             ; preds = %2170
  %2172 = load ptr, ptr %43, align 8, !tbaa !9
  %2173 = getelementptr inbounds %struct.s2n_connection, ptr %2172, i32 0, i32 21
  store i8 30, ptr %2173, align 2, !tbaa !49
  %2174 = load ptr, ptr %43, align 8, !tbaa !9
  %2175 = getelementptr inbounds %struct.s2n_connection, ptr %2174, i32 0, i32 23
  store i8 30, ptr %2175, align 4, !tbaa !16
  br label %2176

2176:                                             ; preds = %2171
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = add nsw i32 %2177, 1
  store i32 %2178, ptr @test_count, align 4, !tbaa !5
  %2179 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %2180 = load ptr, ptr %43, align 8, !tbaa !9
  %2181 = call i32 %2179(ptr noundef %2180, ptr noundef %45)
  %2182 = icmp eq i32 %2181, -1
  br i1 %2182, label %2183, label %2236

2183:                                             ; preds = %2176
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

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

2192:                                             ; preds = %2185
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @fileno(ptr noundef %2193) #11
  %2195 = call i32 @isatty(i32 noundef %2194) #11
  %2196 = icmp ne i32 %2195, 0
  br i1 %2196, label %2197, label %2214

2197:                                             ; preds = %2192
  %2198 = load i32, ptr %49, align 4, !tbaa !5
  %2199 = call ptr @__errno_location() #12
  store i32 %2198, ptr %2199, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror(i32 noundef %2203, ptr noundef @.str.4)
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef @.str.4)
  %2208 = call ptr @__errno_location() #12
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @strerror(i32 noundef %2209) #11
  %2211 = call ptr @__errno_location() #12
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2200, ptr noundef @.str.2, i32 noundef %2201, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2204, ptr noundef %2207, ptr noundef %2210, i32 noundef %2212) #11
  br label %2231

2214:                                             ; preds = %2192, %2185
  %2215 = load i32, ptr %49, align 4, !tbaa !5
  %2216 = call ptr @__errno_location() #12
  store i32 %2215, ptr %2216, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef @.str.4)
  %2222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror_debug(i32 noundef %2223, ptr noundef @.str.4)
  %2225 = call ptr @__errno_location() #12
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @strerror(i32 noundef %2226) #11
  %2228 = call ptr @__errno_location() #12
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef @.str.5, i32 noundef %2218, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2221, ptr noundef %2224, ptr noundef %2227, i32 noundef %2229) #11
  br label %2231

2231:                                             ; preds = %2214, %2197
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  call void @exit(i32 noundef 1) #13
  unreachable

2234:                                             ; No predecessors!
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235, %2176
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = add nsw i32 %2240, 1
  store i32 %2241, ptr @test_count, align 4, !tbaa !5
  %2242 = load ptr, ptr %43, align 8, !tbaa !9
  %2243 = load i32, ptr %2242, align 8
  %2244 = lshr i32 %2243, 3
  %2245 = and i32 %2244, 1
  %2246 = icmp eq i32 %2245, 1
  br i1 %2246, label %2300, label %2247

2247:                                             ; preds = %2239
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %2250 = call ptr @__errno_location() #12
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  store i32 %2251, ptr %50, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @s2n_print_stacktrace(ptr noundef %2252)
  %2254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2255 = trunc i8 %2254 to i1
  br i1 %2255, label %2256, label %2278

2256:                                             ; preds = %2249
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @fileno(ptr noundef %2257) #11
  %2259 = call i32 @isatty(i32 noundef %2258) #11
  %2260 = icmp ne i32 %2259, 0
  br i1 %2260, label %2261, label %2278

2261:                                             ; preds = %2256
  %2262 = load i32, ptr %50, align 4, !tbaa !5
  %2263 = call ptr @__errno_location() #12
  store i32 %2262, ptr %2263, align 4, !tbaa !5
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = load i32, ptr @test_count, align 4, !tbaa !5
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror(i32 noundef %2267, ptr noundef @.str.4)
  %2269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @s2n_strerror_debug(i32 noundef %2270, ptr noundef @.str.4)
  %2272 = call ptr @__errno_location() #12
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call ptr @strerror(i32 noundef %2273) #11
  %2275 = call ptr @__errno_location() #12
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2264, ptr noundef @.str.2, i32 noundef %2265, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2268, ptr noundef %2271, ptr noundef %2274, i32 noundef %2276) #11
  br label %2295

2278:                                             ; preds = %2256, %2249
  %2279 = load i32, ptr %50, align 4, !tbaa !5
  %2280 = call ptr @__errno_location() #12
  store i32 %2279, ptr %2280, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror(i32 noundef %2284, ptr noundef @.str.4)
  %2286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @s2n_strerror_debug(i32 noundef %2287, ptr noundef @.str.4)
  %2289 = call ptr @__errno_location() #12
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call ptr @strerror(i32 noundef %2290) #11
  %2292 = call ptr @__errno_location() #12
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2281, ptr noundef @.str.5, i32 noundef %2282, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2285, ptr noundef %2288, ptr noundef %2291, i32 noundef %2293) #11
  br label %2295

2295:                                             ; preds = %2278, %2261
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2296

2296:                                             ; preds = %2295
  br label %2297

2297:                                             ; preds = %2296
  call void @exit(i32 noundef 1) #13
  unreachable

2298:                                             ; No predecessors!
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299, %2239
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = add nsw i32 %2304, 1
  store i32 %2305, ptr @test_count, align 4, !tbaa !5
  %2306 = getelementptr inbounds %struct.s2n_stuffer, ptr %45, i32 0, i32 2
  %2307 = load i32, ptr %2306, align 4, !tbaa !46
  %2308 = getelementptr inbounds %struct.s2n_stuffer, ptr %45, i32 0, i32 1
  %2309 = load i32, ptr %2308, align 8, !tbaa !47
  %2310 = sub i32 %2307, %2309
  %2311 = icmp eq i32 %2310, 0
  br i1 %2311, label %2365, label %2312

2312:                                             ; preds = %2303
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2315 = call ptr @__errno_location() #12
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  store i32 %2316, ptr %51, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @s2n_print_stacktrace(ptr noundef %2317)
  %2319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc i8 %2319 to i1
  br i1 %2320, label %2321, label %2343

2321:                                             ; preds = %2314
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @fileno(ptr noundef %2322) #11
  %2324 = call i32 @isatty(i32 noundef %2323) #11
  %2325 = icmp ne i32 %2324, 0
  br i1 %2325, label %2326, label %2343

2326:                                             ; preds = %2321
  %2327 = load i32, ptr %51, align 4, !tbaa !5
  %2328 = call ptr @__errno_location() #12
  store i32 %2327, ptr %2328, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror(i32 noundef %2332, ptr noundef @.str.4)
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror_debug(i32 noundef %2335, ptr noundef @.str.4)
  %2337 = call ptr @__errno_location() #12
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @strerror(i32 noundef %2338) #11
  %2340 = call ptr @__errno_location() #12
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef @.str.2, i32 noundef %2330, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2333, ptr noundef %2336, ptr noundef %2339, i32 noundef %2341) #11
  br label %2360

2343:                                             ; preds = %2321, %2314
  %2344 = load i32, ptr %51, align 4, !tbaa !5
  %2345 = call ptr @__errno_location() #12
  store i32 %2344, ptr %2345, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror(i32 noundef %2349, ptr noundef @.str.4)
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef @.str.4)
  %2354 = call ptr @__errno_location() #12
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @strerror(i32 noundef %2355) #11
  %2357 = call ptr @__errno_location() #12
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef @.str.5, i32 noundef %2347, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 158, ptr noundef %2350, ptr noundef %2353, ptr noundef %2356, i32 noundef %2358) #11
  br label %2360

2360:                                             ; preds = %2343, %2326
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

2362:                                             ; preds = %2361
  call void @exit(i32 noundef 1) #13
  unreachable

2363:                                             ; No predecessors!
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364, %2303
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  %2368 = call i32 @s2n_stuffer_free(ptr noundef %45)
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #11
  %2369 = call i32 @s2n_connection_ptr_free(ptr noundef %43)
  %2370 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %2369, ptr %2370, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  %2371 = call i32 @s2n_connection_ptr_free(ptr noundef %41)
  %2372 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %2371, ptr %2372, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  store ptr null, ptr %54, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  store ptr null, ptr %55, align 8, !tbaa !9
  br label %2373

2373:                                             ; preds = %2367
  %2374 = load i32, ptr @test_count, align 4, !tbaa !5
  %2375 = add nsw i32 %2374, 1
  store i32 %2375, ptr @test_count, align 4, !tbaa !5
  %2376 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2376, ptr %54, align 8, !tbaa !9
  %2377 = icmp eq ptr %2376, null
  br i1 %2377, label %2378, label %2431

2378:                                             ; preds = %2373
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2381 = call ptr @__errno_location() #12
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  store i32 %2382, ptr %56, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @s2n_print_stacktrace(ptr noundef %2383)
  %2385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2386 = trunc i8 %2385 to i1
  br i1 %2386, label %2387, label %2409

2387:                                             ; preds = %2380
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @fileno(ptr noundef %2388) #11
  %2390 = call i32 @isatty(i32 noundef %2389) #11
  %2391 = icmp ne i32 %2390, 0
  br i1 %2391, label %2392, label %2409

2392:                                             ; preds = %2387
  %2393 = load i32, ptr %56, align 4, !tbaa !5
  %2394 = call ptr @__errno_location() #12
  store i32 %2393, ptr %2394, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef @.str.4)
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror_debug(i32 noundef %2401, ptr noundef @.str.4)
  %2403 = call ptr @__errno_location() #12
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #11
  %2406 = call ptr @__errno_location() #12
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2395, ptr noundef @.str.2, i32 noundef %2396, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2399, ptr noundef %2402, ptr noundef %2405, i32 noundef %2407) #11
  br label %2426

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

2426:                                             ; preds = %2409, %2392
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  call void @exit(i32 noundef 1) #13
  unreachable

2429:                                             ; No predecessors!
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430, %2373
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = add nsw i32 %2435, 1
  store i32 %2436, ptr @test_count, align 4, !tbaa !5
  %2437 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2437, ptr %55, align 8, !tbaa !9
  %2438 = icmp eq ptr %2437, null
  br i1 %2438, label %2439, label %2492

2439:                                             ; preds = %2434
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2442 = call ptr @__errno_location() #12
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  store i32 %2443, ptr %57, align 4, !tbaa !5
  %2444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2445 = call i32 @s2n_print_stacktrace(ptr noundef %2444)
  %2446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2447 = trunc i8 %2446 to i1
  br i1 %2447, label %2448, label %2470

2448:                                             ; preds = %2441
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @fileno(ptr noundef %2449) #11
  %2451 = call i32 @isatty(i32 noundef %2450) #11
  %2452 = icmp ne i32 %2451, 0
  br i1 %2452, label %2453, label %2470

2453:                                             ; preds = %2448
  %2454 = load i32, ptr %57, align 4, !tbaa !5
  %2455 = call ptr @__errno_location() #12
  store i32 %2454, ptr %2455, 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 @.str.4)
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror_debug(i32 noundef %2462, ptr noundef @.str.4)
  %2464 = call ptr @__errno_location() #12
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @strerror(i32 noundef %2465) #11
  %2467 = call ptr @__errno_location() #12
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2456, ptr noundef @.str.2, i32 noundef %2457, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2460, ptr noundef %2463, ptr noundef %2466, i32 noundef %2468) #11
  br label %2487

2470:                                             ; preds = %2448, %2441
  %2471 = load i32, ptr %57, align 4, !tbaa !5
  %2472 = call ptr @__errno_location() #12
  store i32 %2471, ptr %2472, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror(i32 noundef %2476, ptr noundef @.str.4)
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror_debug(i32 noundef %2479, ptr noundef @.str.4)
  %2481 = call ptr @__errno_location() #12
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @strerror(i32 noundef %2482) #11
  %2484 = call ptr @__errno_location() #12
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2473, ptr noundef @.str.5, i32 noundef %2474, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2477, ptr noundef %2480, ptr noundef %2483, i32 noundef %2485) #11
  br label %2487

2487:                                             ; preds = %2470, %2453
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488
  call void @exit(i32 noundef 1) #13
  unreachable

2490:                                             ; No predecessors!
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491, %2434
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

2494:                                             ; preds = %2493
  call void @llvm.lifetime.start.p0(i64 40, ptr %58) #11
  call void @llvm.memset.p0.i64(ptr align 8 %58, i8 0, i64 40, i1 false)
  br label %2495

2495:                                             ; preds = %2494
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = add nsw i32 %2496, 1
  store i32 %2497, ptr @test_count, align 4, !tbaa !5
  %2498 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %58, i32 noundef 0)
  %2499 = icmp eq i32 %2498, -1
  br i1 %2499, label %2500, label %2553

2500:                                             ; preds = %2495
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2503 = call ptr @__errno_location() #12
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  store i32 %2504, ptr %59, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = call i32 @s2n_print_stacktrace(ptr noundef %2505)
  %2507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2508 = trunc i8 %2507 to i1
  br i1 %2508, label %2509, label %2531

2509:                                             ; preds = %2502
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = call i32 @fileno(ptr noundef %2510) #11
  %2512 = call i32 @isatty(i32 noundef %2511) #11
  %2513 = icmp ne i32 %2512, 0
  br i1 %2513, label %2514, label %2531

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

2531:                                             ; preds = %2509, %2502
  %2532 = load i32, ptr %59, align 4, !tbaa !5
  %2533 = call ptr @__errno_location() #12
  store i32 %2532, ptr %2533, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = load i32, ptr @test_count, align 4, !tbaa !5
  %2536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror(i32 noundef %2537, ptr noundef @.str.4)
  %2539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call ptr @s2n_strerror_debug(i32 noundef %2540, ptr noundef @.str.4)
  %2542 = call ptr @__errno_location() #12
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call ptr @strerror(i32 noundef %2543) #11
  %2545 = call ptr @__errno_location() #12
  %2546 = load i32, ptr %2545, align 4, !tbaa !5
  %2547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2534, ptr noundef @.str.5, i32 noundef %2535, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 168, ptr noundef %2538, ptr noundef %2541, ptr noundef %2544, i32 noundef %2546) #11
  br label %2548

2548:                                             ; preds = %2531, %2514
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2549

2549:                                             ; preds = %2548
  br label %2550

2550:                                             ; preds = %2549
  call void @exit(i32 noundef 1) #13
  unreachable

2551:                                             ; No predecessors!
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552, %2495
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554
  %2556 = load ptr, ptr %54, align 8, !tbaa !9
  %2557 = getelementptr inbounds %struct.s2n_connection, ptr %2556, i32 0, i32 23
  store i8 33, ptr %2557, align 4, !tbaa !16
  %2558 = load ptr, ptr %54, align 8, !tbaa !9
  %2559 = load i32, ptr %2558, align 8
  %2560 = and i32 %2559, -9
  %2561 = or i32 %2560, 8
  store i32 %2561, ptr %2558, align 8
  br label %2562

2562:                                             ; preds = %2555
  %2563 = load i32, ptr @test_count, align 4, !tbaa !5
  %2564 = add nsw i32 %2563, 1
  store i32 %2564, ptr @test_count, align 4, !tbaa !5
  %2565 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !45
  %2566 = load ptr, ptr %54, align 8, !tbaa !9
  %2567 = call i32 %2565(ptr noundef %2566, ptr noundef %58)
  %2568 = icmp eq i32 %2567, -1
  br i1 %2568, label %2569, label %2622

2569:                                             ; preds = %2562
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

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

2578:                                             ; preds = %2571
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @fileno(ptr noundef %2579) #11
  %2581 = call i32 @isatty(i32 noundef %2580) #11
  %2582 = icmp ne i32 %2581, 0
  br i1 %2582, label %2583, label %2600

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

2600:                                             ; preds = %2578, %2571
  %2601 = load i32, ptr %60, align 4, !tbaa !5
  %2602 = call ptr @__errno_location() #12
  store i32 %2601, ptr %2602, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = load i32, ptr @test_count, align 4, !tbaa !5
  %2605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2606 = load i32, ptr %2605, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror(i32 noundef %2606, ptr noundef @.str.4)
  %2608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2609 = load i32, ptr %2608, align 4, !tbaa !5
  %2610 = call ptr @s2n_strerror_debug(i32 noundef %2609, ptr noundef @.str.4)
  %2611 = call ptr @__errno_location() #12
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @strerror(i32 noundef %2612) #11
  %2614 = call ptr @__errno_location() #12
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2603, ptr noundef @.str.5, i32 noundef %2604, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2607, ptr noundef %2610, ptr noundef %2613, i32 noundef %2615) #11
  br label %2617

2617:                                             ; preds = %2600, %2583
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2618

2618:                                             ; preds = %2617
  br label %2619

2619:                                             ; preds = %2618
  call void @exit(i32 noundef 1) #13
  unreachable

2620:                                             ; No predecessors!
  br label %2621

2621:                                             ; preds = %2620
  br label %2622

2622:                                             ; preds = %2621, %2562
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = add nsw i32 %2626, 1
  store i32 %2627, ptr @test_count, align 4, !tbaa !5
  %2628 = call i32 @s2n_stuffer_write_uint8(ptr noundef %58, i8 noundef zeroext 0)
  %2629 = icmp eq i32 %2628, -1
  br i1 %2629, label %2630, label %2683

2630:                                             ; preds = %2625
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

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

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

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

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

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

2679:                                             ; preds = %2678
  br label %2680

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

2681:                                             ; No predecessors!
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

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

2684:                                             ; preds = %2683
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  br label %2688

2688:                                             ; preds = %2687
  %2689 = load i32, ptr @test_count, align 4, !tbaa !5
  %2690 = add nsw i32 %2689, 1
  store i32 %2690, ptr @test_count, align 4, !tbaa !5
  %2691 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %2692 = load ptr, ptr %55, align 8, !tbaa !9
  %2693 = call i32 %2691(ptr noundef %2692, ptr noundef %58)
  %2694 = icmp eq i32 %2693, -1
  br i1 %2694, label %2748, label %2695

2695:                                             ; preds = %2688
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2698 = call ptr @__errno_location() #12
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  store i32 %2699, ptr %62, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = call i32 @s2n_print_stacktrace(ptr noundef %2700)
  %2702 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2703 = trunc i8 %2702 to i1
  br i1 %2703, label %2704, label %2726

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @fileno(ptr noundef %2705) #11
  %2707 = call i32 @isatty(i32 noundef %2706) #11
  %2708 = icmp ne i32 %2707, 0
  br i1 %2708, label %2709, label %2726

2709:                                             ; preds = %2704
  %2710 = load i32, ptr %62, align 4, !tbaa !5
  %2711 = call ptr @__errno_location() #12
  store i32 %2710, ptr %2711, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef @.str.4)
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror_debug(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call ptr @__errno_location() #12
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #11
  %2723 = call ptr @__errno_location() #12
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef @.str.2, i32 noundef %2713, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2716, ptr noundef %2719, ptr noundef %2722, i32 noundef %2724) #11
  br label %2743

2726:                                             ; preds = %2704, %2697
  %2727 = load i32, ptr %62, align 4, !tbaa !5
  %2728 = call ptr @__errno_location() #12
  store i32 %2727, ptr %2728, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef @.str.4)
  %2734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror_debug(i32 noundef %2735, ptr noundef @.str.4)
  %2737 = call ptr @__errno_location() #12
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #11
  %2740 = call ptr @__errno_location() #12
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2729, ptr noundef @.str.5, i32 noundef %2730, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2733, ptr noundef %2736, ptr noundef %2739, i32 noundef %2741) #11
  br label %2743

2743:                                             ; preds = %2726, %2709
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

2745:                                             ; preds = %2744
  call void @exit(i32 noundef 1) #13
  unreachable

2746:                                             ; No predecessors!
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747, %2688
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749
  br label %2751

2751:                                             ; preds = %2750
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = add nsw i32 %2752, 1
  store i32 %2753, ptr @test_count, align 4, !tbaa !5
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = icmp eq i32 %2755, 335544364
  br i1 %2756, label %2810, label %2757

2757:                                             ; preds = %2751
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2760 = call ptr @__errno_location() #12
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  store i32 %2761, ptr %63, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @s2n_print_stacktrace(ptr noundef %2762)
  %2764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2765 = trunc i8 %2764 to i1
  br i1 %2765, label %2766, label %2788

2766:                                             ; preds = %2759
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = call i32 @fileno(ptr noundef %2767) #11
  %2769 = call i32 @isatty(i32 noundef %2768) #11
  %2770 = icmp ne i32 %2769, 0
  br i1 %2770, label %2771, label %2788

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

2788:                                             ; preds = %2766, %2759
  %2789 = load i32, ptr %63, align 4, !tbaa !5
  %2790 = call ptr @__errno_location() #12
  store i32 %2789, ptr %2790, align 4, !tbaa !5
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = load i32, ptr @test_count, align 4, !tbaa !5
  %2793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call ptr @s2n_strerror(i32 noundef %2794, ptr noundef @.str.4)
  %2796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call ptr @s2n_strerror_debug(i32 noundef %2797, ptr noundef @.str.4)
  %2799 = call ptr @__errno_location() #12
  %2800 = load i32, ptr %2799, align 4, !tbaa !5
  %2801 = call ptr @strerror(i32 noundef %2800) #11
  %2802 = call ptr @__errno_location() #12
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2791, ptr noundef @.str.5, i32 noundef %2792, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2795, ptr noundef %2798, ptr noundef %2801, i32 noundef %2803) #11
  br label %2805

2805:                                             ; preds = %2788, %2771
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  call void @exit(i32 noundef 1) #13
  unreachable

2808:                                             ; No predecessors!
  br label %2809

2809:                                             ; preds = %2808
  br label %2810

2810:                                             ; preds = %2809, %2751
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

2813:                                             ; preds = %2812
  %2814 = load i32, ptr @test_count, align 4, !tbaa !5
  %2815 = add nsw i32 %2814, 1
  store i32 %2815, ptr @test_count, align 4, !tbaa !5
  %2816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2817 = load i32, ptr %2816, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror_debug(i32 noundef %2817, ptr noundef @.str.4)
  %2819 = icmp eq ptr %2818, null
  br i1 %2819, label %2820, label %2873

2820:                                             ; preds = %2813
  br label %2821

2821:                                             ; preds = %2820
  br label %2822

2822:                                             ; preds = %2821
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2823 = call ptr @__errno_location() #12
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  store i32 %2824, ptr %64, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = call i32 @s2n_print_stacktrace(ptr noundef %2825)
  %2827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2828 = trunc i8 %2827 to i1
  br i1 %2828, label %2829, label %2851

2829:                                             ; preds = %2822
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2831 = call i32 @fileno(ptr noundef %2830) #11
  %2832 = call i32 @isatty(i32 noundef %2831) #11
  %2833 = icmp ne i32 %2832, 0
  br i1 %2833, label %2834, label %2851

2834:                                             ; preds = %2829
  %2835 = load i32, ptr %64, align 4, !tbaa !5
  %2836 = call ptr @__errno_location() #12
  store i32 %2835, ptr %2836, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.4)
  %2845 = call ptr @__errno_location() #12
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #11
  %2848 = call ptr @__errno_location() #12
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef @.str.2, i32 noundef %2838, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2841, ptr noundef %2844, ptr noundef %2847, i32 noundef %2849) #11
  br label %2868

2851:                                             ; preds = %2829, %2822
  %2852 = load i32, ptr %64, align 4, !tbaa !5
  %2853 = call ptr @__errno_location() #12
  store i32 %2852, ptr %2853, align 4, !tbaa !5
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = load i32, ptr @test_count, align 4, !tbaa !5
  %2856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror(i32 noundef %2857, ptr noundef @.str.4)
  %2859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  %2861 = call ptr @s2n_strerror_debug(i32 noundef %2860, ptr noundef @.str.4)
  %2862 = call ptr @__errno_location() #12
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call ptr @strerror(i32 noundef %2863) #11
  %2865 = call ptr @__errno_location() #12
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2854, ptr noundef @.str.5, i32 noundef %2855, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 177, ptr noundef %2858, ptr noundef %2861, ptr noundef %2864, i32 noundef %2866) #11
  br label %2868

2868:                                             ; preds = %2851, %2834
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869
  call void @exit(i32 noundef 1) #13
  unreachable

2871:                                             ; No predecessors!
  br label %2872

2872:                                             ; preds = %2871
  br label %2873

2873:                                             ; preds = %2872, %2813
  br label %2874

2874:                                             ; preds = %2873
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877
  %2879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2879, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2880 = call ptr @__errno_location() #12
  store i32 0, ptr %2880, align 4, !tbaa !5
  br label %2881

2881:                                             ; preds = %2878
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  %2886 = load i32, ptr @test_count, align 4, !tbaa !5
  %2887 = add nsw i32 %2886, 1
  store i32 %2887, ptr @test_count, align 4, !tbaa !5
  %2888 = load ptr, ptr %55, align 8, !tbaa !9
  %2889 = load i32, ptr %2888, align 8
  %2890 = lshr i32 %2889, 3
  %2891 = and i32 %2890, 1
  %2892 = icmp eq i32 %2891, 0
  br i1 %2892, label %2946, label %2893

2893:                                             ; preds = %2885
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %2896 = call ptr @__errno_location() #12
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  store i32 %2897, ptr %65, align 4, !tbaa !5
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @s2n_print_stacktrace(ptr noundef %2898)
  %2900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2901 = trunc i8 %2900 to i1
  br i1 %2901, label %2902, label %2924

2902:                                             ; preds = %2895
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @fileno(ptr noundef %2903) #11
  %2905 = call i32 @isatty(i32 noundef %2904) #11
  %2906 = icmp ne i32 %2905, 0
  br i1 %2906, label %2907, label %2924

2907:                                             ; preds = %2902
  %2908 = load i32, ptr %65, align 4, !tbaa !5
  %2909 = call ptr @__errno_location() #12
  store i32 %2908, ptr %2909, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call ptr @__errno_location() #12
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #11
  %2921 = call ptr @__errno_location() #12
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef @.str.2, i32 noundef %2911, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 178, ptr noundef %2914, ptr noundef %2917, ptr noundef %2920, i32 noundef %2922) #11
  br label %2941

2924:                                             ; preds = %2902, %2895
  %2925 = load i32, ptr %65, align 4, !tbaa !5
  %2926 = call ptr @__errno_location() #12
  store i32 %2925, ptr %2926, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror(i32 noundef %2930, ptr noundef @.str.4)
  %2932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror_debug(i32 noundef %2933, ptr noundef @.str.4)
  %2935 = call ptr @__errno_location() #12
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @strerror(i32 noundef %2936) #11
  %2938 = call ptr @__errno_location() #12
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2927, ptr noundef @.str.5, i32 noundef %2928, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 178, ptr noundef %2931, ptr noundef %2934, ptr noundef %2937, i32 noundef %2939) #11
  br label %2941

2941:                                             ; preds = %2924, %2907
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942
  call void @exit(i32 noundef 1) #13
  unreachable

2944:                                             ; No predecessors!
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945, %2885
  br label %2947

2947:                                             ; preds = %2946
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = add nsw i32 %2950, 1
  store i32 %2951, ptr @test_count, align 4, !tbaa !5
  %2952 = call i32 @s2n_stuffer_free(ptr noundef %58)
  %2953 = icmp eq i32 %2952, -1
  br i1 %2953, label %2954, label %3007

2954:                                             ; preds = %2949
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

2956:                                             ; preds = %2955
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2957 = call ptr @__errno_location() #12
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  store i32 %2958, ptr %66, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = call i32 @s2n_print_stacktrace(ptr noundef %2959)
  %2961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2962 = trunc i8 %2961 to i1
  br i1 %2962, label %2963, label %2985

2963:                                             ; preds = %2956
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2965 = call i32 @fileno(ptr noundef %2964) #11
  %2966 = call i32 @isatty(i32 noundef %2965) #11
  %2967 = icmp ne i32 %2966, 0
  br i1 %2967, label %2968, label %2985

2968:                                             ; preds = %2963
  %2969 = load i32, ptr %66, align 4, !tbaa !5
  %2970 = call ptr @__errno_location() #12
  store i32 %2969, ptr %2970, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef @.str.4)
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef @.str.4)
  %2979 = call ptr @__errno_location() #12
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @strerror(i32 noundef %2980) #11
  %2982 = call ptr @__errno_location() #12
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef @.str.2, i32 noundef %2972, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2975, ptr noundef %2978, ptr noundef %2981, i32 noundef %2983) #11
  br label %3002

2985:                                             ; preds = %2963, %2956
  %2986 = load i32, ptr %66, align 4, !tbaa !5
  %2987 = call ptr @__errno_location() #12
  store i32 %2986, ptr %2987, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror_debug(i32 noundef %2994, ptr noundef @.str.4)
  %2996 = call ptr @__errno_location() #12
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #11
  %2999 = call ptr @__errno_location() #12
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2988, ptr noundef @.str.5, i32 noundef %2989, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2992, ptr noundef %2995, ptr noundef %2998, i32 noundef %3000) #11
  br label %3002

3002:                                             ; preds = %2985, %2968
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003
  call void @exit(i32 noundef 1) #13
  unreachable

3005:                                             ; No predecessors!
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006, %2949
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

3010:                                             ; preds = %3009
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = add nsw i32 %3011, 1
  store i32 %3012, ptr @test_count, align 4, !tbaa !5
  %3013 = load ptr, ptr %55, align 8, !tbaa !9
  %3014 = call i32 @s2n_connection_free(ptr noundef %3013)
  %3015 = icmp eq i32 %3014, -1
  br i1 %3015, label %3016, label %3069

3016:                                             ; preds = %3010
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

3018:                                             ; preds = %3017
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3019 = call ptr @__errno_location() #12
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  store i32 %3020, ptr %67, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @s2n_print_stacktrace(ptr noundef %3021)
  %3023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3024 = trunc i8 %3023 to i1
  br i1 %3024, label %3025, label %3047

3025:                                             ; preds = %3018
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @fileno(ptr noundef %3026) #11
  %3028 = call i32 @isatty(i32 noundef %3027) #11
  %3029 = icmp ne i32 %3028, 0
  br i1 %3029, label %3030, label %3047

3030:                                             ; preds = %3025
  %3031 = load i32, ptr %67, align 4, !tbaa !5
  %3032 = call ptr @__errno_location() #12
  store i32 %3031, ptr %3032, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror(i32 noundef %3036, ptr noundef @.str.4)
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror_debug(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call ptr @__errno_location() #12
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @strerror(i32 noundef %3042) #11
  %3044 = call ptr @__errno_location() #12
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef @.str.2, i32 noundef %3034, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3037, ptr noundef %3040, ptr noundef %3043, i32 noundef %3045) #11
  br label %3064

3047:                                             ; preds = %3025, %3018
  %3048 = load i32, ptr %67, align 4, !tbaa !5
  %3049 = call ptr @__errno_location() #12
  store i32 %3048, ptr %3049, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef @.str.4)
  %3055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef @.str.4)
  %3058 = call ptr @__errno_location() #12
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #11
  %3061 = call ptr @__errno_location() #12
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3050, ptr noundef @.str.5, i32 noundef %3051, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3054, ptr noundef %3057, ptr noundef %3060, i32 noundef %3062) #11
  br label %3064

3064:                                             ; preds = %3047, %3030
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065
  call void @exit(i32 noundef 1) #13
  unreachable

3067:                                             ; No predecessors!
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068, %3010
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = add nsw i32 %3073, 1
  store i32 %3074, ptr @test_count, align 4, !tbaa !5
  %3075 = load ptr, ptr %54, align 8, !tbaa !9
  %3076 = call i32 @s2n_connection_free(ptr noundef %3075)
  %3077 = icmp eq i32 %3076, -1
  br i1 %3077, label %3078, label %3131

3078:                                             ; preds = %3072
  br label %3079

3079:                                             ; preds = %3078
  br label %3080

3080:                                             ; preds = %3079
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3081 = call ptr @__errno_location() #12
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  store i32 %3082, ptr %68, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @s2n_print_stacktrace(ptr noundef %3083)
  %3085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3086 = trunc i8 %3085 to i1
  br i1 %3086, label %3087, label %3109

3087:                                             ; preds = %3080
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @fileno(ptr noundef %3088) #11
  %3090 = call i32 @isatty(i32 noundef %3089) #11
  %3091 = icmp ne i32 %3090, 0
  br i1 %3091, label %3092, label %3109

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

3109:                                             ; preds = %3087, %3080
  %3110 = load i32, ptr %68, align 4, !tbaa !5
  %3111 = call ptr @__errno_location() #12
  store i32 %3110, ptr %3111, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @s2n_strerror(i32 noundef %3115, ptr noundef @.str.4)
  %3117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror_debug(i32 noundef %3118, ptr noundef @.str.4)
  %3120 = call ptr @__errno_location() #12
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @strerror(i32 noundef %3121) #11
  %3123 = call ptr @__errno_location() #12
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3112, ptr noundef @.str.5, i32 noundef %3113, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3116, ptr noundef %3119, ptr noundef %3122, i32 noundef %3124) #11
  br label %3126

3126:                                             ; preds = %3109, %3092
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  call void @exit(i32 noundef 1) #13
  unreachable

3129:                                             ; No predecessors!
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

3131:                                             ; preds = %3130, %3072
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  store ptr null, ptr %69, align 8, !tbaa !9
  br label %3134

3134:                                             ; preds = %3133
  %3135 = load i32, ptr @test_count, align 4, !tbaa !5
  %3136 = add nsw i32 %3135, 1
  store i32 %3136, ptr @test_count, align 4, !tbaa !5
  %3137 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3137, ptr %69, align 8, !tbaa !9
  %3138 = icmp eq ptr %3137, null
  br i1 %3138, label %3139, label %3192

3139:                                             ; preds = %3134
  br label %3140

3140:                                             ; preds = %3139
  br label %3141

3141:                                             ; preds = %3140
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3142 = call ptr @__errno_location() #12
  %3143 = load i32, ptr %3142, align 4, !tbaa !5
  store i32 %3143, ptr %70, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @s2n_print_stacktrace(ptr noundef %3144)
  %3146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3147 = trunc i8 %3146 to i1
  br i1 %3147, label %3148, label %3170

3148:                                             ; preds = %3141
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = call i32 @fileno(ptr noundef %3149) #11
  %3151 = call i32 @isatty(i32 noundef %3150) #11
  %3152 = icmp ne i32 %3151, 0
  br i1 %3152, label %3153, label %3170

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

3170:                                             ; preds = %3148, %3141
  %3171 = load i32, ptr %70, align 4, !tbaa !5
  %3172 = call ptr @__errno_location() #12
  store i32 %3171, ptr %3172, align 4, !tbaa !5
  %3173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3176 = load i32, ptr %3175, align 4, !tbaa !5
  %3177 = call ptr @s2n_strerror(i32 noundef %3176, ptr noundef @.str.4)
  %3178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef @.str.4)
  %3181 = call ptr @__errno_location() #12
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @strerror(i32 noundef %3182) #11
  %3184 = call ptr @__errno_location() #12
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3173, ptr noundef @.str.5, i32 noundef %3174, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3177, ptr noundef %3180, ptr noundef %3183, i32 noundef %3185) #11
  br label %3187

3187:                                             ; preds = %3170, %3153
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3188

3188:                                             ; preds = %3187
  br label %3189

3189:                                             ; preds = %3188
  call void @exit(i32 noundef 1) #13
  unreachable

3190:                                             ; No predecessors!
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

3192:                                             ; preds = %3191, %3134
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  call void @llvm.lifetime.start.p0(i64 40, ptr %71) #11
  call void @llvm.memset.p0.i64(ptr align 8 %71, i8 0, i64 40, i1 false)
  br label %3195

3195:                                             ; preds = %3194
  %3196 = load i32, ptr @test_count, align 4, !tbaa !5
  %3197 = add nsw i32 %3196, 1
  store i32 %3197, ptr @test_count, align 4, !tbaa !5
  %3198 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %71, i32 noundef 0)
  %3199 = icmp eq i32 %3198, -1
  br i1 %3199, label %3200, label %3253

3200:                                             ; preds = %3195
  br label %3201

3201:                                             ; preds = %3200
  br label %3202

3202:                                             ; preds = %3201
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %3203 = call ptr @__errno_location() #12
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  store i32 %3204, ptr %72, align 4, !tbaa !5
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = call i32 @s2n_print_stacktrace(ptr noundef %3205)
  %3207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3208 = trunc i8 %3207 to i1
  br i1 %3208, label %3209, label %3231

3209:                                             ; preds = %3202
  %3210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3211 = call i32 @fileno(ptr noundef %3210) #11
  %3212 = call i32 @isatty(i32 noundef %3211) #11
  %3213 = icmp ne i32 %3212, 0
  br i1 %3213, label %3214, label %3231

3214:                                             ; preds = %3209
  %3215 = load i32, ptr %72, align 4, !tbaa !5
  %3216 = call ptr @__errno_location() #12
  store i32 %3215, ptr %3216, align 4, !tbaa !5
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = load i32, ptr @test_count, align 4, !tbaa !5
  %3219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call ptr @s2n_strerror(i32 noundef %3220, ptr noundef @.str.4)
  %3222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3223 = load i32, ptr %3222, align 4, !tbaa !5
  %3224 = call ptr @s2n_strerror_debug(i32 noundef %3223, ptr noundef @.str.4)
  %3225 = call ptr @__errno_location() #12
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call ptr @strerror(i32 noundef %3226) #11
  %3228 = call ptr @__errno_location() #12
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3217, ptr noundef @.str.2, i32 noundef %3218, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3221, ptr noundef %3224, ptr noundef %3227, i32 noundef %3229) #11
  br label %3248

3231:                                             ; preds = %3209, %3202
  %3232 = load i32, ptr %72, align 4, !tbaa !5
  %3233 = call ptr @__errno_location() #12
  store i32 %3232, ptr %3233, align 4, !tbaa !5
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = load i32, ptr @test_count, align 4, !tbaa !5
  %3236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3237 = load i32, ptr %3236, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror(i32 noundef %3237, ptr noundef @.str.4)
  %3239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3240 = load i32, ptr %3239, align 4, !tbaa !5
  %3241 = call ptr @s2n_strerror_debug(i32 noundef %3240, ptr noundef @.str.4)
  %3242 = call ptr @__errno_location() #12
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call ptr @strerror(i32 noundef %3243) #11
  %3245 = call ptr @__errno_location() #12
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3234, ptr noundef @.str.5, i32 noundef %3235, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3238, ptr noundef %3241, ptr noundef %3244, i32 noundef %3246) #11
  br label %3248

3248:                                             ; preds = %3231, %3214
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3249

3249:                                             ; preds = %3248
  br label %3250

3250:                                             ; preds = %3249
  call void @exit(i32 noundef 1) #13
  unreachable

3251:                                             ; No predecessors!
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

3253:                                             ; preds = %3252, %3195
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255
  %3257 = load i32, ptr @test_count, align 4, !tbaa !5
  %3258 = add nsw i32 %3257, 1
  store i32 %3258, ptr @test_count, align 4, !tbaa !5
  %3259 = call i32 @s2n_stuffer_write_uint8(ptr noundef %71, i8 noundef zeroext 5)
  %3260 = icmp eq i32 %3259, -1
  br i1 %3260, label %3261, label %3314

3261:                                             ; preds = %3256
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

3263:                                             ; preds = %3262
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %3264 = call ptr @__errno_location() #12
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  store i32 %3265, ptr %73, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = call i32 @s2n_print_stacktrace(ptr noundef %3266)
  %3268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3269 = trunc i8 %3268 to i1
  br i1 %3269, label %3270, label %3292

3270:                                             ; preds = %3263
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = call i32 @fileno(ptr noundef %3271) #11
  %3273 = call i32 @isatty(i32 noundef %3272) #11
  %3274 = icmp ne i32 %3273, 0
  br i1 %3274, label %3275, label %3292

3275:                                             ; preds = %3270
  %3276 = load i32, ptr %73, align 4, !tbaa !5
  %3277 = call ptr @__errno_location() #12
  store i32 %3276, ptr %3277, align 4, !tbaa !5
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = load i32, ptr @test_count, align 4, !tbaa !5
  %3280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call ptr @s2n_strerror(i32 noundef %3281, ptr noundef @.str.4)
  %3283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3284 = load i32, ptr %3283, align 4, !tbaa !5
  %3285 = call ptr @s2n_strerror_debug(i32 noundef %3284, ptr noundef @.str.4)
  %3286 = call ptr @__errno_location() #12
  %3287 = load i32, ptr %3286, align 4, !tbaa !5
  %3288 = call ptr @strerror(i32 noundef %3287) #11
  %3289 = call ptr @__errno_location() #12
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3278, ptr noundef @.str.2, i32 noundef %3279, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3282, ptr noundef %3285, ptr noundef %3288, i32 noundef %3290) #11
  br label %3309

3292:                                             ; preds = %3270, %3263
  %3293 = load i32, ptr %73, align 4, !tbaa !5
  %3294 = call ptr @__errno_location() #12
  store i32 %3293, ptr %3294, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %3297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror(i32 noundef %3298, ptr noundef @.str.4)
  %3300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3301 = load i32, ptr %3300, align 4, !tbaa !5
  %3302 = call ptr @s2n_strerror_debug(i32 noundef %3301, ptr noundef @.str.4)
  %3303 = call ptr @__errno_location() #12
  %3304 = load i32, ptr %3303, align 4, !tbaa !5
  %3305 = call ptr @strerror(i32 noundef %3304) #11
  %3306 = call ptr @__errno_location() #12
  %3307 = load i32, ptr %3306, align 4, !tbaa !5
  %3308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3295, ptr noundef @.str.5, i32 noundef %3296, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3299, ptr noundef %3302, ptr noundef %3305, i32 noundef %3307) #11
  br label %3309

3309:                                             ; preds = %3292, %3275
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3310

3310:                                             ; preds = %3309
  br label %3311

3311:                                             ; preds = %3310
  call void @exit(i32 noundef 1) #13
  unreachable

3312:                                             ; No predecessors!
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

3314:                                             ; preds = %3313, %3256
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = add nsw i32 %3320, 1
  store i32 %3321, ptr @test_count, align 4, !tbaa !5
  %3322 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %3323 = load ptr, ptr %69, align 8, !tbaa !9
  %3324 = call i32 %3322(ptr noundef %3323, ptr noundef %71)
  %3325 = icmp eq i32 %3324, -1
  br i1 %3325, label %3379, label %3326

3326:                                             ; preds = %3319
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

3328:                                             ; preds = %3327
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %3329 = call ptr @__errno_location() #12
  %3330 = load i32, ptr %3329, align 4, !tbaa !5
  store i32 %3330, ptr %74, align 4, !tbaa !5
  %3331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3332 = call i32 @s2n_print_stacktrace(ptr noundef %3331)
  %3333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3334 = trunc i8 %3333 to i1
  br i1 %3334, label %3335, label %3357

3335:                                             ; preds = %3328
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = call i32 @fileno(ptr noundef %3336) #11
  %3338 = call i32 @isatty(i32 noundef %3337) #11
  %3339 = icmp ne i32 %3338, 0
  br i1 %3339, label %3340, label %3357

3340:                                             ; preds = %3335
  %3341 = load i32, ptr %74, align 4, !tbaa !5
  %3342 = call ptr @__errno_location() #12
  store i32 %3341, ptr %3342, align 4, !tbaa !5
  %3343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3344 = load i32, ptr @test_count, align 4, !tbaa !5
  %3345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @s2n_strerror(i32 noundef %3346, ptr noundef @.str.4)
  %3348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror_debug(i32 noundef %3349, ptr noundef @.str.4)
  %3351 = call ptr @__errno_location() #12
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @strerror(i32 noundef %3352) #11
  %3354 = call ptr @__errno_location() #12
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3343, ptr noundef @.str.2, i32 noundef %3344, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3347, ptr noundef %3350, ptr noundef %3353, i32 noundef %3355) #11
  br label %3374

3357:                                             ; preds = %3335, %3328
  %3358 = load i32, ptr %74, align 4, !tbaa !5
  %3359 = call ptr @__errno_location() #12
  store i32 %3358, ptr %3359, align 4, !tbaa !5
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = load i32, ptr @test_count, align 4, !tbaa !5
  %3362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror(i32 noundef %3363, ptr noundef @.str.4)
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror_debug(i32 noundef %3366, ptr noundef @.str.4)
  %3368 = call ptr @__errno_location() #12
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @strerror(i32 noundef %3369) #11
  %3371 = call ptr @__errno_location() #12
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3360, ptr noundef @.str.5, i32 noundef %3361, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3364, ptr noundef %3367, ptr noundef %3370, i32 noundef %3372) #11
  br label %3374

3374:                                             ; preds = %3357, %3340
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3375

3375:                                             ; preds = %3374
  br label %3376

3376:                                             ; preds = %3375
  call void @exit(i32 noundef 1) #13
  unreachable

3377:                                             ; No predecessors!
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

3379:                                             ; preds = %3378, %3319
  br label %3380

3380:                                             ; preds = %3379
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = add nsw i32 %3383, 1
  store i32 %3384, ptr @test_count, align 4, !tbaa !5
  %3385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = icmp eq i32 %3386, 335544364
  br i1 %3387, label %3441, label %3388

3388:                                             ; preds = %3382
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

3390:                                             ; preds = %3389
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %3391 = call ptr @__errno_location() #12
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  store i32 %3392, ptr %75, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = call i32 @s2n_print_stacktrace(ptr noundef %3393)
  %3395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3396 = trunc i8 %3395 to i1
  br i1 %3396, label %3397, label %3419

3397:                                             ; preds = %3390
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3399 = call i32 @fileno(ptr noundef %3398) #11
  %3400 = call i32 @isatty(i32 noundef %3399) #11
  %3401 = icmp ne i32 %3400, 0
  br i1 %3401, label %3402, label %3419

3402:                                             ; preds = %3397
  %3403 = load i32, ptr %75, align 4, !tbaa !5
  %3404 = call ptr @__errno_location() #12
  store i32 %3403, ptr %3404, align 4, !tbaa !5
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = load i32, ptr @test_count, align 4, !tbaa !5
  %3407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @s2n_strerror(i32 noundef %3408, ptr noundef @.str.4)
  %3410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call ptr @s2n_strerror_debug(i32 noundef %3411, ptr noundef @.str.4)
  %3413 = call ptr @__errno_location() #12
  %3414 = load i32, ptr %3413, align 4, !tbaa !5
  %3415 = call ptr @strerror(i32 noundef %3414) #11
  %3416 = call ptr @__errno_location() #12
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3405, ptr noundef @.str.2, i32 noundef %3406, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3409, ptr noundef %3412, ptr noundef %3415, i32 noundef %3417) #11
  br label %3436

3419:                                             ; preds = %3397, %3390
  %3420 = load i32, ptr %75, align 4, !tbaa !5
  %3421 = call ptr @__errno_location() #12
  store i32 %3420, ptr %3421, align 4, !tbaa !5
  %3422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3423 = load i32, ptr @test_count, align 4, !tbaa !5
  %3424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call ptr @s2n_strerror(i32 noundef %3425, ptr noundef @.str.4)
  %3427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call ptr @s2n_strerror_debug(i32 noundef %3428, ptr noundef @.str.4)
  %3430 = call ptr @__errno_location() #12
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  %3432 = call ptr @strerror(i32 noundef %3431) #11
  %3433 = call ptr @__errno_location() #12
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3422, ptr noundef @.str.5, i32 noundef %3423, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3426, ptr noundef %3429, ptr noundef %3432, i32 noundef %3434) #11
  br label %3436

3436:                                             ; preds = %3419, %3402
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3437

3437:                                             ; preds = %3436
  br label %3438

3438:                                             ; preds = %3437
  call void @exit(i32 noundef 1) #13
  unreachable

3439:                                             ; No predecessors!
  br label %3440

3440:                                             ; preds = %3439
  br label %3441

3441:                                             ; preds = %3440, %3382
  br label %3442

3442:                                             ; preds = %3441
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

3444:                                             ; preds = %3443
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = add nsw i32 %3445, 1
  store i32 %3446, ptr @test_count, align 4, !tbaa !5
  %3447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror_debug(i32 noundef %3448, ptr noundef @.str.4)
  %3450 = icmp eq ptr %3449, null
  br i1 %3450, label %3451, label %3504

3451:                                             ; preds = %3444
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %3454 = call ptr @__errno_location() #12
  %3455 = load i32, ptr %3454, align 4, !tbaa !5
  store i32 %3455, ptr %76, align 4, !tbaa !5
  %3456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3457 = call i32 @s2n_print_stacktrace(ptr noundef %3456)
  %3458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3459 = trunc i8 %3458 to i1
  br i1 %3459, label %3460, label %3482

3460:                                             ; preds = %3453
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = call i32 @fileno(ptr noundef %3461) #11
  %3463 = call i32 @isatty(i32 noundef %3462) #11
  %3464 = icmp ne i32 %3463, 0
  br i1 %3464, label %3465, label %3482

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

3482:                                             ; preds = %3460, %3453
  %3483 = load i32, ptr %76, align 4, !tbaa !5
  %3484 = call ptr @__errno_location() #12
  store i32 %3483, ptr %3484, align 4, !tbaa !5
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3488 = load i32, ptr %3487, align 4, !tbaa !5
  %3489 = call ptr @s2n_strerror(i32 noundef %3488, ptr noundef @.str.4)
  %3490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3491 = load i32, ptr %3490, align 4, !tbaa !5
  %3492 = call ptr @s2n_strerror_debug(i32 noundef %3491, ptr noundef @.str.4)
  %3493 = call ptr @__errno_location() #12
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call ptr @strerror(i32 noundef %3494) #11
  %3496 = call ptr @__errno_location() #12
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3485, ptr noundef @.str.5, i32 noundef %3486, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 203, ptr noundef %3489, ptr noundef %3492, ptr noundef %3495, i32 noundef %3497) #11
  br label %3499

3499:                                             ; preds = %3482, %3465
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3500

3500:                                             ; preds = %3499
  br label %3501

3501:                                             ; preds = %3500
  call void @exit(i32 noundef 1) #13
  unreachable

3502:                                             ; No predecessors!
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503, %3444
  br label %3505

3505:                                             ; preds = %3504
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  %3510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3510, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3511 = call ptr @__errno_location() #12
  store i32 0, ptr %3511, align 4, !tbaa !5
  br label %3512

3512:                                             ; preds = %3509
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

3516:                                             ; preds = %3515
  %3517 = load i32, ptr @test_count, align 4, !tbaa !5
  %3518 = add nsw i32 %3517, 1
  store i32 %3518, ptr @test_count, align 4, !tbaa !5
  %3519 = load ptr, ptr %69, align 8, !tbaa !9
  %3520 = load i32, ptr %3519, align 8
  %3521 = lshr i32 %3520, 3
  %3522 = and i32 %3521, 1
  %3523 = icmp eq i32 %3522, 0
  br i1 %3523, label %3577, label %3524

3524:                                             ; preds = %3516
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

3526:                                             ; preds = %3525
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3527 = call ptr @__errno_location() #12
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  store i32 %3528, ptr %77, align 4, !tbaa !5
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = call i32 @s2n_print_stacktrace(ptr noundef %3529)
  %3531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3532 = trunc i8 %3531 to i1
  br i1 %3532, label %3533, label %3555

3533:                                             ; preds = %3526
  %3534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3535 = call i32 @fileno(ptr noundef %3534) #11
  %3536 = call i32 @isatty(i32 noundef %3535) #11
  %3537 = icmp ne i32 %3536, 0
  br i1 %3537, label %3538, label %3555

3538:                                             ; preds = %3533
  %3539 = load i32, ptr %77, align 4, !tbaa !5
  %3540 = call ptr @__errno_location() #12
  store i32 %3539, ptr %3540, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @s2n_strerror(i32 noundef %3544, ptr noundef @.str.4)
  %3546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call ptr @s2n_strerror_debug(i32 noundef %3547, ptr noundef @.str.4)
  %3549 = call ptr @__errno_location() #12
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call ptr @strerror(i32 noundef %3550) #11
  %3552 = call ptr @__errno_location() #12
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3541, ptr noundef @.str.2, i32 noundef %3542, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 204, ptr noundef %3545, ptr noundef %3548, ptr noundef %3551, i32 noundef %3553) #11
  br label %3572

3555:                                             ; preds = %3533, %3526
  %3556 = load i32, ptr %77, align 4, !tbaa !5
  %3557 = call ptr @__errno_location() #12
  store i32 %3556, ptr %3557, align 4, !tbaa !5
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3561, ptr noundef @.str.4)
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror_debug(i32 noundef %3564, ptr noundef @.str.4)
  %3566 = call ptr @__errno_location() #12
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @strerror(i32 noundef %3567) #11
  %3569 = call ptr @__errno_location() #12
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3558, ptr noundef @.str.5, i32 noundef %3559, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 204, ptr noundef %3562, ptr noundef %3565, ptr noundef %3568, i32 noundef %3570) #11
  br label %3572

3572:                                             ; preds = %3555, %3538
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

3574:                                             ; preds = %3573
  call void @exit(i32 noundef 1) #13
  unreachable

3575:                                             ; No predecessors!
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

3577:                                             ; preds = %3576, %3516
  br label %3578

3578:                                             ; preds = %3577
  br label %3579

3579:                                             ; preds = %3578
  br label %3580

3580:                                             ; preds = %3579
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = add nsw i32 %3581, 1
  store i32 %3582, ptr @test_count, align 4, !tbaa !5
  %3583 = call i32 @s2n_stuffer_free(ptr noundef %71)
  %3584 = icmp eq i32 %3583, -1
  br i1 %3584, label %3585, label %3638

3585:                                             ; preds = %3580
  br label %3586

3586:                                             ; preds = %3585
  br label %3587

3587:                                             ; preds = %3586
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3588 = call ptr @__errno_location() #12
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  store i32 %3589, ptr %78, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = call i32 @s2n_print_stacktrace(ptr noundef %3590)
  %3592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3593 = trunc i8 %3592 to i1
  br i1 %3593, label %3594, label %3616

3594:                                             ; preds = %3587
  %3595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3596 = call i32 @fileno(ptr noundef %3595) #11
  %3597 = call i32 @isatty(i32 noundef %3596) #11
  %3598 = icmp ne i32 %3597, 0
  br i1 %3598, label %3599, label %3616

3599:                                             ; preds = %3594
  %3600 = load i32, ptr %78, align 4, !tbaa !5
  %3601 = call ptr @__errno_location() #12
  store i32 %3600, ptr %3601, align 4, !tbaa !5
  %3602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3603 = load i32, ptr @test_count, align 4, !tbaa !5
  %3604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  %3606 = call ptr @s2n_strerror(i32 noundef %3605, ptr noundef @.str.4)
  %3607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror_debug(i32 noundef %3608, ptr noundef @.str.4)
  %3610 = call ptr @__errno_location() #12
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = call ptr @strerror(i32 noundef %3611) #11
  %3613 = call ptr @__errno_location() #12
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3602, ptr noundef @.str.2, i32 noundef %3603, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 206, ptr noundef %3606, ptr noundef %3609, ptr noundef %3612, i32 noundef %3614) #11
  br label %3633

3616:                                             ; preds = %3594, %3587
  %3617 = load i32, ptr %78, align 4, !tbaa !5
  %3618 = call ptr @__errno_location() #12
  store i32 %3617, ptr %3618, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3622, ptr noundef @.str.4)
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror_debug(i32 noundef %3625, ptr noundef @.str.4)
  %3627 = call ptr @__errno_location() #12
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @strerror(i32 noundef %3628) #11
  %3630 = call ptr @__errno_location() #12
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef @.str.5, i32 noundef %3620, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 206, ptr noundef %3623, ptr noundef %3626, ptr noundef %3629, i32 noundef %3631) #11
  br label %3633

3633:                                             ; preds = %3616, %3599
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3634

3634:                                             ; preds = %3633
  br label %3635

3635:                                             ; preds = %3634
  call void @exit(i32 noundef 1) #13
  unreachable

3636:                                             ; No predecessors!
  br label %3637

3637:                                             ; preds = %3636
  br label %3638

3638:                                             ; preds = %3637, %3580
  br label %3639

3639:                                             ; preds = %3638
  br label %3640

3640:                                             ; preds = %3639
  br label %3641

3641:                                             ; preds = %3640
  %3642 = load i32, ptr @test_count, align 4, !tbaa !5
  %3643 = add nsw i32 %3642, 1
  store i32 %3643, ptr @test_count, align 4, !tbaa !5
  %3644 = load ptr, ptr %69, align 8, !tbaa !9
  %3645 = call i32 @s2n_connection_free(ptr noundef %3644)
  %3646 = icmp eq i32 %3645, -1
  br i1 %3646, label %3647, label %3700

3647:                                             ; preds = %3641
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

3649:                                             ; preds = %3648
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3650 = call ptr @__errno_location() #12
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  store i32 %3651, ptr %79, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = call i32 @s2n_print_stacktrace(ptr noundef %3652)
  %3654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3655 = trunc i8 %3654 to i1
  br i1 %3655, label %3656, label %3678

3656:                                             ; preds = %3649
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = call i32 @fileno(ptr noundef %3657) #11
  %3659 = call i32 @isatty(i32 noundef %3658) #11
  %3660 = icmp ne i32 %3659, 0
  br i1 %3660, label %3661, label %3678

3661:                                             ; preds = %3656
  %3662 = load i32, ptr %79, align 4, !tbaa !5
  %3663 = call ptr @__errno_location() #12
  store i32 %3662, ptr %3663, align 4, !tbaa !5
  %3664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %3666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call ptr @s2n_strerror(i32 noundef %3667, ptr noundef @.str.4)
  %3669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror_debug(i32 noundef %3670, ptr noundef @.str.4)
  %3672 = call ptr @__errno_location() #12
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call ptr @strerror(i32 noundef %3673) #11
  %3675 = call ptr @__errno_location() #12
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3664, ptr noundef @.str.2, i32 noundef %3665, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 207, ptr noundef %3668, ptr noundef %3671, ptr noundef %3674, i32 noundef %3676) #11
  br label %3695

3678:                                             ; preds = %3656, %3649
  %3679 = load i32, ptr %79, align 4, !tbaa !5
  %3680 = call ptr @__errno_location() #12
  store i32 %3679, ptr %3680, align 4, !tbaa !5
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = load i32, ptr @test_count, align 4, !tbaa !5
  %3683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  %3685 = call ptr @s2n_strerror(i32 noundef %3684, ptr noundef @.str.4)
  %3686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror_debug(i32 noundef %3687, ptr noundef @.str.4)
  %3689 = call ptr @__errno_location() #12
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @strerror(i32 noundef %3690) #11
  %3692 = call ptr @__errno_location() #12
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3681, ptr noundef @.str.5, i32 noundef %3682, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 207, ptr noundef %3685, ptr noundef %3688, ptr noundef %3691, i32 noundef %3693) #11
  br label %3695

3695:                                             ; preds = %3678, %3661
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3696

3696:                                             ; preds = %3695
  br label %3697

3697:                                             ; preds = %3696
  call void @exit(i32 noundef 1) #13
  unreachable

3698:                                             ; No predecessors!
  br label %3699

3699:                                             ; preds = %3698
  br label %3700

3700:                                             ; preds = %3699, %3641
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

3702:                                             ; preds = %3701
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #11
  %3703 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3703, ptr %80, align 8, !tbaa !9
  br label %3704

3704:                                             ; preds = %3702
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = add nsw i32 %3705, 1
  store i32 %3706, ptr @test_count, align 4, !tbaa !5
  %3707 = load ptr, ptr %80, align 8, !tbaa !9
  %3708 = icmp eq ptr %3707, null
  br i1 %3708, label %3709, label %3762

3709:                                             ; preds = %3704
  br label %3710

3710:                                             ; preds = %3709
  br label %3711

3711:                                             ; preds = %3710
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  store i32 %3713, ptr %81, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @s2n_print_stacktrace(ptr noundef %3714)
  %3716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3717 = trunc i8 %3716 to i1
  br i1 %3717, label %3718, label %3740

3718:                                             ; preds = %3711
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @fileno(ptr noundef %3719) #11
  %3721 = call i32 @isatty(i32 noundef %3720) #11
  %3722 = icmp ne i32 %3721, 0
  br i1 %3722, label %3723, label %3740

3723:                                             ; preds = %3718
  %3724 = load i32, ptr %81, align 4, !tbaa !5
  %3725 = call ptr @__errno_location() #12
  store i32 %3724, ptr %3725, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = load i32, ptr @test_count, align 4, !tbaa !5
  %3728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call ptr @s2n_strerror(i32 noundef %3729, ptr noundef @.str.4)
  %3731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3732 = load i32, ptr %3731, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror_debug(i32 noundef %3732, ptr noundef @.str.4)
  %3734 = call ptr @__errno_location() #12
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  %3736 = call ptr @strerror(i32 noundef %3735) #11
  %3737 = call ptr @__errno_location() #12
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3726, ptr noundef @.str.2, i32 noundef %3727, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 220, ptr noundef %3730, ptr noundef %3733, ptr noundef %3736, i32 noundef %3738) #11
  br label %3757

3740:                                             ; preds = %3718, %3711
  %3741 = load i32, ptr %81, align 4, !tbaa !5
  %3742 = call ptr @__errno_location() #12
  store i32 %3741, ptr %3742, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = load i32, ptr @test_count, align 4, !tbaa !5
  %3745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3746 = load i32, ptr %3745, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror(i32 noundef %3746, ptr noundef @.str.4)
  %3748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3749 = load i32, ptr %3748, align 4, !tbaa !5
  %3750 = call ptr @s2n_strerror_debug(i32 noundef %3749, ptr noundef @.str.4)
  %3751 = call ptr @__errno_location() #12
  %3752 = load i32, ptr %3751, align 4, !tbaa !5
  %3753 = call ptr @strerror(i32 noundef %3752) #11
  %3754 = call ptr @__errno_location() #12
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3743, ptr noundef @.str.5, i32 noundef %3744, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 220, ptr noundef %3747, ptr noundef %3750, ptr noundef %3753, i32 noundef %3755) #11
  br label %3757

3757:                                             ; preds = %3740, %3723
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  call void @exit(i32 noundef 1) #13
  unreachable

3760:                                             ; No predecessors!
  br label %3761

3761:                                             ; preds = %3760
  br label %3762

3762:                                             ; preds = %3761, %3704
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

3764:                                             ; preds = %3763
  br label %3765

3765:                                             ; preds = %3764
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = add nsw i32 %3766, 1
  store i32 %3767, ptr @test_count, align 4, !tbaa !5
  %3768 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 6), align 8, !tbaa !50
  %3769 = load ptr, ptr %80, align 8, !tbaa !9
  %3770 = call i32 %3768(ptr noundef %3769)
  %3771 = icmp eq i32 %3770, -1
  br i1 %3771, label %3772, label %3825

3772:                                             ; preds = %3765
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %3775 = call ptr @__errno_location() #12
  %3776 = load i32, ptr %3775, align 4, !tbaa !5
  store i32 %3776, ptr %82, align 4, !tbaa !5
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = call i32 @s2n_print_stacktrace(ptr noundef %3777)
  %3779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3780 = trunc i8 %3779 to i1
  br i1 %3780, label %3781, label %3803

3781:                                             ; preds = %3774
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = call i32 @fileno(ptr noundef %3782) #11
  %3784 = call i32 @isatty(i32 noundef %3783) #11
  %3785 = icmp ne i32 %3784, 0
  br i1 %3785, label %3786, label %3803

3786:                                             ; preds = %3781
  %3787 = load i32, ptr %82, align 4, !tbaa !5
  %3788 = call ptr @__errno_location() #12
  store i32 %3787, ptr %3788, align 4, !tbaa !5
  %3789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3790 = load i32, ptr @test_count, align 4, !tbaa !5
  %3791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call ptr @s2n_strerror(i32 noundef %3792, ptr noundef @.str.4)
  %3794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call ptr @s2n_strerror_debug(i32 noundef %3795, ptr noundef @.str.4)
  %3797 = call ptr @__errno_location() #12
  %3798 = load i32, ptr %3797, align 4, !tbaa !5
  %3799 = call ptr @strerror(i32 noundef %3798) #11
  %3800 = call ptr @__errno_location() #12
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  %3802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3789, ptr noundef @.str.2, i32 noundef %3790, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3793, ptr noundef %3796, ptr noundef %3799, i32 noundef %3801) #11
  br label %3820

3803:                                             ; preds = %3781, %3774
  %3804 = load i32, ptr %82, align 4, !tbaa !5
  %3805 = call ptr @__errno_location() #12
  store i32 %3804, ptr %3805, align 4, !tbaa !5
  %3806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3807 = load i32, ptr @test_count, align 4, !tbaa !5
  %3808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call ptr @s2n_strerror(i32 noundef %3809, ptr noundef @.str.4)
  %3811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call ptr @s2n_strerror_debug(i32 noundef %3812, ptr noundef @.str.4)
  %3814 = call ptr @__errno_location() #12
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = call ptr @strerror(i32 noundef %3815) #11
  %3817 = call ptr @__errno_location() #12
  %3818 = load i32, ptr %3817, align 4, !tbaa !5
  %3819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3806, ptr noundef @.str.5, i32 noundef %3807, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 221, ptr noundef %3810, ptr noundef %3813, ptr noundef %3816, i32 noundef %3818) #11
  br label %3820

3820:                                             ; preds = %3803, %3786
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3821

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821
  call void @exit(i32 noundef 1) #13
  unreachable

3823:                                             ; No predecessors!
  br label %3824

3824:                                             ; preds = %3823
  br label %3825

3825:                                             ; preds = %3824, %3765
  br label %3826

3826:                                             ; preds = %3825
  br label %3827

3827:                                             ; preds = %3826
  br label %3828

3828:                                             ; preds = %3827
  %3829 = load i32, ptr @test_count, align 4, !tbaa !5
  %3830 = add nsw i32 %3829, 1
  store i32 %3830, ptr @test_count, align 4, !tbaa !5
  %3831 = load ptr, ptr %80, align 8, !tbaa !9
  %3832 = load i32, ptr %3831, align 8
  %3833 = lshr i32 %3832, 3
  %3834 = and i32 %3833, 1
  %3835 = icmp ne i32 %3834, 0
  br i1 %3835, label %3836, label %3889

3836:                                             ; preds = %3828
  br label %3837

3837:                                             ; preds = %3836
  br label %3838

3838:                                             ; preds = %3837
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3839 = call ptr @__errno_location() #12
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  store i32 %3840, ptr %83, align 4, !tbaa !5
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = call i32 @s2n_print_stacktrace(ptr noundef %3841)
  %3843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3844 = trunc i8 %3843 to i1
  br i1 %3844, label %3845, label %3867

3845:                                             ; preds = %3838
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = call i32 @fileno(ptr noundef %3846) #11
  %3848 = call i32 @isatty(i32 noundef %3847) #11
  %3849 = icmp ne i32 %3848, 0
  br i1 %3849, label %3850, label %3867

3850:                                             ; preds = %3845
  %3851 = load i32, ptr %83, align 4, !tbaa !5
  %3852 = call ptr @__errno_location() #12
  store i32 %3851, ptr %3852, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  %3857 = call ptr @s2n_strerror(i32 noundef %3856, ptr noundef @.str.4)
  %3858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3859 = load i32, ptr %3858, align 4, !tbaa !5
  %3860 = call ptr @s2n_strerror_debug(i32 noundef %3859, ptr noundef @.str.4)
  %3861 = call ptr @__errno_location() #12
  %3862 = load i32, ptr %3861, align 4, !tbaa !5
  %3863 = call ptr @strerror(i32 noundef %3862) #11
  %3864 = call ptr @__errno_location() #12
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3853, ptr noundef @.str.2, i32 noundef %3854, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3857, ptr noundef %3860, ptr noundef %3863, i32 noundef %3865) #11
  br label %3884

3867:                                             ; preds = %3845, %3838
  %3868 = load i32, ptr %83, align 4, !tbaa !5
  %3869 = call ptr @__errno_location() #12
  store i32 %3868, ptr %3869, align 4, !tbaa !5
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call ptr @s2n_strerror(i32 noundef %3873, ptr noundef @.str.4)
  %3875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call ptr @s2n_strerror_debug(i32 noundef %3876, ptr noundef @.str.4)
  %3878 = call ptr @__errno_location() #12
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call ptr @strerror(i32 noundef %3879) #11
  %3881 = call ptr @__errno_location() #12
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  %3883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3870, ptr noundef @.str.5, i32 noundef %3871, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 222, ptr noundef %3874, ptr noundef %3877, ptr noundef %3880, i32 noundef %3882) #11
  br label %3884

3884:                                             ; preds = %3867, %3850
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  call void @exit(i32 noundef 1) #13
  unreachable

3887:                                             ; No predecessors!
  br label %3888

3888:                                             ; preds = %3887
  br label %3889

3889:                                             ; preds = %3888, %3828
  br label %3890

3890:                                             ; preds = %3889
  br label %3891

3891:                                             ; preds = %3890
  %3892 = call i32 @s2n_connection_ptr_free(ptr noundef %80)
  %3893 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %3892, ptr %3893, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %3894 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3894, ptr %85, align 8, !tbaa !9
  br label %3895

3895:                                             ; preds = %3891
  %3896 = load i32, ptr @test_count, align 4, !tbaa !5
  %3897 = add nsw i32 %3896, 1
  store i32 %3897, ptr @test_count, align 4, !tbaa !5
  %3898 = load ptr, ptr %85, align 8, !tbaa !9
  %3899 = icmp eq ptr %3898, null
  br i1 %3899, label %3900, label %3953

3900:                                             ; preds = %3895
  br label %3901

3901:                                             ; preds = %3900
  br label %3902

3902:                                             ; preds = %3901
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3903 = call ptr @__errno_location() #12
  %3904 = load i32, ptr %3903, align 4, !tbaa !5
  store i32 %3904, ptr %86, align 4, !tbaa !5
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = call i32 @s2n_print_stacktrace(ptr noundef %3905)
  %3907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3908 = trunc i8 %3907 to i1
  br i1 %3908, label %3909, label %3931

3909:                                             ; preds = %3902
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = call i32 @fileno(ptr noundef %3910) #11
  %3912 = call i32 @isatty(i32 noundef %3911) #11
  %3913 = icmp ne i32 %3912, 0
  br i1 %3913, label %3914, label %3931

3914:                                             ; preds = %3909
  %3915 = load i32, ptr %86, align 4, !tbaa !5
  %3916 = call ptr @__errno_location() #12
  store i32 %3915, ptr %3916, align 4, !tbaa !5
  %3917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3918 = load i32, ptr @test_count, align 4, !tbaa !5
  %3919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3920 = load i32, ptr %3919, align 4, !tbaa !5
  %3921 = call ptr @s2n_strerror(i32 noundef %3920, ptr noundef @.str.4)
  %3922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = call ptr @s2n_strerror_debug(i32 noundef %3923, ptr noundef @.str.4)
  %3925 = call ptr @__errno_location() #12
  %3926 = load i32, ptr %3925, align 4, !tbaa !5
  %3927 = call ptr @strerror(i32 noundef %3926) #11
  %3928 = call ptr @__errno_location() #12
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3917, ptr noundef @.str.2, i32 noundef %3918, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3921, ptr noundef %3924, ptr noundef %3927, i32 noundef %3929) #11
  br label %3948

3931:                                             ; preds = %3909, %3902
  %3932 = load i32, ptr %86, align 4, !tbaa !5
  %3933 = call ptr @__errno_location() #12
  store i32 %3932, ptr %3933, align 4, !tbaa !5
  %3934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3935 = load i32, ptr @test_count, align 4, !tbaa !5
  %3936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @s2n_strerror(i32 noundef %3937, ptr noundef @.str.4)
  %3939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call ptr @s2n_strerror_debug(i32 noundef %3940, ptr noundef @.str.4)
  %3942 = call ptr @__errno_location() #12
  %3943 = load i32, ptr %3942, align 4, !tbaa !5
  %3944 = call ptr @strerror(i32 noundef %3943) #11
  %3945 = call ptr @__errno_location() #12
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3934, ptr noundef @.str.5, i32 noundef %3935, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 236, ptr noundef %3938, ptr noundef %3941, ptr noundef %3944, i32 noundef %3946) #11
  br label %3948

3948:                                             ; preds = %3931, %3914
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

3950:                                             ; preds = %3949
  call void @exit(i32 noundef 1) #13
  unreachable

3951:                                             ; No predecessors!
  br label %3952

3952:                                             ; preds = %3951
  br label %3953

3953:                                             ; preds = %3952, %3895
  br label %3954

3954:                                             ; preds = %3953
  br label %3955

3955:                                             ; preds = %3954
  %3956 = load ptr, ptr %85, align 8, !tbaa !9
  %3957 = getelementptr inbounds %struct.s2n_connection, ptr %3956, i32 0, i32 52
  %3958 = getelementptr inbounds %struct.s2n_handshake, ptr %3957, i32 0, i32 11
  %3959 = load i8, ptr %3958, align 8
  %3960 = and i8 %3959, -9
  %3961 = or i8 %3960, 8
  store i8 %3961, ptr %3958, align 8
  br label %3962

3962:                                             ; preds = %3955
  br label %3963

3963:                                             ; preds = %3962
  br label %3964

3964:                                             ; preds = %3963
  %3965 = load i32, ptr @test_count, align 4, !tbaa !5
  %3966 = add nsw i32 %3965, 1
  store i32 %3966, ptr @test_count, align 4, !tbaa !5
  %3967 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 6), align 8, !tbaa !50
  %3968 = load ptr, ptr %85, align 8, !tbaa !9
  %3969 = call i32 %3967(ptr noundef %3968)
  %3970 = icmp eq i32 %3969, -1
  br i1 %3970, label %4024, label %3971

3971:                                             ; preds = %3964
  br label %3972

3972:                                             ; preds = %3971
  br label %3973

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

3980:                                             ; preds = %3973
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = call i32 @fileno(ptr noundef %3981) #11
  %3983 = call i32 @isatty(i32 noundef %3982) #11
  %3984 = icmp ne i32 %3983, 0
  br i1 %3984, label %3985, label %4002

3985:                                             ; preds = %3980
  %3986 = load i32, ptr %87, align 4, !tbaa !5
  %3987 = call ptr @__errno_location() #12
  store i32 %3986, ptr %3987, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = load i32, ptr @test_count, align 4, !tbaa !5
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror(i32 noundef %3991, ptr noundef @.str.4)
  %3993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror_debug(i32 noundef %3994, ptr noundef @.str.4)
  %3996 = call ptr @__errno_location() #12
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call ptr @strerror(i32 noundef %3997) #11
  %3999 = call ptr @__errno_location() #12
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3988, ptr noundef @.str.2, i32 noundef %3989, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 239, ptr noundef %3992, ptr noundef %3995, ptr noundef %3998, i32 noundef %4000) #11
  br label %4019

4002:                                             ; preds = %3980, %3973
  %4003 = load i32, ptr %87, align 4, !tbaa !5
  %4004 = call ptr @__errno_location() #12
  store i32 %4003, ptr %4004, align 4, !tbaa !5
  %4005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4006 = load i32, ptr @test_count, align 4, !tbaa !5
  %4007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4008 = load i32, ptr %4007, align 4, !tbaa !5
  %4009 = call ptr @s2n_strerror(i32 noundef %4008, ptr noundef @.str.4)
  %4010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4011 = load i32, ptr %4010, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef @.str.4)
  %4013 = call ptr @__errno_location() #12
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call ptr @strerror(i32 noundef %4014) #11
  %4016 = call ptr @__errno_location() #12
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4005, ptr noundef @.str.5, i32 noundef %4006, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4009, ptr noundef %4012, ptr noundef %4015, i32 noundef %4017) #11
  br label %4019

4019:                                             ; preds = %4002, %3985
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %4020

4020:                                             ; preds = %4019
  br label %4021

4021:                                             ; preds = %4020
  call void @exit(i32 noundef 1) #13
  unreachable

4022:                                             ; No predecessors!
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

4024:                                             ; preds = %4023, %3964
  br label %4025

4025:                                             ; preds = %4024
  br label %4026

4026:                                             ; preds = %4025
  br label %4027

4027:                                             ; preds = %4026
  %4028 = load i32, ptr @test_count, align 4, !tbaa !5
  %4029 = add nsw i32 %4028, 1
  store i32 %4029, ptr @test_count, align 4, !tbaa !5
  %4030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  %4032 = icmp eq i32 %4031, 335544398
  br i1 %4032, label %4086, label %4033

4033:                                             ; preds = %4027
  br label %4034

4034:                                             ; preds = %4033
  br label %4035

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

4042:                                             ; preds = %4035
  %4043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4044 = call i32 @fileno(ptr noundef %4043) #11
  %4045 = call i32 @isatty(i32 noundef %4044) #11
  %4046 = icmp ne i32 %4045, 0
  br i1 %4046, label %4047, label %4064

4047:                                             ; preds = %4042
  %4048 = load i32, ptr %88, align 4, !tbaa !5
  %4049 = call ptr @__errno_location() #12
  store i32 %4048, ptr %4049, align 4, !tbaa !5
  %4050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror(i32 noundef %4053, ptr noundef @.str.4)
  %4055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @s2n_strerror_debug(i32 noundef %4056, ptr noundef @.str.4)
  %4058 = call ptr @__errno_location() #12
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call ptr @strerror(i32 noundef %4059) #11
  %4061 = call ptr @__errno_location() #12
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4050, ptr noundef @.str.2, i32 noundef %4051, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4054, ptr noundef %4057, ptr noundef %4060, i32 noundef %4062) #11
  br label %4081

4064:                                             ; preds = %4042, %4035
  %4065 = load i32, ptr %88, align 4, !tbaa !5
  %4066 = call ptr @__errno_location() #12
  store i32 %4065, ptr %4066, align 4, !tbaa !5
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = load i32, ptr @test_count, align 4, !tbaa !5
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror(i32 noundef %4070, ptr noundef @.str.4)
  %4072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror_debug(i32 noundef %4073, ptr noundef @.str.4)
  %4075 = call ptr @__errno_location() #12
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call ptr @strerror(i32 noundef %4076) #11
  %4078 = call ptr @__errno_location() #12
  %4079 = load i32, ptr %4078, align 4, !tbaa !5
  %4080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4067, ptr noundef @.str.5, i32 noundef %4068, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4071, ptr noundef %4074, ptr noundef %4077, i32 noundef %4079) #11
  br label %4081

4081:                                             ; preds = %4064, %4047
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

4083:                                             ; preds = %4082
  call void @exit(i32 noundef 1) #13
  unreachable

4084:                                             ; No predecessors!
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

4086:                                             ; preds = %4085, %4027
  br label %4087

4087:                                             ; preds = %4086
  br label %4088

4088:                                             ; preds = %4087
  br label %4089

4089:                                             ; preds = %4088
  %4090 = load i32, ptr @test_count, align 4, !tbaa !5
  %4091 = add nsw i32 %4090, 1
  store i32 %4091, ptr @test_count, align 4, !tbaa !5
  %4092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @s2n_strerror_debug(i32 noundef %4093, ptr noundef @.str.4)
  %4095 = icmp eq ptr %4094, null
  br i1 %4095, label %4096, label %4149

4096:                                             ; preds = %4089
  br label %4097

4097:                                             ; preds = %4096
  br label %4098

4098:                                             ; preds = %4097
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4099 = call ptr @__errno_location() #12
  %4100 = load i32, ptr %4099, align 4, !tbaa !5
  store i32 %4100, ptr %89, 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) #11
  %4108 = call i32 @isatty(i32 noundef %4107) #11
  %4109 = icmp ne i32 %4108, 0
  br i1 %4109, label %4110, label %4127

4110:                                             ; preds = %4105
  %4111 = load i32, ptr %89, align 4, !tbaa !5
  %4112 = call ptr @__errno_location() #12
  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() #12
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @strerror(i32 noundef %4122) #11
  %4124 = call ptr @__errno_location() #12
  %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.37, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4117, ptr noundef %4120, ptr noundef %4123, i32 noundef %4125) #11
  br label %4144

4127:                                             ; preds = %4105, %4098
  %4128 = load i32, ptr %89, align 4, !tbaa !5
  %4129 = call ptr @__errno_location() #12
  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() #12
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @strerror(i32 noundef %4139) #11
  %4141 = call ptr @__errno_location() #12
  %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.37, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4134, ptr noundef %4137, ptr noundef %4140, i32 noundef %4142) #11
  br label %4144

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

4145:                                             ; preds = %4144
  br label %4146

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

4147:                                             ; No predecessors!
  br label %4148

4148:                                             ; preds = %4147
  br label %4149

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

4150:                                             ; preds = %4149
  br label %4151

4151:                                             ; preds = %4150
  br label %4152

4152:                                             ; preds = %4151
  br label %4153

4153:                                             ; preds = %4152
  br label %4154

4154:                                             ; preds = %4153
  %4155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4155, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4156 = call ptr @__errno_location() #12
  store i32 0, ptr %4156, align 4, !tbaa !5
  br label %4157

4157:                                             ; preds = %4154
  br label %4158

4158:                                             ; preds = %4157
  br label %4159

4159:                                             ; preds = %4158
  br label %4160

4160:                                             ; preds = %4159
  %4161 = call i32 @s2n_connection_ptr_free(ptr noundef %85)
  %4162 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %4161, ptr %4162, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #11
  %4163 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4163, ptr %91, align 8, !tbaa !9
  br label %4164

4164:                                             ; preds = %4160
  %4165 = load i32, ptr @test_count, align 4, !tbaa !5
  %4166 = add nsw i32 %4165, 1
  store i32 %4166, ptr @test_count, align 4, !tbaa !5
  %4167 = load ptr, ptr %91, align 8, !tbaa !9
  %4168 = icmp eq ptr %4167, null
  br i1 %4168, label %4169, label %4222

4169:                                             ; preds = %4164
  br label %4170

4170:                                             ; preds = %4169
  br label %4171

4171:                                             ; preds = %4170
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %4172 = call ptr @__errno_location() #12
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  store i32 %4173, ptr %92, align 4, !tbaa !5
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = call i32 @s2n_print_stacktrace(ptr noundef %4174)
  %4176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4177 = trunc i8 %4176 to i1
  br i1 %4177, label %4178, label %4200

4178:                                             ; preds = %4171
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = call i32 @fileno(ptr noundef %4179) #11
  %4181 = call i32 @isatty(i32 noundef %4180) #11
  %4182 = icmp ne i32 %4181, 0
  br i1 %4182, label %4183, label %4200

4183:                                             ; preds = %4178
  %4184 = load i32, ptr %92, align 4, !tbaa !5
  %4185 = call ptr @__errno_location() #12
  store i32 %4184, ptr %4185, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call ptr @s2n_strerror(i32 noundef %4189, ptr noundef @.str.4)
  %4191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4192 = load i32, ptr %4191, align 4, !tbaa !5
  %4193 = call ptr @s2n_strerror_debug(i32 noundef %4192, ptr noundef @.str.4)
  %4194 = call ptr @__errno_location() #12
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = call ptr @strerror(i32 noundef %4195) #11
  %4197 = call ptr @__errno_location() #12
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4186, ptr noundef @.str.2, i32 noundef %4187, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4190, ptr noundef %4193, ptr noundef %4196, i32 noundef %4198) #11
  br label %4217

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

4217:                                             ; preds = %4200, %4183
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4218

4218:                                             ; preds = %4217
  br label %4219

4219:                                             ; preds = %4218
  call void @exit(i32 noundef 1) #13
  unreachable

4220:                                             ; No predecessors!
  br label %4221

4221:                                             ; preds = %4220
  br label %4222

4222:                                             ; preds = %4221, %4164
  br label %4223

4223:                                             ; preds = %4222
  br label %4224

4224:                                             ; preds = %4223
  %4225 = load ptr, ptr %91, align 8, !tbaa !9
  %4226 = getelementptr inbounds %struct.s2n_connection, ptr %4225, i32 0, i32 52
  %4227 = getelementptr inbounds %struct.s2n_handshake, ptr %4226, i32 0, i32 11
  %4228 = load i8, ptr %4227, align 8
  %4229 = and i8 %4228, -9
  %4230 = or i8 %4229, 8
  store i8 %4230, ptr %4227, align 8
  %4231 = load ptr, ptr %91, align 8, !tbaa !9
  %4232 = load i32, ptr %4231, align 8
  %4233 = and i32 %4232, -9
  %4234 = or i32 %4233, 8
  store i32 %4234, ptr %4231, align 8
  br label %4235

4235:                                             ; preds = %4224
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  store i64 19, ptr %93, align 8, !tbaa !51
  %4236 = load i64, ptr %93, align 8, !tbaa !51
  %4237 = icmp ne i64 %4236, 0
  br i1 %4237, label %4238, label %4300

4238:                                             ; preds = %4235
  %4239 = load ptr, ptr %91, align 8, !tbaa !9
  %4240 = getelementptr inbounds %struct.s2n_connection, ptr %4239, i32 0, i32 52
  %4241 = getelementptr inbounds %struct.s2n_handshake, ptr %4240, i32 0, i32 4
  %4242 = getelementptr inbounds [48 x i8], ptr %4241, i64 0, i64 0
  %4243 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %4244 = load i64, ptr %93, align 8, !tbaa !51
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %4242, ptr align 16 %4243, i64 %4244, i1 false)
  %4245 = icmp eq ptr %4242, null
  br i1 %4245, label %4246, label %4299

4246:                                             ; preds = %4238
  br label %4247

4247:                                             ; preds = %4246
  br label %4248

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

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

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

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

4294:                                             ; preds = %4277, %4260
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4295

4295:                                             ; preds = %4294
  br label %4296

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

4297:                                             ; No predecessors!
  br label %4298

4298:                                             ; preds = %4297
  br label %4299

4299:                                             ; preds = %4298, %4238
  br label %4300

4300:                                             ; preds = %4299, %4235
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  br label %4301

4301:                                             ; preds = %4300
  br label %4302

4302:                                             ; preds = %4301
  br label %4303

4303:                                             ; preds = %4302
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  store i64 19, ptr %95, align 8, !tbaa !51
  %4304 = load i64, ptr %95, align 8, !tbaa !51
  %4305 = icmp ne i64 %4304, 0
  br i1 %4305, label %4306, label %4368

4306:                                             ; preds = %4303
  %4307 = load ptr, ptr %91, align 8, !tbaa !9
  %4308 = getelementptr inbounds %struct.s2n_connection, ptr %4307, i32 0, i32 52
  %4309 = getelementptr inbounds %struct.s2n_handshake, ptr %4308, i32 0, i32 3
  %4310 = getelementptr inbounds [48 x i8], ptr %4309, i64 0, i64 0
  %4311 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %4312 = load i64, ptr %95, align 8, !tbaa !51
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %4310, ptr align 16 %4311, i64 %4312, i1 false)
  %4313 = icmp eq ptr %4310, null
  br i1 %4313, label %4314, label %4367

4314:                                             ; preds = %4306
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

4316:                                             ; preds = %4315
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4317 = call ptr @__errno_location() #12
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  store i32 %4318, ptr %96, align 4, !tbaa !5
  %4319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4320 = call i32 @s2n_print_stacktrace(ptr noundef %4319)
  %4321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4322 = trunc i8 %4321 to i1
  br i1 %4322, label %4323, label %4345

4323:                                             ; preds = %4316
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = call i32 @fileno(ptr noundef %4324) #11
  %4326 = call i32 @isatty(i32 noundef %4325) #11
  %4327 = icmp ne i32 %4326, 0
  br i1 %4327, label %4328, label %4345

4328:                                             ; preds = %4323
  %4329 = load i32, ptr %96, align 4, !tbaa !5
  %4330 = call ptr @__errno_location() #12
  store i32 %4329, ptr %4330, align 4, !tbaa !5
  %4331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4332 = load i32, ptr @test_count, align 4, !tbaa !5
  %4333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror(i32 noundef %4334, ptr noundef @.str.4)
  %4336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4337 = load i32, ptr %4336, align 4, !tbaa !5
  %4338 = call ptr @s2n_strerror_debug(i32 noundef %4337, ptr noundef @.str.4)
  %4339 = call ptr @__errno_location() #12
  %4340 = load i32, ptr %4339, align 4, !tbaa !5
  %4341 = call ptr @strerror(i32 noundef %4340) #11
  %4342 = call ptr @__errno_location() #12
  %4343 = load i32, ptr %4342, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4331, ptr noundef @.str.2, i32 noundef %4332, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4335, ptr noundef %4338, ptr noundef %4341, i32 noundef %4343) #11
  br label %4362

4345:                                             ; preds = %4323, %4316
  %4346 = load i32, ptr %96, align 4, !tbaa !5
  %4347 = call ptr @__errno_location() #12
  store i32 %4346, ptr %4347, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = load i32, ptr @test_count, align 4, !tbaa !5
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror_debug(i32 noundef %4354, ptr noundef @.str.4)
  %4356 = call ptr @__errno_location() #12
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @strerror(i32 noundef %4357) #11
  %4359 = call ptr @__errno_location() #12
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4348, ptr noundef @.str.5, i32 noundef %4349, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 263, ptr noundef %4352, ptr noundef %4355, ptr noundef %4358, i32 noundef %4360) #11
  br label %4362

4362:                                             ; preds = %4345, %4328
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363
  call void @exit(i32 noundef 1) #13
  unreachable

4365:                                             ; No predecessors!
  br label %4366

4366:                                             ; preds = %4365
  br label %4367

4367:                                             ; preds = %4366, %4306
  br label %4368

4368:                                             ; preds = %4367, %4303
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  br label %4369

4369:                                             ; preds = %4368
  br label %4370

4370:                                             ; preds = %4369
  %4371 = load ptr, ptr %91, align 8, !tbaa !9
  %4372 = getelementptr inbounds %struct.s2n_connection, ptr %4371, i32 0, i32 52
  %4373 = getelementptr inbounds %struct.s2n_handshake, ptr %4372, i32 0, i32 5
  store i8 19, ptr %4373, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #11
  store i8 38, ptr %97, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %98) #11
  call void @llvm.memset.p0.i64(ptr align 8 %98, i8 0, i64 40, i1 false)
  br label %4374

4374:                                             ; preds = %4370
  %4375 = load i32, ptr @test_count, align 4, !tbaa !5
  %4376 = add nsw i32 %4375, 1
  store i32 %4376, ptr @test_count, align 4, !tbaa !5
  %4377 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %4378 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %4379 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %98, ptr noundef %4377, ptr noundef %4378, i8 noundef zeroext 19)
  %4380 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4379, ptr %4380, align 4
  %4381 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %4382 = load i32, ptr %4381, align 4
  %4383 = call zeroext i1 @s2n_result_is_ok(i32 %4382)
  br i1 %4383, label %4437, label %4384

4384:                                             ; preds = %4374
  br label %4385

4385:                                             ; preds = %4384
  br label %4386

4386:                                             ; preds = %4385
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4387 = call ptr @__errno_location() #12
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  store i32 %4388, ptr %100, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = call i32 @s2n_print_stacktrace(ptr noundef %4389)
  %4391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4392 = trunc i8 %4391 to i1
  br i1 %4392, label %4393, label %4415

4393:                                             ; preds = %4386
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = call i32 @fileno(ptr noundef %4394) #11
  %4396 = call i32 @isatty(i32 noundef %4395) #11
  %4397 = icmp ne i32 %4396, 0
  br i1 %4397, label %4398, label %4415

4398:                                             ; preds = %4393
  %4399 = load i32, ptr %100, align 4, !tbaa !5
  %4400 = call ptr @__errno_location() #12
  store i32 %4399, ptr %4400, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = load i32, ptr @test_count, align 4, !tbaa !5
  %4403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4404 = load i32, ptr %4403, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror(i32 noundef %4404, ptr noundef @.str.4)
  %4406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror_debug(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call ptr @__errno_location() #12
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @strerror(i32 noundef %4410) #11
  %4412 = call ptr @__errno_location() #12
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4401, ptr noundef @.str.2, i32 noundef %4402, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4405, ptr noundef %4408, ptr noundef %4411, i32 noundef %4413) #11
  br label %4432

4415:                                             ; preds = %4393, %4386
  %4416 = load i32, ptr %100, align 4, !tbaa !5
  %4417 = call ptr @__errno_location() #12
  store i32 %4416, ptr %4417, align 4, !tbaa !5
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = load i32, ptr @test_count, align 4, !tbaa !5
  %4420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4421 = load i32, ptr %4420, align 4, !tbaa !5
  %4422 = call ptr @s2n_strerror(i32 noundef %4421, ptr noundef @.str.4)
  %4423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4424 = load i32, ptr %4423, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror_debug(i32 noundef %4424, ptr noundef @.str.4)
  %4426 = call ptr @__errno_location() #12
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @strerror(i32 noundef %4427) #11
  %4429 = call ptr @__errno_location() #12
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4418, ptr noundef @.str.5, i32 noundef %4419, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 272, ptr noundef %4422, ptr noundef %4425, ptr noundef %4428, i32 noundef %4430) #11
  br label %4432

4432:                                             ; preds = %4415, %4398
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4433

4433:                                             ; preds = %4432
  br label %4434

4434:                                             ; preds = %4433
  call void @exit(i32 noundef 1) #13
  unreachable

4435:                                             ; No predecessors!
  br label %4436

4436:                                             ; preds = %4435
  br label %4437

4437:                                             ; preds = %4436, %4374
  br label %4438

4438:                                             ; preds = %4437
  br label %4439

4439:                                             ; preds = %4438
  %4440 = load ptr, ptr %91, align 8, !tbaa !9
  %4441 = load i32, ptr %4440, align 8
  %4442 = and i32 %4441, -9
  %4443 = or i32 %4442, 0
  store i32 %4443, ptr %4440, align 8
  br label %4444

4444:                                             ; preds = %4439
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  %4447 = load i32, ptr @test_count, align 4, !tbaa !5
  %4448 = add nsw i32 %4447, 1
  store i32 %4448, ptr @test_count, align 4, !tbaa !5
  %4449 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %4450 = load ptr, ptr %91, align 8, !tbaa !9
  %4451 = call i32 %4449(ptr noundef %4450, ptr noundef %98)
  %4452 = icmp eq i32 %4451, -1
  br i1 %4452, label %4506, label %4453

4453:                                             ; preds = %4446
  br label %4454

4454:                                             ; preds = %4453
  br label %4455

4455:                                             ; preds = %4454
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4456 = call ptr @__errno_location() #12
  %4457 = load i32, ptr %4456, align 4, !tbaa !5
  store i32 %4457, ptr %101, align 4, !tbaa !5
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = call i32 @s2n_print_stacktrace(ptr noundef %4458)
  %4460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4461 = trunc i8 %4460 to i1
  br i1 %4461, label %4462, label %4484

4462:                                             ; preds = %4455
  %4463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4464 = call i32 @fileno(ptr noundef %4463) #11
  %4465 = call i32 @isatty(i32 noundef %4464) #11
  %4466 = icmp ne i32 %4465, 0
  br i1 %4466, label %4467, label %4484

4467:                                             ; preds = %4462
  %4468 = load i32, ptr %101, align 4, !tbaa !5
  %4469 = call ptr @__errno_location() #12
  store i32 %4468, ptr %4469, align 4, !tbaa !5
  %4470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4471 = load i32, ptr @test_count, align 4, !tbaa !5
  %4472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4473 = load i32, ptr %4472, align 4, !tbaa !5
  %4474 = call ptr @s2n_strerror(i32 noundef %4473, ptr noundef @.str.4)
  %4475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror_debug(i32 noundef %4476, ptr noundef @.str.4)
  %4478 = call ptr @__errno_location() #12
  %4479 = load i32, ptr %4478, align 4, !tbaa !5
  %4480 = call ptr @strerror(i32 noundef %4479) #11
  %4481 = call ptr @__errno_location() #12
  %4482 = load i32, ptr %4481, align 4, !tbaa !5
  %4483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4470, ptr noundef @.str.2, i32 noundef %4471, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4474, ptr noundef %4477, ptr noundef %4480, i32 noundef %4482) #11
  br label %4501

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

4501:                                             ; preds = %4484, %4467
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4502

4502:                                             ; preds = %4501
  br label %4503

4503:                                             ; preds = %4502
  call void @exit(i32 noundef 1) #13
  unreachable

4504:                                             ; No predecessors!
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

4506:                                             ; preds = %4505, %4446
  br label %4507

4507:                                             ; preds = %4506
  br label %4508

4508:                                             ; preds = %4507
  br label %4509

4509:                                             ; preds = %4508
  %4510 = load i32, ptr @test_count, align 4, !tbaa !5
  %4511 = add nsw i32 %4510, 1
  store i32 %4511, ptr @test_count, align 4, !tbaa !5
  %4512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = icmp eq i32 %4513, 335544398
  br i1 %4514, label %4568, label %4515

4515:                                             ; preds = %4509
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4518 = call ptr @__errno_location() #12
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  store i32 %4519, ptr %102, align 4, !tbaa !5
  %4520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4521 = call i32 @s2n_print_stacktrace(ptr noundef %4520)
  %4522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4523 = trunc i8 %4522 to i1
  br i1 %4523, label %4524, label %4546

4524:                                             ; preds = %4517
  %4525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4526 = call i32 @fileno(ptr noundef %4525) #11
  %4527 = call i32 @isatty(i32 noundef %4526) #11
  %4528 = icmp ne i32 %4527, 0
  br i1 %4528, label %4529, label %4546

4529:                                             ; preds = %4524
  %4530 = load i32, ptr %102, align 4, !tbaa !5
  %4531 = call ptr @__errno_location() #12
  store i32 %4530, ptr %4531, align 4, !tbaa !5
  %4532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4533 = load i32, ptr @test_count, align 4, !tbaa !5
  %4534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4535 = load i32, ptr %4534, align 4, !tbaa !5
  %4536 = call ptr @s2n_strerror(i32 noundef %4535, ptr noundef @.str.4)
  %4537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4538 = load i32, ptr %4537, align 4, !tbaa !5
  %4539 = call ptr @s2n_strerror_debug(i32 noundef %4538, ptr noundef @.str.4)
  %4540 = call ptr @__errno_location() #12
  %4541 = load i32, ptr %4540, align 4, !tbaa !5
  %4542 = call ptr @strerror(i32 noundef %4541) #11
  %4543 = call ptr @__errno_location() #12
  %4544 = load i32, ptr %4543, align 4, !tbaa !5
  %4545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4532, ptr noundef @.str.2, i32 noundef %4533, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4536, ptr noundef %4539, ptr noundef %4542, i32 noundef %4544) #11
  br label %4563

4546:                                             ; preds = %4524, %4517
  %4547 = load i32, ptr %102, align 4, !tbaa !5
  %4548 = call ptr @__errno_location() #12
  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() #12
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call ptr @strerror(i32 noundef %4558) #11
  %4560 = call ptr @__errno_location() #12
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4549, ptr noundef @.str.5, i32 noundef %4550, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4553, ptr noundef %4556, ptr noundef %4559, i32 noundef %4561) #11
  br label %4563

4563:                                             ; preds = %4546, %4529
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4564

4564:                                             ; preds = %4563
  br label %4565

4565:                                             ; preds = %4564
  call void @exit(i32 noundef 1) #13
  unreachable

4566:                                             ; No predecessors!
  br label %4567

4567:                                             ; preds = %4566
  br label %4568

4568:                                             ; preds = %4567, %4509
  br label %4569

4569:                                             ; preds = %4568
  br label %4570

4570:                                             ; preds = %4569
  br label %4571

4571:                                             ; preds = %4570
  %4572 = load i32, ptr @test_count, align 4, !tbaa !5
  %4573 = add nsw i32 %4572, 1
  store i32 %4573, ptr @test_count, align 4, !tbaa !5
  %4574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror_debug(i32 noundef %4575, ptr noundef @.str.4)
  %4577 = icmp eq ptr %4576, null
  br i1 %4577, label %4578, label %4631

4578:                                             ; preds = %4571
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

4580:                                             ; preds = %4579
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %4581 = call ptr @__errno_location() #12
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  store i32 %4582, ptr %103, align 4, !tbaa !5
  %4583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4584 = call i32 @s2n_print_stacktrace(ptr noundef %4583)
  %4585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4586 = trunc i8 %4585 to i1
  br i1 %4586, label %4587, label %4609

4587:                                             ; preds = %4580
  %4588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4589 = call i32 @fileno(ptr noundef %4588) #11
  %4590 = call i32 @isatty(i32 noundef %4589) #11
  %4591 = icmp ne i32 %4590, 0
  br i1 %4591, label %4592, label %4609

4592:                                             ; preds = %4587
  %4593 = load i32, ptr %103, align 4, !tbaa !5
  %4594 = call ptr @__errno_location() #12
  store i32 %4593, ptr %4594, align 4, !tbaa !5
  %4595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4596 = load i32, ptr @test_count, align 4, !tbaa !5
  %4597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call ptr @s2n_strerror(i32 noundef %4598, ptr noundef @.str.4)
  %4600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4601 = load i32, ptr %4600, align 4, !tbaa !5
  %4602 = call ptr @s2n_strerror_debug(i32 noundef %4601, ptr noundef @.str.4)
  %4603 = call ptr @__errno_location() #12
  %4604 = load i32, ptr %4603, align 4, !tbaa !5
  %4605 = call ptr @strerror(i32 noundef %4604) #11
  %4606 = call ptr @__errno_location() #12
  %4607 = load i32, ptr %4606, align 4, !tbaa !5
  %4608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4595, ptr noundef @.str.2, i32 noundef %4596, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4599, ptr noundef %4602, ptr noundef %4605, i32 noundef %4607) #11
  br label %4626

4609:                                             ; preds = %4587, %4580
  %4610 = load i32, ptr %103, align 4, !tbaa !5
  %4611 = call ptr @__errno_location() #12
  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() #12
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @strerror(i32 noundef %4621) #11
  %4623 = call ptr @__errno_location() #12
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4612, ptr noundef @.str.5, i32 noundef %4613, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 276, ptr noundef %4616, ptr noundef %4619, ptr noundef %4622, i32 noundef %4624) #11
  br label %4626

4626:                                             ; preds = %4609, %4592
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %4627

4627:                                             ; preds = %4626
  br label %4628

4628:                                             ; preds = %4627
  call void @exit(i32 noundef 1) #13
  unreachable

4629:                                             ; No predecessors!
  br label %4630

4630:                                             ; preds = %4629
  br label %4631

4631:                                             ; preds = %4630, %4571
  br label %4632

4632:                                             ; preds = %4631
  br label %4633

4633:                                             ; preds = %4632
  br label %4634

4634:                                             ; preds = %4633
  br label %4635

4635:                                             ; preds = %4634
  br label %4636

4636:                                             ; preds = %4635
  %4637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4637, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4638 = call ptr @__errno_location() #12
  store i32 0, ptr %4638, align 4, !tbaa !5
  br label %4639

4639:                                             ; preds = %4636
  br label %4640

4640:                                             ; preds = %4639
  br label %4641

4641:                                             ; preds = %4640
  br label %4642

4642:                                             ; preds = %4641
  %4643 = call i32 @s2n_stuffer_free(ptr noundef %98)
  call void @llvm.lifetime.end.p0(i64 40, ptr %98) #11
  %4644 = load ptr, ptr %91, align 8, !tbaa !9
  %4645 = load i32, ptr %4644, align 8
  %4646 = and i32 %4645, -9
  %4647 = or i32 %4646, 8
  store i32 %4647, ptr %4644, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %104) #11
  call void @llvm.memset.p0.i64(ptr align 8 %104, i8 0, i64 40, i1 false)
  br label %4648

4648:                                             ; preds = %4642
  %4649 = load i32, ptr @test_count, align 4, !tbaa !5
  %4650 = add nsw i32 %4649, 1
  store i32 %4650, ptr @test_count, align 4, !tbaa !5
  %4651 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %4652 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %4653 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %104, ptr noundef %4651, ptr noundef %4652, i8 noundef zeroext 19)
  %4654 = getelementptr inbounds %struct.s2n_result, ptr %105, i32 0, i32 0
  store i32 %4653, ptr %4654, align 4
  %4655 = getelementptr inbounds %struct.s2n_result, ptr %105, i32 0, i32 0
  %4656 = load i32, ptr %4655, align 4
  %4657 = call zeroext i1 @s2n_result_is_ok(i32 %4656)
  br i1 %4657, label %4711, label %4658

4658:                                             ; preds = %4648
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

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

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

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

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

4706:                                             ; preds = %4689, %4672
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %4707

4707:                                             ; preds = %4706
  br label %4708

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

4709:                                             ; No predecessors!
  br label %4710

4710:                                             ; preds = %4709
  br label %4711

4711:                                             ; preds = %4710, %4648
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

4714:                                             ; preds = %4713
  %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 getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %4718 = load ptr, ptr %91, align 8, !tbaa !9
  %4719 = call i32 %4717(ptr noundef %4718, ptr noundef %104)
  %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 %107) #11
  %4724 = call ptr @__errno_location() #12
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  store i32 %4725, ptr %107, 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) #11
  %4733 = call i32 @isatty(i32 noundef %4732) #11
  %4734 = icmp ne i32 %4733, 0
  br i1 %4734, label %4735, label %4752

4735:                                             ; preds = %4730
  %4736 = load i32, ptr %107, align 4, !tbaa !5
  %4737 = call ptr @__errno_location() #12
  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() #12
  %4747 = load i32, ptr %4746, align 4, !tbaa !5
  %4748 = call ptr @strerror(i32 noundef %4747) #11
  %4749 = call ptr @__errno_location() #12
  %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.49, ptr noundef @.str.1, i32 noundef 289, ptr noundef %4742, ptr noundef %4745, ptr noundef %4748, i32 noundef %4750) #11
  br label %4769

4752:                                             ; preds = %4730, %4723
  %4753 = load i32, ptr %107, align 4, !tbaa !5
  %4754 = call ptr @__errno_location() #12
  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() #12
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @strerror(i32 noundef %4764) #11
  %4766 = call ptr @__errno_location() #12
  %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.49, ptr noundef @.str.1, i32 noundef 289, ptr noundef %4759, ptr noundef %4762, ptr noundef %4765, i32 noundef %4767) #11
  br label %4769

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

4770:                                             ; preds = %4769
  br label %4771

4771:                                             ; preds = %4770
  call void @exit(i32 noundef 1) #13
  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
  %4777 = call i32 @s2n_stuffer_free(ptr noundef %104)
  call void @llvm.lifetime.end.p0(i64 40, ptr %104) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %108) #11
  call void @llvm.memset.p0.i64(ptr align 8 %108, i8 0, i64 40, i1 false)
  br label %4778

4778:                                             ; preds = %4776
  %4779 = load i32, ptr @test_count, align 4, !tbaa !5
  %4780 = add nsw i32 %4779, 1
  store i32 %4780, ptr @test_count, align 4, !tbaa !5
  %4781 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %4782 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %4783 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %108, ptr noundef %4781, ptr noundef %4782, i8 noundef zeroext 19)
  %4784 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  store i32 %4783, ptr %4784, align 4
  %4785 = getelementptr inbounds %struct.s2n_result, ptr %109, i32 0, i32 0
  %4786 = load i32, ptr %4785, align 4
  %4787 = call zeroext i1 @s2n_result_is_ok(i32 %4786)
  br i1 %4787, label %4841, label %4788

4788:                                             ; preds = %4778
  br label %4789

4789:                                             ; preds = %4788
  br label %4790

4790:                                             ; preds = %4789
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %4791 = call ptr @__errno_location() #12
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  store i32 %4792, ptr %110, align 4, !tbaa !5
  %4793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4794 = call i32 @s2n_print_stacktrace(ptr noundef %4793)
  %4795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4796 = trunc i8 %4795 to i1
  br i1 %4796, label %4797, label %4819

4797:                                             ; preds = %4790
  %4798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4799 = call i32 @fileno(ptr noundef %4798) #11
  %4800 = call i32 @isatty(i32 noundef %4799) #11
  %4801 = icmp ne i32 %4800, 0
  br i1 %4801, label %4802, label %4819

4802:                                             ; preds = %4797
  %4803 = load i32, ptr %110, align 4, !tbaa !5
  %4804 = call ptr @__errno_location() #12
  store i32 %4803, ptr %4804, align 4, !tbaa !5
  %4805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4806 = load i32, ptr @test_count, align 4, !tbaa !5
  %4807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  %4809 = call ptr @s2n_strerror(i32 noundef %4808, ptr noundef @.str.4)
  %4810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4811 = load i32, ptr %4810, align 4, !tbaa !5
  %4812 = call ptr @s2n_strerror_debug(i32 noundef %4811, ptr noundef @.str.4)
  %4813 = call ptr @__errno_location() #12
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @strerror(i32 noundef %4814) #11
  %4816 = call ptr @__errno_location() #12
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4805, ptr noundef @.str.2, i32 noundef %4806, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 297, ptr noundef %4809, ptr noundef %4812, ptr noundef %4815, i32 noundef %4817) #11
  br label %4836

4819:                                             ; preds = %4797, %4790
  %4820 = load i32, ptr %110, align 4, !tbaa !5
  %4821 = call ptr @__errno_location() #12
  store i32 %4820, ptr %4821, align 4, !tbaa !5
  %4822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4823 = load i32, ptr @test_count, align 4, !tbaa !5
  %4824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4825 = load i32, ptr %4824, align 4, !tbaa !5
  %4826 = call ptr @s2n_strerror(i32 noundef %4825, ptr noundef @.str.4)
  %4827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  %4829 = call ptr @s2n_strerror_debug(i32 noundef %4828, ptr noundef @.str.4)
  %4830 = call ptr @__errno_location() #12
  %4831 = load i32, ptr %4830, align 4, !tbaa !5
  %4832 = call ptr @strerror(i32 noundef %4831) #11
  %4833 = call ptr @__errno_location() #12
  %4834 = load i32, ptr %4833, align 4, !tbaa !5
  %4835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4822, ptr noundef @.str.5, i32 noundef %4823, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 297, ptr noundef %4826, ptr noundef %4829, ptr noundef %4832, i32 noundef %4834) #11
  br label %4836

4836:                                             ; preds = %4819, %4802
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %4837

4837:                                             ; preds = %4836
  br label %4838

4838:                                             ; preds = %4837
  call void @exit(i32 noundef 1) #13
  unreachable

4839:                                             ; No predecessors!
  br label %4840

4840:                                             ; preds = %4839
  br label %4841

4841:                                             ; preds = %4840, %4778
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  %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 = call i32 @s2n_stuffer_rewrite(ptr noundef %108)
  %4848 = icmp eq i32 %4847, -1
  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 %111) #11
  %4852 = call ptr @__errno_location() #12
  %4853 = load i32, ptr %4852, align 4, !tbaa !5
  store i32 %4853, ptr %111, 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) #11
  %4861 = call i32 @isatty(i32 noundef %4860) #11
  %4862 = icmp ne i32 %4861, 0
  br i1 %4862, label %4863, label %4880

4863:                                             ; preds = %4858
  %4864 = load i32, ptr %111, align 4, !tbaa !5
  %4865 = call ptr @__errno_location() #12
  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() #12
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call ptr @strerror(i32 noundef %4875) #11
  %4877 = call ptr @__errno_location() #12
  %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.50, ptr noundef @.str.1, i32 noundef 300, ptr noundef %4870, ptr noundef %4873, ptr noundef %4876, i32 noundef %4878) #11
  br label %4897

4880:                                             ; preds = %4858, %4851
  %4881 = load i32, ptr %111, align 4, !tbaa !5
  %4882 = call ptr @__errno_location() #12
  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() #12
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @strerror(i32 noundef %4892) #11
  %4894 = call ptr @__errno_location() #12
  %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.50, ptr noundef @.str.1, i32 noundef 300, ptr noundef %4887, ptr noundef %4890, ptr noundef %4893, i32 noundef %4895) #11
  br label %4897

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

4898:                                             ; preds = %4897
  br label %4899

4899:                                             ; preds = %4898
  call void @exit(i32 noundef 1) #13
  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 i8, ptr %97, align 1, !tbaa !15
  %4909 = zext i8 %4908 to i32
  %4910 = sub nsw i32 %4909, 1
  %4911 = trunc i32 %4910 to i8
  %4912 = call i32 @s2n_stuffer_write_uint8(ptr noundef %108, i8 noundef zeroext %4911)
  %4913 = icmp eq i32 %4912, -1
  br i1 %4913, label %4914, label %4967

4914:                                             ; preds = %4905
  br label %4915

4915:                                             ; preds = %4914
  br label %4916

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

4923:                                             ; preds = %4916
  %4924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4925 = call i32 @fileno(ptr noundef %4924) #11
  %4926 = call i32 @isatty(i32 noundef %4925) #11
  %4927 = icmp ne i32 %4926, 0
  br i1 %4927, label %4928, label %4945

4928:                                             ; preds = %4923
  %4929 = load i32, ptr %112, align 4, !tbaa !5
  %4930 = call ptr @__errno_location() #12
  store i32 %4929, ptr %4930, align 4, !tbaa !5
  %4931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4932 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4934, ptr noundef @.str.4)
  %4936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  %4938 = call ptr @s2n_strerror_debug(i32 noundef %4937, ptr noundef @.str.4)
  %4939 = call ptr @__errno_location() #12
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @strerror(i32 noundef %4940) #11
  %4942 = call ptr @__errno_location() #12
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4931, ptr noundef @.str.2, i32 noundef %4932, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 301, ptr noundef %4935, ptr noundef %4938, ptr noundef %4941, i32 noundef %4943) #11
  br label %4962

4945:                                             ; preds = %4923, %4916
  %4946 = load i32, ptr %112, align 4, !tbaa !5
  %4947 = call ptr @__errno_location() #12
  store i32 %4946, ptr %4947, align 4, !tbaa !5
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4951, ptr noundef @.str.4)
  %4953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call ptr @s2n_strerror_debug(i32 noundef %4954, ptr noundef @.str.4)
  %4956 = call ptr @__errno_location() #12
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @strerror(i32 noundef %4957) #11
  %4959 = call ptr @__errno_location() #12
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4948, ptr noundef @.str.5, i32 noundef %4949, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 301, ptr noundef %4952, ptr noundef %4955, ptr noundef %4958, i32 noundef %4960) #11
  br label %4962

4962:                                             ; preds = %4945, %4928
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4963

4963:                                             ; preds = %4962
  br label %4964

4964:                                             ; preds = %4963
  call void @exit(i32 noundef 1) #13
  unreachable

4965:                                             ; No predecessors!
  br label %4966

4966:                                             ; preds = %4965
  br label %4967

4967:                                             ; preds = %4966, %4905
  br label %4968

4968:                                             ; preds = %4967
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

4970:                                             ; preds = %4969
  %4971 = load i32, ptr @test_count, align 4, !tbaa !5
  %4972 = add nsw i32 %4971, 1
  store i32 %4972, ptr @test_count, align 4, !tbaa !5
  %4973 = load i8, ptr %97, align 1, !tbaa !15
  %4974 = zext i8 %4973 to i32
  %4975 = call i32 @s2n_stuffer_skip_write(ptr noundef %108, i32 noundef %4974)
  %4976 = icmp eq i32 %4975, -1
  br i1 %4976, label %4977, label %5030

4977:                                             ; preds = %4970
  br label %4978

4978:                                             ; preds = %4977
  br label %4979

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

4986:                                             ; preds = %4979
  %4987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4988 = call i32 @fileno(ptr noundef %4987) #11
  %4989 = call i32 @isatty(i32 noundef %4988) #11
  %4990 = icmp ne i32 %4989, 0
  br i1 %4990, label %4991, label %5008

4991:                                             ; preds = %4986
  %4992 = load i32, ptr %113, align 4, !tbaa !5
  %4993 = call ptr @__errno_location() #12
  store i32 %4992, ptr %4993, align 4, !tbaa !5
  %4994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4995 = load i32, ptr @test_count, align 4, !tbaa !5
  %4996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4997 = load i32, ptr %4996, align 4, !tbaa !5
  %4998 = call ptr @s2n_strerror(i32 noundef %4997, ptr noundef @.str.4)
  %4999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror_debug(i32 noundef %5000, ptr noundef @.str.4)
  %5002 = call ptr @__errno_location() #12
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @strerror(i32 noundef %5003) #11
  %5005 = call ptr @__errno_location() #12
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4994, ptr noundef @.str.2, i32 noundef %4995, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 302, ptr noundef %4998, ptr noundef %5001, ptr noundef %5004, i32 noundef %5006) #11
  br label %5025

5008:                                             ; preds = %4986, %4979
  %5009 = load i32, ptr %113, align 4, !tbaa !5
  %5010 = call ptr @__errno_location() #12
  store i32 %5009, ptr %5010, align 4, !tbaa !5
  %5011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5012 = load i32, ptr @test_count, align 4, !tbaa !5
  %5013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @s2n_strerror(i32 noundef %5014, ptr noundef @.str.4)
  %5016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror_debug(i32 noundef %5017, ptr noundef @.str.4)
  %5019 = call ptr @__errno_location() #12
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @strerror(i32 noundef %5020) #11
  %5022 = call ptr @__errno_location() #12
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5011, ptr noundef @.str.5, i32 noundef %5012, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 302, ptr noundef %5015, ptr noundef %5018, ptr noundef %5021, i32 noundef %5023) #11
  br label %5025

5025:                                             ; preds = %5008, %4991
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %5026

5026:                                             ; preds = %5025
  br label %5027

5027:                                             ; preds = %5026
  call void @exit(i32 noundef 1) #13
  unreachable

5028:                                             ; No predecessors!
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

5030:                                             ; preds = %5029, %4970
  br label %5031

5031:                                             ; preds = %5030
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034
  %5036 = load i32, ptr @test_count, align 4, !tbaa !5
  %5037 = add nsw i32 %5036, 1
  store i32 %5037, ptr @test_count, align 4, !tbaa !5
  %5038 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %5039 = load ptr, ptr %91, align 8, !tbaa !9
  %5040 = call i32 %5038(ptr noundef %5039, ptr noundef %108)
  %5041 = icmp eq i32 %5040, -1
  br i1 %5041, label %5095, label %5042

5042:                                             ; preds = %5035
  br label %5043

5043:                                             ; preds = %5042
  br label %5044

5044:                                             ; preds = %5043
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %5045 = call ptr @__errno_location() #12
  %5046 = load i32, ptr %5045, align 4, !tbaa !5
  store i32 %5046, ptr %114, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = call i32 @s2n_print_stacktrace(ptr noundef %5047)
  %5049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5050 = trunc i8 %5049 to i1
  br i1 %5050, label %5051, label %5073

5051:                                             ; preds = %5044
  %5052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5053 = call i32 @fileno(ptr noundef %5052) #11
  %5054 = call i32 @isatty(i32 noundef %5053) #11
  %5055 = icmp ne i32 %5054, 0
  br i1 %5055, label %5056, label %5073

5056:                                             ; preds = %5051
  %5057 = load i32, ptr %114, align 4, !tbaa !5
  %5058 = call ptr @__errno_location() #12
  store i32 %5057, ptr %5058, align 4, !tbaa !5
  %5059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5060 = load i32, ptr @test_count, align 4, !tbaa !5
  %5061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5062 = load i32, ptr %5061, align 4, !tbaa !5
  %5063 = call ptr @s2n_strerror(i32 noundef %5062, ptr noundef @.str.4)
  %5064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call ptr @s2n_strerror_debug(i32 noundef %5065, ptr noundef @.str.4)
  %5067 = call ptr @__errno_location() #12
  %5068 = load i32, ptr %5067, align 4, !tbaa !5
  %5069 = call ptr @strerror(i32 noundef %5068) #11
  %5070 = call ptr @__errno_location() #12
  %5071 = load i32, ptr %5070, align 4, !tbaa !5
  %5072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5059, ptr noundef @.str.2, i32 noundef %5060, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5063, ptr noundef %5066, ptr noundef %5069, i32 noundef %5071) #11
  br label %5090

5073:                                             ; preds = %5051, %5044
  %5074 = load i32, ptr %114, align 4, !tbaa !5
  %5075 = call ptr @__errno_location() #12
  store i32 %5074, ptr %5075, align 4, !tbaa !5
  %5076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5077 = load i32, ptr @test_count, align 4, !tbaa !5
  %5078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @s2n_strerror(i32 noundef %5079, ptr noundef @.str.4)
  %5081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror_debug(i32 noundef %5082, ptr noundef @.str.4)
  %5084 = call ptr @__errno_location() #12
  %5085 = load i32, ptr %5084, align 4, !tbaa !5
  %5086 = call ptr @strerror(i32 noundef %5085) #11
  %5087 = call ptr @__errno_location() #12
  %5088 = load i32, ptr %5087, align 4, !tbaa !5
  %5089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5076, ptr noundef @.str.5, i32 noundef %5077, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5080, ptr noundef %5083, ptr noundef %5086, i32 noundef %5088) #11
  br label %5090

5090:                                             ; preds = %5073, %5056
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5091

5091:                                             ; preds = %5090
  br label %5092

5092:                                             ; preds = %5091
  call void @exit(i32 noundef 1) #13
  unreachable

5093:                                             ; No predecessors!
  br label %5094

5094:                                             ; preds = %5093
  br label %5095

5095:                                             ; preds = %5094, %5035
  br label %5096

5096:                                             ; preds = %5095
  br label %5097

5097:                                             ; preds = %5096
  br label %5098

5098:                                             ; preds = %5097
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = icmp eq i32 %5102, 335544322
  br i1 %5103, label %5157, label %5104

5104:                                             ; preds = %5098
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

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

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

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

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

5152:                                             ; preds = %5135, %5118
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5153

5153:                                             ; preds = %5152
  br label %5154

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

5155:                                             ; No predecessors!
  br label %5156

5156:                                             ; preds = %5155
  br label %5157

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

5158:                                             ; preds = %5157
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

5160:                                             ; preds = %5159
  %5161 = load i32, ptr @test_count, align 4, !tbaa !5
  %5162 = add nsw i32 %5161, 1
  store i32 %5162, ptr @test_count, align 4, !tbaa !5
  %5163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror_debug(i32 noundef %5164, ptr noundef @.str.4)
  %5166 = icmp eq ptr %5165, null
  br i1 %5166, label %5167, label %5220

5167:                                             ; preds = %5160
  br label %5168

5168:                                             ; preds = %5167
  br label %5169

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

5176:                                             ; preds = %5169
  %5177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5178 = call i32 @fileno(ptr noundef %5177) #11
  %5179 = call i32 @isatty(i32 noundef %5178) #11
  %5180 = icmp ne i32 %5179, 0
  br i1 %5180, label %5181, label %5198

5181:                                             ; preds = %5176
  %5182 = load i32, ptr %116, align 4, !tbaa !5
  %5183 = call ptr @__errno_location() #12
  store i32 %5182, ptr %5183, align 4, !tbaa !5
  %5184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5185 = load i32, ptr @test_count, align 4, !tbaa !5
  %5186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5187 = load i32, ptr %5186, align 4, !tbaa !5
  %5188 = call ptr @s2n_strerror(i32 noundef %5187, ptr noundef @.str.4)
  %5189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5190 = load i32, ptr %5189, align 4, !tbaa !5
  %5191 = call ptr @s2n_strerror_debug(i32 noundef %5190, ptr noundef @.str.4)
  %5192 = call ptr @__errno_location() #12
  %5193 = load i32, ptr %5192, align 4, !tbaa !5
  %5194 = call ptr @strerror(i32 noundef %5193) #11
  %5195 = call ptr @__errno_location() #12
  %5196 = load i32, ptr %5195, align 4, !tbaa !5
  %5197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5184, ptr noundef @.str.2, i32 noundef %5185, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5188, ptr noundef %5191, ptr noundef %5194, i32 noundef %5196) #11
  br label %5215

5198:                                             ; preds = %5176, %5169
  %5199 = load i32, ptr %116, align 4, !tbaa !5
  %5200 = call ptr @__errno_location() #12
  store i32 %5199, ptr %5200, align 4, !tbaa !5
  %5201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5202 = load i32, ptr @test_count, align 4, !tbaa !5
  %5203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @s2n_strerror(i32 noundef %5204, ptr noundef @.str.4)
  %5206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call ptr @s2n_strerror_debug(i32 noundef %5207, ptr noundef @.str.4)
  %5209 = call ptr @__errno_location() #12
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @strerror(i32 noundef %5210) #11
  %5212 = call ptr @__errno_location() #12
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5201, ptr noundef @.str.5, i32 noundef %5202, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5205, ptr noundef %5208, ptr noundef %5211, i32 noundef %5213) #11
  br label %5215

5215:                                             ; preds = %5198, %5181
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %5216

5216:                                             ; preds = %5215
  br label %5217

5217:                                             ; preds = %5216
  call void @exit(i32 noundef 1) #13
  unreachable

5218:                                             ; No predecessors!
  br label %5219

5219:                                             ; preds = %5218
  br label %5220

5220:                                             ; preds = %5219, %5160
  br label %5221

5221:                                             ; preds = %5220
  br label %5222

5222:                                             ; preds = %5221
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  br label %5225

5225:                                             ; preds = %5224
  %5226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5226, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5227 = call ptr @__errno_location() #12
  store i32 0, ptr %5227, align 4, !tbaa !5
  br label %5228

5228:                                             ; preds = %5225
  br label %5229

5229:                                             ; preds = %5228
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230
  %5232 = call i32 @s2n_stuffer_free(ptr noundef %108)
  call void @llvm.lifetime.end.p0(i64 40, ptr %108) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %117) #11
  call void @llvm.memset.p0.i64(ptr align 8 %117, i8 0, i64 40, i1 false)
  br label %5233

5233:                                             ; preds = %5231
  %5234 = load i32, ptr @test_count, align 4, !tbaa !5
  %5235 = add nsw i32 %5234, 1
  store i32 %5235, ptr @test_count, align 4, !tbaa !5
  %5236 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %5237 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %5238 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %117, ptr noundef %5236, ptr noundef %5237, i8 noundef zeroext 19)
  %5239 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %5238, ptr %5239, align 4
  %5240 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  %5241 = load i32, ptr %5240, align 4
  %5242 = call zeroext i1 @s2n_result_is_ok(i32 %5241)
  br i1 %5242, label %5296, label %5243

5243:                                             ; preds = %5233
  br label %5244

5244:                                             ; preds = %5243
  br label %5245

5245:                                             ; preds = %5244
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %5246 = call ptr @__errno_location() #12
  %5247 = load i32, ptr %5246, align 4, !tbaa !5
  store i32 %5247, ptr %119, align 4, !tbaa !5
  %5248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5249 = call i32 @s2n_print_stacktrace(ptr noundef %5248)
  %5250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5251 = trunc i8 %5250 to i1
  br i1 %5251, label %5252, label %5274

5252:                                             ; preds = %5245
  %5253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5254 = call i32 @fileno(ptr noundef %5253) #11
  %5255 = call i32 @isatty(i32 noundef %5254) #11
  %5256 = icmp ne i32 %5255, 0
  br i1 %5256, label %5257, label %5274

5257:                                             ; preds = %5252
  %5258 = load i32, ptr %119, align 4, !tbaa !5
  %5259 = call ptr @__errno_location() #12
  store i32 %5258, ptr %5259, align 4, !tbaa !5
  %5260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5261 = load i32, ptr @test_count, align 4, !tbaa !5
  %5262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call ptr @s2n_strerror(i32 noundef %5263, ptr noundef @.str.4)
  %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_debug(i32 noundef %5266, ptr noundef @.str.4)
  %5268 = call ptr @__errno_location() #12
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @strerror(i32 noundef %5269) #11
  %5271 = call ptr @__errno_location() #12
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5260, ptr noundef @.str.2, i32 noundef %5261, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5264, ptr noundef %5267, ptr noundef %5270, i32 noundef %5272) #11
  br label %5291

5274:                                             ; preds = %5252, %5245
  %5275 = load i32, ptr %119, align 4, !tbaa !5
  %5276 = call ptr @__errno_location() #12
  store i32 %5275, ptr %5276, align 4, !tbaa !5
  %5277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5278 = load i32, ptr @test_count, align 4, !tbaa !5
  %5279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5280 = load i32, ptr %5279, align 4, !tbaa !5
  %5281 = call ptr @s2n_strerror(i32 noundef %5280, ptr noundef @.str.4)
  %5282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5283 = load i32, ptr %5282, align 4, !tbaa !5
  %5284 = call ptr @s2n_strerror_debug(i32 noundef %5283, ptr noundef @.str.4)
  %5285 = call ptr @__errno_location() #12
  %5286 = load i32, ptr %5285, align 4, !tbaa !5
  %5287 = call ptr @strerror(i32 noundef %5286) #11
  %5288 = call ptr @__errno_location() #12
  %5289 = load i32, ptr %5288, align 4, !tbaa !5
  %5290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5277, ptr noundef @.str.5, i32 noundef %5278, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 313, ptr noundef %5281, ptr noundef %5284, ptr noundef %5287, i32 noundef %5289) #11
  br label %5291

5291:                                             ; preds = %5274, %5257
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %5292

5292:                                             ; preds = %5291
  br label %5293

5293:                                             ; preds = %5292
  call void @exit(i32 noundef 1) #13
  unreachable

5294:                                             ; No predecessors!
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295, %5233
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

5299:                                             ; preds = %5298
  %5300 = load i32, ptr @test_count, align 4, !tbaa !5
  %5301 = add nsw i32 %5300, 1
  store i32 %5301, ptr @test_count, align 4, !tbaa !5
  %5302 = call i32 @s2n_stuffer_rewrite(ptr noundef %117)
  %5303 = icmp eq i32 %5302, -1
  br i1 %5303, label %5304, label %5357

5304:                                             ; preds = %5299
  br label %5305

5305:                                             ; preds = %5304
  br label %5306

5306:                                             ; preds = %5305
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %5307 = call ptr @__errno_location() #12
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  store i32 %5308, ptr %120, align 4, !tbaa !5
  %5309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5310 = call i32 @s2n_print_stacktrace(ptr noundef %5309)
  %5311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5312 = trunc i8 %5311 to i1
  br i1 %5312, label %5313, label %5335

5313:                                             ; preds = %5306
  %5314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5315 = call i32 @fileno(ptr noundef %5314) #11
  %5316 = call i32 @isatty(i32 noundef %5315) #11
  %5317 = icmp ne i32 %5316, 0
  br i1 %5317, label %5318, label %5335

5318:                                             ; preds = %5313
  %5319 = load i32, ptr %120, align 4, !tbaa !5
  %5320 = call ptr @__errno_location() #12
  store i32 %5319, ptr %5320, align 4, !tbaa !5
  %5321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5322 = load i32, ptr @test_count, align 4, !tbaa !5
  %5323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call ptr @s2n_strerror(i32 noundef %5324, ptr noundef @.str.4)
  %5326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5327 = load i32, ptr %5326, align 4, !tbaa !5
  %5328 = call ptr @s2n_strerror_debug(i32 noundef %5327, ptr noundef @.str.4)
  %5329 = call ptr @__errno_location() #12
  %5330 = load i32, ptr %5329, align 4, !tbaa !5
  %5331 = call ptr @strerror(i32 noundef %5330) #11
  %5332 = call ptr @__errno_location() #12
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5321, ptr noundef @.str.2, i32 noundef %5322, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 316, ptr noundef %5325, ptr noundef %5328, ptr noundef %5331, i32 noundef %5333) #11
  br label %5352

5335:                                             ; preds = %5313, %5306
  %5336 = load i32, ptr %120, align 4, !tbaa !5
  %5337 = call ptr @__errno_location() #12
  store i32 %5336, ptr %5337, align 4, !tbaa !5
  %5338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5339 = load i32, ptr @test_count, align 4, !tbaa !5
  %5340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @s2n_strerror(i32 noundef %5341, ptr noundef @.str.4)
  %5343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call ptr @s2n_strerror_debug(i32 noundef %5344, ptr noundef @.str.4)
  %5346 = call ptr @__errno_location() #12
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @strerror(i32 noundef %5347) #11
  %5349 = call ptr @__errno_location() #12
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5338, ptr noundef @.str.5, i32 noundef %5339, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 316, ptr noundef %5342, ptr noundef %5345, ptr noundef %5348, i32 noundef %5350) #11
  br label %5352

5352:                                             ; preds = %5335, %5318
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5353

5353:                                             ; preds = %5352
  br label %5354

5354:                                             ; preds = %5353
  call void @exit(i32 noundef 1) #13
  unreachable

5355:                                             ; No predecessors!
  br label %5356

5356:                                             ; preds = %5355
  br label %5357

5357:                                             ; preds = %5356, %5299
  br label %5358

5358:                                             ; preds = %5357
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

5360:                                             ; preds = %5359
  %5361 = load i32, ptr @test_count, align 4, !tbaa !5
  %5362 = add nsw i32 %5361, 1
  store i32 %5362, ptr @test_count, align 4, !tbaa !5
  %5363 = load i8, ptr %97, align 1, !tbaa !15
  %5364 = zext i8 %5363 to i32
  %5365 = add nsw i32 %5364, 1
  %5366 = trunc i32 %5365 to i8
  %5367 = call i32 @s2n_stuffer_write_uint8(ptr noundef %117, i8 noundef zeroext %5366)
  %5368 = icmp eq i32 %5367, -1
  br i1 %5368, label %5369, label %5422

5369:                                             ; preds = %5360
  br label %5370

5370:                                             ; preds = %5369
  br label %5371

5371:                                             ; preds = %5370
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %5372 = call ptr @__errno_location() #12
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  store i32 %5373, ptr %121, align 4, !tbaa !5
  %5374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5375 = call i32 @s2n_print_stacktrace(ptr noundef %5374)
  %5376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5377 = trunc i8 %5376 to i1
  br i1 %5377, label %5378, label %5400

5378:                                             ; preds = %5371
  %5379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5380 = call i32 @fileno(ptr noundef %5379) #11
  %5381 = call i32 @isatty(i32 noundef %5380) #11
  %5382 = icmp ne i32 %5381, 0
  br i1 %5382, label %5383, label %5400

5383:                                             ; preds = %5378
  %5384 = load i32, ptr %121, align 4, !tbaa !5
  %5385 = call ptr @__errno_location() #12
  store i32 %5384, ptr %5385, align 4, !tbaa !5
  %5386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5387 = load i32, ptr @test_count, align 4, !tbaa !5
  %5388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5389 = load i32, ptr %5388, align 4, !tbaa !5
  %5390 = call ptr @s2n_strerror(i32 noundef %5389, ptr noundef @.str.4)
  %5391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5392 = load i32, ptr %5391, align 4, !tbaa !5
  %5393 = call ptr @s2n_strerror_debug(i32 noundef %5392, ptr noundef @.str.4)
  %5394 = call ptr @__errno_location() #12
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @strerror(i32 noundef %5395) #11
  %5397 = call ptr @__errno_location() #12
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5386, ptr noundef @.str.2, i32 noundef %5387, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 317, ptr noundef %5390, ptr noundef %5393, ptr noundef %5396, i32 noundef %5398) #11
  br label %5417

5400:                                             ; preds = %5378, %5371
  %5401 = load i32, ptr %121, align 4, !tbaa !5
  %5402 = call ptr @__errno_location() #12
  store i32 %5401, ptr %5402, align 4, !tbaa !5
  %5403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5404 = load i32, ptr @test_count, align 4, !tbaa !5
  %5405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call ptr @s2n_strerror(i32 noundef %5406, ptr noundef @.str.4)
  %5408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  %5410 = call ptr @s2n_strerror_debug(i32 noundef %5409, ptr noundef @.str.4)
  %5411 = call ptr @__errno_location() #12
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  %5413 = call ptr @strerror(i32 noundef %5412) #11
  %5414 = call ptr @__errno_location() #12
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5403, ptr noundef @.str.5, i32 noundef %5404, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 317, ptr noundef %5407, ptr noundef %5410, ptr noundef %5413, i32 noundef %5415) #11
  br label %5417

5417:                                             ; preds = %5400, %5383
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %5418

5418:                                             ; preds = %5417
  br label %5419

5419:                                             ; preds = %5418
  call void @exit(i32 noundef 1) #13
  unreachable

5420:                                             ; No predecessors!
  br label %5421

5421:                                             ; preds = %5420
  br label %5422

5422:                                             ; preds = %5421, %5360
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424
  %5426 = load i32, ptr @test_count, align 4, !tbaa !5
  %5427 = add nsw i32 %5426, 1
  store i32 %5427, ptr @test_count, align 4, !tbaa !5
  %5428 = load i8, ptr %97, align 1, !tbaa !15
  %5429 = zext i8 %5428 to i32
  %5430 = call i32 @s2n_stuffer_skip_write(ptr noundef %117, i32 noundef %5429)
  %5431 = icmp eq i32 %5430, -1
  br i1 %5431, label %5432, label %5485

5432:                                             ; preds = %5425
  br label %5433

5433:                                             ; preds = %5432
  br label %5434

5434:                                             ; preds = %5433
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %5435 = call ptr @__errno_location() #12
  %5436 = load i32, ptr %5435, align 4, !tbaa !5
  store i32 %5436, ptr %122, align 4, !tbaa !5
  %5437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5438 = call i32 @s2n_print_stacktrace(ptr noundef %5437)
  %5439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5440 = trunc i8 %5439 to i1
  br i1 %5440, label %5441, label %5463

5441:                                             ; preds = %5434
  %5442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5443 = call i32 @fileno(ptr noundef %5442) #11
  %5444 = call i32 @isatty(i32 noundef %5443) #11
  %5445 = icmp ne i32 %5444, 0
  br i1 %5445, label %5446, label %5463

5446:                                             ; preds = %5441
  %5447 = load i32, ptr %122, align 4, !tbaa !5
  %5448 = call ptr @__errno_location() #12
  store i32 %5447, ptr %5448, align 4, !tbaa !5
  %5449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5450 = load i32, ptr @test_count, align 4, !tbaa !5
  %5451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5452 = load i32, ptr %5451, align 4, !tbaa !5
  %5453 = call ptr @s2n_strerror(i32 noundef %5452, ptr noundef @.str.4)
  %5454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5455 = load i32, ptr %5454, align 4, !tbaa !5
  %5456 = call ptr @s2n_strerror_debug(i32 noundef %5455, ptr noundef @.str.4)
  %5457 = call ptr @__errno_location() #12
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  %5459 = call ptr @strerror(i32 noundef %5458) #11
  %5460 = call ptr @__errno_location() #12
  %5461 = load i32, ptr %5460, align 4, !tbaa !5
  %5462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5449, ptr noundef @.str.2, i32 noundef %5450, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5453, ptr noundef %5456, ptr noundef %5459, i32 noundef %5461) #11
  br label %5480

5463:                                             ; preds = %5441, %5434
  %5464 = load i32, ptr %122, align 4, !tbaa !5
  %5465 = call ptr @__errno_location() #12
  store i32 %5464, ptr %5465, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = load i32, ptr @test_count, align 4, !tbaa !5
  %5468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call ptr @s2n_strerror(i32 noundef %5469, ptr noundef @.str.4)
  %5471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  %5473 = call ptr @s2n_strerror_debug(i32 noundef %5472, ptr noundef @.str.4)
  %5474 = call ptr @__errno_location() #12
  %5475 = load i32, ptr %5474, align 4, !tbaa !5
  %5476 = call ptr @strerror(i32 noundef %5475) #11
  %5477 = call ptr @__errno_location() #12
  %5478 = load i32, ptr %5477, align 4, !tbaa !5
  %5479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5466, ptr noundef @.str.5, i32 noundef %5467, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 318, ptr noundef %5470, ptr noundef %5473, ptr noundef %5476, i32 noundef %5478) #11
  br label %5480

5480:                                             ; preds = %5463, %5446
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %5481

5481:                                             ; preds = %5480
  br label %5482

5482:                                             ; preds = %5481
  call void @exit(i32 noundef 1) #13
  unreachable

5483:                                             ; No predecessors!
  br label %5484

5484:                                             ; preds = %5483
  br label %5485

5485:                                             ; preds = %5484, %5425
  br label %5486

5486:                                             ; preds = %5485
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  br label %5489

5489:                                             ; preds = %5488
  br label %5490

5490:                                             ; preds = %5489
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = add nsw i32 %5491, 1
  store i32 %5492, ptr @test_count, align 4, !tbaa !5
  %5493 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %5494 = load ptr, ptr %91, align 8, !tbaa !9
  %5495 = call i32 %5493(ptr noundef %5494, ptr noundef %117)
  %5496 = icmp eq i32 %5495, -1
  br i1 %5496, label %5550, label %5497

5497:                                             ; preds = %5490
  br label %5498

5498:                                             ; preds = %5497
  br label %5499

5499:                                             ; preds = %5498
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %5500 = call ptr @__errno_location() #12
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  store i32 %5501, ptr %123, align 4, !tbaa !5
  %5502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5503 = call i32 @s2n_print_stacktrace(ptr noundef %5502)
  %5504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5505 = trunc i8 %5504 to i1
  br i1 %5505, label %5506, label %5528

5506:                                             ; preds = %5499
  %5507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5508 = call i32 @fileno(ptr noundef %5507) #11
  %5509 = call i32 @isatty(i32 noundef %5508) #11
  %5510 = icmp ne i32 %5509, 0
  br i1 %5510, label %5511, label %5528

5511:                                             ; preds = %5506
  %5512 = load i32, ptr %123, align 4, !tbaa !5
  %5513 = call ptr @__errno_location() #12
  store i32 %5512, ptr %5513, align 4, !tbaa !5
  %5514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5515 = load i32, ptr @test_count, align 4, !tbaa !5
  %5516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call ptr @s2n_strerror(i32 noundef %5517, ptr noundef @.str.4)
  %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_debug(i32 noundef %5520, ptr noundef @.str.4)
  %5522 = call ptr @__errno_location() #12
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call ptr @strerror(i32 noundef %5523) #11
  %5525 = call ptr @__errno_location() #12
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5514, ptr noundef @.str.2, i32 noundef %5515, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5518, ptr noundef %5521, ptr noundef %5524, i32 noundef %5526) #11
  br label %5545

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

5545:                                             ; preds = %5528, %5511
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

5547:                                             ; preds = %5546
  call void @exit(i32 noundef 1) #13
  unreachable

5548:                                             ; No predecessors!
  br label %5549

5549:                                             ; preds = %5548
  br label %5550

5550:                                             ; preds = %5549, %5490
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  br label %5553

5553:                                             ; preds = %5552
  %5554 = load i32, ptr @test_count, align 4, !tbaa !5
  %5555 = add nsw i32 %5554, 1
  store i32 %5555, ptr @test_count, align 4, !tbaa !5
  %5556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = icmp eq i32 %5557, 335544322
  br i1 %5558, label %5612, label %5559

5559:                                             ; preds = %5553
  br label %5560

5560:                                             ; preds = %5559
  br label %5561

5561:                                             ; preds = %5560
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5562 = call ptr @__errno_location() #12
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  store i32 %5563, ptr %124, align 4, !tbaa !5
  %5564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5565 = call i32 @s2n_print_stacktrace(ptr noundef %5564)
  %5566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5567 = trunc i8 %5566 to i1
  br i1 %5567, label %5568, label %5590

5568:                                             ; preds = %5561
  %5569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5570 = call i32 @fileno(ptr noundef %5569) #11
  %5571 = call i32 @isatty(i32 noundef %5570) #11
  %5572 = icmp ne i32 %5571, 0
  br i1 %5572, label %5573, label %5590

5573:                                             ; preds = %5568
  %5574 = load i32, ptr %124, align 4, !tbaa !5
  %5575 = call ptr @__errno_location() #12
  store i32 %5574, ptr %5575, align 4, !tbaa !5
  %5576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5577 = load i32, ptr @test_count, align 4, !tbaa !5
  %5578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call ptr @s2n_strerror(i32 noundef %5579, ptr noundef @.str.4)
  %5581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  %5583 = call ptr @s2n_strerror_debug(i32 noundef %5582, ptr noundef @.str.4)
  %5584 = call ptr @__errno_location() #12
  %5585 = load i32, ptr %5584, align 4, !tbaa !5
  %5586 = call ptr @strerror(i32 noundef %5585) #11
  %5587 = call ptr @__errno_location() #12
  %5588 = load i32, ptr %5587, align 4, !tbaa !5
  %5589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5576, ptr noundef @.str.2, i32 noundef %5577, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5580, ptr noundef %5583, ptr noundef %5586, i32 noundef %5588) #11
  br label %5607

5590:                                             ; preds = %5568, %5561
  %5591 = load i32, ptr %124, align 4, !tbaa !5
  %5592 = call ptr @__errno_location() #12
  store i32 %5591, ptr %5592, align 4, !tbaa !5
  %5593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5594 = load i32, ptr @test_count, align 4, !tbaa !5
  %5595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call ptr @s2n_strerror(i32 noundef %5596, ptr noundef @.str.4)
  %5598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5599 = load i32, ptr %5598, align 4, !tbaa !5
  %5600 = call ptr @s2n_strerror_debug(i32 noundef %5599, ptr noundef @.str.4)
  %5601 = call ptr @__errno_location() #12
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  %5603 = call ptr @strerror(i32 noundef %5602) #11
  %5604 = call ptr @__errno_location() #12
  %5605 = load i32, ptr %5604, align 4, !tbaa !5
  %5606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5593, ptr noundef @.str.5, i32 noundef %5594, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5597, ptr noundef %5600, ptr noundef %5603, i32 noundef %5605) #11
  br label %5607

5607:                                             ; preds = %5590, %5573
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5608

5608:                                             ; preds = %5607
  br label %5609

5609:                                             ; preds = %5608
  call void @exit(i32 noundef 1) #13
  unreachable

5610:                                             ; No predecessors!
  br label %5611

5611:                                             ; preds = %5610
  br label %5612

5612:                                             ; preds = %5611, %5553
  br label %5613

5613:                                             ; preds = %5612
  br label %5614

5614:                                             ; preds = %5613
  br label %5615

5615:                                             ; preds = %5614
  %5616 = load i32, ptr @test_count, align 4, !tbaa !5
  %5617 = add nsw i32 %5616, 1
  store i32 %5617, ptr @test_count, align 4, !tbaa !5
  %5618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5619 = load i32, ptr %5618, align 4, !tbaa !5
  %5620 = call ptr @s2n_strerror_debug(i32 noundef %5619, ptr noundef @.str.4)
  %5621 = icmp eq ptr %5620, null
  br i1 %5621, label %5622, label %5675

5622:                                             ; preds = %5615
  br label %5623

5623:                                             ; preds = %5622
  br label %5624

5624:                                             ; preds = %5623
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %5625 = call ptr @__errno_location() #12
  %5626 = load i32, ptr %5625, align 4, !tbaa !5
  store i32 %5626, ptr %125, align 4, !tbaa !5
  %5627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5628 = call i32 @s2n_print_stacktrace(ptr noundef %5627)
  %5629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5630 = trunc i8 %5629 to i1
  br i1 %5630, label %5631, label %5653

5631:                                             ; preds = %5624
  %5632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5633 = call i32 @fileno(ptr noundef %5632) #11
  %5634 = call i32 @isatty(i32 noundef %5633) #11
  %5635 = icmp ne i32 %5634, 0
  br i1 %5635, label %5636, label %5653

5636:                                             ; preds = %5631
  %5637 = load i32, ptr %125, align 4, !tbaa !5
  %5638 = call ptr @__errno_location() #12
  store i32 %5637, ptr %5638, align 4, !tbaa !5
  %5639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5640 = load i32, ptr @test_count, align 4, !tbaa !5
  %5641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  %5643 = call ptr @s2n_strerror(i32 noundef %5642, ptr noundef @.str.4)
  %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_debug(i32 noundef %5645, ptr noundef @.str.4)
  %5647 = call ptr @__errno_location() #12
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @strerror(i32 noundef %5648) #11
  %5650 = call ptr @__errno_location() #12
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5639, ptr noundef @.str.2, i32 noundef %5640, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5643, ptr noundef %5646, ptr noundef %5649, i32 noundef %5651) #11
  br label %5670

5653:                                             ; preds = %5631, %5624
  %5654 = load i32, ptr %125, align 4, !tbaa !5
  %5655 = call ptr @__errno_location() #12
  store i32 %5654, ptr %5655, align 4, !tbaa !5
  %5656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5657 = load i32, ptr @test_count, align 4, !tbaa !5
  %5658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror(i32 noundef %5659, ptr noundef @.str.4)
  %5661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call ptr @s2n_strerror_debug(i32 noundef %5662, ptr noundef @.str.4)
  %5664 = call ptr @__errno_location() #12
  %5665 = load i32, ptr %5664, align 4, !tbaa !5
  %5666 = call ptr @strerror(i32 noundef %5665) #11
  %5667 = call ptr @__errno_location() #12
  %5668 = load i32, ptr %5667, align 4, !tbaa !5
  %5669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5656, ptr noundef @.str.5, i32 noundef %5657, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 321, ptr noundef %5660, ptr noundef %5663, ptr noundef %5666, i32 noundef %5668) #11
  br label %5670

5670:                                             ; preds = %5653, %5636
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671
  call void @exit(i32 noundef 1) #13
  unreachable

5673:                                             ; No predecessors!
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674, %5615
  br label %5676

5676:                                             ; preds = %5675
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

5678:                                             ; preds = %5677
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

5680:                                             ; preds = %5679
  %5681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5681, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5682 = call ptr @__errno_location() #12
  store i32 0, ptr %5682, align 4, !tbaa !5
  br label %5683

5683:                                             ; preds = %5680
  br label %5684

5684:                                             ; preds = %5683
  br label %5685

5685:                                             ; preds = %5684
  br label %5686

5686:                                             ; preds = %5685
  %5687 = call i32 @s2n_stuffer_free(ptr noundef %117)
  call void @llvm.lifetime.end.p0(i64 40, ptr %117) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %126) #11
  call void @llvm.memset.p0.i64(ptr align 8 %126, i8 0, i64 40, i1 false)
  br label %5688

5688:                                             ; preds = %5686
  %5689 = load i32, ptr @test_count, align 4, !tbaa !5
  %5690 = add nsw i32 %5689, 1
  store i32 %5690, ptr @test_count, align 4, !tbaa !5
  %5691 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %5692 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %5693 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %126, ptr noundef %5691, ptr noundef %5692, i8 noundef zeroext 19)
  %5694 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  store i32 %5693, ptr %5694, align 4
  %5695 = getelementptr inbounds %struct.s2n_result, ptr %127, i32 0, i32 0
  %5696 = load i32, ptr %5695, align 4
  %5697 = call zeroext i1 @s2n_result_is_ok(i32 %5696)
  br i1 %5697, label %5751, label %5698

5698:                                             ; preds = %5688
  br label %5699

5699:                                             ; preds = %5698
  br label %5700

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

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

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

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

5746:                                             ; preds = %5729, %5712
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %5747

5747:                                             ; preds = %5746
  br label %5748

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

5749:                                             ; No predecessors!
  br label %5750

5750:                                             ; preds = %5749
  br label %5751

5751:                                             ; preds = %5750, %5688
  br label %5752

5752:                                             ; preds = %5751
  br label %5753

5753:                                             ; preds = %5752
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754
  br label %5756

5756:                                             ; preds = %5755
  %5757 = load i32, ptr @test_count, align 4, !tbaa !5
  %5758 = add nsw i32 %5757, 1
  store i32 %5758, ptr @test_count, align 4, !tbaa !5
  %5759 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %5760 = load ptr, ptr %91, align 8, !tbaa !9
  %5761 = call i32 %5759(ptr noundef %5760, ptr noundef %126)
  %5762 = icmp eq i32 %5761, -1
  br i1 %5762, label %5816, label %5763

5763:                                             ; preds = %5756
  br label %5764

5764:                                             ; preds = %5763
  br label %5765

5765:                                             ; preds = %5764
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5766 = call ptr @__errno_location() #12
  %5767 = load i32, ptr %5766, align 4, !tbaa !5
  store i32 %5767, ptr %129, align 4, !tbaa !5
  %5768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5769 = call i32 @s2n_print_stacktrace(ptr noundef %5768)
  %5770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5771 = trunc i8 %5770 to i1
  br i1 %5771, label %5772, label %5794

5772:                                             ; preds = %5765
  %5773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5774 = call i32 @fileno(ptr noundef %5773) #11
  %5775 = call i32 @isatty(i32 noundef %5774) #11
  %5776 = icmp ne i32 %5775, 0
  br i1 %5776, label %5777, label %5794

5777:                                             ; preds = %5772
  %5778 = load i32, ptr %129, align 4, !tbaa !5
  %5779 = call ptr @__errno_location() #12
  store i32 %5778, ptr %5779, align 4, !tbaa !5
  %5780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5781 = load i32, ptr @test_count, align 4, !tbaa !5
  %5782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @s2n_strerror(i32 noundef %5783, ptr noundef @.str.4)
  %5785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call ptr @s2n_strerror_debug(i32 noundef %5786, ptr noundef @.str.4)
  %5788 = call ptr @__errno_location() #12
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  %5790 = call ptr @strerror(i32 noundef %5789) #11
  %5791 = call ptr @__errno_location() #12
  %5792 = load i32, ptr %5791, align 4, !tbaa !5
  %5793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5780, ptr noundef @.str.2, i32 noundef %5781, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5784, ptr noundef %5787, ptr noundef %5790, i32 noundef %5792) #11
  br label %5811

5794:                                             ; preds = %5772, %5765
  %5795 = load i32, ptr %129, align 4, !tbaa !5
  %5796 = call ptr @__errno_location() #12
  store i32 %5795, ptr %5796, align 4, !tbaa !5
  %5797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5798 = load i32, ptr @test_count, align 4, !tbaa !5
  %5799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @s2n_strerror(i32 noundef %5800, ptr noundef @.str.4)
  %5802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call ptr @s2n_strerror_debug(i32 noundef %5803, ptr noundef @.str.4)
  %5805 = call ptr @__errno_location() #12
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = call ptr @strerror(i32 noundef %5806) #11
  %5808 = call ptr @__errno_location() #12
  %5809 = load i32, ptr %5808, align 4, !tbaa !5
  %5810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5797, ptr noundef @.str.5, i32 noundef %5798, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5801, ptr noundef %5804, ptr noundef %5807, i32 noundef %5809) #11
  br label %5811

5811:                                             ; preds = %5794, %5777
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %5812

5812:                                             ; preds = %5811
  br label %5813

5813:                                             ; preds = %5812
  call void @exit(i32 noundef 1) #13
  unreachable

5814:                                             ; No predecessors!
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

5816:                                             ; preds = %5815, %5756
  br label %5817

5817:                                             ; preds = %5816
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818
  %5820 = load i32, ptr @test_count, align 4, !tbaa !5
  %5821 = add nsw i32 %5820, 1
  store i32 %5821, ptr @test_count, align 4, !tbaa !5
  %5822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5823 = load i32, ptr %5822, align 4, !tbaa !5
  %5824 = icmp eq i32 %5823, 335544322
  br i1 %5824, label %5878, label %5825

5825:                                             ; preds = %5819
  br label %5826

5826:                                             ; preds = %5825
  br label %5827

5827:                                             ; preds = %5826
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5828 = call ptr @__errno_location() #12
  %5829 = load i32, ptr %5828, align 4, !tbaa !5
  store i32 %5829, ptr %130, align 4, !tbaa !5
  %5830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5831 = call i32 @s2n_print_stacktrace(ptr noundef %5830)
  %5832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5833 = trunc i8 %5832 to i1
  br i1 %5833, label %5834, label %5856

5834:                                             ; preds = %5827
  %5835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5836 = call i32 @fileno(ptr noundef %5835) #11
  %5837 = call i32 @isatty(i32 noundef %5836) #11
  %5838 = icmp ne i32 %5837, 0
  br i1 %5838, label %5839, label %5856

5839:                                             ; preds = %5834
  %5840 = load i32, ptr %130, align 4, !tbaa !5
  %5841 = call ptr @__errno_location() #12
  store i32 %5840, ptr %5841, align 4, !tbaa !5
  %5842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5843 = load i32, ptr @test_count, align 4, !tbaa !5
  %5844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5845 = load i32, ptr %5844, align 4, !tbaa !5
  %5846 = call ptr @s2n_strerror(i32 noundef %5845, ptr noundef @.str.4)
  %5847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5848 = load i32, ptr %5847, align 4, !tbaa !5
  %5849 = call ptr @s2n_strerror_debug(i32 noundef %5848, ptr noundef @.str.4)
  %5850 = call ptr @__errno_location() #12
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call ptr @strerror(i32 noundef %5851) #11
  %5853 = call ptr @__errno_location() #12
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5842, ptr noundef @.str.2, i32 noundef %5843, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5846, ptr noundef %5849, ptr noundef %5852, i32 noundef %5854) #11
  br label %5873

5856:                                             ; preds = %5834, %5827
  %5857 = load i32, ptr %130, align 4, !tbaa !5
  %5858 = call ptr @__errno_location() #12
  store i32 %5857, ptr %5858, align 4, !tbaa !5
  %5859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5860 = load i32, ptr @test_count, align 4, !tbaa !5
  %5861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  %5863 = call ptr @s2n_strerror(i32 noundef %5862, ptr noundef @.str.4)
  %5864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call ptr @s2n_strerror_debug(i32 noundef %5865, ptr noundef @.str.4)
  %5867 = call ptr @__errno_location() #12
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @strerror(i32 noundef %5868) #11
  %5870 = call ptr @__errno_location() #12
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5859, ptr noundef @.str.5, i32 noundef %5860, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5863, ptr noundef %5866, ptr noundef %5869, i32 noundef %5871) #11
  br label %5873

5873:                                             ; preds = %5856, %5839
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5874

5874:                                             ; preds = %5873
  br label %5875

5875:                                             ; preds = %5874
  call void @exit(i32 noundef 1) #13
  unreachable

5876:                                             ; No predecessors!
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

5878:                                             ; preds = %5877, %5819
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880
  %5882 = load i32, ptr @test_count, align 4, !tbaa !5
  %5883 = add nsw i32 %5882, 1
  store i32 %5883, ptr @test_count, align 4, !tbaa !5
  %5884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror_debug(i32 noundef %5885, ptr noundef @.str.4)
  %5887 = icmp eq ptr %5886, null
  br i1 %5887, label %5888, label %5941

5888:                                             ; preds = %5881
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %5891 = call ptr @__errno_location() #12
  %5892 = load i32, ptr %5891, align 4, !tbaa !5
  store i32 %5892, ptr %131, align 4, !tbaa !5
  %5893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5894 = call i32 @s2n_print_stacktrace(ptr noundef %5893)
  %5895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5896 = trunc i8 %5895 to i1
  br i1 %5896, label %5897, label %5919

5897:                                             ; preds = %5890
  %5898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5899 = call i32 @fileno(ptr noundef %5898) #11
  %5900 = call i32 @isatty(i32 noundef %5899) #11
  %5901 = icmp ne i32 %5900, 0
  br i1 %5901, label %5902, label %5919

5902:                                             ; preds = %5897
  %5903 = load i32, ptr %131, align 4, !tbaa !5
  %5904 = call ptr @__errno_location() #12
  store i32 %5903, ptr %5904, align 4, !tbaa !5
  %5905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5906 = load i32, ptr @test_count, align 4, !tbaa !5
  %5907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  %5909 = call ptr @s2n_strerror(i32 noundef %5908, ptr noundef @.str.4)
  %5910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5911 = load i32, ptr %5910, align 4, !tbaa !5
  %5912 = call ptr @s2n_strerror_debug(i32 noundef %5911, ptr noundef @.str.4)
  %5913 = call ptr @__errno_location() #12
  %5914 = load i32, ptr %5913, align 4, !tbaa !5
  %5915 = call ptr @strerror(i32 noundef %5914) #11
  %5916 = call ptr @__errno_location() #12
  %5917 = load i32, ptr %5916, align 4, !tbaa !5
  %5918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5905, ptr noundef @.str.2, i32 noundef %5906, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5909, ptr noundef %5912, ptr noundef %5915, i32 noundef %5917) #11
  br label %5936

5919:                                             ; preds = %5897, %5890
  %5920 = load i32, ptr %131, align 4, !tbaa !5
  %5921 = call ptr @__errno_location() #12
  store i32 %5920, ptr %5921, align 4, !tbaa !5
  %5922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5923 = load i32, ptr @test_count, align 4, !tbaa !5
  %5924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5925 = load i32, ptr %5924, align 4, !tbaa !5
  %5926 = call ptr @s2n_strerror(i32 noundef %5925, ptr noundef @.str.4)
  %5927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5928 = load i32, ptr %5927, align 4, !tbaa !5
  %5929 = call ptr @s2n_strerror_debug(i32 noundef %5928, ptr noundef @.str.4)
  %5930 = call ptr @__errno_location() #12
  %5931 = load i32, ptr %5930, align 4, !tbaa !5
  %5932 = call ptr @strerror(i32 noundef %5931) #11
  %5933 = call ptr @__errno_location() #12
  %5934 = load i32, ptr %5933, align 4, !tbaa !5
  %5935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5922, ptr noundef @.str.5, i32 noundef %5923, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 331, ptr noundef %5926, ptr noundef %5929, ptr noundef %5932, i32 noundef %5934) #11
  br label %5936

5936:                                             ; preds = %5919, %5902
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5937

5937:                                             ; preds = %5936
  br label %5938

5938:                                             ; preds = %5937
  call void @exit(i32 noundef 1) #13
  unreachable

5939:                                             ; No predecessors!
  br label %5940

5940:                                             ; preds = %5939
  br label %5941

5941:                                             ; preds = %5940, %5881
  br label %5942

5942:                                             ; preds = %5941
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

5945:                                             ; preds = %5944
  br label %5946

5946:                                             ; preds = %5945
  %5947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5947, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5948 = call ptr @__errno_location() #12
  store i32 0, ptr %5948, align 4, !tbaa !5
  br label %5949

5949:                                             ; preds = %5946
  br label %5950

5950:                                             ; preds = %5949
  br label %5951

5951:                                             ; preds = %5950
  br label %5952

5952:                                             ; preds = %5951
  %5953 = call i32 @s2n_stuffer_free(ptr noundef %126)
  call void @llvm.lifetime.end.p0(i64 40, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %132) #11
  call void @llvm.memset.p0.i64(ptr align 8 %132, i8 0, i64 40, i1 false)
  br label %5954

5954:                                             ; preds = %5952
  %5955 = load i32, ptr @test_count, align 4, !tbaa !5
  %5956 = add nsw i32 %5955, 1
  store i32 %5956, ptr @test_count, align 4, !tbaa !5
  %5957 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %5958 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %5959 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %132, ptr noundef %5957, ptr noundef %5958, i8 noundef zeroext 19)
  %5960 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  store i32 %5959, ptr %5960, align 4
  %5961 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  %5962 = load i32, ptr %5961, align 4
  %5963 = call zeroext i1 @s2n_result_is_ok(i32 %5962)
  br i1 %5963, label %6017, label %5964

5964:                                             ; preds = %5954
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %5967 = call ptr @__errno_location() #12
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  store i32 %5968, ptr %134, align 4, !tbaa !5
  %5969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5970 = call i32 @s2n_print_stacktrace(ptr noundef %5969)
  %5971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5972 = trunc i8 %5971 to i1
  br i1 %5972, label %5973, label %5995

5973:                                             ; preds = %5966
  %5974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5975 = call i32 @fileno(ptr noundef %5974) #11
  %5976 = call i32 @isatty(i32 noundef %5975) #11
  %5977 = icmp ne i32 %5976, 0
  br i1 %5977, label %5978, label %5995

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

5995:                                             ; preds = %5973, %5966
  %5996 = load i32, ptr %134, align 4, !tbaa !5
  %5997 = call ptr @__errno_location() #12
  store i32 %5996, ptr %5997, align 4, !tbaa !5
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror(i32 noundef %6001, ptr noundef @.str.4)
  %6003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @s2n_strerror_debug(i32 noundef %6004, ptr noundef @.str.4)
  %6006 = call ptr @__errno_location() #12
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @strerror(i32 noundef %6007) #11
  %6009 = call ptr @__errno_location() #12
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5998, ptr noundef @.str.5, i32 noundef %5999, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 338, ptr noundef %6002, ptr noundef %6005, ptr noundef %6008, i32 noundef %6010) #11
  br label %6012

6012:                                             ; preds = %5995, %5978
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %6013

6013:                                             ; preds = %6012
  br label %6014

6014:                                             ; preds = %6013
  call void @exit(i32 noundef 1) #13
  unreachable

6015:                                             ; No predecessors!
  br label %6016

6016:                                             ; preds = %6015
  br label %6017

6017:                                             ; preds = %6016, %5954
  br label %6018

6018:                                             ; preds = %6017
  br label %6019

6019:                                             ; preds = %6018
  br label %6020

6020:                                             ; preds = %6019
  br label %6021

6021:                                             ; preds = %6020
  br label %6022

6022:                                             ; preds = %6021
  %6023 = load i32, ptr @test_count, align 4, !tbaa !5
  %6024 = add nsw i32 %6023, 1
  store i32 %6024, ptr @test_count, align 4, !tbaa !5
  %6025 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %6026 = load ptr, ptr %91, align 8, !tbaa !9
  %6027 = call i32 %6025(ptr noundef %6026, ptr noundef %132)
  %6028 = icmp eq i32 %6027, -1
  br i1 %6028, label %6082, label %6029

6029:                                             ; preds = %6022
  br label %6030

6030:                                             ; preds = %6029
  br label %6031

6031:                                             ; preds = %6030
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %6032 = call ptr @__errno_location() #12
  %6033 = load i32, ptr %6032, align 4, !tbaa !5
  store i32 %6033, ptr %135, align 4, !tbaa !5
  %6034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6035 = call i32 @s2n_print_stacktrace(ptr noundef %6034)
  %6036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6037 = trunc i8 %6036 to i1
  br i1 %6037, label %6038, label %6060

6038:                                             ; preds = %6031
  %6039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6040 = call i32 @fileno(ptr noundef %6039) #11
  %6041 = call i32 @isatty(i32 noundef %6040) #11
  %6042 = icmp ne i32 %6041, 0
  br i1 %6042, label %6043, label %6060

6043:                                             ; preds = %6038
  %6044 = load i32, ptr %135, align 4, !tbaa !5
  %6045 = call ptr @__errno_location() #12
  store i32 %6044, ptr %6045, align 4, !tbaa !5
  %6046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6047 = load i32, ptr @test_count, align 4, !tbaa !5
  %6048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6049 = load i32, ptr %6048, align 4, !tbaa !5
  %6050 = call ptr @s2n_strerror(i32 noundef %6049, ptr noundef @.str.4)
  %6051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6052 = load i32, ptr %6051, align 4, !tbaa !5
  %6053 = call ptr @s2n_strerror_debug(i32 noundef %6052, ptr noundef @.str.4)
  %6054 = call ptr @__errno_location() #12
  %6055 = load i32, ptr %6054, align 4, !tbaa !5
  %6056 = call ptr @strerror(i32 noundef %6055) #11
  %6057 = call ptr @__errno_location() #12
  %6058 = load i32, ptr %6057, align 4, !tbaa !5
  %6059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6046, ptr noundef @.str.2, i32 noundef %6047, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6050, ptr noundef %6053, ptr noundef %6056, i32 noundef %6058) #11
  br label %6077

6060:                                             ; preds = %6038, %6031
  %6061 = load i32, ptr %135, align 4, !tbaa !5
  %6062 = call ptr @__errno_location() #12
  store i32 %6061, ptr %6062, align 4, !tbaa !5
  %6063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6064 = load i32, ptr @test_count, align 4, !tbaa !5
  %6065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call ptr @s2n_strerror(i32 noundef %6066, ptr noundef @.str.4)
  %6068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6069 = load i32, ptr %6068, align 4, !tbaa !5
  %6070 = call ptr @s2n_strerror_debug(i32 noundef %6069, ptr noundef @.str.4)
  %6071 = call ptr @__errno_location() #12
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call ptr @strerror(i32 noundef %6072) #11
  %6074 = call ptr @__errno_location() #12
  %6075 = load i32, ptr %6074, align 4, !tbaa !5
  %6076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6063, ptr noundef @.str.5, i32 noundef %6064, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6067, ptr noundef %6070, ptr noundef %6073, i32 noundef %6075) #11
  br label %6077

6077:                                             ; preds = %6060, %6043
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %6078

6078:                                             ; preds = %6077
  br label %6079

6079:                                             ; preds = %6078
  call void @exit(i32 noundef 1) #13
  unreachable

6080:                                             ; No predecessors!
  br label %6081

6081:                                             ; preds = %6080
  br label %6082

6082:                                             ; preds = %6081, %6022
  br label %6083

6083:                                             ; preds = %6082
  br label %6084

6084:                                             ; preds = %6083
  br label %6085

6085:                                             ; preds = %6084
  %6086 = load i32, ptr @test_count, align 4, !tbaa !5
  %6087 = add nsw i32 %6086, 1
  store i32 %6087, ptr @test_count, align 4, !tbaa !5
  %6088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = icmp eq i32 %6089, 335544322
  br i1 %6090, label %6144, label %6091

6091:                                             ; preds = %6085
  br label %6092

6092:                                             ; preds = %6091
  br label %6093

6093:                                             ; preds = %6092
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %6094 = call ptr @__errno_location() #12
  %6095 = load i32, ptr %6094, align 4, !tbaa !5
  store i32 %6095, ptr %136, align 4, !tbaa !5
  %6096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6097 = call i32 @s2n_print_stacktrace(ptr noundef %6096)
  %6098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6099 = trunc i8 %6098 to i1
  br i1 %6099, label %6100, label %6122

6100:                                             ; preds = %6093
  %6101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6102 = call i32 @fileno(ptr noundef %6101) #11
  %6103 = call i32 @isatty(i32 noundef %6102) #11
  %6104 = icmp ne i32 %6103, 0
  br i1 %6104, label %6105, label %6122

6105:                                             ; preds = %6100
  %6106 = load i32, ptr %136, align 4, !tbaa !5
  %6107 = call ptr @__errno_location() #12
  store i32 %6106, ptr %6107, align 4, !tbaa !5
  %6108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6109 = load i32, ptr @test_count, align 4, !tbaa !5
  %6110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6111 = load i32, ptr %6110, align 4, !tbaa !5
  %6112 = call ptr @s2n_strerror(i32 noundef %6111, ptr noundef @.str.4)
  %6113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6114 = load i32, ptr %6113, align 4, !tbaa !5
  %6115 = call ptr @s2n_strerror_debug(i32 noundef %6114, ptr noundef @.str.4)
  %6116 = call ptr @__errno_location() #12
  %6117 = load i32, ptr %6116, align 4, !tbaa !5
  %6118 = call ptr @strerror(i32 noundef %6117) #11
  %6119 = call ptr @__errno_location() #12
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6108, ptr noundef @.str.2, i32 noundef %6109, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6112, ptr noundef %6115, ptr noundef %6118, i32 noundef %6120) #11
  br label %6139

6122:                                             ; preds = %6100, %6093
  %6123 = load i32, ptr %136, align 4, !tbaa !5
  %6124 = call ptr @__errno_location() #12
  store i32 %6123, ptr %6124, align 4, !tbaa !5
  %6125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6126 = load i32, ptr @test_count, align 4, !tbaa !5
  %6127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6128 = load i32, ptr %6127, align 4, !tbaa !5
  %6129 = call ptr @s2n_strerror(i32 noundef %6128, ptr noundef @.str.4)
  %6130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6131 = load i32, ptr %6130, align 4, !tbaa !5
  %6132 = call ptr @s2n_strerror_debug(i32 noundef %6131, ptr noundef @.str.4)
  %6133 = call ptr @__errno_location() #12
  %6134 = load i32, ptr %6133, align 4, !tbaa !5
  %6135 = call ptr @strerror(i32 noundef %6134) #11
  %6136 = call ptr @__errno_location() #12
  %6137 = load i32, ptr %6136, align 4, !tbaa !5
  %6138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6125, ptr noundef @.str.5, i32 noundef %6126, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6129, ptr noundef %6132, ptr noundef %6135, i32 noundef %6137) #11
  br label %6139

6139:                                             ; preds = %6122, %6105
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %6140

6140:                                             ; preds = %6139
  br label %6141

6141:                                             ; preds = %6140
  call void @exit(i32 noundef 1) #13
  unreachable

6142:                                             ; No predecessors!
  br label %6143

6143:                                             ; preds = %6142
  br label %6144

6144:                                             ; preds = %6143, %6085
  br label %6145

6145:                                             ; preds = %6144
  br label %6146

6146:                                             ; preds = %6145
  br label %6147

6147:                                             ; preds = %6146
  %6148 = load i32, ptr @test_count, align 4, !tbaa !5
  %6149 = add nsw i32 %6148, 1
  store i32 %6149, ptr @test_count, align 4, !tbaa !5
  %6150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6151 = load i32, ptr %6150, align 4, !tbaa !5
  %6152 = call ptr @s2n_strerror_debug(i32 noundef %6151, ptr noundef @.str.4)
  %6153 = icmp eq ptr %6152, null
  br i1 %6153, label %6154, label %6207

6154:                                             ; preds = %6147
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

6156:                                             ; preds = %6155
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %6157 = call ptr @__errno_location() #12
  %6158 = load i32, ptr %6157, align 4, !tbaa !5
  store i32 %6158, ptr %137, align 4, !tbaa !5
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = call i32 @s2n_print_stacktrace(ptr noundef %6159)
  %6161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6162 = trunc i8 %6161 to i1
  br i1 %6162, label %6163, label %6185

6163:                                             ; preds = %6156
  %6164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6165 = call i32 @fileno(ptr noundef %6164) #11
  %6166 = call i32 @isatty(i32 noundef %6165) #11
  %6167 = icmp ne i32 %6166, 0
  br i1 %6167, label %6168, label %6185

6168:                                             ; preds = %6163
  %6169 = load i32, ptr %137, align 4, !tbaa !5
  %6170 = call ptr @__errno_location() #12
  store i32 %6169, ptr %6170, align 4, !tbaa !5
  %6171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6172 = load i32, ptr @test_count, align 4, !tbaa !5
  %6173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6174 = load i32, ptr %6173, align 4, !tbaa !5
  %6175 = call ptr @s2n_strerror(i32 noundef %6174, ptr noundef @.str.4)
  %6176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6177 = load i32, ptr %6176, align 4, !tbaa !5
  %6178 = call ptr @s2n_strerror_debug(i32 noundef %6177, ptr noundef @.str.4)
  %6179 = call ptr @__errno_location() #12
  %6180 = load i32, ptr %6179, align 4, !tbaa !5
  %6181 = call ptr @strerror(i32 noundef %6180) #11
  %6182 = call ptr @__errno_location() #12
  %6183 = load i32, ptr %6182, align 4, !tbaa !5
  %6184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6171, ptr noundef @.str.2, i32 noundef %6172, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6175, ptr noundef %6178, ptr noundef %6181, i32 noundef %6183) #11
  br label %6202

6185:                                             ; preds = %6163, %6156
  %6186 = load i32, ptr %137, align 4, !tbaa !5
  %6187 = call ptr @__errno_location() #12
  store i32 %6186, ptr %6187, align 4, !tbaa !5
  %6188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6189 = load i32, ptr @test_count, align 4, !tbaa !5
  %6190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6191 = load i32, ptr %6190, align 4, !tbaa !5
  %6192 = call ptr @s2n_strerror(i32 noundef %6191, ptr noundef @.str.4)
  %6193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6194 = load i32, ptr %6193, align 4, !tbaa !5
  %6195 = call ptr @s2n_strerror_debug(i32 noundef %6194, ptr noundef @.str.4)
  %6196 = call ptr @__errno_location() #12
  %6197 = load i32, ptr %6196, align 4, !tbaa !5
  %6198 = call ptr @strerror(i32 noundef %6197) #11
  %6199 = call ptr @__errno_location() #12
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6188, ptr noundef @.str.5, i32 noundef %6189, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 341, ptr noundef %6192, ptr noundef %6195, ptr noundef %6198, i32 noundef %6200) #11
  br label %6202

6202:                                             ; preds = %6185, %6168
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %6203

6203:                                             ; preds = %6202
  br label %6204

6204:                                             ; preds = %6203
  call void @exit(i32 noundef 1) #13
  unreachable

6205:                                             ; No predecessors!
  br label %6206

6206:                                             ; preds = %6205
  br label %6207

6207:                                             ; preds = %6206, %6147
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208
  br label %6210

6210:                                             ; preds = %6209
  br label %6211

6211:                                             ; preds = %6210
  br label %6212

6212:                                             ; preds = %6211
  %6213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6213, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6214 = call ptr @__errno_location() #12
  store i32 0, ptr %6214, align 4, !tbaa !5
  br label %6215

6215:                                             ; preds = %6212
  br label %6216

6216:                                             ; preds = %6215
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

6218:                                             ; preds = %6217
  %6219 = call i32 @s2n_stuffer_free(ptr noundef %132)
  call void @llvm.lifetime.end.p0(i64 40, ptr %132) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %138) #11
  call void @llvm.memset.p0.i64(ptr align 8 %138, i8 0, i64 40, i1 false)
  br label %6220

6220:                                             ; preds = %6218
  %6221 = load i32, ptr @test_count, align 4, !tbaa !5
  %6222 = add nsw i32 %6221, 1
  store i32 %6222, ptr @test_count, align 4, !tbaa !5
  %6223 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %138, i32 noundef 0)
  %6224 = icmp eq i32 %6223, -1
  br i1 %6224, label %6225, label %6278

6225:                                             ; preds = %6220
  br label %6226

6226:                                             ; preds = %6225
  br label %6227

6227:                                             ; preds = %6226
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %6228 = call ptr @__errno_location() #12
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  store i32 %6229, ptr %139, align 4, !tbaa !5
  %6230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6231 = call i32 @s2n_print_stacktrace(ptr noundef %6230)
  %6232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6233 = trunc i8 %6232 to i1
  br i1 %6233, label %6234, label %6256

6234:                                             ; preds = %6227
  %6235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6236 = call i32 @fileno(ptr noundef %6235) #11
  %6237 = call i32 @isatty(i32 noundef %6236) #11
  %6238 = icmp ne i32 %6237, 0
  br i1 %6238, label %6239, label %6256

6239:                                             ; preds = %6234
  %6240 = load i32, ptr %139, align 4, !tbaa !5
  %6241 = call ptr @__errno_location() #12
  store i32 %6240, ptr %6241, align 4, !tbaa !5
  %6242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6243 = load i32, ptr @test_count, align 4, !tbaa !5
  %6244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call ptr @s2n_strerror(i32 noundef %6245, ptr noundef @.str.4)
  %6247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror_debug(i32 noundef %6248, ptr noundef @.str.4)
  %6250 = call ptr @__errno_location() #12
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @strerror(i32 noundef %6251) #11
  %6253 = call ptr @__errno_location() #12
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6242, ptr noundef @.str.2, i32 noundef %6243, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6246, ptr noundef %6249, ptr noundef %6252, i32 noundef %6254) #11
  br label %6273

6256:                                             ; preds = %6234, %6227
  %6257 = load i32, ptr %139, align 4, !tbaa !5
  %6258 = call ptr @__errno_location() #12
  store i32 %6257, ptr %6258, align 4, !tbaa !5
  %6259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6260 = load i32, ptr @test_count, align 4, !tbaa !5
  %6261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6262 = load i32, ptr %6261, align 4, !tbaa !5
  %6263 = call ptr @s2n_strerror(i32 noundef %6262, ptr noundef @.str.4)
  %6264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6265 = load i32, ptr %6264, align 4, !tbaa !5
  %6266 = call ptr @s2n_strerror_debug(i32 noundef %6265, ptr noundef @.str.4)
  %6267 = call ptr @__errno_location() #12
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call ptr @strerror(i32 noundef %6268) #11
  %6270 = call ptr @__errno_location() #12
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6259, ptr noundef @.str.5, i32 noundef %6260, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 347, ptr noundef %6263, ptr noundef %6266, ptr noundef %6269, i32 noundef %6271) #11
  br label %6273

6273:                                             ; preds = %6256, %6239
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6274

6274:                                             ; preds = %6273
  br label %6275

6275:                                             ; preds = %6274
  call void @exit(i32 noundef 1) #13
  unreachable

6276:                                             ; No predecessors!
  br label %6277

6277:                                             ; preds = %6276
  br label %6278

6278:                                             ; preds = %6277, %6220
  br label %6279

6279:                                             ; preds = %6278
  br label %6280

6280:                                             ; preds = %6279
  %6281 = load ptr, ptr %91, align 8, !tbaa !9
  %6282 = getelementptr inbounds %struct.s2n_connection, ptr %6281, i32 0, i32 52
  %6283 = getelementptr inbounds %struct.s2n_handshake, ptr %6282, i32 0, i32 11
  %6284 = load i8, ptr %6283, align 8
  %6285 = and i8 %6284, -9
  %6286 = or i8 %6285, 0
  store i8 %6286, ptr %6283, align 8
  br label %6287

6287:                                             ; preds = %6280
  %6288 = load i32, ptr @test_count, align 4, !tbaa !5
  %6289 = add nsw i32 %6288, 1
  store i32 %6289, ptr @test_count, align 4, !tbaa !5
  %6290 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !45
  %6291 = load ptr, ptr %91, align 8, !tbaa !9
  %6292 = call i32 %6290(ptr noundef %6291, ptr noundef %138)
  %6293 = icmp eq i32 %6292, -1
  br i1 %6293, label %6294, label %6347

6294:                                             ; preds = %6287
  br label %6295

6295:                                             ; preds = %6294
  br label %6296

6296:                                             ; preds = %6295
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %6297 = call ptr @__errno_location() #12
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  store i32 %6298, ptr %140, align 4, !tbaa !5
  %6299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6300 = call i32 @s2n_print_stacktrace(ptr noundef %6299)
  %6301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6302 = trunc i8 %6301 to i1
  br i1 %6302, label %6303, label %6325

6303:                                             ; preds = %6296
  %6304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6305 = call i32 @fileno(ptr noundef %6304) #11
  %6306 = call i32 @isatty(i32 noundef %6305) #11
  %6307 = icmp ne i32 %6306, 0
  br i1 %6307, label %6308, label %6325

6308:                                             ; preds = %6303
  %6309 = load i32, ptr %140, align 4, !tbaa !5
  %6310 = call ptr @__errno_location() #12
  store i32 %6309, ptr %6310, align 4, !tbaa !5
  %6311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6312 = load i32, ptr @test_count, align 4, !tbaa !5
  %6313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call ptr @s2n_strerror(i32 noundef %6314, ptr noundef @.str.4)
  %6316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @s2n_strerror_debug(i32 noundef %6317, ptr noundef @.str.4)
  %6319 = call ptr @__errno_location() #12
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call ptr @strerror(i32 noundef %6320) #11
  %6322 = call ptr @__errno_location() #12
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6311, ptr noundef @.str.2, i32 noundef %6312, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6315, ptr noundef %6318, ptr noundef %6321, i32 noundef %6323) #11
  br label %6342

6325:                                             ; preds = %6303, %6296
  %6326 = load i32, ptr %140, align 4, !tbaa !5
  %6327 = call ptr @__errno_location() #12
  store i32 %6326, ptr %6327, align 4, !tbaa !5
  %6328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6329 = load i32, ptr @test_count, align 4, !tbaa !5
  %6330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6331 = load i32, ptr %6330, align 4, !tbaa !5
  %6332 = call ptr @s2n_strerror(i32 noundef %6331, ptr noundef @.str.4)
  %6333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6334 = load i32, ptr %6333, align 4, !tbaa !5
  %6335 = call ptr @s2n_strerror_debug(i32 noundef %6334, ptr noundef @.str.4)
  %6336 = call ptr @__errno_location() #12
  %6337 = load i32, ptr %6336, align 4, !tbaa !5
  %6338 = call ptr @strerror(i32 noundef %6337) #11
  %6339 = call ptr @__errno_location() #12
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  %6341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6328, ptr noundef @.str.5, i32 noundef %6329, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 350, ptr noundef %6332, ptr noundef %6335, ptr noundef %6338, i32 noundef %6340) #11
  br label %6342

6342:                                             ; preds = %6325, %6308
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6343

6343:                                             ; preds = %6342
  br label %6344

6344:                                             ; preds = %6343
  call void @exit(i32 noundef 1) #13
  unreachable

6345:                                             ; No predecessors!
  br label %6346

6346:                                             ; preds = %6345
  br label %6347

6347:                                             ; preds = %6346, %6287
  br label %6348

6348:                                             ; preds = %6347
  br label %6349

6349:                                             ; preds = %6348
  %6350 = load ptr, ptr %91, align 8, !tbaa !9
  %6351 = getelementptr inbounds %struct.s2n_connection, ptr %6350, i32 0, i32 52
  %6352 = getelementptr inbounds %struct.s2n_handshake, ptr %6351, i32 0, i32 11
  %6353 = load i8, ptr %6352, align 8
  %6354 = and i8 %6353, -9
  %6355 = or i8 %6354, 8
  store i8 %6355, ptr %6352, align 8
  br label %6356

6356:                                             ; preds = %6349
  br label %6357

6357:                                             ; preds = %6356
  br label %6358

6358:                                             ; preds = %6357
  %6359 = load i32, ptr @test_count, align 4, !tbaa !5
  %6360 = add nsw i32 %6359, 1
  store i32 %6360, ptr @test_count, align 4, !tbaa !5
  %6361 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %6362 = load ptr, ptr %91, align 8, !tbaa !9
  %6363 = call i32 %6361(ptr noundef %6362, ptr noundef %138)
  %6364 = icmp eq i32 %6363, -1
  br i1 %6364, label %6418, label %6365

6365:                                             ; preds = %6358
  br label %6366

6366:                                             ; preds = %6365
  br label %6367

6367:                                             ; preds = %6366
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %6368 = call ptr @__errno_location() #12
  %6369 = load i32, ptr %6368, align 4, !tbaa !5
  store i32 %6369, ptr %141, align 4, !tbaa !5
  %6370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6371 = call i32 @s2n_print_stacktrace(ptr noundef %6370)
  %6372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6373 = trunc i8 %6372 to i1
  br i1 %6373, label %6374, label %6396

6374:                                             ; preds = %6367
  %6375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6376 = call i32 @fileno(ptr noundef %6375) #11
  %6377 = call i32 @isatty(i32 noundef %6376) #11
  %6378 = icmp ne i32 %6377, 0
  br i1 %6378, label %6379, label %6396

6379:                                             ; preds = %6374
  %6380 = load i32, ptr %141, align 4, !tbaa !5
  %6381 = call ptr @__errno_location() #12
  store i32 %6380, ptr %6381, align 4, !tbaa !5
  %6382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6383 = load i32, ptr @test_count, align 4, !tbaa !5
  %6384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call ptr @s2n_strerror(i32 noundef %6385, ptr noundef @.str.4)
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef @.str.4)
  %6390 = call ptr @__errno_location() #12
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @strerror(i32 noundef %6391) #11
  %6393 = call ptr @__errno_location() #12
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6382, ptr noundef @.str.2, i32 noundef %6383, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6386, ptr noundef %6389, ptr noundef %6392, i32 noundef %6394) #11
  br label %6413

6396:                                             ; preds = %6374, %6367
  %6397 = load i32, ptr %141, align 4, !tbaa !5
  %6398 = call ptr @__errno_location() #12
  store i32 %6397, ptr %6398, align 4, !tbaa !5
  %6399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6400 = load i32, ptr @test_count, align 4, !tbaa !5
  %6401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6402 = load i32, ptr %6401, align 4, !tbaa !5
  %6403 = call ptr @s2n_strerror(i32 noundef %6402, ptr noundef @.str.4)
  %6404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6405 = load i32, ptr %6404, align 4, !tbaa !5
  %6406 = call ptr @s2n_strerror_debug(i32 noundef %6405, ptr noundef @.str.4)
  %6407 = call ptr @__errno_location() #12
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @strerror(i32 noundef %6408) #11
  %6410 = call ptr @__errno_location() #12
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6399, ptr noundef @.str.5, i32 noundef %6400, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6403, ptr noundef %6406, ptr noundef %6409, i32 noundef %6411) #11
  br label %6413

6413:                                             ; preds = %6396, %6379
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6414

6414:                                             ; preds = %6413
  br label %6415

6415:                                             ; preds = %6414
  call void @exit(i32 noundef 1) #13
  unreachable

6416:                                             ; No predecessors!
  br label %6417

6417:                                             ; preds = %6416
  br label %6418

6418:                                             ; preds = %6417, %6358
  br label %6419

6419:                                             ; preds = %6418
  br label %6420

6420:                                             ; preds = %6419
  br label %6421

6421:                                             ; preds = %6420
  %6422 = load i32, ptr @test_count, align 4, !tbaa !5
  %6423 = add nsw i32 %6422, 1
  store i32 %6423, ptr @test_count, align 4, !tbaa !5
  %6424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = icmp eq i32 %6425, 335544322
  br i1 %6426, label %6480, label %6427

6427:                                             ; preds = %6421
  br label %6428

6428:                                             ; preds = %6427
  br label %6429

6429:                                             ; preds = %6428
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6430 = call ptr @__errno_location() #12
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  store i32 %6431, ptr %142, align 4, !tbaa !5
  %6432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6433 = call i32 @s2n_print_stacktrace(ptr noundef %6432)
  %6434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6435 = trunc i8 %6434 to i1
  br i1 %6435, label %6436, label %6458

6436:                                             ; preds = %6429
  %6437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6438 = call i32 @fileno(ptr noundef %6437) #11
  %6439 = call i32 @isatty(i32 noundef %6438) #11
  %6440 = icmp ne i32 %6439, 0
  br i1 %6440, label %6441, label %6458

6441:                                             ; preds = %6436
  %6442 = load i32, ptr %142, align 4, !tbaa !5
  %6443 = call ptr @__errno_location() #12
  store i32 %6442, ptr %6443, align 4, !tbaa !5
  %6444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6445 = load i32, ptr @test_count, align 4, !tbaa !5
  %6446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6447 = load i32, ptr %6446, align 4, !tbaa !5
  %6448 = call ptr @s2n_strerror(i32 noundef %6447, ptr noundef @.str.4)
  %6449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6450 = load i32, ptr %6449, align 4, !tbaa !5
  %6451 = call ptr @s2n_strerror_debug(i32 noundef %6450, ptr noundef @.str.4)
  %6452 = call ptr @__errno_location() #12
  %6453 = load i32, ptr %6452, align 4, !tbaa !5
  %6454 = call ptr @strerror(i32 noundef %6453) #11
  %6455 = call ptr @__errno_location() #12
  %6456 = load i32, ptr %6455, align 4, !tbaa !5
  %6457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6444, ptr noundef @.str.2, i32 noundef %6445, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6448, ptr noundef %6451, ptr noundef %6454, i32 noundef %6456) #11
  br label %6475

6458:                                             ; preds = %6436, %6429
  %6459 = load i32, ptr %142, align 4, !tbaa !5
  %6460 = call ptr @__errno_location() #12
  store i32 %6459, ptr %6460, align 4, !tbaa !5
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = load i32, ptr @test_count, align 4, !tbaa !5
  %6463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6464 = load i32, ptr %6463, align 4, !tbaa !5
  %6465 = call ptr @s2n_strerror(i32 noundef %6464, ptr noundef @.str.4)
  %6466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6467 = load i32, ptr %6466, align 4, !tbaa !5
  %6468 = call ptr @s2n_strerror_debug(i32 noundef %6467, ptr noundef @.str.4)
  %6469 = call ptr @__errno_location() #12
  %6470 = load i32, ptr %6469, align 4, !tbaa !5
  %6471 = call ptr @strerror(i32 noundef %6470) #11
  %6472 = call ptr @__errno_location() #12
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6461, ptr noundef @.str.5, i32 noundef %6462, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6465, ptr noundef %6468, ptr noundef %6471, i32 noundef %6473) #11
  br label %6475

6475:                                             ; preds = %6458, %6441
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6476

6476:                                             ; preds = %6475
  br label %6477

6477:                                             ; preds = %6476
  call void @exit(i32 noundef 1) #13
  unreachable

6478:                                             ; No predecessors!
  br label %6479

6479:                                             ; preds = %6478
  br label %6480

6480:                                             ; preds = %6479, %6421
  br label %6481

6481:                                             ; preds = %6480
  br label %6482

6482:                                             ; preds = %6481
  br label %6483

6483:                                             ; preds = %6482
  %6484 = load i32, ptr @test_count, align 4, !tbaa !5
  %6485 = add nsw i32 %6484, 1
  store i32 %6485, ptr @test_count, align 4, !tbaa !5
  %6486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  %6488 = call ptr @s2n_strerror_debug(i32 noundef %6487, ptr noundef @.str.4)
  %6489 = icmp eq ptr %6488, null
  br i1 %6489, label %6490, label %6543

6490:                                             ; preds = %6483
  br label %6491

6491:                                             ; preds = %6490
  br label %6492

6492:                                             ; preds = %6491
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6493 = call ptr @__errno_location() #12
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  store i32 %6494, ptr %143, align 4, !tbaa !5
  %6495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6496 = call i32 @s2n_print_stacktrace(ptr noundef %6495)
  %6497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6498 = trunc i8 %6497 to i1
  br i1 %6498, label %6499, label %6521

6499:                                             ; preds = %6492
  %6500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6501 = call i32 @fileno(ptr noundef %6500) #11
  %6502 = call i32 @isatty(i32 noundef %6501) #11
  %6503 = icmp ne i32 %6502, 0
  br i1 %6503, label %6504, label %6521

6504:                                             ; preds = %6499
  %6505 = load i32, ptr %143, align 4, !tbaa !5
  %6506 = call ptr @__errno_location() #12
  store i32 %6505, ptr %6506, align 4, !tbaa !5
  %6507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6508 = load i32, ptr @test_count, align 4, !tbaa !5
  %6509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call ptr @s2n_strerror(i32 noundef %6510, ptr noundef @.str.4)
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror_debug(i32 noundef %6513, ptr noundef @.str.4)
  %6515 = call ptr @__errno_location() #12
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call ptr @strerror(i32 noundef %6516) #11
  %6518 = call ptr @__errno_location() #12
  %6519 = load i32, ptr %6518, align 4, !tbaa !5
  %6520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6507, ptr noundef @.str.2, i32 noundef %6508, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6511, ptr noundef %6514, ptr noundef %6517, i32 noundef %6519) #11
  br label %6538

6521:                                             ; preds = %6499, %6492
  %6522 = load i32, ptr %143, align 4, !tbaa !5
  %6523 = call ptr @__errno_location() #12
  store i32 %6522, ptr %6523, align 4, !tbaa !5
  %6524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6525 = load i32, ptr @test_count, align 4, !tbaa !5
  %6526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6527 = load i32, ptr %6526, align 4, !tbaa !5
  %6528 = call ptr @s2n_strerror(i32 noundef %6527, ptr noundef @.str.4)
  %6529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call ptr @s2n_strerror_debug(i32 noundef %6530, ptr noundef @.str.4)
  %6532 = call ptr @__errno_location() #12
  %6533 = load i32, ptr %6532, align 4, !tbaa !5
  %6534 = call ptr @strerror(i32 noundef %6533) #11
  %6535 = call ptr @__errno_location() #12
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6524, ptr noundef @.str.5, i32 noundef %6525, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 353, ptr noundef %6528, ptr noundef %6531, ptr noundef %6534, i32 noundef %6536) #11
  br label %6538

6538:                                             ; preds = %6521, %6504
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6539

6539:                                             ; preds = %6538
  br label %6540

6540:                                             ; preds = %6539
  call void @exit(i32 noundef 1) #13
  unreachable

6541:                                             ; No predecessors!
  br label %6542

6542:                                             ; preds = %6541
  br label %6543

6543:                                             ; preds = %6542, %6483
  br label %6544

6544:                                             ; preds = %6543
  br label %6545

6545:                                             ; preds = %6544
  br label %6546

6546:                                             ; preds = %6545
  br label %6547

6547:                                             ; preds = %6546
  br label %6548

6548:                                             ; preds = %6547
  %6549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6549, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6550 = call ptr @__errno_location() #12
  store i32 0, ptr %6550, align 4, !tbaa !5
  br label %6551

6551:                                             ; preds = %6548
  br label %6552

6552:                                             ; preds = %6551
  br label %6553

6553:                                             ; preds = %6552
  br label %6554

6554:                                             ; preds = %6553
  %6555 = call i32 @s2n_stuffer_free(ptr noundef %138)
  call void @llvm.lifetime.end.p0(i64 40, ptr %138) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #11
  %6556 = call i32 @s2n_connection_ptr_free(ptr noundef %91)
  %6557 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %6556, ptr %6557, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  %6558 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6558, ptr %145, align 8, !tbaa !9
  br label %6559

6559:                                             ; preds = %6554
  %6560 = load i32, ptr @test_count, align 4, !tbaa !5
  %6561 = add nsw i32 %6560, 1
  store i32 %6561, ptr @test_count, align 4, !tbaa !5
  %6562 = load ptr, ptr %145, align 8, !tbaa !9
  %6563 = icmp eq ptr %6562, null
  br i1 %6563, label %6564, label %6617

6564:                                             ; preds = %6559
  br label %6565

6565:                                             ; preds = %6564
  br label %6566

6566:                                             ; preds = %6565
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %6567 = call ptr @__errno_location() #12
  %6568 = load i32, ptr %6567, align 4, !tbaa !5
  store i32 %6568, ptr %146, align 4, !tbaa !5
  %6569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6570 = call i32 @s2n_print_stacktrace(ptr noundef %6569)
  %6571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6572 = trunc i8 %6571 to i1
  br i1 %6572, label %6573, label %6595

6573:                                             ; preds = %6566
  %6574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6575 = call i32 @fileno(ptr noundef %6574) #11
  %6576 = call i32 @isatty(i32 noundef %6575) #11
  %6577 = icmp ne i32 %6576, 0
  br i1 %6577, label %6578, label %6595

6578:                                             ; preds = %6573
  %6579 = load i32, ptr %146, align 4, !tbaa !5
  %6580 = call ptr @__errno_location() #12
  store i32 %6579, ptr %6580, align 4, !tbaa !5
  %6581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6582 = load i32, ptr @test_count, align 4, !tbaa !5
  %6583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call ptr @s2n_strerror(i32 noundef %6584, ptr noundef @.str.4)
  %6586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  %6588 = call ptr @s2n_strerror_debug(i32 noundef %6587, ptr noundef @.str.4)
  %6589 = call ptr @__errno_location() #12
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call ptr @strerror(i32 noundef %6590) #11
  %6592 = call ptr @__errno_location() #12
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6581, ptr noundef @.str.2, i32 noundef %6582, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 368, ptr noundef %6585, ptr noundef %6588, ptr noundef %6591, i32 noundef %6593) #11
  br label %6612

6595:                                             ; preds = %6573, %6566
  %6596 = load i32, ptr %146, align 4, !tbaa !5
  %6597 = call ptr @__errno_location() #12
  store i32 %6596, ptr %6597, align 4, !tbaa !5
  %6598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6599 = load i32, ptr @test_count, align 4, !tbaa !5
  %6600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6601 = load i32, ptr %6600, align 4, !tbaa !5
  %6602 = call ptr @s2n_strerror(i32 noundef %6601, ptr noundef @.str.4)
  %6603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  %6605 = call ptr @s2n_strerror_debug(i32 noundef %6604, ptr noundef @.str.4)
  %6606 = call ptr @__errno_location() #12
  %6607 = load i32, ptr %6606, align 4, !tbaa !5
  %6608 = call ptr @strerror(i32 noundef %6607) #11
  %6609 = call ptr @__errno_location() #12
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  %6611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6598, ptr noundef @.str.5, i32 noundef %6599, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 368, ptr noundef %6602, ptr noundef %6605, ptr noundef %6608, i32 noundef %6610) #11
  br label %6612

6612:                                             ; preds = %6595, %6578
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6613

6613:                                             ; preds = %6612
  br label %6614

6614:                                             ; preds = %6613
  call void @exit(i32 noundef 1) #13
  unreachable

6615:                                             ; No predecessors!
  br label %6616

6616:                                             ; preds = %6615
  br label %6617

6617:                                             ; preds = %6616, %6559
  br label %6618

6618:                                             ; preds = %6617
  br label %6619

6619:                                             ; preds = %6618
  %6620 = load ptr, ptr %145, align 8, !tbaa !9
  %6621 = getelementptr inbounds %struct.s2n_connection, ptr %6620, i32 0, i32 52
  %6622 = getelementptr inbounds %struct.s2n_handshake, ptr %6621, i32 0, i32 11
  %6623 = load i8, ptr %6622, align 8
  %6624 = and i8 %6623, -9
  %6625 = or i8 %6624, 8
  store i8 %6625, ptr %6622, align 8
  %6626 = load ptr, ptr %145, align 8, !tbaa !9
  %6627 = load i32, ptr %6626, align 8
  %6628 = and i32 %6627, -9
  %6629 = or i32 %6628, 8
  store i32 %6629, ptr %6626, align 8
  br label %6630

6630:                                             ; preds = %6619
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  store i64 19, ptr %147, align 8, !tbaa !51
  %6631 = load i64, ptr %147, align 8, !tbaa !51
  %6632 = icmp ne i64 %6631, 0
  br i1 %6632, label %6633, label %6695

6633:                                             ; preds = %6630
  %6634 = load ptr, ptr %145, align 8, !tbaa !9
  %6635 = getelementptr inbounds %struct.s2n_connection, ptr %6634, i32 0, i32 52
  %6636 = getelementptr inbounds %struct.s2n_handshake, ptr %6635, i32 0, i32 4
  %6637 = getelementptr inbounds [48 x i8], ptr %6636, i64 0, i64 0
  %6638 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %6639 = load i64, ptr %147, align 8, !tbaa !51
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6637, ptr align 16 %6638, i64 %6639, i1 false)
  %6640 = icmp eq ptr %6637, null
  br i1 %6640, label %6641, label %6694

6641:                                             ; preds = %6633
  br label %6642

6642:                                             ; preds = %6641
  br label %6643

6643:                                             ; preds = %6642
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6644 = call ptr @__errno_location() #12
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  store i32 %6645, ptr %148, align 4, !tbaa !5
  %6646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6647 = call i32 @s2n_print_stacktrace(ptr noundef %6646)
  %6648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6649 = trunc i8 %6648 to i1
  br i1 %6649, label %6650, label %6672

6650:                                             ; preds = %6643
  %6651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6652 = call i32 @fileno(ptr noundef %6651) #11
  %6653 = call i32 @isatty(i32 noundef %6652) #11
  %6654 = icmp ne i32 %6653, 0
  br i1 %6654, label %6655, label %6672

6655:                                             ; preds = %6650
  %6656 = load i32, ptr %148, align 4, !tbaa !5
  %6657 = call ptr @__errno_location() #12
  store i32 %6656, ptr %6657, align 4, !tbaa !5
  %6658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6659 = load i32, ptr @test_count, align 4, !tbaa !5
  %6660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6661 = load i32, ptr %6660, align 4, !tbaa !5
  %6662 = call ptr @s2n_strerror(i32 noundef %6661, ptr noundef @.str.4)
  %6663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = call ptr @s2n_strerror_debug(i32 noundef %6664, ptr noundef @.str.4)
  %6666 = call ptr @__errno_location() #12
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  %6668 = call ptr @strerror(i32 noundef %6667) #11
  %6669 = call ptr @__errno_location() #12
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  %6671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6658, ptr noundef @.str.2, i32 noundef %6659, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 372, ptr noundef %6662, ptr noundef %6665, ptr noundef %6668, i32 noundef %6670) #11
  br label %6689

6672:                                             ; preds = %6650, %6643
  %6673 = load i32, ptr %148, align 4, !tbaa !5
  %6674 = call ptr @__errno_location() #12
  store i32 %6673, ptr %6674, align 4, !tbaa !5
  %6675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6676 = load i32, ptr @test_count, align 4, !tbaa !5
  %6677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6678 = load i32, ptr %6677, align 4, !tbaa !5
  %6679 = call ptr @s2n_strerror(i32 noundef %6678, ptr noundef @.str.4)
  %6680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6681 = load i32, ptr %6680, align 4, !tbaa !5
  %6682 = call ptr @s2n_strerror_debug(i32 noundef %6681, ptr noundef @.str.4)
  %6683 = call ptr @__errno_location() #12
  %6684 = load i32, ptr %6683, align 4, !tbaa !5
  %6685 = call ptr @strerror(i32 noundef %6684) #11
  %6686 = call ptr @__errno_location() #12
  %6687 = load i32, ptr %6686, align 4, !tbaa !5
  %6688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6675, ptr noundef @.str.5, i32 noundef %6676, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 372, ptr noundef %6679, ptr noundef %6682, ptr noundef %6685, i32 noundef %6687) #11
  br label %6689

6689:                                             ; preds = %6672, %6655
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6690

6690:                                             ; preds = %6689
  br label %6691

6691:                                             ; preds = %6690
  call void @exit(i32 noundef 1) #13
  unreachable

6692:                                             ; No predecessors!
  br label %6693

6693:                                             ; preds = %6692
  br label %6694

6694:                                             ; preds = %6693, %6633
  br label %6695

6695:                                             ; preds = %6694, %6630
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  br label %6696

6696:                                             ; preds = %6695
  br label %6697

6697:                                             ; preds = %6696
  br label %6698

6698:                                             ; preds = %6697
  call void @llvm.lifetime.start.p0(i64 8, ptr %149) #11
  store i64 19, ptr %149, align 8, !tbaa !51
  %6699 = load i64, ptr %149, align 8, !tbaa !51
  %6700 = icmp ne i64 %6699, 0
  br i1 %6700, label %6701, label %6763

6701:                                             ; preds = %6698
  %6702 = load ptr, ptr %145, align 8, !tbaa !9
  %6703 = getelementptr inbounds %struct.s2n_connection, ptr %6702, i32 0, i32 52
  %6704 = getelementptr inbounds %struct.s2n_handshake, ptr %6703, i32 0, i32 3
  %6705 = getelementptr inbounds [48 x i8], ptr %6704, i64 0, i64 0
  %6706 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %6707 = load i64, ptr %149, align 8, !tbaa !51
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6705, ptr align 16 %6706, i64 %6707, i1 false)
  %6708 = icmp eq ptr %6705, null
  br i1 %6708, label %6709, label %6762

6709:                                             ; preds = %6701
  br label %6710

6710:                                             ; preds = %6709
  br label %6711

6711:                                             ; preds = %6710
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %6712 = call ptr @__errno_location() #12
  %6713 = load i32, ptr %6712, align 4, !tbaa !5
  store i32 %6713, ptr %150, align 4, !tbaa !5
  %6714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6715 = call i32 @s2n_print_stacktrace(ptr noundef %6714)
  %6716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6717 = trunc i8 %6716 to i1
  br i1 %6717, label %6718, label %6740

6718:                                             ; preds = %6711
  %6719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6720 = call i32 @fileno(ptr noundef %6719) #11
  %6721 = call i32 @isatty(i32 noundef %6720) #11
  %6722 = icmp ne i32 %6721, 0
  br i1 %6722, label %6723, label %6740

6723:                                             ; preds = %6718
  %6724 = load i32, ptr %150, align 4, !tbaa !5
  %6725 = call ptr @__errno_location() #12
  store i32 %6724, ptr %6725, align 4, !tbaa !5
  %6726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6727 = load i32, ptr @test_count, align 4, !tbaa !5
  %6728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6729 = load i32, ptr %6728, align 4, !tbaa !5
  %6730 = call ptr @s2n_strerror(i32 noundef %6729, ptr noundef @.str.4)
  %6731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6732 = load i32, ptr %6731, align 4, !tbaa !5
  %6733 = call ptr @s2n_strerror_debug(i32 noundef %6732, ptr noundef @.str.4)
  %6734 = call ptr @__errno_location() #12
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  %6736 = call ptr @strerror(i32 noundef %6735) #11
  %6737 = call ptr @__errno_location() #12
  %6738 = load i32, ptr %6737, align 4, !tbaa !5
  %6739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6726, ptr noundef @.str.2, i32 noundef %6727, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 374, ptr noundef %6730, ptr noundef %6733, ptr noundef %6736, i32 noundef %6738) #11
  br label %6757

6740:                                             ; preds = %6718, %6711
  %6741 = load i32, ptr %150, align 4, !tbaa !5
  %6742 = call ptr @__errno_location() #12
  store i32 %6741, ptr %6742, align 4, !tbaa !5
  %6743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6744 = load i32, ptr @test_count, align 4, !tbaa !5
  %6745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call ptr @s2n_strerror(i32 noundef %6746, ptr noundef @.str.4)
  %6748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6749 = load i32, ptr %6748, align 4, !tbaa !5
  %6750 = call ptr @s2n_strerror_debug(i32 noundef %6749, ptr noundef @.str.4)
  %6751 = call ptr @__errno_location() #12
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call ptr @strerror(i32 noundef %6752) #11
  %6754 = call ptr @__errno_location() #12
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6743, ptr noundef @.str.5, i32 noundef %6744, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 374, ptr noundef %6747, ptr noundef %6750, ptr noundef %6753, i32 noundef %6755) #11
  br label %6757

6757:                                             ; preds = %6740, %6723
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %6758

6758:                                             ; preds = %6757
  br label %6759

6759:                                             ; preds = %6758
  call void @exit(i32 noundef 1) #13
  unreachable

6760:                                             ; No predecessors!
  br label %6761

6761:                                             ; preds = %6760
  br label %6762

6762:                                             ; preds = %6761, %6701
  br label %6763

6763:                                             ; preds = %6762, %6698
  call void @llvm.lifetime.end.p0(i64 8, ptr %149) #11
  br label %6764

6764:                                             ; preds = %6763
  br label %6765

6765:                                             ; preds = %6764
  %6766 = load ptr, ptr %145, align 8, !tbaa !9
  %6767 = getelementptr inbounds %struct.s2n_connection, ptr %6766, i32 0, i32 52
  %6768 = getelementptr inbounds %struct.s2n_handshake, ptr %6767, i32 0, i32 5
  store i8 19, ptr %6768, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %6769 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6769, ptr %151, align 8, !tbaa !9
  br label %6770

6770:                                             ; preds = %6765
  %6771 = load i32, ptr @test_count, align 4, !tbaa !5
  %6772 = add nsw i32 %6771, 1
  store i32 %6772, ptr @test_count, align 4, !tbaa !5
  %6773 = load ptr, ptr %151, align 8, !tbaa !9
  %6774 = icmp eq ptr %6773, null
  br i1 %6774, label %6775, label %6828

6775:                                             ; preds = %6770
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %6778 = call ptr @__errno_location() #12
  %6779 = load i32, ptr %6778, align 4, !tbaa !5
  store i32 %6779, ptr %152, align 4, !tbaa !5
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = call i32 @s2n_print_stacktrace(ptr noundef %6780)
  %6782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6783 = trunc i8 %6782 to i1
  br i1 %6783, label %6784, label %6806

6784:                                             ; preds = %6777
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = call i32 @fileno(ptr noundef %6785) #11
  %6787 = call i32 @isatty(i32 noundef %6786) #11
  %6788 = icmp ne i32 %6787, 0
  br i1 %6788, label %6789, label %6806

6789:                                             ; preds = %6784
  %6790 = load i32, ptr %152, align 4, !tbaa !5
  %6791 = call ptr @__errno_location() #12
  store i32 %6790, ptr %6791, align 4, !tbaa !5
  %6792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6793 = load i32, ptr @test_count, align 4, !tbaa !5
  %6794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  %6796 = call ptr @s2n_strerror(i32 noundef %6795, ptr noundef @.str.4)
  %6797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6798 = load i32, ptr %6797, align 4, !tbaa !5
  %6799 = call ptr @s2n_strerror_debug(i32 noundef %6798, ptr noundef @.str.4)
  %6800 = call ptr @__errno_location() #12
  %6801 = load i32, ptr %6800, align 4, !tbaa !5
  %6802 = call ptr @strerror(i32 noundef %6801) #11
  %6803 = call ptr @__errno_location() #12
  %6804 = load i32, ptr %6803, align 4, !tbaa !5
  %6805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6792, ptr noundef @.str.2, i32 noundef %6793, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 379, ptr noundef %6796, ptr noundef %6799, ptr noundef %6802, i32 noundef %6804) #11
  br label %6823

6806:                                             ; preds = %6784, %6777
  %6807 = load i32, ptr %152, align 4, !tbaa !5
  %6808 = call ptr @__errno_location() #12
  store i32 %6807, ptr %6808, align 4, !tbaa !5
  %6809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6810 = load i32, ptr @test_count, align 4, !tbaa !5
  %6811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @s2n_strerror(i32 noundef %6812, ptr noundef @.str.4)
  %6814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call ptr @s2n_strerror_debug(i32 noundef %6815, ptr noundef @.str.4)
  %6817 = call ptr @__errno_location() #12
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @strerror(i32 noundef %6818) #11
  %6820 = call ptr @__errno_location() #12
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6809, ptr noundef @.str.5, i32 noundef %6810, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 379, ptr noundef %6813, ptr noundef %6816, ptr noundef %6819, i32 noundef %6821) #11
  br label %6823

6823:                                             ; preds = %6806, %6789
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %6824

6824:                                             ; preds = %6823
  br label %6825

6825:                                             ; preds = %6824
  call void @exit(i32 noundef 1) #13
  unreachable

6826:                                             ; No predecessors!
  br label %6827

6827:                                             ; preds = %6826
  br label %6828

6828:                                             ; preds = %6827, %6770
  br label %6829

6829:                                             ; preds = %6828
  br label %6830

6830:                                             ; preds = %6829
  %6831 = load ptr, ptr %151, align 8, !tbaa !9
  %6832 = getelementptr inbounds %struct.s2n_connection, ptr %6831, i32 0, i32 52
  %6833 = getelementptr inbounds %struct.s2n_handshake, ptr %6832, i32 0, i32 11
  %6834 = load i8, ptr %6833, align 8
  %6835 = and i8 %6834, -9
  %6836 = or i8 %6835, 8
  store i8 %6836, ptr %6833, align 8
  %6837 = load ptr, ptr %151, align 8, !tbaa !9
  %6838 = load i32, ptr %6837, align 8
  %6839 = and i32 %6838, -9
  %6840 = or i32 %6839, 8
  store i32 %6840, ptr %6837, align 8
  br label %6841

6841:                                             ; preds = %6830
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  store i64 19, ptr %153, align 8, !tbaa !51
  %6842 = load i64, ptr %153, align 8, !tbaa !51
  %6843 = icmp ne i64 %6842, 0
  br i1 %6843, label %6844, label %6906

6844:                                             ; preds = %6841
  %6845 = load ptr, ptr %151, align 8, !tbaa !9
  %6846 = getelementptr inbounds %struct.s2n_connection, ptr %6845, i32 0, i32 52
  %6847 = getelementptr inbounds %struct.s2n_handshake, ptr %6846, i32 0, i32 4
  %6848 = getelementptr inbounds [48 x i8], ptr %6847, i64 0, i64 0
  %6849 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %6850 = load i64, ptr %153, align 8, !tbaa !51
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6848, ptr align 16 %6849, i64 %6850, i1 false)
  %6851 = icmp eq ptr %6848, null
  br i1 %6851, label %6852, label %6905

6852:                                             ; preds = %6844
  br label %6853

6853:                                             ; preds = %6852
  br label %6854

6854:                                             ; preds = %6853
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %6855 = call ptr @__errno_location() #12
  %6856 = load i32, ptr %6855, align 4, !tbaa !5
  store i32 %6856, ptr %154, align 4, !tbaa !5
  %6857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6858 = call i32 @s2n_print_stacktrace(ptr noundef %6857)
  %6859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6860 = trunc i8 %6859 to i1
  br i1 %6860, label %6861, label %6883

6861:                                             ; preds = %6854
  %6862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6863 = call i32 @fileno(ptr noundef %6862) #11
  %6864 = call i32 @isatty(i32 noundef %6863) #11
  %6865 = icmp ne i32 %6864, 0
  br i1 %6865, label %6866, label %6883

6866:                                             ; preds = %6861
  %6867 = load i32, ptr %154, align 4, !tbaa !5
  %6868 = call ptr @__errno_location() #12
  store i32 %6867, ptr %6868, align 4, !tbaa !5
  %6869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6870 = load i32, ptr @test_count, align 4, !tbaa !5
  %6871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6872 = load i32, ptr %6871, align 4, !tbaa !5
  %6873 = call ptr @s2n_strerror(i32 noundef %6872, ptr noundef @.str.4)
  %6874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6875 = load i32, ptr %6874, align 4, !tbaa !5
  %6876 = call ptr @s2n_strerror_debug(i32 noundef %6875, ptr noundef @.str.4)
  %6877 = call ptr @__errno_location() #12
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  %6879 = call ptr @strerror(i32 noundef %6878) #11
  %6880 = call ptr @__errno_location() #12
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6869, ptr noundef @.str.2, i32 noundef %6870, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 383, ptr noundef %6873, ptr noundef %6876, ptr noundef %6879, i32 noundef %6881) #11
  br label %6900

6883:                                             ; preds = %6861, %6854
  %6884 = load i32, ptr %154, align 4, !tbaa !5
  %6885 = call ptr @__errno_location() #12
  store i32 %6884, ptr %6885, align 4, !tbaa !5
  %6886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6887 = load i32, ptr @test_count, align 4, !tbaa !5
  %6888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6889 = load i32, ptr %6888, align 4, !tbaa !5
  %6890 = call ptr @s2n_strerror(i32 noundef %6889, ptr noundef @.str.4)
  %6891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6892 = load i32, ptr %6891, align 4, !tbaa !5
  %6893 = call ptr @s2n_strerror_debug(i32 noundef %6892, ptr noundef @.str.4)
  %6894 = call ptr @__errno_location() #12
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = call ptr @strerror(i32 noundef %6895) #11
  %6897 = call ptr @__errno_location() #12
  %6898 = load i32, ptr %6897, align 4, !tbaa !5
  %6899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6886, ptr noundef @.str.5, i32 noundef %6887, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 383, ptr noundef %6890, ptr noundef %6893, ptr noundef %6896, i32 noundef %6898) #11
  br label %6900

6900:                                             ; preds = %6883, %6866
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %6901

6901:                                             ; preds = %6900
  br label %6902

6902:                                             ; preds = %6901
  call void @exit(i32 noundef 1) #13
  unreachable

6903:                                             ; No predecessors!
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904, %6844
  br label %6906

6906:                                             ; preds = %6905, %6841
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  br label %6907

6907:                                             ; preds = %6906
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #11
  store i64 19, ptr %155, align 8, !tbaa !51
  %6910 = load i64, ptr %155, align 8, !tbaa !51
  %6911 = icmp ne i64 %6910, 0
  br i1 %6911, label %6912, label %6974

6912:                                             ; preds = %6909
  %6913 = load ptr, ptr %151, align 8, !tbaa !9
  %6914 = getelementptr inbounds %struct.s2n_connection, ptr %6913, i32 0, i32 52
  %6915 = getelementptr inbounds %struct.s2n_handshake, ptr %6914, i32 0, i32 3
  %6916 = getelementptr inbounds [48 x i8], ptr %6915, i64 0, i64 0
  %6917 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %6918 = load i64, ptr %155, align 8, !tbaa !51
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %6916, ptr align 16 %6917, i64 %6918, i1 false)
  %6919 = icmp eq ptr %6916, null
  br i1 %6919, label %6920, label %6973

6920:                                             ; preds = %6912
  br label %6921

6921:                                             ; preds = %6920
  br label %6922

6922:                                             ; preds = %6921
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %6923 = call ptr @__errno_location() #12
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  store i32 %6924, ptr %156, align 4, !tbaa !5
  %6925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6926 = call i32 @s2n_print_stacktrace(ptr noundef %6925)
  %6927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6928 = trunc i8 %6927 to i1
  br i1 %6928, label %6929, label %6951

6929:                                             ; preds = %6922
  %6930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6931 = call i32 @fileno(ptr noundef %6930) #11
  %6932 = call i32 @isatty(i32 noundef %6931) #11
  %6933 = icmp ne i32 %6932, 0
  br i1 %6933, label %6934, label %6951

6934:                                             ; preds = %6929
  %6935 = load i32, ptr %156, align 4, !tbaa !5
  %6936 = call ptr @__errno_location() #12
  store i32 %6935, ptr %6936, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = load i32, ptr @test_count, align 4, !tbaa !5
  %6939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror(i32 noundef %6940, ptr noundef @.str.4)
  %6942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @s2n_strerror_debug(i32 noundef %6943, ptr noundef @.str.4)
  %6945 = call ptr @__errno_location() #12
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call ptr @strerror(i32 noundef %6946) #11
  %6948 = call ptr @__errno_location() #12
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6937, ptr noundef @.str.2, i32 noundef %6938, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 385, ptr noundef %6941, ptr noundef %6944, ptr noundef %6947, i32 noundef %6949) #11
  br label %6968

6951:                                             ; preds = %6929, %6922
  %6952 = load i32, ptr %156, align 4, !tbaa !5
  %6953 = call ptr @__errno_location() #12
  store i32 %6952, ptr %6953, align 4, !tbaa !5
  %6954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6955 = load i32, ptr @test_count, align 4, !tbaa !5
  %6956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @s2n_strerror(i32 noundef %6957, ptr noundef @.str.4)
  %6959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @s2n_strerror_debug(i32 noundef %6960, ptr noundef @.str.4)
  %6962 = call ptr @__errno_location() #12
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call ptr @strerror(i32 noundef %6963) #11
  %6965 = call ptr @__errno_location() #12
  %6966 = load i32, ptr %6965, align 4, !tbaa !5
  %6967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6954, ptr noundef @.str.5, i32 noundef %6955, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 385, ptr noundef %6958, ptr noundef %6961, ptr noundef %6964, i32 noundef %6966) #11
  br label %6968

6968:                                             ; preds = %6951, %6934
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969
  call void @exit(i32 noundef 1) #13
  unreachable

6971:                                             ; No predecessors!
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972, %6912
  br label %6974

6974:                                             ; preds = %6973, %6909
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #11
  br label %6975

6975:                                             ; preds = %6974
  br label %6976

6976:                                             ; preds = %6975
  %6977 = load ptr, ptr %151, align 8, !tbaa !9
  %6978 = getelementptr inbounds %struct.s2n_connection, ptr %6977, i32 0, i32 52
  %6979 = getelementptr inbounds %struct.s2n_handshake, ptr %6978, i32 0, i32 5
  store i8 19, ptr %6979, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 40, ptr %157) #11
  call void @llvm.memset.p0.i64(ptr align 8 %157, i8 0, i64 40, i1 false)
  br label %6980

6980:                                             ; preds = %6976
  %6981 = load i32, ptr @test_count, align 4, !tbaa !5
  %6982 = add nsw i32 %6981, 1
  store i32 %6982, ptr @test_count, align 4, !tbaa !5
  %6983 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %157, i32 noundef 0)
  %6984 = icmp eq i32 %6983, -1
  br i1 %6984, label %6985, label %7038

6985:                                             ; preds = %6980
  br label %6986

6986:                                             ; preds = %6985
  br label %6987

6987:                                             ; preds = %6986
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %6988 = call ptr @__errno_location() #12
  %6989 = load i32, ptr %6988, align 4, !tbaa !5
  store i32 %6989, ptr %158, align 4, !tbaa !5
  %6990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6991 = call i32 @s2n_print_stacktrace(ptr noundef %6990)
  %6992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6993 = trunc i8 %6992 to i1
  br i1 %6993, label %6994, label %7016

6994:                                             ; preds = %6987
  %6995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6996 = call i32 @fileno(ptr noundef %6995) #11
  %6997 = call i32 @isatty(i32 noundef %6996) #11
  %6998 = icmp ne i32 %6997, 0
  br i1 %6998, label %6999, label %7016

6999:                                             ; preds = %6994
  %7000 = load i32, ptr %158, align 4, !tbaa !5
  %7001 = call ptr @__errno_location() #12
  store i32 %7000, ptr %7001, align 4, !tbaa !5
  %7002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7003 = load i32, ptr @test_count, align 4, !tbaa !5
  %7004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @s2n_strerror(i32 noundef %7005, ptr noundef @.str.4)
  %7007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @s2n_strerror_debug(i32 noundef %7008, ptr noundef @.str.4)
  %7010 = call ptr @__errno_location() #12
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call ptr @strerror(i32 noundef %7011) #11
  %7013 = call ptr @__errno_location() #12
  %7014 = load i32, ptr %7013, align 4, !tbaa !5
  %7015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7002, ptr noundef @.str.2, i32 noundef %7003, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7006, ptr noundef %7009, ptr noundef %7012, i32 noundef %7014) #11
  br label %7033

7016:                                             ; preds = %6994, %6987
  %7017 = load i32, ptr %158, align 4, !tbaa !5
  %7018 = call ptr @__errno_location() #12
  store i32 %7017, ptr %7018, align 4, !tbaa !5
  %7019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7020 = load i32, ptr @test_count, align 4, !tbaa !5
  %7021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @s2n_strerror(i32 noundef %7022, ptr noundef @.str.4)
  %7024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @s2n_strerror_debug(i32 noundef %7025, ptr noundef @.str.4)
  %7027 = call ptr @__errno_location() #12
  %7028 = load i32, ptr %7027, align 4, !tbaa !5
  %7029 = call ptr @strerror(i32 noundef %7028) #11
  %7030 = call ptr @__errno_location() #12
  %7031 = load i32, ptr %7030, align 4, !tbaa !5
  %7032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7019, ptr noundef @.str.5, i32 noundef %7020, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 389, ptr noundef %7023, ptr noundef %7026, ptr noundef %7029, i32 noundef %7031) #11
  br label %7033

7033:                                             ; preds = %7016, %6999
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  call void @exit(i32 noundef 1) #13
  unreachable

7036:                                             ; No predecessors!
  br label %7037

7037:                                             ; preds = %7036
  br label %7038

7038:                                             ; preds = %7037, %6980
  br label %7039

7039:                                             ; preds = %7038
  br label %7040

7040:                                             ; preds = %7039
  br label %7041

7041:                                             ; preds = %7040
  %7042 = load i32, ptr @test_count, align 4, !tbaa !5
  %7043 = add nsw i32 %7042, 1
  store i32 %7043, ptr @test_count, align 4, !tbaa !5
  %7044 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 5), align 8, !tbaa !43
  %7045 = load ptr, ptr %145, align 8, !tbaa !9
  %7046 = call zeroext i1 %7044(ptr noundef %7045)
  br i1 %7046, label %7100, label %7047

7047:                                             ; preds = %7041
  br label %7048

7048:                                             ; preds = %7047
  br label %7049

7049:                                             ; preds = %7048
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %7050 = call ptr @__errno_location() #12
  %7051 = load i32, ptr %7050, align 4, !tbaa !5
  store i32 %7051, ptr %159, align 4, !tbaa !5
  %7052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7053 = call i32 @s2n_print_stacktrace(ptr noundef %7052)
  %7054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7055 = trunc i8 %7054 to i1
  br i1 %7055, label %7056, label %7078

7056:                                             ; preds = %7049
  %7057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7058 = call i32 @fileno(ptr noundef %7057) #11
  %7059 = call i32 @isatty(i32 noundef %7058) #11
  %7060 = icmp ne i32 %7059, 0
  br i1 %7060, label %7061, label %7078

7061:                                             ; preds = %7056
  %7062 = load i32, ptr %159, align 4, !tbaa !5
  %7063 = call ptr @__errno_location() #12
  store i32 %7062, ptr %7063, align 4, !tbaa !5
  %7064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7065 = load i32, ptr @test_count, align 4, !tbaa !5
  %7066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7067 = load i32, ptr %7066, align 4, !tbaa !5
  %7068 = call ptr @s2n_strerror(i32 noundef %7067, ptr noundef @.str.4)
  %7069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call ptr @s2n_strerror_debug(i32 noundef %7070, ptr noundef @.str.4)
  %7072 = call ptr @__errno_location() #12
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call ptr @strerror(i32 noundef %7073) #11
  %7075 = call ptr @__errno_location() #12
  %7076 = load i32, ptr %7075, align 4, !tbaa !5
  %7077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7064, ptr noundef @.str.2, i32 noundef %7065, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 390, ptr noundef %7068, ptr noundef %7071, ptr noundef %7074, i32 noundef %7076) #11
  br label %7095

7078:                                             ; preds = %7056, %7049
  %7079 = load i32, ptr %159, align 4, !tbaa !5
  %7080 = call ptr @__errno_location() #12
  store i32 %7079, ptr %7080, align 4, !tbaa !5
  %7081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7082 = load i32, ptr @test_count, align 4, !tbaa !5
  %7083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call ptr @s2n_strerror(i32 noundef %7084, ptr noundef @.str.4)
  %7086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call ptr @s2n_strerror_debug(i32 noundef %7087, ptr noundef @.str.4)
  %7089 = call ptr @__errno_location() #12
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  %7091 = call ptr @strerror(i32 noundef %7090) #11
  %7092 = call ptr @__errno_location() #12
  %7093 = load i32, ptr %7092, align 4, !tbaa !5
  %7094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7081, ptr noundef @.str.5, i32 noundef %7082, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 390, ptr noundef %7085, ptr noundef %7088, ptr noundef %7091, i32 noundef %7093) #11
  br label %7095

7095:                                             ; preds = %7078, %7061
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  call void @exit(i32 noundef 1) #13
  unreachable

7098:                                             ; No predecessors!
  br label %7099

7099:                                             ; preds = %7098
  br label %7100

7100:                                             ; preds = %7099, %7041
  br label %7101

7101:                                             ; preds = %7100
  br label %7102

7102:                                             ; preds = %7101
  br label %7103

7103:                                             ; preds = %7102
  %7104 = load i32, ptr @test_count, align 4, !tbaa !5
  %7105 = add nsw i32 %7104, 1
  store i32 %7105, ptr @test_count, align 4, !tbaa !5
  %7106 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 3), align 8, !tbaa !45
  %7107 = load ptr, ptr %145, align 8, !tbaa !9
  %7108 = call i32 %7106(ptr noundef %7107, ptr noundef %157)
  %7109 = icmp eq i32 %7108, -1
  br i1 %7109, label %7110, label %7163

7110:                                             ; preds = %7103
  br label %7111

7111:                                             ; preds = %7110
  br label %7112

7112:                                             ; preds = %7111
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %7113 = call ptr @__errno_location() #12
  %7114 = load i32, ptr %7113, align 4, !tbaa !5
  store i32 %7114, ptr %160, align 4, !tbaa !5
  %7115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7116 = call i32 @s2n_print_stacktrace(ptr noundef %7115)
  %7117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7118 = trunc i8 %7117 to i1
  br i1 %7118, label %7119, label %7141

7119:                                             ; preds = %7112
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = call i32 @fileno(ptr noundef %7120) #11
  %7122 = call i32 @isatty(i32 noundef %7121) #11
  %7123 = icmp ne i32 %7122, 0
  br i1 %7123, label %7124, label %7141

7124:                                             ; preds = %7119
  %7125 = load i32, ptr %160, align 4, !tbaa !5
  %7126 = call ptr @__errno_location() #12
  store i32 %7125, ptr %7126, align 4, !tbaa !5
  %7127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7128 = load i32, ptr @test_count, align 4, !tbaa !5
  %7129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7130 = load i32, ptr %7129, align 4, !tbaa !5
  %7131 = call ptr @s2n_strerror(i32 noundef %7130, ptr noundef @.str.4)
  %7132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7133 = load i32, ptr %7132, align 4, !tbaa !5
  %7134 = call ptr @s2n_strerror_debug(i32 noundef %7133, ptr noundef @.str.4)
  %7135 = call ptr @__errno_location() #12
  %7136 = load i32, ptr %7135, align 4, !tbaa !5
  %7137 = call ptr @strerror(i32 noundef %7136) #11
  %7138 = call ptr @__errno_location() #12
  %7139 = load i32, ptr %7138, align 4, !tbaa !5
  %7140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7127, ptr noundef @.str.2, i32 noundef %7128, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7131, ptr noundef %7134, ptr noundef %7137, i32 noundef %7139) #11
  br label %7158

7141:                                             ; preds = %7119, %7112
  %7142 = load i32, ptr %160, align 4, !tbaa !5
  %7143 = call ptr @__errno_location() #12
  store i32 %7142, ptr %7143, align 4, !tbaa !5
  %7144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7145 = load i32, ptr @test_count, align 4, !tbaa !5
  %7146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7147 = load i32, ptr %7146, align 4, !tbaa !5
  %7148 = call ptr @s2n_strerror(i32 noundef %7147, ptr noundef @.str.4)
  %7149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7150 = load i32, ptr %7149, align 4, !tbaa !5
  %7151 = call ptr @s2n_strerror_debug(i32 noundef %7150, ptr noundef @.str.4)
  %7152 = call ptr @__errno_location() #12
  %7153 = load i32, ptr %7152, align 4, !tbaa !5
  %7154 = call ptr @strerror(i32 noundef %7153) #11
  %7155 = call ptr @__errno_location() #12
  %7156 = load i32, ptr %7155, align 4, !tbaa !5
  %7157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7144, ptr noundef @.str.5, i32 noundef %7145, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7148, ptr noundef %7151, ptr noundef %7154, i32 noundef %7156) #11
  br label %7158

7158:                                             ; preds = %7141, %7124
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %7159

7159:                                             ; preds = %7158
  br label %7160

7160:                                             ; preds = %7159
  call void @exit(i32 noundef 1) #13
  unreachable

7161:                                             ; No predecessors!
  br label %7162

7162:                                             ; preds = %7161
  br label %7163

7163:                                             ; preds = %7162, %7103
  br label %7164

7164:                                             ; preds = %7163
  br label %7165

7165:                                             ; preds = %7164
  call void @llvm.lifetime.start.p0(i64 40, ptr %161) #11
  call void @llvm.memset.p0.i64(ptr align 8 %161, i8 0, i64 40, i1 false)
  br label %7166

7166:                                             ; preds = %7165
  %7167 = load i32, ptr @test_count, align 4, !tbaa !5
  %7168 = add nsw i32 %7167, 1
  store i32 %7168, ptr @test_count, align 4, !tbaa !5
  %7169 = getelementptr inbounds [19 x i8], ptr %17, i64 0, i64 0
  %7170 = getelementptr inbounds [19 x i8], ptr %18, i64 0, i64 0
  %7171 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef %161, ptr noundef %7169, ptr noundef %7170, i8 noundef zeroext 19)
  %7172 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  store i32 %7171, ptr %7172, align 4
  %7173 = getelementptr inbounds %struct.s2n_result, ptr %162, i32 0, i32 0
  %7174 = load i32, ptr %7173, align 4
  %7175 = call zeroext i1 @s2n_result_is_ok(i32 %7174)
  br i1 %7175, label %7229, label %7176

7176:                                             ; preds = %7166
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %7179 = call ptr @__errno_location() #12
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  store i32 %7180, ptr %163, align 4, !tbaa !5
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = call i32 @s2n_print_stacktrace(ptr noundef %7181)
  %7183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7184 = trunc i8 %7183 to i1
  br i1 %7184, label %7185, label %7207

7185:                                             ; preds = %7178
  %7186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7187 = call i32 @fileno(ptr noundef %7186) #11
  %7188 = call i32 @isatty(i32 noundef %7187) #11
  %7189 = icmp ne i32 %7188, 0
  br i1 %7189, label %7190, label %7207

7190:                                             ; preds = %7185
  %7191 = load i32, ptr %163, align 4, !tbaa !5
  %7192 = call ptr @__errno_location() #12
  store i32 %7191, ptr %7192, align 4, !tbaa !5
  %7193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7194 = load i32, ptr @test_count, align 4, !tbaa !5
  %7195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7196 = load i32, ptr %7195, align 4, !tbaa !5
  %7197 = call ptr @s2n_strerror(i32 noundef %7196, ptr noundef @.str.4)
  %7198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = call ptr @s2n_strerror_debug(i32 noundef %7199, ptr noundef @.str.4)
  %7201 = call ptr @__errno_location() #12
  %7202 = load i32, ptr %7201, align 4, !tbaa !5
  %7203 = call ptr @strerror(i32 noundef %7202) #11
  %7204 = call ptr @__errno_location() #12
  %7205 = load i32, ptr %7204, align 4, !tbaa !5
  %7206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7193, ptr noundef @.str.2, i32 noundef %7194, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 396, ptr noundef %7197, ptr noundef %7200, ptr noundef %7203, i32 noundef %7205) #11
  br label %7224

7207:                                             ; preds = %7185, %7178
  %7208 = load i32, ptr %163, align 4, !tbaa !5
  %7209 = call ptr @__errno_location() #12
  store i32 %7208, ptr %7209, align 4, !tbaa !5
  %7210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7211 = load i32, ptr @test_count, align 4, !tbaa !5
  %7212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @s2n_strerror(i32 noundef %7213, ptr noundef @.str.4)
  %7215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call ptr @s2n_strerror_debug(i32 noundef %7216, ptr noundef @.str.4)
  %7218 = call ptr @__errno_location() #12
  %7219 = load i32, ptr %7218, align 4, !tbaa !5
  %7220 = call ptr @strerror(i32 noundef %7219) #11
  %7221 = call ptr @__errno_location() #12
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  %7223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7210, ptr noundef @.str.5, i32 noundef %7211, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 396, ptr noundef %7214, ptr noundef %7217, ptr noundef %7220, i32 noundef %7222) #11
  br label %7224

7224:                                             ; preds = %7207, %7190
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %7225

7225:                                             ; preds = %7224
  br label %7226

7226:                                             ; preds = %7225
  call void @exit(i32 noundef 1) #13
  unreachable

7227:                                             ; No predecessors!
  br label %7228

7228:                                             ; preds = %7227
  br label %7229

7229:                                             ; preds = %7228, %7166
  br label %7230

7230:                                             ; preds = %7229
  br label %7231

7231:                                             ; preds = %7230
  br label %7232

7232:                                             ; preds = %7231
  %7233 = load i32, ptr @test_count, align 4, !tbaa !5
  %7234 = add nsw i32 %7233, 1
  store i32 %7234, ptr @test_count, align 4, !tbaa !5
  %7235 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 2
  %7236 = load i32, ptr %7235, align 4, !tbaa !46
  %7237 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 1
  %7238 = load i32, ptr %7237, align 8, !tbaa !47
  %7239 = sub i32 %7236, %7238
  %7240 = getelementptr inbounds %struct.s2n_stuffer, ptr %161, i32 0, i32 2
  %7241 = load i32, ptr %7240, align 4, !tbaa !46
  %7242 = getelementptr inbounds %struct.s2n_stuffer, ptr %161, i32 0, i32 1
  %7243 = load i32, ptr %7242, align 8, !tbaa !47
  %7244 = sub i32 %7241, %7243
  %7245 = icmp eq i32 %7239, %7244
  br i1 %7245, label %7299, label %7246

7246:                                             ; preds = %7232
  br label %7247

7247:                                             ; preds = %7246
  br label %7248

7248:                                             ; preds = %7247
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7249 = call ptr @__errno_location() #12
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  store i32 %7250, ptr %164, align 4, !tbaa !5
  %7251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7252 = call i32 @s2n_print_stacktrace(ptr noundef %7251)
  %7253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7254 = trunc i8 %7253 to i1
  br i1 %7254, label %7255, label %7277

7255:                                             ; preds = %7248
  %7256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7257 = call i32 @fileno(ptr noundef %7256) #11
  %7258 = call i32 @isatty(i32 noundef %7257) #11
  %7259 = icmp ne i32 %7258, 0
  br i1 %7259, label %7260, label %7277

7260:                                             ; preds = %7255
  %7261 = load i32, ptr %164, align 4, !tbaa !5
  %7262 = call ptr @__errno_location() #12
  store i32 %7261, ptr %7262, align 4, !tbaa !5
  %7263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7264 = load i32, ptr @test_count, align 4, !tbaa !5
  %7265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7266 = load i32, ptr %7265, align 4, !tbaa !5
  %7267 = call ptr @s2n_strerror(i32 noundef %7266, ptr noundef @.str.4)
  %7268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7269 = load i32, ptr %7268, align 4, !tbaa !5
  %7270 = call ptr @s2n_strerror_debug(i32 noundef %7269, ptr noundef @.str.4)
  %7271 = call ptr @__errno_location() #12
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @strerror(i32 noundef %7272) #11
  %7274 = call ptr @__errno_location() #12
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7263, ptr noundef @.str.2, i32 noundef %7264, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 397, ptr noundef %7267, ptr noundef %7270, ptr noundef %7273, i32 noundef %7275) #11
  br label %7294

7277:                                             ; preds = %7255, %7248
  %7278 = load i32, ptr %164, align 4, !tbaa !5
  %7279 = call ptr @__errno_location() #12
  store i32 %7278, ptr %7279, align 4, !tbaa !5
  %7280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7281 = load i32, ptr @test_count, align 4, !tbaa !5
  %7282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7283 = load i32, ptr %7282, align 4, !tbaa !5
  %7284 = call ptr @s2n_strerror(i32 noundef %7283, ptr noundef @.str.4)
  %7285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call ptr @s2n_strerror_debug(i32 noundef %7286, ptr noundef @.str.4)
  %7288 = call ptr @__errno_location() #12
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  %7290 = call ptr @strerror(i32 noundef %7289) #11
  %7291 = call ptr @__errno_location() #12
  %7292 = load i32, ptr %7291, align 4, !tbaa !5
  %7293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7280, ptr noundef @.str.5, i32 noundef %7281, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 397, ptr noundef %7284, ptr noundef %7287, ptr noundef %7290, i32 noundef %7292) #11
  br label %7294

7294:                                             ; preds = %7277, %7260
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7295

7295:                                             ; preds = %7294
  br label %7296

7296:                                             ; preds = %7295
  call void @exit(i32 noundef 1) #13
  unreachable

7297:                                             ; No predecessors!
  br label %7298

7298:                                             ; preds = %7297
  br label %7299

7299:                                             ; preds = %7298, %7232
  br label %7300

7300:                                             ; preds = %7299
  br label %7301

7301:                                             ; preds = %7300
  br label %7302

7302:                                             ; preds = %7301
  %7303 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 2
  %7304 = load i32, ptr %7303, align 4, !tbaa !46
  %7305 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 1
  %7306 = load i32, ptr %7305, align 8, !tbaa !47
  %7307 = sub i32 %7304, %7306
  %7308 = icmp ne i32 %7307, 0
  br i1 %7308, label %7309, label %7383

7309:                                             ; preds = %7302
  br label %7310

7310:                                             ; preds = %7309
  %7311 = load i32, ptr @test_count, align 4, !tbaa !5
  %7312 = add nsw i32 %7311, 1
  store i32 %7312, ptr @test_count, align 4, !tbaa !5
  %7313 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 0
  %7314 = getelementptr inbounds %struct.s2n_blob, ptr %7313, i32 0, i32 0
  %7315 = load ptr, ptr %7314, align 8, !tbaa !53
  %7316 = getelementptr inbounds %struct.s2n_stuffer, ptr %161, i32 0, i32 0
  %7317 = getelementptr inbounds %struct.s2n_blob, ptr %7316, i32 0, i32 0
  %7318 = load ptr, ptr %7317, align 8, !tbaa !53
  %7319 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 2
  %7320 = load i32, ptr %7319, align 4, !tbaa !46
  %7321 = getelementptr inbounds %struct.s2n_stuffer, ptr %157, i32 0, i32 1
  %7322 = load i32, ptr %7321, align 8, !tbaa !47
  %7323 = sub i32 %7320, %7322
  %7324 = zext i32 %7323 to i64
  %7325 = call i32 @memcmp(ptr noundef %7315, ptr noundef %7318, i64 noundef %7324) #14
  %7326 = icmp eq i32 %7325, 0
  br i1 %7326, label %7380, label %7327

7327:                                             ; preds = %7310
  br label %7328

7328:                                             ; preds = %7327
  br label %7329

7329:                                             ; preds = %7328
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %7330 = call ptr @__errno_location() #12
  %7331 = load i32, ptr %7330, align 4, !tbaa !5
  store i32 %7331, ptr %165, align 4, !tbaa !5
  %7332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7333 = call i32 @s2n_print_stacktrace(ptr noundef %7332)
  %7334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7335 = trunc i8 %7334 to i1
  br i1 %7335, label %7336, label %7358

7336:                                             ; preds = %7329
  %7337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7338 = call i32 @fileno(ptr noundef %7337) #11
  %7339 = call i32 @isatty(i32 noundef %7338) #11
  %7340 = icmp ne i32 %7339, 0
  br i1 %7340, label %7341, label %7358

7341:                                             ; preds = %7336
  %7342 = load i32, ptr %165, align 4, !tbaa !5
  %7343 = call ptr @__errno_location() #12
  store i32 %7342, ptr %7343, align 4, !tbaa !5
  %7344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7345 = load i32, ptr @test_count, align 4, !tbaa !5
  %7346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7347 = load i32, ptr %7346, align 4, !tbaa !5
  %7348 = call ptr @s2n_strerror(i32 noundef %7347, ptr noundef @.str.4)
  %7349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7350 = load i32, ptr %7349, align 4, !tbaa !5
  %7351 = call ptr @s2n_strerror_debug(i32 noundef %7350, ptr noundef @.str.4)
  %7352 = call ptr @__errno_location() #12
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  %7354 = call ptr @strerror(i32 noundef %7353) #11
  %7355 = call ptr @__errno_location() #12
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  %7357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7344, ptr noundef @.str.2, i32 noundef %7345, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 399, ptr noundef %7348, ptr noundef %7351, ptr noundef %7354, i32 noundef %7356) #11
  br label %7375

7358:                                             ; preds = %7336, %7329
  %7359 = load i32, ptr %165, align 4, !tbaa !5
  %7360 = call ptr @__errno_location() #12
  store i32 %7359, ptr %7360, align 4, !tbaa !5
  %7361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7362 = load i32, ptr @test_count, align 4, !tbaa !5
  %7363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7364 = load i32, ptr %7363, align 4, !tbaa !5
  %7365 = call ptr @s2n_strerror(i32 noundef %7364, ptr noundef @.str.4)
  %7366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7367 = load i32, ptr %7366, align 4, !tbaa !5
  %7368 = call ptr @s2n_strerror_debug(i32 noundef %7367, ptr noundef @.str.4)
  %7369 = call ptr @__errno_location() #12
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  %7371 = call ptr @strerror(i32 noundef %7370) #11
  %7372 = call ptr @__errno_location() #12
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7361, ptr noundef @.str.5, i32 noundef %7362, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 399, ptr noundef %7365, ptr noundef %7368, ptr noundef %7371, i32 noundef %7373) #11
  br label %7375

7375:                                             ; preds = %7358, %7341
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %7376

7376:                                             ; preds = %7375
  br label %7377

7377:                                             ; preds = %7376
  call void @exit(i32 noundef 1) #13
  unreachable

7378:                                             ; No predecessors!
  br label %7379

7379:                                             ; preds = %7378
  br label %7380

7380:                                             ; preds = %7379, %7310
  br label %7381

7381:                                             ; preds = %7380
  br label %7382

7382:                                             ; preds = %7381
  br label %7383

7383:                                             ; preds = %7382, %7302
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

7385:                                             ; preds = %7384
  br label %7386

7386:                                             ; preds = %7385
  %7387 = load i32, ptr @test_count, align 4, !tbaa !5
  %7388 = add nsw i32 %7387, 1
  store i32 %7388, ptr @test_count, align 4, !tbaa !5
  %7389 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_renegotiation_info_extension, i32 0, i32 4), align 8, !tbaa !48
  %7390 = load ptr, ptr %151, align 8, !tbaa !9
  %7391 = call i32 %7389(ptr noundef %7390, ptr noundef %157)
  %7392 = icmp eq i32 %7391, -1
  br i1 %7392, label %7393, label %7446

7393:                                             ; preds = %7386
  br label %7394

7394:                                             ; preds = %7393
  br label %7395

7395:                                             ; preds = %7394
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7396 = call ptr @__errno_location() #12
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  store i32 %7397, ptr %166, align 4, !tbaa !5
  %7398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7399 = call i32 @s2n_print_stacktrace(ptr noundef %7398)
  %7400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7401 = trunc i8 %7400 to i1
  br i1 %7401, label %7402, label %7424

7402:                                             ; preds = %7395
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @fileno(ptr noundef %7403) #11
  %7405 = call i32 @isatty(i32 noundef %7404) #11
  %7406 = icmp ne i32 %7405, 0
  br i1 %7406, label %7407, label %7424

7407:                                             ; preds = %7402
  %7408 = load i32, ptr %166, align 4, !tbaa !5
  %7409 = call ptr @__errno_location() #12
  store i32 %7408, ptr %7409, align 4, !tbaa !5
  %7410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7411 = load i32, ptr @test_count, align 4, !tbaa !5
  %7412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7413 = load i32, ptr %7412, align 4, !tbaa !5
  %7414 = call ptr @s2n_strerror(i32 noundef %7413, ptr noundef @.str.4)
  %7415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7416 = load i32, ptr %7415, align 4, !tbaa !5
  %7417 = call ptr @s2n_strerror_debug(i32 noundef %7416, ptr noundef @.str.4)
  %7418 = call ptr @__errno_location() #12
  %7419 = load i32, ptr %7418, align 4, !tbaa !5
  %7420 = call ptr @strerror(i32 noundef %7419) #11
  %7421 = call ptr @__errno_location() #12
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7410, ptr noundef @.str.2, i32 noundef %7411, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7414, ptr noundef %7417, ptr noundef %7420, i32 noundef %7422) #11
  br label %7441

7424:                                             ; preds = %7402, %7395
  %7425 = load i32, ptr %166, align 4, !tbaa !5
  %7426 = call ptr @__errno_location() #12
  store i32 %7425, ptr %7426, align 4, !tbaa !5
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = load i32, ptr @test_count, align 4, !tbaa !5
  %7429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7430 = load i32, ptr %7429, align 4, !tbaa !5
  %7431 = call ptr @s2n_strerror(i32 noundef %7430, ptr noundef @.str.4)
  %7432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7433 = load i32, ptr %7432, align 4, !tbaa !5
  %7434 = call ptr @s2n_strerror_debug(i32 noundef %7433, ptr noundef @.str.4)
  %7435 = call ptr @__errno_location() #12
  %7436 = load i32, ptr %7435, align 4, !tbaa !5
  %7437 = call ptr @strerror(i32 noundef %7436) #11
  %7438 = call ptr @__errno_location() #12
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7427, ptr noundef @.str.5, i32 noundef %7428, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 402, ptr noundef %7431, ptr noundef %7434, ptr noundef %7437, i32 noundef %7439) #11
  br label %7441

7441:                                             ; preds = %7424, %7407
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7442

7442:                                             ; preds = %7441
  br label %7443

7443:                                             ; preds = %7442
  call void @exit(i32 noundef 1) #13
  unreachable

7444:                                             ; No predecessors!
  br label %7445

7445:                                             ; preds = %7444
  br label %7446

7446:                                             ; preds = %7445, %7386
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

7448:                                             ; preds = %7447
  %7449 = call i32 @s2n_stuffer_free(ptr noundef %161)
  call void @llvm.lifetime.end.p0(i64 40, ptr %161) #11
  %7450 = call i32 @s2n_stuffer_free(ptr noundef %157)
  call void @llvm.lifetime.end.p0(i64 40, ptr %157) #11
  %7451 = call i32 @s2n_connection_ptr_free(ptr noundef %151)
  %7452 = getelementptr inbounds %struct.s2n_result, ptr %167, i32 0, i32 0
  store i32 %7451, ptr %7452, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  %7453 = call i32 @s2n_connection_ptr_free(ptr noundef %145)
  %7454 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  store i32 %7453, ptr %7454, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %169) #11
  %7455 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7455, ptr %169, align 8, !tbaa !9
  br label %7456

7456:                                             ; preds = %7448
  %7457 = load i32, ptr @test_count, align 4, !tbaa !5
  %7458 = add nsw i32 %7457, 1
  store i32 %7458, ptr @test_count, align 4, !tbaa !5
  %7459 = load ptr, ptr %169, align 8, !tbaa !9
  %7460 = icmp eq ptr %7459, null
  br i1 %7460, label %7461, label %7514

7461:                                             ; preds = %7456
  br label %7462

7462:                                             ; preds = %7461
  br label %7463

7463:                                             ; preds = %7462
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %7464 = call ptr @__errno_location() #12
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  store i32 %7465, ptr %170, align 4, !tbaa !5
  %7466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7467 = call i32 @s2n_print_stacktrace(ptr noundef %7466)
  %7468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7469 = trunc i8 %7468 to i1
  br i1 %7469, label %7470, label %7492

7470:                                             ; preds = %7463
  %7471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7472 = call i32 @fileno(ptr noundef %7471) #11
  %7473 = call i32 @isatty(i32 noundef %7472) #11
  %7474 = icmp ne i32 %7473, 0
  br i1 %7474, label %7475, label %7492

7475:                                             ; preds = %7470
  %7476 = load i32, ptr %170, align 4, !tbaa !5
  %7477 = call ptr @__errno_location() #12
  store i32 %7476, ptr %7477, align 4, !tbaa !5
  %7478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7479 = load i32, ptr @test_count, align 4, !tbaa !5
  %7480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7481 = load i32, ptr %7480, align 4, !tbaa !5
  %7482 = call ptr @s2n_strerror(i32 noundef %7481, ptr noundef @.str.4)
  %7483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7484 = load i32, ptr %7483, align 4, !tbaa !5
  %7485 = call ptr @s2n_strerror_debug(i32 noundef %7484, ptr noundef @.str.4)
  %7486 = call ptr @__errno_location() #12
  %7487 = load i32, ptr %7486, align 4, !tbaa !5
  %7488 = call ptr @strerror(i32 noundef %7487) #11
  %7489 = call ptr @__errno_location() #12
  %7490 = load i32, ptr %7489, align 4, !tbaa !5
  %7491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7478, ptr noundef @.str.2, i32 noundef %7479, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 415, ptr noundef %7482, ptr noundef %7485, ptr noundef %7488, i32 noundef %7490) #11
  br label %7509

7492:                                             ; preds = %7470, %7463
  %7493 = load i32, ptr %170, align 4, !tbaa !5
  %7494 = call ptr @__errno_location() #12
  store i32 %7493, ptr %7494, align 4, !tbaa !5
  %7495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7496 = load i32, ptr @test_count, align 4, !tbaa !5
  %7497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7498 = load i32, ptr %7497, align 4, !tbaa !5
  %7499 = call ptr @s2n_strerror(i32 noundef %7498, ptr noundef @.str.4)
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror_debug(i32 noundef %7501, ptr noundef @.str.4)
  %7503 = call ptr @__errno_location() #12
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @strerror(i32 noundef %7504) #11
  %7506 = call ptr @__errno_location() #12
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7495, ptr noundef @.str.5, i32 noundef %7496, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 415, ptr noundef %7499, ptr noundef %7502, ptr noundef %7505, i32 noundef %7507) #11
  br label %7509

7509:                                             ; preds = %7492, %7475
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %7510

7510:                                             ; preds = %7509
  br label %7511

7511:                                             ; preds = %7510
  call void @exit(i32 noundef 1) #13
  unreachable

7512:                                             ; No predecessors!
  br label %7513

7513:                                             ; preds = %7512
  br label %7514

7514:                                             ; preds = %7513, %7456
  br label %7515

7515:                                             ; preds = %7514
  br label %7516

7516:                                             ; preds = %7515
  br label %7517

7517:                                             ; preds = %7516
  %7518 = load i32, ptr @test_count, align 4, !tbaa !5
  %7519 = add nsw i32 %7518, 1
  store i32 %7519, ptr @test_count, align 4, !tbaa !5
  %7520 = load ptr, ptr %169, align 8, !tbaa !9
  %7521 = load ptr, ptr %12, align 8, !tbaa !9
  %7522 = call i32 @s2n_connection_set_config(ptr noundef %7520, ptr noundef %7521)
  %7523 = icmp eq i32 %7522, -1
  br i1 %7523, label %7524, label %7577

7524:                                             ; preds = %7517
  br label %7525

7525:                                             ; preds = %7524
  br label %7526

7526:                                             ; preds = %7525
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7527 = call ptr @__errno_location() #12
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  store i32 %7528, ptr %171, align 4, !tbaa !5
  %7529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7530 = call i32 @s2n_print_stacktrace(ptr noundef %7529)
  %7531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7532 = trunc i8 %7531 to i1
  br i1 %7532, label %7533, label %7555

7533:                                             ; preds = %7526
  %7534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7535 = call i32 @fileno(ptr noundef %7534) #11
  %7536 = call i32 @isatty(i32 noundef %7535) #11
  %7537 = icmp ne i32 %7536, 0
  br i1 %7537, label %7538, label %7555

7538:                                             ; preds = %7533
  %7539 = load i32, ptr %171, align 4, !tbaa !5
  %7540 = call ptr @__errno_location() #12
  store i32 %7539, ptr %7540, align 4, !tbaa !5
  %7541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7542 = load i32, ptr @test_count, align 4, !tbaa !5
  %7543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7544 = load i32, ptr %7543, align 4, !tbaa !5
  %7545 = call ptr @s2n_strerror(i32 noundef %7544, ptr noundef @.str.4)
  %7546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  %7548 = call ptr @s2n_strerror_debug(i32 noundef %7547, ptr noundef @.str.4)
  %7549 = call ptr @__errno_location() #12
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  %7551 = call ptr @strerror(i32 noundef %7550) #11
  %7552 = call ptr @__errno_location() #12
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  %7554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7541, ptr noundef @.str.2, i32 noundef %7542, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7545, ptr noundef %7548, ptr noundef %7551, i32 noundef %7553) #11
  br label %7572

7555:                                             ; preds = %7533, %7526
  %7556 = load i32, ptr %171, align 4, !tbaa !5
  %7557 = call ptr @__errno_location() #12
  store i32 %7556, ptr %7557, align 4, !tbaa !5
  %7558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7559 = load i32, ptr @test_count, align 4, !tbaa !5
  %7560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7561 = load i32, ptr %7560, align 4, !tbaa !5
  %7562 = call ptr @s2n_strerror(i32 noundef %7561, ptr noundef @.str.4)
  %7563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call ptr @s2n_strerror_debug(i32 noundef %7564, ptr noundef @.str.4)
  %7566 = call ptr @__errno_location() #12
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @strerror(i32 noundef %7567) #11
  %7569 = call ptr @__errno_location() #12
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7558, ptr noundef @.str.5, i32 noundef %7559, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 416, ptr noundef %7562, ptr noundef %7565, ptr noundef %7568, i32 noundef %7570) #11
  br label %7572

7572:                                             ; preds = %7555, %7538
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %7573

7573:                                             ; preds = %7572
  br label %7574

7574:                                             ; preds = %7573
  call void @exit(i32 noundef 1) #13
  unreachable

7575:                                             ; No predecessors!
  br label %7576

7576:                                             ; preds = %7575
  br label %7577

7577:                                             ; preds = %7576, %7517
  br label %7578

7578:                                             ; preds = %7577
  br label %7579

7579:                                             ; preds = %7578
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #11
  %7580 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7580, ptr %172, align 8, !tbaa !9
  br label %7581

7581:                                             ; preds = %7579
  %7582 = load i32, ptr @test_count, align 4, !tbaa !5
  %7583 = add nsw i32 %7582, 1
  store i32 %7583, ptr @test_count, align 4, !tbaa !5
  %7584 = load ptr, ptr %172, align 8, !tbaa !9
  %7585 = icmp eq ptr %7584, null
  br i1 %7585, label %7586, label %7639

7586:                                             ; preds = %7581
  br label %7587

7587:                                             ; preds = %7586
  br label %7588

7588:                                             ; preds = %7587
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %7589 = call ptr @__errno_location() #12
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  store i32 %7590, ptr %173, align 4, !tbaa !5
  %7591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7592 = call i32 @s2n_print_stacktrace(ptr noundef %7591)
  %7593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7594 = trunc i8 %7593 to i1
  br i1 %7594, label %7595, label %7617

7595:                                             ; preds = %7588
  %7596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7597 = call i32 @fileno(ptr noundef %7596) #11
  %7598 = call i32 @isatty(i32 noundef %7597) #11
  %7599 = icmp ne i32 %7598, 0
  br i1 %7599, label %7600, label %7617

7600:                                             ; preds = %7595
  %7601 = load i32, ptr %173, align 4, !tbaa !5
  %7602 = call ptr @__errno_location() #12
  store i32 %7601, ptr %7602, align 4, !tbaa !5
  %7603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7604 = load i32, ptr @test_count, align 4, !tbaa !5
  %7605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7606 = load i32, ptr %7605, align 4, !tbaa !5
  %7607 = call ptr @s2n_strerror(i32 noundef %7606, ptr noundef @.str.4)
  %7608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7609 = load i32, ptr %7608, align 4, !tbaa !5
  %7610 = call ptr @s2n_strerror_debug(i32 noundef %7609, ptr noundef @.str.4)
  %7611 = call ptr @__errno_location() #12
  %7612 = load i32, ptr %7611, align 4, !tbaa !5
  %7613 = call ptr @strerror(i32 noundef %7612) #11
  %7614 = call ptr @__errno_location() #12
  %7615 = load i32, ptr %7614, align 4, !tbaa !5
  %7616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7603, ptr noundef @.str.2, i32 noundef %7604, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 420, ptr noundef %7607, ptr noundef %7610, ptr noundef %7613, i32 noundef %7615) #11
  br label %7634

7617:                                             ; preds = %7595, %7588
  %7618 = load i32, ptr %173, align 4, !tbaa !5
  %7619 = call ptr @__errno_location() #12
  store i32 %7618, ptr %7619, align 4, !tbaa !5
  %7620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7621 = load i32, ptr @test_count, align 4, !tbaa !5
  %7622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7623 = load i32, ptr %7622, align 4, !tbaa !5
  %7624 = call ptr @s2n_strerror(i32 noundef %7623, ptr noundef @.str.4)
  %7625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @s2n_strerror_debug(i32 noundef %7626, ptr noundef @.str.4)
  %7628 = call ptr @__errno_location() #12
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @strerror(i32 noundef %7629) #11
  %7631 = call ptr @__errno_location() #12
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7620, ptr noundef @.str.5, i32 noundef %7621, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 420, ptr noundef %7624, ptr noundef %7627, ptr noundef %7630, i32 noundef %7632) #11
  br label %7634

7634:                                             ; preds = %7617, %7600
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7635

7635:                                             ; preds = %7634
  br label %7636

7636:                                             ; preds = %7635
  call void @exit(i32 noundef 1) #13
  unreachable

7637:                                             ; No predecessors!
  br label %7638

7638:                                             ; preds = %7637
  br label %7639

7639:                                             ; preds = %7638, %7581
  br label %7640

7640:                                             ; preds = %7639
  br label %7641

7641:                                             ; preds = %7640
  br label %7642

7642:                                             ; preds = %7641
  %7643 = load i32, ptr @test_count, align 4, !tbaa !5
  %7644 = add nsw i32 %7643, 1
  store i32 %7644, ptr @test_count, align 4, !tbaa !5
  %7645 = load ptr, ptr %172, align 8, !tbaa !9
  %7646 = load ptr, ptr %12, align 8, !tbaa !9
  %7647 = call i32 @s2n_connection_set_config(ptr noundef %7645, ptr noundef %7646)
  %7648 = icmp eq i32 %7647, -1
  br i1 %7648, label %7649, label %7702

7649:                                             ; preds = %7642
  br label %7650

7650:                                             ; preds = %7649
  br label %7651

7651:                                             ; preds = %7650
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7652 = call ptr @__errno_location() #12
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  store i32 %7653, ptr %174, align 4, !tbaa !5
  %7654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7655 = call i32 @s2n_print_stacktrace(ptr noundef %7654)
  %7656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7657 = trunc i8 %7656 to i1
  br i1 %7657, label %7658, label %7680

7658:                                             ; preds = %7651
  %7659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7660 = call i32 @fileno(ptr noundef %7659) #11
  %7661 = call i32 @isatty(i32 noundef %7660) #11
  %7662 = icmp ne i32 %7661, 0
  br i1 %7662, label %7663, label %7680

7663:                                             ; preds = %7658
  %7664 = load i32, ptr %174, align 4, !tbaa !5
  %7665 = call ptr @__errno_location() #12
  store i32 %7664, ptr %7665, align 4, !tbaa !5
  %7666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7667 = load i32, ptr @test_count, align 4, !tbaa !5
  %7668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7669 = load i32, ptr %7668, align 4, !tbaa !5
  %7670 = call ptr @s2n_strerror(i32 noundef %7669, ptr noundef @.str.4)
  %7671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7672 = load i32, ptr %7671, align 4, !tbaa !5
  %7673 = call ptr @s2n_strerror_debug(i32 noundef %7672, ptr noundef @.str.4)
  %7674 = call ptr @__errno_location() #12
  %7675 = load i32, ptr %7674, align 4, !tbaa !5
  %7676 = call ptr @strerror(i32 noundef %7675) #11
  %7677 = call ptr @__errno_location() #12
  %7678 = load i32, ptr %7677, align 4, !tbaa !5
  %7679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7666, ptr noundef @.str.2, i32 noundef %7667, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 421, ptr noundef %7670, ptr noundef %7673, ptr noundef %7676, i32 noundef %7678) #11
  br label %7697

7680:                                             ; preds = %7658, %7651
  %7681 = load i32, ptr %174, align 4, !tbaa !5
  %7682 = call ptr @__errno_location() #12
  store i32 %7681, ptr %7682, align 4, !tbaa !5
  %7683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7684 = load i32, ptr @test_count, align 4, !tbaa !5
  %7685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7686 = load i32, ptr %7685, align 4, !tbaa !5
  %7687 = call ptr @s2n_strerror(i32 noundef %7686, ptr noundef @.str.4)
  %7688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7689 = load i32, ptr %7688, align 4, !tbaa !5
  %7690 = call ptr @s2n_strerror_debug(i32 noundef %7689, ptr noundef @.str.4)
  %7691 = call ptr @__errno_location() #12
  %7692 = load i32, ptr %7691, align 4, !tbaa !5
  %7693 = call ptr @strerror(i32 noundef %7692) #11
  %7694 = call ptr @__errno_location() #12
  %7695 = load i32, ptr %7694, align 4, !tbaa !5
  %7696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7683, ptr noundef @.str.5, i32 noundef %7684, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 421, ptr noundef %7687, ptr noundef %7690, ptr noundef %7693, i32 noundef %7695) #11
  br label %7697

7697:                                             ; preds = %7680, %7663
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %7698

7698:                                             ; preds = %7697
  br label %7699

7699:                                             ; preds = %7698
  call void @exit(i32 noundef 1) #13
  unreachable

7700:                                             ; No predecessors!
  br label %7701

7701:                                             ; preds = %7700
  br label %7702

7702:                                             ; preds = %7701, %7642
  br label %7703

7703:                                             ; preds = %7702
  br label %7704

7704:                                             ; preds = %7703
  br label %7705

7705:                                             ; preds = %7704
  %7706 = load i32, ptr @test_count, align 4, !tbaa !5
  %7707 = add nsw i32 %7706, 1
  store i32 %7707, ptr @test_count, align 4, !tbaa !5
  %7708 = load ptr, ptr %169, align 8, !tbaa !9
  %7709 = call i32 @s2n_client_hello_send(ptr noundef %7708)
  %7710 = icmp eq i32 %7709, -1
  br i1 %7710, label %7711, label %7764

7711:                                             ; preds = %7705
  br label %7712

7712:                                             ; preds = %7711
  br label %7713

7713:                                             ; preds = %7712
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %7714 = call ptr @__errno_location() #12
  %7715 = load i32, ptr %7714, align 4, !tbaa !5
  store i32 %7715, ptr %175, align 4, !tbaa !5
  %7716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7717 = call i32 @s2n_print_stacktrace(ptr noundef %7716)
  %7718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7719 = trunc i8 %7718 to i1
  br i1 %7719, label %7720, label %7742

7720:                                             ; preds = %7713
  %7721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7722 = call i32 @fileno(ptr noundef %7721) #11
  %7723 = call i32 @isatty(i32 noundef %7722) #11
  %7724 = icmp ne i32 %7723, 0
  br i1 %7724, label %7725, label %7742

7725:                                             ; preds = %7720
  %7726 = load i32, ptr %175, align 4, !tbaa !5
  %7727 = call ptr @__errno_location() #12
  store i32 %7726, ptr %7727, align 4, !tbaa !5
  %7728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7729 = load i32, ptr @test_count, align 4, !tbaa !5
  %7730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7731 = load i32, ptr %7730, align 4, !tbaa !5
  %7732 = call ptr @s2n_strerror(i32 noundef %7731, ptr noundef @.str.4)
  %7733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7734 = load i32, ptr %7733, align 4, !tbaa !5
  %7735 = call ptr @s2n_strerror_debug(i32 noundef %7734, ptr noundef @.str.4)
  %7736 = call ptr @__errno_location() #12
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = call ptr @strerror(i32 noundef %7737) #11
  %7739 = call ptr @__errno_location() #12
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7728, ptr noundef @.str.2, i32 noundef %7729, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 424, ptr noundef %7732, ptr noundef %7735, ptr noundef %7738, i32 noundef %7740) #11
  br label %7759

7742:                                             ; preds = %7720, %7713
  %7743 = load i32, ptr %175, align 4, !tbaa !5
  %7744 = call ptr @__errno_location() #12
  store i32 %7743, ptr %7744, align 4, !tbaa !5
  %7745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7746 = load i32, ptr @test_count, align 4, !tbaa !5
  %7747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7748 = load i32, ptr %7747, align 4, !tbaa !5
  %7749 = call ptr @s2n_strerror(i32 noundef %7748, ptr noundef @.str.4)
  %7750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7751 = load i32, ptr %7750, align 4, !tbaa !5
  %7752 = call ptr @s2n_strerror_debug(i32 noundef %7751, ptr noundef @.str.4)
  %7753 = call ptr @__errno_location() #12
  %7754 = load i32, ptr %7753, align 4, !tbaa !5
  %7755 = call ptr @strerror(i32 noundef %7754) #11
  %7756 = call ptr @__errno_location() #12
  %7757 = load i32, ptr %7756, align 4, !tbaa !5
  %7758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7745, ptr noundef @.str.5, i32 noundef %7746, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 424, ptr noundef %7749, ptr noundef %7752, ptr noundef %7755, i32 noundef %7757) #11
  br label %7759

7759:                                             ; preds = %7742, %7725
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %7760

7760:                                             ; preds = %7759
  br label %7761

7761:                                             ; preds = %7760
  call void @exit(i32 noundef 1) #13
  unreachable

7762:                                             ; No predecessors!
  br label %7763

7763:                                             ; preds = %7762
  br label %7764

7764:                                             ; preds = %7763, %7705
  br label %7765

7765:                                             ; preds = %7764
  br label %7766

7766:                                             ; preds = %7765
  br label %7767

7767:                                             ; preds = %7766
  %7768 = load i32, ptr @test_count, align 4, !tbaa !5
  %7769 = add nsw i32 %7768, 1
  store i32 %7769, ptr @test_count, align 4, !tbaa !5
  %7770 = load ptr, ptr %169, align 8, !tbaa !9
  %7771 = getelementptr inbounds %struct.s2n_connection, ptr %7770, i32 0, i32 52
  %7772 = getelementptr inbounds %struct.s2n_handshake, ptr %7771, i32 0, i32 0
  %7773 = load ptr, ptr %172, align 8, !tbaa !9
  %7774 = getelementptr inbounds %struct.s2n_connection, ptr %7773, i32 0, i32 52
  %7775 = getelementptr inbounds %struct.s2n_handshake, ptr %7774, i32 0, i32 0
  %7776 = load ptr, ptr %169, align 8, !tbaa !9
  %7777 = getelementptr inbounds %struct.s2n_connection, ptr %7776, i32 0, i32 52
  %7778 = getelementptr inbounds %struct.s2n_handshake, ptr %7777, i32 0, i32 0
  %7779 = getelementptr inbounds %struct.s2n_stuffer, ptr %7778, i32 0, i32 2
  %7780 = load i32, ptr %7779, align 4, !tbaa !54
  %7781 = load ptr, ptr %169, align 8, !tbaa !9
  %7782 = getelementptr inbounds %struct.s2n_connection, ptr %7781, i32 0, i32 52
  %7783 = getelementptr inbounds %struct.s2n_handshake, ptr %7782, i32 0, i32 0
  %7784 = getelementptr inbounds %struct.s2n_stuffer, ptr %7783, i32 0, i32 1
  %7785 = load i32, ptr %7784, align 8, !tbaa !55
  %7786 = sub i32 %7780, %7785
  %7787 = call i32 @s2n_stuffer_copy(ptr noundef %7772, ptr noundef %7775, i32 noundef %7786)
  %7788 = icmp eq i32 %7787, -1
  br i1 %7788, label %7789, label %7842

7789:                                             ; preds = %7767
  br label %7790

7790:                                             ; preds = %7789
  br label %7791

7791:                                             ; preds = %7790
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %7792 = call ptr @__errno_location() #12
  %7793 = load i32, ptr %7792, align 4, !tbaa !5
  store i32 %7793, ptr %176, align 4, !tbaa !5
  %7794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7795 = call i32 @s2n_print_stacktrace(ptr noundef %7794)
  %7796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7797 = trunc i8 %7796 to i1
  br i1 %7797, label %7798, label %7820

7798:                                             ; preds = %7791
  %7799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7800 = call i32 @fileno(ptr noundef %7799) #11
  %7801 = call i32 @isatty(i32 noundef %7800) #11
  %7802 = icmp ne i32 %7801, 0
  br i1 %7802, label %7803, label %7820

7803:                                             ; preds = %7798
  %7804 = load i32, ptr %176, align 4, !tbaa !5
  %7805 = call ptr @__errno_location() #12
  store i32 %7804, ptr %7805, align 4, !tbaa !5
  %7806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7807 = load i32, ptr @test_count, align 4, !tbaa !5
  %7808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7809 = load i32, ptr %7808, align 4, !tbaa !5
  %7810 = call ptr @s2n_strerror(i32 noundef %7809, ptr noundef @.str.4)
  %7811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = call ptr @s2n_strerror_debug(i32 noundef %7812, ptr noundef @.str.4)
  %7814 = call ptr @__errno_location() #12
  %7815 = load i32, ptr %7814, align 4, !tbaa !5
  %7816 = call ptr @strerror(i32 noundef %7815) #11
  %7817 = call ptr @__errno_location() #12
  %7818 = load i32, ptr %7817, align 4, !tbaa !5
  %7819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7806, ptr noundef @.str.2, i32 noundef %7807, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 426, ptr noundef %7810, ptr noundef %7813, ptr noundef %7816, i32 noundef %7818) #11
  br label %7837

7820:                                             ; preds = %7798, %7791
  %7821 = load i32, ptr %176, align 4, !tbaa !5
  %7822 = call ptr @__errno_location() #12
  store i32 %7821, ptr %7822, align 4, !tbaa !5
  %7823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7824 = load i32, ptr @test_count, align 4, !tbaa !5
  %7825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @s2n_strerror(i32 noundef %7826, ptr noundef @.str.4)
  %7828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call ptr @s2n_strerror_debug(i32 noundef %7829, ptr noundef @.str.4)
  %7831 = call ptr @__errno_location() #12
  %7832 = load i32, ptr %7831, align 4, !tbaa !5
  %7833 = call ptr @strerror(i32 noundef %7832) #11
  %7834 = call ptr @__errno_location() #12
  %7835 = load i32, ptr %7834, align 4, !tbaa !5
  %7836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7823, ptr noundef @.str.5, i32 noundef %7824, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 426, ptr noundef %7827, ptr noundef %7830, ptr noundef %7833, i32 noundef %7835) #11
  br label %7837

7837:                                             ; preds = %7820, %7803
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %7838

7838:                                             ; preds = %7837
  br label %7839

7839:                                             ; preds = %7838
  call void @exit(i32 noundef 1) #13
  unreachable

7840:                                             ; No predecessors!
  br label %7841

7841:                                             ; preds = %7840
  br label %7842

7842:                                             ; preds = %7841, %7767
  br label %7843

7843:                                             ; preds = %7842
  br label %7844

7844:                                             ; preds = %7843
  br label %7845

7845:                                             ; preds = %7844
  %7846 = load i32, ptr @test_count, align 4, !tbaa !5
  %7847 = add nsw i32 %7846, 1
  store i32 %7847, ptr @test_count, align 4, !tbaa !5
  %7848 = load ptr, ptr %172, align 8, !tbaa !9
  %7849 = call i32 @s2n_client_hello_recv(ptr noundef %7848)
  %7850 = icmp eq i32 %7849, -1
  br i1 %7850, label %7851, label %7904

7851:                                             ; preds = %7845
  br label %7852

7852:                                             ; preds = %7851
  br label %7853

7853:                                             ; preds = %7852
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %7854 = call ptr @__errno_location() #12
  %7855 = load i32, ptr %7854, align 4, !tbaa !5
  store i32 %7855, ptr %177, align 4, !tbaa !5
  %7856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7857 = call i32 @s2n_print_stacktrace(ptr noundef %7856)
  %7858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7859 = trunc i8 %7858 to i1
  br i1 %7859, label %7860, label %7882

7860:                                             ; preds = %7853
  %7861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7862 = call i32 @fileno(ptr noundef %7861) #11
  %7863 = call i32 @isatty(i32 noundef %7862) #11
  %7864 = icmp ne i32 %7863, 0
  br i1 %7864, label %7865, label %7882

7865:                                             ; preds = %7860
  %7866 = load i32, ptr %177, align 4, !tbaa !5
  %7867 = call ptr @__errno_location() #12
  store i32 %7866, ptr %7867, align 4, !tbaa !5
  %7868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7869 = load i32, ptr @test_count, align 4, !tbaa !5
  %7870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7871 = load i32, ptr %7870, align 4, !tbaa !5
  %7872 = call ptr @s2n_strerror(i32 noundef %7871, ptr noundef @.str.4)
  %7873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call ptr @s2n_strerror_debug(i32 noundef %7874, ptr noundef @.str.4)
  %7876 = call ptr @__errno_location() #12
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  %7878 = call ptr @strerror(i32 noundef %7877) #11
  %7879 = call ptr @__errno_location() #12
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7868, ptr noundef @.str.2, i32 noundef %7869, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 427, ptr noundef %7872, ptr noundef %7875, ptr noundef %7878, i32 noundef %7880) #11
  br label %7899

7882:                                             ; preds = %7860, %7853
  %7883 = load i32, ptr %177, align 4, !tbaa !5
  %7884 = call ptr @__errno_location() #12
  store i32 %7883, ptr %7884, align 4, !tbaa !5
  %7885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7886 = load i32, ptr @test_count, align 4, !tbaa !5
  %7887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call ptr @s2n_strerror(i32 noundef %7888, ptr noundef @.str.4)
  %7890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call ptr @s2n_strerror_debug(i32 noundef %7891, ptr noundef @.str.4)
  %7893 = call ptr @__errno_location() #12
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call ptr @strerror(i32 noundef %7894) #11
  %7896 = call ptr @__errno_location() #12
  %7897 = load i32, ptr %7896, align 4, !tbaa !5
  %7898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7885, ptr noundef @.str.5, i32 noundef %7886, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 427, ptr noundef %7889, ptr noundef %7892, ptr noundef %7895, i32 noundef %7897) #11
  br label %7899

7899:                                             ; preds = %7882, %7865
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %7900

7900:                                             ; preds = %7899
  br label %7901

7901:                                             ; preds = %7900
  call void @exit(i32 noundef 1) #13
  unreachable

7902:                                             ; No predecessors!
  br label %7903

7903:                                             ; preds = %7902
  br label %7904

7904:                                             ; preds = %7903, %7845
  br label %7905

7905:                                             ; preds = %7904
  br label %7906

7906:                                             ; preds = %7905
  br label %7907

7907:                                             ; preds = %7906
  %7908 = load i32, ptr @test_count, align 4, !tbaa !5
  %7909 = add nsw i32 %7908, 1
  store i32 %7909, ptr @test_count, align 4, !tbaa !5
  %7910 = load ptr, ptr %169, align 8, !tbaa !9
  %7911 = load i32, ptr %7910, align 8
  %7912 = lshr i32 %7911, 3
  %7913 = and i32 %7912, 1
  %7914 = icmp ne i32 %7913, 0
  br i1 %7914, label %7915, label %7968

7915:                                             ; preds = %7907
  br label %7916

7916:                                             ; preds = %7915
  br label %7917

7917:                                             ; preds = %7916
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %7918 = call ptr @__errno_location() #12
  %7919 = load i32, ptr %7918, align 4, !tbaa !5
  store i32 %7919, ptr %178, align 4, !tbaa !5
  %7920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7921 = call i32 @s2n_print_stacktrace(ptr noundef %7920)
  %7922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7923 = trunc i8 %7922 to i1
  br i1 %7923, label %7924, label %7946

7924:                                             ; preds = %7917
  %7925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7926 = call i32 @fileno(ptr noundef %7925) #11
  %7927 = call i32 @isatty(i32 noundef %7926) #11
  %7928 = icmp ne i32 %7927, 0
  br i1 %7928, label %7929, label %7946

7929:                                             ; preds = %7924
  %7930 = load i32, ptr %178, align 4, !tbaa !5
  %7931 = call ptr @__errno_location() #12
  store i32 %7930, ptr %7931, align 4, !tbaa !5
  %7932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7933 = load i32, ptr @test_count, align 4, !tbaa !5
  %7934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7935 = load i32, ptr %7934, align 4, !tbaa !5
  %7936 = call ptr @s2n_strerror(i32 noundef %7935, ptr noundef @.str.4)
  %7937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7938 = load i32, ptr %7937, align 4, !tbaa !5
  %7939 = call ptr @s2n_strerror_debug(i32 noundef %7938, ptr noundef @.str.4)
  %7940 = call ptr @__errno_location() #12
  %7941 = load i32, ptr %7940, align 4, !tbaa !5
  %7942 = call ptr @strerror(i32 noundef %7941) #11
  %7943 = call ptr @__errno_location() #12
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7932, ptr noundef @.str.2, i32 noundef %7933, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 431, ptr noundef %7936, ptr noundef %7939, ptr noundef %7942, i32 noundef %7944) #11
  br label %7963

7946:                                             ; preds = %7924, %7917
  %7947 = load i32, ptr %178, align 4, !tbaa !5
  %7948 = call ptr @__errno_location() #12
  store i32 %7947, ptr %7948, align 4, !tbaa !5
  %7949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7950 = load i32, ptr @test_count, align 4, !tbaa !5
  %7951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7952 = load i32, ptr %7951, align 4, !tbaa !5
  %7953 = call ptr @s2n_strerror(i32 noundef %7952, ptr noundef @.str.4)
  %7954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7955 = load i32, ptr %7954, align 4, !tbaa !5
  %7956 = call ptr @s2n_strerror_debug(i32 noundef %7955, ptr noundef @.str.4)
  %7957 = call ptr @__errno_location() #12
  %7958 = load i32, ptr %7957, align 4, !tbaa !5
  %7959 = call ptr @strerror(i32 noundef %7958) #11
  %7960 = call ptr @__errno_location() #12
  %7961 = load i32, ptr %7960, align 4, !tbaa !5
  %7962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7949, ptr noundef @.str.5, i32 noundef %7950, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 431, ptr noundef %7953, ptr noundef %7956, ptr noundef %7959, i32 noundef %7961) #11
  br label %7963

7963:                                             ; preds = %7946, %7929
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %7964

7964:                                             ; preds = %7963
  br label %7965

7965:                                             ; preds = %7964
  call void @exit(i32 noundef 1) #13
  unreachable

7966:                                             ; No predecessors!
  br label %7967

7967:                                             ; preds = %7966
  br label %7968

7968:                                             ; preds = %7967, %7907
  br label %7969

7969:                                             ; preds = %7968
  br label %7970

7970:                                             ; preds = %7969
  %7971 = load ptr, ptr %172, align 8, !tbaa !9
  %7972 = load i32, ptr %7971, align 8
  %7973 = and i32 %7972, -9
  %7974 = or i32 %7973, 0
  store i32 %7974, ptr %7971, align 8
  br label %7975

7975:                                             ; preds = %7970
  %7976 = load i32, ptr @test_count, align 4, !tbaa !5
  %7977 = add nsw i32 %7976, 1
  store i32 %7977, ptr @test_count, align 4, !tbaa !5
  %7978 = load ptr, ptr %172, align 8, !tbaa !9
  %7979 = call i32 @s2n_server_hello_send(ptr noundef %7978)
  %7980 = icmp eq i32 %7979, -1
  br i1 %7980, label %7981, label %8034

7981:                                             ; preds = %7975
  br label %7982

7982:                                             ; preds = %7981
  br label %7983

7983:                                             ; preds = %7982
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7984 = call ptr @__errno_location() #12
  %7985 = load i32, ptr %7984, align 4, !tbaa !5
  store i32 %7985, ptr %179, align 4, !tbaa !5
  %7986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7987 = call i32 @s2n_print_stacktrace(ptr noundef %7986)
  %7988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7989 = trunc i8 %7988 to i1
  br i1 %7989, label %7990, label %8012

7990:                                             ; preds = %7983
  %7991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7992 = call i32 @fileno(ptr noundef %7991) #11
  %7993 = call i32 @isatty(i32 noundef %7992) #11
  %7994 = icmp ne i32 %7993, 0
  br i1 %7994, label %7995, label %8012

7995:                                             ; preds = %7990
  %7996 = load i32, ptr %179, align 4, !tbaa !5
  %7997 = call ptr @__errno_location() #12
  store i32 %7996, ptr %7997, align 4, !tbaa !5
  %7998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7999 = load i32, ptr @test_count, align 4, !tbaa !5
  %8000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8001 = load i32, ptr %8000, align 4, !tbaa !5
  %8002 = call ptr @s2n_strerror(i32 noundef %8001, ptr noundef @.str.4)
  %8003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8004 = load i32, ptr %8003, align 4, !tbaa !5
  %8005 = call ptr @s2n_strerror_debug(i32 noundef %8004, ptr noundef @.str.4)
  %8006 = call ptr @__errno_location() #12
  %8007 = load i32, ptr %8006, align 4, !tbaa !5
  %8008 = call ptr @strerror(i32 noundef %8007) #11
  %8009 = call ptr @__errno_location() #12
  %8010 = load i32, ptr %8009, align 4, !tbaa !5
  %8011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7998, ptr noundef @.str.2, i32 noundef %7999, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 434, ptr noundef %8002, ptr noundef %8005, ptr noundef %8008, i32 noundef %8010) #11
  br label %8029

8012:                                             ; preds = %7990, %7983
  %8013 = load i32, ptr %179, align 4, !tbaa !5
  %8014 = call ptr @__errno_location() #12
  store i32 %8013, ptr %8014, align 4, !tbaa !5
  %8015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8016 = load i32, ptr @test_count, align 4, !tbaa !5
  %8017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8018 = load i32, ptr %8017, align 4, !tbaa !5
  %8019 = call ptr @s2n_strerror(i32 noundef %8018, ptr noundef @.str.4)
  %8020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8021 = load i32, ptr %8020, align 4, !tbaa !5
  %8022 = call ptr @s2n_strerror_debug(i32 noundef %8021, ptr noundef @.str.4)
  %8023 = call ptr @__errno_location() #12
  %8024 = load i32, ptr %8023, align 4, !tbaa !5
  %8025 = call ptr @strerror(i32 noundef %8024) #11
  %8026 = call ptr @__errno_location() #12
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  %8028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8015, ptr noundef @.str.5, i32 noundef %8016, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 434, ptr noundef %8019, ptr noundef %8022, ptr noundef %8025, i32 noundef %8027) #11
  br label %8029

8029:                                             ; preds = %8012, %7995
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %8030

8030:                                             ; preds = %8029
  br label %8031

8031:                                             ; preds = %8030
  call void @exit(i32 noundef 1) #13
  unreachable

8032:                                             ; No predecessors!
  br label %8033

8033:                                             ; preds = %8032
  br label %8034

8034:                                             ; preds = %8033, %7975
  br label %8035

8035:                                             ; preds = %8034
  br label %8036

8036:                                             ; preds = %8035
  br label %8037

8037:                                             ; preds = %8036
  %8038 = load i32, ptr @test_count, align 4, !tbaa !5
  %8039 = add nsw i32 %8038, 1
  store i32 %8039, ptr @test_count, align 4, !tbaa !5
  %8040 = load ptr, ptr %172, align 8, !tbaa !9
  %8041 = getelementptr inbounds %struct.s2n_connection, ptr %8040, i32 0, i32 52
  %8042 = getelementptr inbounds %struct.s2n_handshake, ptr %8041, i32 0, i32 0
  %8043 = load ptr, ptr %169, align 8, !tbaa !9
  %8044 = getelementptr inbounds %struct.s2n_connection, ptr %8043, i32 0, i32 52
  %8045 = getelementptr inbounds %struct.s2n_handshake, ptr %8044, i32 0, i32 0
  %8046 = load ptr, ptr %172, align 8, !tbaa !9
  %8047 = getelementptr inbounds %struct.s2n_connection, ptr %8046, i32 0, i32 52
  %8048 = getelementptr inbounds %struct.s2n_handshake, ptr %8047, i32 0, i32 0
  %8049 = getelementptr inbounds %struct.s2n_stuffer, ptr %8048, i32 0, i32 2
  %8050 = load i32, ptr %8049, align 4, !tbaa !54
  %8051 = load ptr, ptr %172, align 8, !tbaa !9
  %8052 = getelementptr inbounds %struct.s2n_connection, ptr %8051, i32 0, i32 52
  %8053 = getelementptr inbounds %struct.s2n_handshake, ptr %8052, i32 0, i32 0
  %8054 = getelementptr inbounds %struct.s2n_stuffer, ptr %8053, i32 0, i32 1
  %8055 = load i32, ptr %8054, align 8, !tbaa !55
  %8056 = sub i32 %8050, %8055
  %8057 = call i32 @s2n_stuffer_copy(ptr noundef %8042, ptr noundef %8045, i32 noundef %8056)
  %8058 = icmp eq i32 %8057, -1
  br i1 %8058, label %8059, label %8112

8059:                                             ; preds = %8037
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %8062 = call ptr @__errno_location() #12
  %8063 = load i32, ptr %8062, align 4, !tbaa !5
  store i32 %8063, ptr %180, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = call i32 @s2n_print_stacktrace(ptr noundef %8064)
  %8066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8067 = trunc i8 %8066 to i1
  br i1 %8067, label %8068, label %8090

8068:                                             ; preds = %8061
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = call i32 @fileno(ptr noundef %8069) #11
  %8071 = call i32 @isatty(i32 noundef %8070) #11
  %8072 = icmp ne i32 %8071, 0
  br i1 %8072, label %8073, label %8090

8073:                                             ; preds = %8068
  %8074 = load i32, ptr %180, align 4, !tbaa !5
  %8075 = call ptr @__errno_location() #12
  store i32 %8074, ptr %8075, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = load i32, ptr @test_count, align 4, !tbaa !5
  %8078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call ptr @s2n_strerror(i32 noundef %8079, ptr noundef @.str.4)
  %8081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @s2n_strerror_debug(i32 noundef %8082, ptr noundef @.str.4)
  %8084 = call ptr @__errno_location() #12
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @strerror(i32 noundef %8085) #11
  %8087 = call ptr @__errno_location() #12
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8076, ptr noundef @.str.2, i32 noundef %8077, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 436, ptr noundef %8080, ptr noundef %8083, ptr noundef %8086, i32 noundef %8088) #11
  br label %8107

8090:                                             ; preds = %8068, %8061
  %8091 = load i32, ptr %180, align 4, !tbaa !5
  %8092 = call ptr @__errno_location() #12
  store i32 %8091, ptr %8092, align 4, !tbaa !5
  %8093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8094 = load i32, ptr @test_count, align 4, !tbaa !5
  %8095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8096 = load i32, ptr %8095, align 4, !tbaa !5
  %8097 = call ptr @s2n_strerror(i32 noundef %8096, ptr noundef @.str.4)
  %8098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @s2n_strerror_debug(i32 noundef %8099, ptr noundef @.str.4)
  %8101 = call ptr @__errno_location() #12
  %8102 = load i32, ptr %8101, align 4, !tbaa !5
  %8103 = call ptr @strerror(i32 noundef %8102) #11
  %8104 = call ptr @__errno_location() #12
  %8105 = load i32, ptr %8104, align 4, !tbaa !5
  %8106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8093, ptr noundef @.str.5, i32 noundef %8094, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 436, ptr noundef %8097, ptr noundef %8100, ptr noundef %8103, i32 noundef %8105) #11
  br label %8107

8107:                                             ; preds = %8090, %8073
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

8109:                                             ; preds = %8108
  call void @exit(i32 noundef 1) #13
  unreachable

8110:                                             ; No predecessors!
  br label %8111

8111:                                             ; preds = %8110
  br label %8112

8112:                                             ; preds = %8111, %8037
  br label %8113

8113:                                             ; preds = %8112
  br label %8114

8114:                                             ; preds = %8113
  br label %8115

8115:                                             ; preds = %8114
  %8116 = load i32, ptr @test_count, align 4, !tbaa !5
  %8117 = add nsw i32 %8116, 1
  store i32 %8117, ptr @test_count, align 4, !tbaa !5
  %8118 = load ptr, ptr %169, align 8, !tbaa !9
  %8119 = call i32 @s2n_server_hello_recv(ptr noundef %8118)
  %8120 = icmp eq i32 %8119, -1
  br i1 %8120, label %8121, label %8174

8121:                                             ; preds = %8115
  br label %8122

8122:                                             ; preds = %8121
  br label %8123

8123:                                             ; preds = %8122
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %8124 = call ptr @__errno_location() #12
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  store i32 %8125, ptr %181, align 4, !tbaa !5
  %8126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8127 = call i32 @s2n_print_stacktrace(ptr noundef %8126)
  %8128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8129 = trunc i8 %8128 to i1
  br i1 %8129, label %8130, label %8152

8130:                                             ; preds = %8123
  %8131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8132 = call i32 @fileno(ptr noundef %8131) #11
  %8133 = call i32 @isatty(i32 noundef %8132) #11
  %8134 = icmp ne i32 %8133, 0
  br i1 %8134, label %8135, label %8152

8135:                                             ; preds = %8130
  %8136 = load i32, ptr %181, align 4, !tbaa !5
  %8137 = call ptr @__errno_location() #12
  store i32 %8136, ptr %8137, align 4, !tbaa !5
  %8138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8139 = load i32, ptr @test_count, align 4, !tbaa !5
  %8140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8141 = load i32, ptr %8140, align 4, !tbaa !5
  %8142 = call ptr @s2n_strerror(i32 noundef %8141, ptr noundef @.str.4)
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8144 = load i32, ptr %8143, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror_debug(i32 noundef %8144, ptr noundef @.str.4)
  %8146 = call ptr @__errno_location() #12
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @strerror(i32 noundef %8147) #11
  %8149 = call ptr @__errno_location() #12
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8138, ptr noundef @.str.2, i32 noundef %8139, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 437, ptr noundef %8142, ptr noundef %8145, ptr noundef %8148, i32 noundef %8150) #11
  br label %8169

8152:                                             ; preds = %8130, %8123
  %8153 = load i32, ptr %181, align 4, !tbaa !5
  %8154 = call ptr @__errno_location() #12
  store i32 %8153, ptr %8154, align 4, !tbaa !5
  %8155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8156 = load i32, ptr @test_count, align 4, !tbaa !5
  %8157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8158 = load i32, ptr %8157, align 4, !tbaa !5
  %8159 = call ptr @s2n_strerror(i32 noundef %8158, ptr noundef @.str.4)
  %8160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8161 = load i32, ptr %8160, align 4, !tbaa !5
  %8162 = call ptr @s2n_strerror_debug(i32 noundef %8161, ptr noundef @.str.4)
  %8163 = call ptr @__errno_location() #12
  %8164 = load i32, ptr %8163, align 4, !tbaa !5
  %8165 = call ptr @strerror(i32 noundef %8164) #11
  %8166 = call ptr @__errno_location() #12
  %8167 = load i32, ptr %8166, align 4, !tbaa !5
  %8168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8155, ptr noundef @.str.5, i32 noundef %8156, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 437, ptr noundef %8159, ptr noundef %8162, ptr noundef %8165, i32 noundef %8167) #11
  br label %8169

8169:                                             ; preds = %8152, %8135
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %8170

8170:                                             ; preds = %8169
  br label %8171

8171:                                             ; preds = %8170
  call void @exit(i32 noundef 1) #13
  unreachable

8172:                                             ; No predecessors!
  br label %8173

8173:                                             ; preds = %8172
  br label %8174

8174:                                             ; preds = %8173, %8115
  br label %8175

8175:                                             ; preds = %8174
  br label %8176

8176:                                             ; preds = %8175
  br label %8177

8177:                                             ; preds = %8176
  %8178 = load i32, ptr @test_count, align 4, !tbaa !5
  %8179 = add nsw i32 %8178, 1
  store i32 %8179, ptr @test_count, align 4, !tbaa !5
  %8180 = load ptr, ptr %169, align 8, !tbaa !9
  %8181 = load i32, ptr %8180, align 8
  %8182 = lshr i32 %8181, 3
  %8183 = and i32 %8182, 1
  %8184 = icmp ne i32 %8183, 0
  br i1 %8184, label %8185, label %8238

8185:                                             ; preds = %8177
  br label %8186

8186:                                             ; preds = %8185
  br label %8187

8187:                                             ; preds = %8186
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %8188 = call ptr @__errno_location() #12
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  store i32 %8189, ptr %182, align 4, !tbaa !5
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = call i32 @s2n_print_stacktrace(ptr noundef %8190)
  %8192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8193 = trunc i8 %8192 to i1
  br i1 %8193, label %8194, label %8216

8194:                                             ; preds = %8187
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = call i32 @fileno(ptr noundef %8195) #11
  %8197 = call i32 @isatty(i32 noundef %8196) #11
  %8198 = icmp ne i32 %8197, 0
  br i1 %8198, label %8199, label %8216

8199:                                             ; preds = %8194
  %8200 = load i32, ptr %182, align 4, !tbaa !5
  %8201 = call ptr @__errno_location() #12
  store i32 %8200, ptr %8201, align 4, !tbaa !5
  %8202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8203 = load i32, ptr @test_count, align 4, !tbaa !5
  %8204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8205 = load i32, ptr %8204, align 4, !tbaa !5
  %8206 = call ptr @s2n_strerror(i32 noundef %8205, ptr noundef @.str.4)
  %8207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8208 = load i32, ptr %8207, align 4, !tbaa !5
  %8209 = call ptr @s2n_strerror_debug(i32 noundef %8208, ptr noundef @.str.4)
  %8210 = call ptr @__errno_location() #12
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @strerror(i32 noundef %8211) #11
  %8213 = call ptr @__errno_location() #12
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8202, ptr noundef @.str.2, i32 noundef %8203, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 439, ptr noundef %8206, ptr noundef %8209, ptr noundef %8212, i32 noundef %8214) #11
  br label %8233

8216:                                             ; preds = %8194, %8187
  %8217 = load i32, ptr %182, align 4, !tbaa !5
  %8218 = call ptr @__errno_location() #12
  store i32 %8217, ptr %8218, align 4, !tbaa !5
  %8219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8220 = load i32, ptr @test_count, align 4, !tbaa !5
  %8221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8222 = load i32, ptr %8221, align 4, !tbaa !5
  %8223 = call ptr @s2n_strerror(i32 noundef %8222, ptr noundef @.str.4)
  %8224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8225 = load i32, ptr %8224, align 4, !tbaa !5
  %8226 = call ptr @s2n_strerror_debug(i32 noundef %8225, ptr noundef @.str.4)
  %8227 = call ptr @__errno_location() #12
  %8228 = load i32, ptr %8227, align 4, !tbaa !5
  %8229 = call ptr @strerror(i32 noundef %8228) #11
  %8230 = call ptr @__errno_location() #12
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8219, ptr noundef @.str.5, i32 noundef %8220, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 439, ptr noundef %8223, ptr noundef %8226, ptr noundef %8229, i32 noundef %8231) #11
  br label %8233

8233:                                             ; preds = %8216, %8199
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

8235:                                             ; preds = %8234
  call void @exit(i32 noundef 1) #13
  unreachable

8236:                                             ; No predecessors!
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

8238:                                             ; preds = %8237, %8177
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

8240:                                             ; preds = %8239
  br label %8241

8241:                                             ; preds = %8240
  %8242 = load i32, ptr @test_count, align 4, !tbaa !5
  %8243 = add nsw i32 %8242, 1
  store i32 %8243, ptr @test_count, align 4, !tbaa !5
  %8244 = load ptr, ptr %169, align 8, !tbaa !9
  %8245 = load i32, ptr %8244, align 8
  %8246 = lshr i32 %8245, 3
  %8247 = and i32 %8246, 1
  %8248 = icmp ne i32 %8247, 0
  br i1 %8248, label %8249, label %8302

8249:                                             ; preds = %8241
  br label %8250

8250:                                             ; preds = %8249
  br label %8251

8251:                                             ; preds = %8250
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %8252 = call ptr @__errno_location() #12
  %8253 = load i32, ptr %8252, align 4, !tbaa !5
  store i32 %8253, ptr %183, align 4, !tbaa !5
  %8254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8255 = call i32 @s2n_print_stacktrace(ptr noundef %8254)
  %8256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8257 = trunc i8 %8256 to i1
  br i1 %8257, label %8258, label %8280

8258:                                             ; preds = %8251
  %8259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8260 = call i32 @fileno(ptr noundef %8259) #11
  %8261 = call i32 @isatty(i32 noundef %8260) #11
  %8262 = icmp ne i32 %8261, 0
  br i1 %8262, label %8263, label %8280

8263:                                             ; preds = %8258
  %8264 = load i32, ptr %183, align 4, !tbaa !5
  %8265 = call ptr @__errno_location() #12
  store i32 %8264, ptr %8265, align 4, !tbaa !5
  %8266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8267 = load i32, ptr @test_count, align 4, !tbaa !5
  %8268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8269 = load i32, ptr %8268, align 4, !tbaa !5
  %8270 = call ptr @s2n_strerror(i32 noundef %8269, ptr noundef @.str.4)
  %8271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  %8273 = call ptr @s2n_strerror_debug(i32 noundef %8272, ptr noundef @.str.4)
  %8274 = call ptr @__errno_location() #12
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  %8276 = call ptr @strerror(i32 noundef %8275) #11
  %8277 = call ptr @__errno_location() #12
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8266, ptr noundef @.str.2, i32 noundef %8267, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 444, ptr noundef %8270, ptr noundef %8273, ptr noundef %8276, i32 noundef %8278) #11
  br label %8297

8280:                                             ; preds = %8258, %8251
  %8281 = load i32, ptr %183, align 4, !tbaa !5
  %8282 = call ptr @__errno_location() #12
  store i32 %8281, ptr %8282, align 4, !tbaa !5
  %8283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8284 = load i32, ptr @test_count, align 4, !tbaa !5
  %8285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8286 = load i32, ptr %8285, align 4, !tbaa !5
  %8287 = call ptr @s2n_strerror(i32 noundef %8286, ptr noundef @.str.4)
  %8288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  %8290 = call ptr @s2n_strerror_debug(i32 noundef %8289, ptr noundef @.str.4)
  %8291 = call ptr @__errno_location() #12
  %8292 = load i32, ptr %8291, align 4, !tbaa !5
  %8293 = call ptr @strerror(i32 noundef %8292) #11
  %8294 = call ptr @__errno_location() #12
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  %8296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8283, ptr noundef @.str.5, i32 noundef %8284, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 444, ptr noundef %8287, ptr noundef %8290, ptr noundef %8293, i32 noundef %8295) #11
  br label %8297

8297:                                             ; preds = %8280, %8263
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %8298

8298:                                             ; preds = %8297
  br label %8299

8299:                                             ; preds = %8298
  call void @exit(i32 noundef 1) #13
  unreachable

8300:                                             ; No predecessors!
  br label %8301

8301:                                             ; preds = %8300
  br label %8302

8302:                                             ; preds = %8301, %8241
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303
  %8305 = load ptr, ptr %172, align 8, !tbaa !9
  %8306 = load i32, ptr %8305, align 8
  %8307 = and i32 %8306, -9
  %8308 = or i32 %8307, 8
  store i32 %8308, ptr %8305, align 8
  br label %8309

8309:                                             ; preds = %8304
  %8310 = load i32, ptr @test_count, align 4, !tbaa !5
  %8311 = add nsw i32 %8310, 1
  store i32 %8311, ptr @test_count, align 4, !tbaa !5
  %8312 = load ptr, ptr %172, align 8, !tbaa !9
  %8313 = call i32 @s2n_server_hello_send(ptr noundef %8312)
  %8314 = icmp eq i32 %8313, -1
  br i1 %8314, label %8315, label %8368

8315:                                             ; preds = %8309
  br label %8316

8316:                                             ; preds = %8315
  br label %8317

8317:                                             ; preds = %8316
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %8318 = call ptr @__errno_location() #12
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  store i32 %8319, ptr %184, align 4, !tbaa !5
  %8320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8321 = call i32 @s2n_print_stacktrace(ptr noundef %8320)
  %8322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8323 = trunc i8 %8322 to i1
  br i1 %8323, label %8324, label %8346

8324:                                             ; preds = %8317
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @fileno(ptr noundef %8325) #11
  %8327 = call i32 @isatty(i32 noundef %8326) #11
  %8328 = icmp ne i32 %8327, 0
  br i1 %8328, label %8329, label %8346

8329:                                             ; preds = %8324
  %8330 = load i32, ptr %184, align 4, !tbaa !5
  %8331 = call ptr @__errno_location() #12
  store i32 %8330, ptr %8331, align 4, !tbaa !5
  %8332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8333 = load i32, ptr @test_count, align 4, !tbaa !5
  %8334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8335 = load i32, ptr %8334, align 4, !tbaa !5
  %8336 = call ptr @s2n_strerror(i32 noundef %8335, ptr noundef @.str.4)
  %8337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8338 = load i32, ptr %8337, align 4, !tbaa !5
  %8339 = call ptr @s2n_strerror_debug(i32 noundef %8338, ptr noundef @.str.4)
  %8340 = call ptr @__errno_location() #12
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @strerror(i32 noundef %8341) #11
  %8343 = call ptr @__errno_location() #12
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8332, ptr noundef @.str.2, i32 noundef %8333, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8336, ptr noundef %8339, ptr noundef %8342, i32 noundef %8344) #11
  br label %8363

8346:                                             ; preds = %8324, %8317
  %8347 = load i32, ptr %184, align 4, !tbaa !5
  %8348 = call ptr @__errno_location() #12
  store i32 %8347, ptr %8348, align 4, !tbaa !5
  %8349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8350 = load i32, ptr @test_count, align 4, !tbaa !5
  %8351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8352 = load i32, ptr %8351, align 4, !tbaa !5
  %8353 = call ptr @s2n_strerror(i32 noundef %8352, ptr noundef @.str.4)
  %8354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8355 = load i32, ptr %8354, align 4, !tbaa !5
  %8356 = call ptr @s2n_strerror_debug(i32 noundef %8355, ptr noundef @.str.4)
  %8357 = call ptr @__errno_location() #12
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @strerror(i32 noundef %8358) #11
  %8360 = call ptr @__errno_location() #12
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8349, ptr noundef @.str.5, i32 noundef %8350, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8353, ptr noundef %8356, ptr noundef %8359, i32 noundef %8361) #11
  br label %8363

8363:                                             ; preds = %8346, %8329
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %8364

8364:                                             ; preds = %8363
  br label %8365

8365:                                             ; preds = %8364
  call void @exit(i32 noundef 1) #13
  unreachable

8366:                                             ; No predecessors!
  br label %8367

8367:                                             ; preds = %8366
  br label %8368

8368:                                             ; preds = %8367, %8309
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

8371:                                             ; preds = %8370
  %8372 = load i32, ptr @test_count, align 4, !tbaa !5
  %8373 = add nsw i32 %8372, 1
  store i32 %8373, ptr @test_count, align 4, !tbaa !5
  %8374 = load ptr, ptr %172, align 8, !tbaa !9
  %8375 = getelementptr inbounds %struct.s2n_connection, ptr %8374, i32 0, i32 52
  %8376 = getelementptr inbounds %struct.s2n_handshake, ptr %8375, i32 0, i32 0
  %8377 = load ptr, ptr %169, align 8, !tbaa !9
  %8378 = getelementptr inbounds %struct.s2n_connection, ptr %8377, i32 0, i32 52
  %8379 = getelementptr inbounds %struct.s2n_handshake, ptr %8378, i32 0, i32 0
  %8380 = load ptr, ptr %172, align 8, !tbaa !9
  %8381 = getelementptr inbounds %struct.s2n_connection, ptr %8380, i32 0, i32 52
  %8382 = getelementptr inbounds %struct.s2n_handshake, ptr %8381, i32 0, i32 0
  %8383 = getelementptr inbounds %struct.s2n_stuffer, ptr %8382, i32 0, i32 2
  %8384 = load i32, ptr %8383, align 4, !tbaa !54
  %8385 = load ptr, ptr %172, align 8, !tbaa !9
  %8386 = getelementptr inbounds %struct.s2n_connection, ptr %8385, i32 0, i32 52
  %8387 = getelementptr inbounds %struct.s2n_handshake, ptr %8386, i32 0, i32 0
  %8388 = getelementptr inbounds %struct.s2n_stuffer, ptr %8387, i32 0, i32 1
  %8389 = load i32, ptr %8388, align 8, !tbaa !55
  %8390 = sub i32 %8384, %8389
  %8391 = call i32 @s2n_stuffer_copy(ptr noundef %8376, ptr noundef %8379, i32 noundef %8390)
  %8392 = icmp eq i32 %8391, -1
  br i1 %8392, label %8393, label %8446

8393:                                             ; preds = %8371
  br label %8394

8394:                                             ; preds = %8393
  br label %8395

8395:                                             ; preds = %8394
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %8396 = call ptr @__errno_location() #12
  %8397 = load i32, ptr %8396, align 4, !tbaa !5
  store i32 %8397, ptr %185, align 4, !tbaa !5
  %8398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8399 = call i32 @s2n_print_stacktrace(ptr noundef %8398)
  %8400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8401 = trunc i8 %8400 to i1
  br i1 %8401, label %8402, label %8424

8402:                                             ; preds = %8395
  %8403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8404 = call i32 @fileno(ptr noundef %8403) #11
  %8405 = call i32 @isatty(i32 noundef %8404) #11
  %8406 = icmp ne i32 %8405, 0
  br i1 %8406, label %8407, label %8424

8407:                                             ; preds = %8402
  %8408 = load i32, ptr %185, align 4, !tbaa !5
  %8409 = call ptr @__errno_location() #12
  store i32 %8408, ptr %8409, align 4, !tbaa !5
  %8410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8411 = load i32, ptr @test_count, align 4, !tbaa !5
  %8412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8413 = load i32, ptr %8412, align 4, !tbaa !5
  %8414 = call ptr @s2n_strerror(i32 noundef %8413, ptr noundef @.str.4)
  %8415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8416 = load i32, ptr %8415, align 4, !tbaa !5
  %8417 = call ptr @s2n_strerror_debug(i32 noundef %8416, ptr noundef @.str.4)
  %8418 = call ptr @__errno_location() #12
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @strerror(i32 noundef %8419) #11
  %8421 = call ptr @__errno_location() #12
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8410, ptr noundef @.str.2, i32 noundef %8411, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 449, ptr noundef %8414, ptr noundef %8417, ptr noundef %8420, i32 noundef %8422) #11
  br label %8441

8424:                                             ; preds = %8402, %8395
  %8425 = load i32, ptr %185, align 4, !tbaa !5
  %8426 = call ptr @__errno_location() #12
  store i32 %8425, ptr %8426, align 4, !tbaa !5
  %8427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8428 = load i32, ptr @test_count, align 4, !tbaa !5
  %8429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8430 = load i32, ptr %8429, align 4, !tbaa !5
  %8431 = call ptr @s2n_strerror(i32 noundef %8430, ptr noundef @.str.4)
  %8432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8433 = load i32, ptr %8432, align 4, !tbaa !5
  %8434 = call ptr @s2n_strerror_debug(i32 noundef %8433, ptr noundef @.str.4)
  %8435 = call ptr @__errno_location() #12
  %8436 = load i32, ptr %8435, align 4, !tbaa !5
  %8437 = call ptr @strerror(i32 noundef %8436) #11
  %8438 = call ptr @__errno_location() #12
  %8439 = load i32, ptr %8438, align 4, !tbaa !5
  %8440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8427, ptr noundef @.str.5, i32 noundef %8428, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 449, ptr noundef %8431, ptr noundef %8434, ptr noundef %8437, i32 noundef %8439) #11
  br label %8441

8441:                                             ; preds = %8424, %8407
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %8442

8442:                                             ; preds = %8441
  br label %8443

8443:                                             ; preds = %8442
  call void @exit(i32 noundef 1) #13
  unreachable

8444:                                             ; No predecessors!
  br label %8445

8445:                                             ; preds = %8444
  br label %8446

8446:                                             ; preds = %8445, %8371
  br label %8447

8447:                                             ; preds = %8446
  br label %8448

8448:                                             ; preds = %8447
  br label %8449

8449:                                             ; preds = %8448
  %8450 = load i32, ptr @test_count, align 4, !tbaa !5
  %8451 = add nsw i32 %8450, 1
  store i32 %8451, ptr @test_count, align 4, !tbaa !5
  %8452 = load ptr, ptr %169, align 8, !tbaa !9
  %8453 = call i32 @s2n_server_hello_recv(ptr noundef %8452)
  %8454 = icmp eq i32 %8453, -1
  br i1 %8454, label %8455, label %8508

8455:                                             ; preds = %8449
  br label %8456

8456:                                             ; preds = %8455
  br label %8457

8457:                                             ; preds = %8456
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %8458 = call ptr @__errno_location() #12
  %8459 = load i32, ptr %8458, align 4, !tbaa !5
  store i32 %8459, ptr %186, align 4, !tbaa !5
  %8460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8461 = call i32 @s2n_print_stacktrace(ptr noundef %8460)
  %8462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8463 = trunc i8 %8462 to i1
  br i1 %8463, label %8464, label %8486

8464:                                             ; preds = %8457
  %8465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8466 = call i32 @fileno(ptr noundef %8465) #11
  %8467 = call i32 @isatty(i32 noundef %8466) #11
  %8468 = icmp ne i32 %8467, 0
  br i1 %8468, label %8469, label %8486

8469:                                             ; preds = %8464
  %8470 = load i32, ptr %186, align 4, !tbaa !5
  %8471 = call ptr @__errno_location() #12
  store i32 %8470, ptr %8471, align 4, !tbaa !5
  %8472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8473 = load i32, ptr @test_count, align 4, !tbaa !5
  %8474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8475 = load i32, ptr %8474, align 4, !tbaa !5
  %8476 = call ptr @s2n_strerror(i32 noundef %8475, ptr noundef @.str.4)
  %8477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8478 = load i32, ptr %8477, align 4, !tbaa !5
  %8479 = call ptr @s2n_strerror_debug(i32 noundef %8478, ptr noundef @.str.4)
  %8480 = call ptr @__errno_location() #12
  %8481 = load i32, ptr %8480, align 4, !tbaa !5
  %8482 = call ptr @strerror(i32 noundef %8481) #11
  %8483 = call ptr @__errno_location() #12
  %8484 = load i32, ptr %8483, align 4, !tbaa !5
  %8485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8472, ptr noundef @.str.2, i32 noundef %8473, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 450, ptr noundef %8476, ptr noundef %8479, ptr noundef %8482, i32 noundef %8484) #11
  br label %8503

8486:                                             ; preds = %8464, %8457
  %8487 = load i32, ptr %186, align 4, !tbaa !5
  %8488 = call ptr @__errno_location() #12
  store i32 %8487, ptr %8488, align 4, !tbaa !5
  %8489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8490 = load i32, ptr @test_count, align 4, !tbaa !5
  %8491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8492 = load i32, ptr %8491, align 4, !tbaa !5
  %8493 = call ptr @s2n_strerror(i32 noundef %8492, ptr noundef @.str.4)
  %8494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8495 = load i32, ptr %8494, align 4, !tbaa !5
  %8496 = call ptr @s2n_strerror_debug(i32 noundef %8495, ptr noundef @.str.4)
  %8497 = call ptr @__errno_location() #12
  %8498 = load i32, ptr %8497, align 4, !tbaa !5
  %8499 = call ptr @strerror(i32 noundef %8498) #11
  %8500 = call ptr @__errno_location() #12
  %8501 = load i32, ptr %8500, align 4, !tbaa !5
  %8502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8489, ptr noundef @.str.5, i32 noundef %8490, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 450, ptr noundef %8493, ptr noundef %8496, ptr noundef %8499, i32 noundef %8501) #11
  br label %8503

8503:                                             ; preds = %8486, %8469
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %8504

8504:                                             ; preds = %8503
  br label %8505

8505:                                             ; preds = %8504
  call void @exit(i32 noundef 1) #13
  unreachable

8506:                                             ; No predecessors!
  br label %8507

8507:                                             ; preds = %8506
  br label %8508

8508:                                             ; preds = %8507, %8449
  br label %8509

8509:                                             ; preds = %8508
  br label %8510

8510:                                             ; preds = %8509
  br label %8511

8511:                                             ; preds = %8510
  %8512 = load i32, ptr @test_count, align 4, !tbaa !5
  %8513 = add nsw i32 %8512, 1
  store i32 %8513, ptr @test_count, align 4, !tbaa !5
  %8514 = load ptr, ptr %169, align 8, !tbaa !9
  %8515 = load i32, ptr %8514, align 8
  %8516 = lshr i32 %8515, 3
  %8517 = and i32 %8516, 1
  %8518 = icmp ne i32 %8517, 0
  br i1 %8518, label %8572, label %8519

8519:                                             ; preds = %8511
  br label %8520

8520:                                             ; preds = %8519
  br label %8521

8521:                                             ; preds = %8520
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %8522 = call ptr @__errno_location() #12
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  store i32 %8523, ptr %187, align 4, !tbaa !5
  %8524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8525 = call i32 @s2n_print_stacktrace(ptr noundef %8524)
  %8526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8527 = trunc i8 %8526 to i1
  br i1 %8527, label %8528, label %8550

8528:                                             ; preds = %8521
  %8529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8530 = call i32 @fileno(ptr noundef %8529) #11
  %8531 = call i32 @isatty(i32 noundef %8530) #11
  %8532 = icmp ne i32 %8531, 0
  br i1 %8532, label %8533, label %8550

8533:                                             ; preds = %8528
  %8534 = load i32, ptr %187, align 4, !tbaa !5
  %8535 = call ptr @__errno_location() #12
  store i32 %8534, ptr %8535, align 4, !tbaa !5
  %8536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8537 = load i32, ptr @test_count, align 4, !tbaa !5
  %8538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8539 = load i32, ptr %8538, align 4, !tbaa !5
  %8540 = call ptr @s2n_strerror(i32 noundef %8539, ptr noundef @.str.4)
  %8541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @s2n_strerror_debug(i32 noundef %8542, ptr noundef @.str.4)
  %8544 = call ptr @__errno_location() #12
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call ptr @strerror(i32 noundef %8545) #11
  %8547 = call ptr @__errno_location() #12
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8536, ptr noundef @.str.2, i32 noundef %8537, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 452, ptr noundef %8540, ptr noundef %8543, ptr noundef %8546, i32 noundef %8548) #11
  br label %8567

8550:                                             ; preds = %8528, %8521
  %8551 = load i32, ptr %187, align 4, !tbaa !5
  %8552 = call ptr @__errno_location() #12
  store i32 %8551, ptr %8552, align 4, !tbaa !5
  %8553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8554 = load i32, ptr @test_count, align 4, !tbaa !5
  %8555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  %8557 = call ptr @s2n_strerror(i32 noundef %8556, ptr noundef @.str.4)
  %8558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @s2n_strerror_debug(i32 noundef %8559, ptr noundef @.str.4)
  %8561 = call ptr @__errno_location() #12
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call ptr @strerror(i32 noundef %8562) #11
  %8564 = call ptr @__errno_location() #12
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  %8566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8553, ptr noundef @.str.5, i32 noundef %8554, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 452, ptr noundef %8557, ptr noundef %8560, ptr noundef %8563, i32 noundef %8565) #11
  br label %8567

8567:                                             ; preds = %8550, %8533
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %8568

8568:                                             ; preds = %8567
  br label %8569

8569:                                             ; preds = %8568
  call void @exit(i32 noundef 1) #13
  unreachable

8570:                                             ; No predecessors!
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

8572:                                             ; preds = %8571, %8511
  br label %8573

8573:                                             ; preds = %8572
  br label %8574

8574:                                             ; preds = %8573
  %8575 = call i32 @s2n_connection_ptr_free(ptr noundef %172)
  %8576 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  store i32 %8575, ptr %8576, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #11
  %8577 = call i32 @s2n_connection_ptr_free(ptr noundef %169)
  %8578 = getelementptr inbounds %struct.s2n_result, ptr %189, i32 0, i32 0
  store i32 %8577, ptr %8578, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %169) #11
  %8579 = call zeroext i1 @s2n_hash_is_available(i32 noundef 1)
  br i1 %8579, label %8580, label %9411

8580:                                             ; preds = %8574
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #11
  %8581 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8581, ptr %190, align 8, !tbaa !9
  br label %8582

8582:                                             ; preds = %8580
  %8583 = load i32, ptr @test_count, align 4, !tbaa !5
  %8584 = add nsw i32 %8583, 1
  store i32 %8584, ptr @test_count, align 4, !tbaa !5
  %8585 = load ptr, ptr %190, align 8, !tbaa !9
  %8586 = icmp eq ptr %8585, null
  br i1 %8586, label %8587, label %8640

8587:                                             ; preds = %8582
  br label %8588

8588:                                             ; preds = %8587
  br label %8589

8589:                                             ; preds = %8588
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %8590 = call ptr @__errno_location() #12
  %8591 = load i32, ptr %8590, align 4, !tbaa !5
  store i32 %8591, ptr %191, align 4, !tbaa !5
  %8592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8593 = call i32 @s2n_print_stacktrace(ptr noundef %8592)
  %8594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8595 = trunc i8 %8594 to i1
  br i1 %8595, label %8596, label %8618

8596:                                             ; preds = %8589
  %8597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8598 = call i32 @fileno(ptr noundef %8597) #11
  %8599 = call i32 @isatty(i32 noundef %8598) #11
  %8600 = icmp ne i32 %8599, 0
  br i1 %8600, label %8601, label %8618

8601:                                             ; preds = %8596
  %8602 = load i32, ptr %191, align 4, !tbaa !5
  %8603 = call ptr @__errno_location() #12
  store i32 %8602, ptr %8603, align 4, !tbaa !5
  %8604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8605 = load i32, ptr @test_count, align 4, !tbaa !5
  %8606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror(i32 noundef %8607, ptr noundef @.str.4)
  %8609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @s2n_strerror_debug(i32 noundef %8610, ptr noundef @.str.4)
  %8612 = call ptr @__errno_location() #12
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call ptr @strerror(i32 noundef %8613) #11
  %8615 = call ptr @__errno_location() #12
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8604, ptr noundef @.str.2, i32 noundef %8605, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 471, ptr noundef %8608, ptr noundef %8611, ptr noundef %8614, i32 noundef %8616) #11
  br label %8635

8618:                                             ; preds = %8596, %8589
  %8619 = load i32, ptr %191, align 4, !tbaa !5
  %8620 = call ptr @__errno_location() #12
  store i32 %8619, ptr %8620, align 4, !tbaa !5
  %8621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8622 = load i32, ptr @test_count, align 4, !tbaa !5
  %8623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8624 = load i32, ptr %8623, align 4, !tbaa !5
  %8625 = call ptr @s2n_strerror(i32 noundef %8624, ptr noundef @.str.4)
  %8626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8627 = load i32, ptr %8626, align 4, !tbaa !5
  %8628 = call ptr @s2n_strerror_debug(i32 noundef %8627, ptr noundef @.str.4)
  %8629 = call ptr @__errno_location() #12
  %8630 = load i32, ptr %8629, align 4, !tbaa !5
  %8631 = call ptr @strerror(i32 noundef %8630) #11
  %8632 = call ptr @__errno_location() #12
  %8633 = load i32, ptr %8632, align 4, !tbaa !5
  %8634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8621, ptr noundef @.str.5, i32 noundef %8622, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 471, ptr noundef %8625, ptr noundef %8628, ptr noundef %8631, i32 noundef %8633) #11
  br label %8635

8635:                                             ; preds = %8618, %8601
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636
  call void @exit(i32 noundef 1) #13
  unreachable

8638:                                             ; No predecessors!
  br label %8639

8639:                                             ; preds = %8638
  br label %8640

8640:                                             ; preds = %8639, %8582
  br label %8641

8641:                                             ; preds = %8640
  br label %8642

8642:                                             ; preds = %8641
  br label %8643

8643:                                             ; preds = %8642
  %8644 = load i32, ptr @test_count, align 4, !tbaa !5
  %8645 = add nsw i32 %8644, 1
  store i32 %8645, ptr @test_count, align 4, !tbaa !5
  %8646 = load ptr, ptr %190, align 8, !tbaa !9
  %8647 = load ptr, ptr %12, align 8, !tbaa !9
  %8648 = call i32 @s2n_connection_set_config(ptr noundef %8646, ptr noundef %8647)
  %8649 = icmp eq i32 %8648, -1
  br i1 %8649, label %8650, label %8703

8650:                                             ; preds = %8643
  br label %8651

8651:                                             ; preds = %8650
  br label %8652

8652:                                             ; preds = %8651
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %8653 = call ptr @__errno_location() #12
  %8654 = load i32, ptr %8653, align 4, !tbaa !5
  store i32 %8654, ptr %192, align 4, !tbaa !5
  %8655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8656 = call i32 @s2n_print_stacktrace(ptr noundef %8655)
  %8657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8658 = trunc i8 %8657 to i1
  br i1 %8658, label %8659, label %8681

8659:                                             ; preds = %8652
  %8660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8661 = call i32 @fileno(ptr noundef %8660) #11
  %8662 = call i32 @isatty(i32 noundef %8661) #11
  %8663 = icmp ne i32 %8662, 0
  br i1 %8663, label %8664, label %8681

8664:                                             ; preds = %8659
  %8665 = load i32, ptr %192, align 4, !tbaa !5
  %8666 = call ptr @__errno_location() #12
  store i32 %8665, ptr %8666, align 4, !tbaa !5
  %8667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8668 = load i32, ptr @test_count, align 4, !tbaa !5
  %8669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call ptr @s2n_strerror(i32 noundef %8670, ptr noundef @.str.4)
  %8672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call ptr @s2n_strerror_debug(i32 noundef %8673, ptr noundef @.str.4)
  %8675 = call ptr @__errno_location() #12
  %8676 = load i32, ptr %8675, align 4, !tbaa !5
  %8677 = call ptr @strerror(i32 noundef %8676) #11
  %8678 = call ptr @__errno_location() #12
  %8679 = load i32, ptr %8678, align 4, !tbaa !5
  %8680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8667, ptr noundef @.str.2, i32 noundef %8668, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 472, ptr noundef %8671, ptr noundef %8674, ptr noundef %8677, i32 noundef %8679) #11
  br label %8698

8681:                                             ; preds = %8659, %8652
  %8682 = load i32, ptr %192, align 4, !tbaa !5
  %8683 = call ptr @__errno_location() #12
  store i32 %8682, ptr %8683, align 4, !tbaa !5
  %8684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8685 = load i32, ptr @test_count, align 4, !tbaa !5
  %8686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8687 = load i32, ptr %8686, align 4, !tbaa !5
  %8688 = call ptr @s2n_strerror(i32 noundef %8687, ptr noundef @.str.4)
  %8689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8690 = load i32, ptr %8689, align 4, !tbaa !5
  %8691 = call ptr @s2n_strerror_debug(i32 noundef %8690, ptr noundef @.str.4)
  %8692 = call ptr @__errno_location() #12
  %8693 = load i32, ptr %8692, align 4, !tbaa !5
  %8694 = call ptr @strerror(i32 noundef %8693) #11
  %8695 = call ptr @__errno_location() #12
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  %8697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8684, ptr noundef @.str.5, i32 noundef %8685, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 472, ptr noundef %8688, ptr noundef %8691, ptr noundef %8694, i32 noundef %8696) #11
  br label %8698

8698:                                             ; preds = %8681, %8664
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %8699

8699:                                             ; preds = %8698
  br label %8700

8700:                                             ; preds = %8699
  call void @exit(i32 noundef 1) #13
  unreachable

8701:                                             ; No predecessors!
  br label %8702

8702:                                             ; preds = %8701
  br label %8703

8703:                                             ; preds = %8702, %8643
  br label %8704

8704:                                             ; preds = %8703
  br label %8705

8705:                                             ; preds = %8704
  br label %8706

8706:                                             ; preds = %8705
  %8707 = load i32, ptr @test_count, align 4, !tbaa !5
  %8708 = add nsw i32 %8707, 1
  store i32 %8708, ptr @test_count, align 4, !tbaa !5
  %8709 = load ptr, ptr %190, align 8, !tbaa !9
  %8710 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8709, ptr noundef @.str.79)
  %8711 = icmp eq i32 %8710, -1
  br i1 %8711, label %8712, label %8765

8712:                                             ; preds = %8706
  br label %8713

8713:                                             ; preds = %8712
  br label %8714

8714:                                             ; preds = %8713
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %8715 = call ptr @__errno_location() #12
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  store i32 %8716, ptr %193, align 4, !tbaa !5
  %8717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8718 = call i32 @s2n_print_stacktrace(ptr noundef %8717)
  %8719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8720 = trunc i8 %8719 to i1
  br i1 %8720, label %8721, label %8743

8721:                                             ; preds = %8714
  %8722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8723 = call i32 @fileno(ptr noundef %8722) #11
  %8724 = call i32 @isatty(i32 noundef %8723) #11
  %8725 = icmp ne i32 %8724, 0
  br i1 %8725, label %8726, label %8743

8726:                                             ; preds = %8721
  %8727 = load i32, ptr %193, align 4, !tbaa !5
  %8728 = call ptr @__errno_location() #12
  store i32 %8727, ptr %8728, align 4, !tbaa !5
  %8729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8730 = load i32, ptr @test_count, align 4, !tbaa !5
  %8731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8732 = load i32, ptr %8731, align 4, !tbaa !5
  %8733 = call ptr @s2n_strerror(i32 noundef %8732, ptr noundef @.str.4)
  %8734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8735 = load i32, ptr %8734, align 4, !tbaa !5
  %8736 = call ptr @s2n_strerror_debug(i32 noundef %8735, ptr noundef @.str.4)
  %8737 = call ptr @__errno_location() #12
  %8738 = load i32, ptr %8737, align 4, !tbaa !5
  %8739 = call ptr @strerror(i32 noundef %8738) #11
  %8740 = call ptr @__errno_location() #12
  %8741 = load i32, ptr %8740, align 4, !tbaa !5
  %8742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8729, ptr noundef @.str.2, i32 noundef %8730, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8733, ptr noundef %8736, ptr noundef %8739, i32 noundef %8741) #11
  br label %8760

8743:                                             ; preds = %8721, %8714
  %8744 = load i32, ptr %193, align 4, !tbaa !5
  %8745 = call ptr @__errno_location() #12
  store i32 %8744, ptr %8745, align 4, !tbaa !5
  %8746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8747 = load i32, ptr @test_count, align 4, !tbaa !5
  %8748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8749 = load i32, ptr %8748, align 4, !tbaa !5
  %8750 = call ptr @s2n_strerror(i32 noundef %8749, ptr noundef @.str.4)
  %8751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8752 = load i32, ptr %8751, align 4, !tbaa !5
  %8753 = call ptr @s2n_strerror_debug(i32 noundef %8752, ptr noundef @.str.4)
  %8754 = call ptr @__errno_location() #12
  %8755 = load i32, ptr %8754, align 4, !tbaa !5
  %8756 = call ptr @strerror(i32 noundef %8755) #11
  %8757 = call ptr @__errno_location() #12
  %8758 = load i32, ptr %8757, align 4, !tbaa !5
  %8759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8746, ptr noundef @.str.5, i32 noundef %8747, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 473, ptr noundef %8750, ptr noundef %8753, ptr noundef %8756, i32 noundef %8758) #11
  br label %8760

8760:                                             ; preds = %8743, %8726
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %8761

8761:                                             ; preds = %8760
  br label %8762

8762:                                             ; preds = %8761
  call void @exit(i32 noundef 1) #13
  unreachable

8763:                                             ; No predecessors!
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764, %8706
  br label %8766

8766:                                             ; preds = %8765
  br label %8767

8767:                                             ; preds = %8766
  %8768 = load ptr, ptr %190, align 8, !tbaa !9
  %8769 = getelementptr inbounds %struct.s2n_connection, ptr %8768, i32 0, i32 21
  store i8 30, ptr %8769, align 2, !tbaa !49
  %8770 = load ptr, ptr %190, align 8, !tbaa !9
  %8771 = getelementptr inbounds %struct.s2n_connection, ptr %8770, i32 0, i32 23
  store i8 30, ptr %8771, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %194) #11
  %8772 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8772, ptr %194, align 8, !tbaa !9
  br label %8773

8773:                                             ; preds = %8767
  %8774 = load i32, ptr @test_count, align 4, !tbaa !5
  %8775 = add nsw i32 %8774, 1
  store i32 %8775, ptr @test_count, align 4, !tbaa !5
  %8776 = load ptr, ptr %194, align 8, !tbaa !9
  %8777 = icmp eq ptr %8776, null
  br i1 %8777, label %8778, label %8831

8778:                                             ; preds = %8773
  br label %8779

8779:                                             ; preds = %8778
  br label %8780

8780:                                             ; preds = %8779
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8781 = call ptr @__errno_location() #12
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  store i32 %8782, ptr %195, align 4, !tbaa !5
  %8783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8784 = call i32 @s2n_print_stacktrace(ptr noundef %8783)
  %8785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8786 = trunc i8 %8785 to i1
  br i1 %8786, label %8787, label %8809

8787:                                             ; preds = %8780
  %8788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8789 = call i32 @fileno(ptr noundef %8788) #11
  %8790 = call i32 @isatty(i32 noundef %8789) #11
  %8791 = icmp ne i32 %8790, 0
  br i1 %8791, label %8792, label %8809

8792:                                             ; preds = %8787
  %8793 = load i32, ptr %195, align 4, !tbaa !5
  %8794 = call ptr @__errno_location() #12
  store i32 %8793, ptr %8794, align 4, !tbaa !5
  %8795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8796 = load i32, ptr @test_count, align 4, !tbaa !5
  %8797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8798 = load i32, ptr %8797, align 4, !tbaa !5
  %8799 = call ptr @s2n_strerror(i32 noundef %8798, ptr noundef @.str.4)
  %8800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8801 = load i32, ptr %8800, align 4, !tbaa !5
  %8802 = call ptr @s2n_strerror_debug(i32 noundef %8801, ptr noundef @.str.4)
  %8803 = call ptr @__errno_location() #12
  %8804 = load i32, ptr %8803, align 4, !tbaa !5
  %8805 = call ptr @strerror(i32 noundef %8804) #11
  %8806 = call ptr @__errno_location() #12
  %8807 = load i32, ptr %8806, align 4, !tbaa !5
  %8808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8795, ptr noundef @.str.2, i32 noundef %8796, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 479, ptr noundef %8799, ptr noundef %8802, ptr noundef %8805, i32 noundef %8807) #11
  br label %8826

8809:                                             ; preds = %8787, %8780
  %8810 = load i32, ptr %195, align 4, !tbaa !5
  %8811 = call ptr @__errno_location() #12
  store i32 %8810, ptr %8811, align 4, !tbaa !5
  %8812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8813 = load i32, ptr @test_count, align 4, !tbaa !5
  %8814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8815 = load i32, ptr %8814, align 4, !tbaa !5
  %8816 = call ptr @s2n_strerror(i32 noundef %8815, ptr noundef @.str.4)
  %8817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8818 = load i32, ptr %8817, align 4, !tbaa !5
  %8819 = call ptr @s2n_strerror_debug(i32 noundef %8818, ptr noundef @.str.4)
  %8820 = call ptr @__errno_location() #12
  %8821 = load i32, ptr %8820, align 4, !tbaa !5
  %8822 = call ptr @strerror(i32 noundef %8821) #11
  %8823 = call ptr @__errno_location() #12
  %8824 = load i32, ptr %8823, align 4, !tbaa !5
  %8825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8812, ptr noundef @.str.5, i32 noundef %8813, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 479, ptr noundef %8816, ptr noundef %8819, ptr noundef %8822, i32 noundef %8824) #11
  br label %8826

8826:                                             ; preds = %8809, %8792
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %8827

8827:                                             ; preds = %8826
  br label %8828

8828:                                             ; preds = %8827
  call void @exit(i32 noundef 1) #13
  unreachable

8829:                                             ; No predecessors!
  br label %8830

8830:                                             ; preds = %8829
  br label %8831

8831:                                             ; preds = %8830, %8773
  br label %8832

8832:                                             ; preds = %8831
  br label %8833

8833:                                             ; preds = %8832
  br label %8834

8834:                                             ; preds = %8833
  %8835 = load i32, ptr @test_count, align 4, !tbaa !5
  %8836 = add nsw i32 %8835, 1
  store i32 %8836, ptr @test_count, align 4, !tbaa !5
  %8837 = load ptr, ptr %194, align 8, !tbaa !9
  %8838 = load ptr, ptr %12, align 8, !tbaa !9
  %8839 = call i32 @s2n_connection_set_config(ptr noundef %8837, ptr noundef %8838)
  %8840 = icmp eq i32 %8839, -1
  br i1 %8840, label %8841, label %8894

8841:                                             ; preds = %8834
  br label %8842

8842:                                             ; preds = %8841
  br label %8843

8843:                                             ; preds = %8842
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %8844 = call ptr @__errno_location() #12
  %8845 = load i32, ptr %8844, align 4, !tbaa !5
  store i32 %8845, ptr %196, align 4, !tbaa !5
  %8846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8847 = call i32 @s2n_print_stacktrace(ptr noundef %8846)
  %8848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8849 = trunc i8 %8848 to i1
  br i1 %8849, label %8850, label %8872

8850:                                             ; preds = %8843
  %8851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8852 = call i32 @fileno(ptr noundef %8851) #11
  %8853 = call i32 @isatty(i32 noundef %8852) #11
  %8854 = icmp ne i32 %8853, 0
  br i1 %8854, label %8855, label %8872

8855:                                             ; preds = %8850
  %8856 = load i32, ptr %196, align 4, !tbaa !5
  %8857 = call ptr @__errno_location() #12
  store i32 %8856, ptr %8857, align 4, !tbaa !5
  %8858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8859 = load i32, ptr @test_count, align 4, !tbaa !5
  %8860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8861 = load i32, ptr %8860, align 4, !tbaa !5
  %8862 = call ptr @s2n_strerror(i32 noundef %8861, ptr noundef @.str.4)
  %8863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8864 = load i32, ptr %8863, align 4, !tbaa !5
  %8865 = call ptr @s2n_strerror_debug(i32 noundef %8864, ptr noundef @.str.4)
  %8866 = call ptr @__errno_location() #12
  %8867 = load i32, ptr %8866, align 4, !tbaa !5
  %8868 = call ptr @strerror(i32 noundef %8867) #11
  %8869 = call ptr @__errno_location() #12
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8858, ptr noundef @.str.2, i32 noundef %8859, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 480, ptr noundef %8862, ptr noundef %8865, ptr noundef %8868, i32 noundef %8870) #11
  br label %8889

8872:                                             ; preds = %8850, %8843
  %8873 = load i32, ptr %196, align 4, !tbaa !5
  %8874 = call ptr @__errno_location() #12
  store i32 %8873, ptr %8874, align 4, !tbaa !5
  %8875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8876 = load i32, ptr @test_count, align 4, !tbaa !5
  %8877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8878 = load i32, ptr %8877, align 4, !tbaa !5
  %8879 = call ptr @s2n_strerror(i32 noundef %8878, ptr noundef @.str.4)
  %8880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8881 = load i32, ptr %8880, align 4, !tbaa !5
  %8882 = call ptr @s2n_strerror_debug(i32 noundef %8881, ptr noundef @.str.4)
  %8883 = call ptr @__errno_location() #12
  %8884 = load i32, ptr %8883, align 4, !tbaa !5
  %8885 = call ptr @strerror(i32 noundef %8884) #11
  %8886 = call ptr @__errno_location() #12
  %8887 = load i32, ptr %8886, align 4, !tbaa !5
  %8888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8875, ptr noundef @.str.5, i32 noundef %8876, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 480, ptr noundef %8879, ptr noundef %8882, ptr noundef %8885, i32 noundef %8887) #11
  br label %8889

8889:                                             ; preds = %8872, %8855
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %8890

8890:                                             ; preds = %8889
  br label %8891

8891:                                             ; preds = %8890
  call void @exit(i32 noundef 1) #13
  unreachable

8892:                                             ; No predecessors!
  br label %8893

8893:                                             ; preds = %8892
  br label %8894

8894:                                             ; preds = %8893, %8834
  br label %8895

8895:                                             ; preds = %8894
  br label %8896

8896:                                             ; preds = %8895
  br label %8897

8897:                                             ; preds = %8896
  %8898 = load i32, ptr @test_count, align 4, !tbaa !5
  %8899 = add nsw i32 %8898, 1
  store i32 %8899, ptr @test_count, align 4, !tbaa !5
  %8900 = load ptr, ptr %194, align 8, !tbaa !9
  %8901 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8900, ptr noundef @.str.79)
  %8902 = icmp eq i32 %8901, -1
  br i1 %8902, label %8903, label %8956

8903:                                             ; preds = %8897
  br label %8904

8904:                                             ; preds = %8903
  br label %8905

8905:                                             ; preds = %8904
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %8906 = call ptr @__errno_location() #12
  %8907 = load i32, ptr %8906, align 4, !tbaa !5
  store i32 %8907, ptr %197, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = call i32 @s2n_print_stacktrace(ptr noundef %8908)
  %8910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8911 = trunc i8 %8910 to i1
  br i1 %8911, label %8912, label %8934

8912:                                             ; preds = %8905
  %8913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8914 = call i32 @fileno(ptr noundef %8913) #11
  %8915 = call i32 @isatty(i32 noundef %8914) #11
  %8916 = icmp ne i32 %8915, 0
  br i1 %8916, label %8917, label %8934

8917:                                             ; preds = %8912
  %8918 = load i32, ptr %197, align 4, !tbaa !5
  %8919 = call ptr @__errno_location() #12
  store i32 %8918, ptr %8919, align 4, !tbaa !5
  %8920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8921 = load i32, ptr @test_count, align 4, !tbaa !5
  %8922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8923 = load i32, ptr %8922, align 4, !tbaa !5
  %8924 = call ptr @s2n_strerror(i32 noundef %8923, ptr noundef @.str.4)
  %8925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8926 = load i32, ptr %8925, align 4, !tbaa !5
  %8927 = call ptr @s2n_strerror_debug(i32 noundef %8926, ptr noundef @.str.4)
  %8928 = call ptr @__errno_location() #12
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  %8930 = call ptr @strerror(i32 noundef %8929) #11
  %8931 = call ptr @__errno_location() #12
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8920, ptr noundef @.str.2, i32 noundef %8921, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 481, ptr noundef %8924, ptr noundef %8927, ptr noundef %8930, i32 noundef %8932) #11
  br label %8951

8934:                                             ; preds = %8912, %8905
  %8935 = load i32, ptr %197, align 4, !tbaa !5
  %8936 = call ptr @__errno_location() #12
  store i32 %8935, ptr %8936, align 4, !tbaa !5
  %8937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8938 = load i32, ptr @test_count, align 4, !tbaa !5
  %8939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8940 = load i32, ptr %8939, align 4, !tbaa !5
  %8941 = call ptr @s2n_strerror(i32 noundef %8940, ptr noundef @.str.4)
  %8942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  %8944 = call ptr @s2n_strerror_debug(i32 noundef %8943, ptr noundef @.str.4)
  %8945 = call ptr @__errno_location() #12
  %8946 = load i32, ptr %8945, align 4, !tbaa !5
  %8947 = call ptr @strerror(i32 noundef %8946) #11
  %8948 = call ptr @__errno_location() #12
  %8949 = load i32, ptr %8948, align 4, !tbaa !5
  %8950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8937, ptr noundef @.str.5, i32 noundef %8938, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 481, ptr noundef %8941, ptr noundef %8944, ptr noundef %8947, i32 noundef %8949) #11
  br label %8951

8951:                                             ; preds = %8934, %8917
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %8952

8952:                                             ; preds = %8951
  br label %8953

8953:                                             ; preds = %8952
  call void @exit(i32 noundef 1) #13
  unreachable

8954:                                             ; No predecessors!
  br label %8955

8955:                                             ; preds = %8954
  br label %8956

8956:                                             ; preds = %8955, %8897
  br label %8957

8957:                                             ; preds = %8956
  br label %8958

8958:                                             ; preds = %8957
  %8959 = load ptr, ptr %194, align 8, !tbaa !9
  %8960 = getelementptr inbounds %struct.s2n_connection, ptr %8959, i32 0, i32 22
  store i8 30, ptr %8960, align 1, !tbaa !56
  %8961 = load ptr, ptr %194, align 8, !tbaa !9
  %8962 = getelementptr inbounds %struct.s2n_connection, ptr %8961, i32 0, i32 23
  store i8 30, ptr %8962, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #11
  call void @llvm.memset.p0.i64(ptr align 4 %198, i8 0, i64 8, i1 false)
  br label %8963

8963:                                             ; preds = %8958
  %8964 = load i32, ptr @test_count, align 4, !tbaa !5
  %8965 = add nsw i32 %8964, 1
  store i32 %8965, ptr @test_count, align 4, !tbaa !5
  %8966 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %198)
  %8967 = icmp eq i32 %8966, -1
  br i1 %8967, label %8968, label %9021

8968:                                             ; preds = %8963
  br label %8969

8969:                                             ; preds = %8968
  br label %8970

8970:                                             ; preds = %8969
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %8971 = call ptr @__errno_location() #12
  %8972 = load i32, ptr %8971, align 4, !tbaa !5
  store i32 %8972, ptr %199, align 4, !tbaa !5
  %8973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8974 = call i32 @s2n_print_stacktrace(ptr noundef %8973)
  %8975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8976 = trunc i8 %8975 to i1
  br i1 %8976, label %8977, label %8999

8977:                                             ; preds = %8970
  %8978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8979 = call i32 @fileno(ptr noundef %8978) #11
  %8980 = call i32 @isatty(i32 noundef %8979) #11
  %8981 = icmp ne i32 %8980, 0
  br i1 %8981, label %8982, label %8999

8982:                                             ; preds = %8977
  %8983 = load i32, ptr %199, align 4, !tbaa !5
  %8984 = call ptr @__errno_location() #12
  store i32 %8983, ptr %8984, align 4, !tbaa !5
  %8985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8986 = load i32, ptr @test_count, align 4, !tbaa !5
  %8987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8988 = load i32, ptr %8987, align 4, !tbaa !5
  %8989 = call ptr @s2n_strerror(i32 noundef %8988, ptr noundef @.str.4)
  %8990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8991 = load i32, ptr %8990, align 4, !tbaa !5
  %8992 = call ptr @s2n_strerror_debug(i32 noundef %8991, ptr noundef @.str.4)
  %8993 = call ptr @__errno_location() #12
  %8994 = load i32, ptr %8993, align 4, !tbaa !5
  %8995 = call ptr @strerror(i32 noundef %8994) #11
  %8996 = call ptr @__errno_location() #12
  %8997 = load i32, ptr %8996, align 4, !tbaa !5
  %8998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8985, ptr noundef @.str.2, i32 noundef %8986, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 486, ptr noundef %8989, ptr noundef %8992, ptr noundef %8995, i32 noundef %8997) #11
  br label %9016

8999:                                             ; preds = %8977, %8970
  %9000 = load i32, ptr %199, align 4, !tbaa !5
  %9001 = call ptr @__errno_location() #12
  store i32 %9000, ptr %9001, align 4, !tbaa !5
  %9002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9003 = load i32, ptr @test_count, align 4, !tbaa !5
  %9004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9005 = load i32, ptr %9004, align 4, !tbaa !5
  %9006 = call ptr @s2n_strerror(i32 noundef %9005, ptr noundef @.str.4)
  %9007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9008 = load i32, ptr %9007, align 4, !tbaa !5
  %9009 = call ptr @s2n_strerror_debug(i32 noundef %9008, ptr noundef @.str.4)
  %9010 = call ptr @__errno_location() #12
  %9011 = load i32, ptr %9010, align 4, !tbaa !5
  %9012 = call ptr @strerror(i32 noundef %9011) #11
  %9013 = call ptr @__errno_location() #12
  %9014 = load i32, ptr %9013, align 4, !tbaa !5
  %9015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9002, ptr noundef @.str.5, i32 noundef %9003, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 486, ptr noundef %9006, ptr noundef %9009, ptr noundef %9012, i32 noundef %9014) #11
  br label %9016

9016:                                             ; preds = %8999, %8982
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %9017

9017:                                             ; preds = %9016
  br label %9018

9018:                                             ; preds = %9017
  call void @exit(i32 noundef 1) #13
  unreachable

9019:                                             ; No predecessors!
  br label %9020

9020:                                             ; preds = %9019
  br label %9021

9021:                                             ; preds = %9020, %8963
  br label %9022

9022:                                             ; preds = %9021
  br label %9023

9023:                                             ; preds = %9022
  br label %9024

9024:                                             ; preds = %9023
  %9025 = load i32, ptr @test_count, align 4, !tbaa !5
  %9026 = add nsw i32 %9025, 1
  store i32 %9026, ptr @test_count, align 4, !tbaa !5
  %9027 = load ptr, ptr %190, align 8, !tbaa !9
  %9028 = load ptr, ptr %194, align 8, !tbaa !9
  %9029 = call i32 @s2n_connections_set_io_pair(ptr noundef %9027, ptr noundef %9028, ptr noundef %198)
  %9030 = icmp eq i32 %9029, -1
  br i1 %9030, label %9031, label %9084

9031:                                             ; preds = %9024
  br label %9032

9032:                                             ; preds = %9031
  br label %9033

9033:                                             ; preds = %9032
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %9034 = call ptr @__errno_location() #12
  %9035 = load i32, ptr %9034, align 4, !tbaa !5
  store i32 %9035, ptr %200, align 4, !tbaa !5
  %9036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9037 = call i32 @s2n_print_stacktrace(ptr noundef %9036)
  %9038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9039 = trunc i8 %9038 to i1
  br i1 %9039, label %9040, label %9062

9040:                                             ; preds = %9033
  %9041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9042 = call i32 @fileno(ptr noundef %9041) #11
  %9043 = call i32 @isatty(i32 noundef %9042) #11
  %9044 = icmp ne i32 %9043, 0
  br i1 %9044, label %9045, label %9062

9045:                                             ; preds = %9040
  %9046 = load i32, ptr %200, align 4, !tbaa !5
  %9047 = call ptr @__errno_location() #12
  store i32 %9046, ptr %9047, align 4, !tbaa !5
  %9048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9049 = load i32, ptr @test_count, align 4, !tbaa !5
  %9050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9051 = load i32, ptr %9050, align 4, !tbaa !5
  %9052 = call ptr @s2n_strerror(i32 noundef %9051, ptr noundef @.str.4)
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror_debug(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call ptr @__errno_location() #12
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @strerror(i32 noundef %9057) #11
  %9059 = call ptr @__errno_location() #12
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9048, ptr noundef @.str.2, i32 noundef %9049, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 487, ptr noundef %9052, ptr noundef %9055, ptr noundef %9058, i32 noundef %9060) #11
  br label %9079

9062:                                             ; preds = %9040, %9033
  %9063 = load i32, ptr %200, align 4, !tbaa !5
  %9064 = call ptr @__errno_location() #12
  store i32 %9063, ptr %9064, align 4, !tbaa !5
  %9065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9066 = load i32, ptr @test_count, align 4, !tbaa !5
  %9067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9068 = load i32, ptr %9067, align 4, !tbaa !5
  %9069 = call ptr @s2n_strerror(i32 noundef %9068, ptr noundef @.str.4)
  %9070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9071 = load i32, ptr %9070, align 4, !tbaa !5
  %9072 = call ptr @s2n_strerror_debug(i32 noundef %9071, ptr noundef @.str.4)
  %9073 = call ptr @__errno_location() #12
  %9074 = load i32, ptr %9073, align 4, !tbaa !5
  %9075 = call ptr @strerror(i32 noundef %9074) #11
  %9076 = call ptr @__errno_location() #12
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  %9078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9065, ptr noundef @.str.5, i32 noundef %9066, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 487, ptr noundef %9069, ptr noundef %9072, ptr noundef %9075, i32 noundef %9077) #11
  br label %9079

9079:                                             ; preds = %9062, %9045
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %9080

9080:                                             ; preds = %9079
  br label %9081

9081:                                             ; preds = %9080
  call void @exit(i32 noundef 1) #13
  unreachable

9082:                                             ; No predecessors!
  br label %9083

9083:                                             ; preds = %9082
  br label %9084

9084:                                             ; preds = %9083, %9024
  br label %9085

9085:                                             ; preds = %9084
  br label %9086

9086:                                             ; preds = %9085
  br label %9087

9087:                                             ; preds = %9086
  %9088 = load i32, ptr @test_count, align 4, !tbaa !5
  %9089 = add nsw i32 %9088, 1
  store i32 %9089, ptr @test_count, align 4, !tbaa !5
  %9090 = load ptr, ptr %194, align 8, !tbaa !9
  %9091 = load ptr, ptr %190, align 8, !tbaa !9
  %9092 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9090, ptr noundef %9091)
  %9093 = icmp eq i32 %9092, -1
  br i1 %9093, label %9094, label %9147

9094:                                             ; preds = %9087
  br label %9095

9095:                                             ; preds = %9094
  br label %9096

9096:                                             ; preds = %9095
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %9097 = call ptr @__errno_location() #12
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  store i32 %9098, ptr %201, align 4, !tbaa !5
  %9099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9100 = call i32 @s2n_print_stacktrace(ptr noundef %9099)
  %9101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9102 = trunc i8 %9101 to i1
  br i1 %9102, label %9103, label %9125

9103:                                             ; preds = %9096
  %9104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9105 = call i32 @fileno(ptr noundef %9104) #11
  %9106 = call i32 @isatty(i32 noundef %9105) #11
  %9107 = icmp ne i32 %9106, 0
  br i1 %9107, label %9108, label %9125

9108:                                             ; preds = %9103
  %9109 = load i32, ptr %201, align 4, !tbaa !5
  %9110 = call ptr @__errno_location() #12
  store i32 %9109, ptr %9110, align 4, !tbaa !5
  %9111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9112 = load i32, ptr @test_count, align 4, !tbaa !5
  %9113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9114 = load i32, ptr %9113, align 4, !tbaa !5
  %9115 = call ptr @s2n_strerror(i32 noundef %9114, ptr noundef @.str.4)
  %9116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9117 = load i32, ptr %9116, align 4, !tbaa !5
  %9118 = call ptr @s2n_strerror_debug(i32 noundef %9117, ptr noundef @.str.4)
  %9119 = call ptr @__errno_location() #12
  %9120 = load i32, ptr %9119, align 4, !tbaa !5
  %9121 = call ptr @strerror(i32 noundef %9120) #11
  %9122 = call ptr @__errno_location() #12
  %9123 = load i32, ptr %9122, align 4, !tbaa !5
  %9124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9111, ptr noundef @.str.2, i32 noundef %9112, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 489, ptr noundef %9115, ptr noundef %9118, ptr noundef %9121, i32 noundef %9123) #11
  br label %9142

9125:                                             ; preds = %9103, %9096
  %9126 = load i32, ptr %201, align 4, !tbaa !5
  %9127 = call ptr @__errno_location() #12
  store i32 %9126, ptr %9127, align 4, !tbaa !5
  %9128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9129 = load i32, ptr @test_count, align 4, !tbaa !5
  %9130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9131 = load i32, ptr %9130, align 4, !tbaa !5
  %9132 = call ptr @s2n_strerror(i32 noundef %9131, ptr noundef @.str.4)
  %9133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9134 = load i32, ptr %9133, align 4, !tbaa !5
  %9135 = call ptr @s2n_strerror_debug(i32 noundef %9134, ptr noundef @.str.4)
  %9136 = call ptr @__errno_location() #12
  %9137 = load i32, ptr %9136, align 4, !tbaa !5
  %9138 = call ptr @strerror(i32 noundef %9137) #11
  %9139 = call ptr @__errno_location() #12
  %9140 = load i32, ptr %9139, align 4, !tbaa !5
  %9141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9128, ptr noundef @.str.5, i32 noundef %9129, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 489, ptr noundef %9132, ptr noundef %9135, ptr noundef %9138, i32 noundef %9140) #11
  br label %9142

9142:                                             ; preds = %9125, %9108
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %9143

9143:                                             ; preds = %9142
  br label %9144

9144:                                             ; preds = %9143
  call void @exit(i32 noundef 1) #13
  unreachable

9145:                                             ; No predecessors!
  br label %9146

9146:                                             ; preds = %9145
  br label %9147

9147:                                             ; preds = %9146, %9087
  br label %9148

9148:                                             ; preds = %9147
  br label %9149

9149:                                             ; preds = %9148
  br label %9150

9150:                                             ; preds = %9149
  %9151 = load i32, ptr @test_count, align 4, !tbaa !5
  %9152 = add nsw i32 %9151, 1
  store i32 %9152, ptr @test_count, align 4, !tbaa !5
  %9153 = load ptr, ptr %190, align 8, !tbaa !9
  %9154 = load i32, ptr %9153, align 8
  %9155 = lshr i32 %9154, 3
  %9156 = and i32 %9155, 1
  %9157 = icmp ne i32 %9156, 0
  br i1 %9157, label %9211, label %9158

9158:                                             ; preds = %9150
  br label %9159

9159:                                             ; preds = %9158
  br label %9160

9160:                                             ; preds = %9159
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %9161 = call ptr @__errno_location() #12
  %9162 = load i32, ptr %9161, align 4, !tbaa !5
  store i32 %9162, ptr %202, align 4, !tbaa !5
  %9163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9164 = call i32 @s2n_print_stacktrace(ptr noundef %9163)
  %9165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9166 = trunc i8 %9165 to i1
  br i1 %9166, label %9167, label %9189

9167:                                             ; preds = %9160
  %9168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9169 = call i32 @fileno(ptr noundef %9168) #11
  %9170 = call i32 @isatty(i32 noundef %9169) #11
  %9171 = icmp ne i32 %9170, 0
  br i1 %9171, label %9172, label %9189

9172:                                             ; preds = %9167
  %9173 = load i32, ptr %202, align 4, !tbaa !5
  %9174 = call ptr @__errno_location() #12
  store i32 %9173, ptr %9174, align 4, !tbaa !5
  %9175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9176 = load i32, ptr @test_count, align 4, !tbaa !5
  %9177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call ptr @s2n_strerror(i32 noundef %9178, ptr noundef @.str.4)
  %9180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call ptr @s2n_strerror_debug(i32 noundef %9181, ptr noundef @.str.4)
  %9183 = call ptr @__errno_location() #12
  %9184 = load i32, ptr %9183, align 4, !tbaa !5
  %9185 = call ptr @strerror(i32 noundef %9184) #11
  %9186 = call ptr @__errno_location() #12
  %9187 = load i32, ptr %9186, align 4, !tbaa !5
  %9188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9175, ptr noundef @.str.2, i32 noundef %9176, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 490, ptr noundef %9179, ptr noundef %9182, ptr noundef %9185, i32 noundef %9187) #11
  br label %9206

9189:                                             ; preds = %9167, %9160
  %9190 = load i32, ptr %202, align 4, !tbaa !5
  %9191 = call ptr @__errno_location() #12
  store i32 %9190, ptr %9191, align 4, !tbaa !5
  %9192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9193 = load i32, ptr @test_count, align 4, !tbaa !5
  %9194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9195 = load i32, ptr %9194, align 4, !tbaa !5
  %9196 = call ptr @s2n_strerror(i32 noundef %9195, ptr noundef @.str.4)
  %9197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9198 = load i32, ptr %9197, align 4, !tbaa !5
  %9199 = call ptr @s2n_strerror_debug(i32 noundef %9198, ptr noundef @.str.4)
  %9200 = call ptr @__errno_location() #12
  %9201 = load i32, ptr %9200, align 4, !tbaa !5
  %9202 = call ptr @strerror(i32 noundef %9201) #11
  %9203 = call ptr @__errno_location() #12
  %9204 = load i32, ptr %9203, align 4, !tbaa !5
  %9205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9192, ptr noundef @.str.5, i32 noundef %9193, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 490, ptr noundef %9196, ptr noundef %9199, ptr noundef %9202, i32 noundef %9204) #11
  br label %9206

9206:                                             ; preds = %9189, %9172
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %9207

9207:                                             ; preds = %9206
  br label %9208

9208:                                             ; preds = %9207
  call void @exit(i32 noundef 1) #13
  unreachable

9209:                                             ; No predecessors!
  br label %9210

9210:                                             ; preds = %9209
  br label %9211

9211:                                             ; preds = %9210, %9150
  br label %9212

9212:                                             ; preds = %9211
  br label %9213

9213:                                             ; preds = %9212
  br label %9214

9214:                                             ; preds = %9213
  %9215 = load i32, ptr @test_count, align 4, !tbaa !5
  %9216 = add nsw i32 %9215, 1
  store i32 %9216, ptr @test_count, align 4, !tbaa !5
  %9217 = load ptr, ptr %194, align 8, !tbaa !9
  %9218 = load i32, ptr %9217, align 8
  %9219 = lshr i32 %9218, 3
  %9220 = and i32 %9219, 1
  %9221 = icmp ne i32 %9220, 0
  br i1 %9221, label %9275, label %9222

9222:                                             ; preds = %9214
  br label %9223

9223:                                             ; preds = %9222
  br label %9224

9224:                                             ; preds = %9223
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %9225 = call ptr @__errno_location() #12
  %9226 = load i32, ptr %9225, align 4, !tbaa !5
  store i32 %9226, ptr %203, align 4, !tbaa !5
  %9227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9228 = call i32 @s2n_print_stacktrace(ptr noundef %9227)
  %9229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9230 = trunc i8 %9229 to i1
  br i1 %9230, label %9231, label %9253

9231:                                             ; preds = %9224
  %9232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9233 = call i32 @fileno(ptr noundef %9232) #11
  %9234 = call i32 @isatty(i32 noundef %9233) #11
  %9235 = icmp ne i32 %9234, 0
  br i1 %9235, label %9236, label %9253

9236:                                             ; preds = %9231
  %9237 = load i32, ptr %203, align 4, !tbaa !5
  %9238 = call ptr @__errno_location() #12
  store i32 %9237, ptr %9238, align 4, !tbaa !5
  %9239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9240 = load i32, ptr @test_count, align 4, !tbaa !5
  %9241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9242 = load i32, ptr %9241, align 4, !tbaa !5
  %9243 = call ptr @s2n_strerror(i32 noundef %9242, ptr noundef @.str.4)
  %9244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9245 = load i32, ptr %9244, align 4, !tbaa !5
  %9246 = call ptr @s2n_strerror_debug(i32 noundef %9245, ptr noundef @.str.4)
  %9247 = call ptr @__errno_location() #12
  %9248 = load i32, ptr %9247, align 4, !tbaa !5
  %9249 = call ptr @strerror(i32 noundef %9248) #11
  %9250 = call ptr @__errno_location() #12
  %9251 = load i32, ptr %9250, align 4, !tbaa !5
  %9252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9239, ptr noundef @.str.2, i32 noundef %9240, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 491, ptr noundef %9243, ptr noundef %9246, ptr noundef %9249, i32 noundef %9251) #11
  br label %9270

9253:                                             ; preds = %9231, %9224
  %9254 = load i32, ptr %203, align 4, !tbaa !5
  %9255 = call ptr @__errno_location() #12
  store i32 %9254, ptr %9255, align 4, !tbaa !5
  %9256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9257 = load i32, ptr @test_count, align 4, !tbaa !5
  %9258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9259 = load i32, ptr %9258, align 4, !tbaa !5
  %9260 = call ptr @s2n_strerror(i32 noundef %9259, ptr noundef @.str.4)
  %9261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9262 = load i32, ptr %9261, align 4, !tbaa !5
  %9263 = call ptr @s2n_strerror_debug(i32 noundef %9262, ptr noundef @.str.4)
  %9264 = call ptr @__errno_location() #12
  %9265 = load i32, ptr %9264, align 4, !tbaa !5
  %9266 = call ptr @strerror(i32 noundef %9265) #11
  %9267 = call ptr @__errno_location() #12
  %9268 = load i32, ptr %9267, align 4, !tbaa !5
  %9269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9256, ptr noundef @.str.5, i32 noundef %9257, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 491, ptr noundef %9260, ptr noundef %9263, ptr noundef %9266, i32 noundef %9268) #11
  br label %9270

9270:                                             ; preds = %9253, %9236
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %9271

9271:                                             ; preds = %9270
  br label %9272

9272:                                             ; preds = %9271
  call void @exit(i32 noundef 1) #13
  unreachable

9273:                                             ; No predecessors!
  br label %9274

9274:                                             ; preds = %9273
  br label %9275

9275:                                             ; preds = %9274, %9214
  br label %9276

9276:                                             ; preds = %9275
  br label %9277

9277:                                             ; preds = %9276
  br label %9278

9278:                                             ; preds = %9277
  %9279 = load i32, ptr @test_count, align 4, !tbaa !5
  %9280 = add nsw i32 %9279, 1
  store i32 %9280, ptr @test_count, align 4, !tbaa !5
  %9281 = load ptr, ptr %190, align 8, !tbaa !9
  %9282 = getelementptr inbounds %struct.s2n_connection, ptr %9281, i32 0, i32 23
  %9283 = load i8, ptr %9282, align 4, !tbaa !16
  %9284 = zext i8 %9283 to i32
  %9285 = icmp eq i32 %9284, 30
  br i1 %9285, label %9339, label %9286

9286:                                             ; preds = %9278
  br label %9287

9287:                                             ; preds = %9286
  br label %9288

9288:                                             ; preds = %9287
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %9289 = call ptr @__errno_location() #12
  %9290 = load i32, ptr %9289, align 4, !tbaa !5
  store i32 %9290, ptr %204, align 4, !tbaa !5
  %9291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9292 = call i32 @s2n_print_stacktrace(ptr noundef %9291)
  %9293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9294 = trunc i8 %9293 to i1
  br i1 %9294, label %9295, label %9317

9295:                                             ; preds = %9288
  %9296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9297 = call i32 @fileno(ptr noundef %9296) #11
  %9298 = call i32 @isatty(i32 noundef %9297) #11
  %9299 = icmp ne i32 %9298, 0
  br i1 %9299, label %9300, label %9317

9300:                                             ; preds = %9295
  %9301 = load i32, ptr %204, align 4, !tbaa !5
  %9302 = call ptr @__errno_location() #12
  store i32 %9301, ptr %9302, align 4, !tbaa !5
  %9303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9304 = load i32, ptr @test_count, align 4, !tbaa !5
  %9305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9306 = load i32, ptr %9305, align 4, !tbaa !5
  %9307 = call ptr @s2n_strerror(i32 noundef %9306, ptr noundef @.str.4)
  %9308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9309 = load i32, ptr %9308, align 4, !tbaa !5
  %9310 = call ptr @s2n_strerror_debug(i32 noundef %9309, ptr noundef @.str.4)
  %9311 = call ptr @__errno_location() #12
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call ptr @strerror(i32 noundef %9312) #11
  %9314 = call ptr @__errno_location() #12
  %9315 = load i32, ptr %9314, align 4, !tbaa !5
  %9316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9303, ptr noundef @.str.2, i32 noundef %9304, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9307, ptr noundef %9310, ptr noundef %9313, i32 noundef %9315) #11
  br label %9334

9317:                                             ; preds = %9295, %9288
  %9318 = load i32, ptr %204, align 4, !tbaa !5
  %9319 = call ptr @__errno_location() #12
  store i32 %9318, ptr %9319, align 4, !tbaa !5
  %9320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9321 = load i32, ptr @test_count, align 4, !tbaa !5
  %9322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9323 = load i32, ptr %9322, align 4, !tbaa !5
  %9324 = call ptr @s2n_strerror(i32 noundef %9323, ptr noundef @.str.4)
  %9325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9326 = load i32, ptr %9325, align 4, !tbaa !5
  %9327 = call ptr @s2n_strerror_debug(i32 noundef %9326, ptr noundef @.str.4)
  %9328 = call ptr @__errno_location() #12
  %9329 = load i32, ptr %9328, align 4, !tbaa !5
  %9330 = call ptr @strerror(i32 noundef %9329) #11
  %9331 = call ptr @__errno_location() #12
  %9332 = load i32, ptr %9331, align 4, !tbaa !5
  %9333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9320, ptr noundef @.str.5, i32 noundef %9321, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9324, ptr noundef %9327, ptr noundef %9330, i32 noundef %9332) #11
  br label %9334

9334:                                             ; preds = %9317, %9300
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %9335

9335:                                             ; preds = %9334
  br label %9336

9336:                                             ; preds = %9335
  call void @exit(i32 noundef 1) #13
  unreachable

9337:                                             ; No predecessors!
  br label %9338

9338:                                             ; preds = %9337
  br label %9339

9339:                                             ; preds = %9338, %9278
  br label %9340

9340:                                             ; preds = %9339
  br label %9341

9341:                                             ; preds = %9340
  br label %9342

9342:                                             ; preds = %9341
  %9343 = load i32, ptr @test_count, align 4, !tbaa !5
  %9344 = add nsw i32 %9343, 1
  store i32 %9344, ptr @test_count, align 4, !tbaa !5
  %9345 = load ptr, ptr %194, align 8, !tbaa !9
  %9346 = getelementptr inbounds %struct.s2n_connection, ptr %9345, i32 0, i32 23
  %9347 = load i8, ptr %9346, align 4, !tbaa !16
  %9348 = zext i8 %9347 to i32
  %9349 = icmp eq i32 %9348, 30
  br i1 %9349, label %9403, label %9350

9350:                                             ; preds = %9342
  br label %9351

9351:                                             ; preds = %9350
  br label %9352

9352:                                             ; preds = %9351
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %9353 = call ptr @__errno_location() #12
  %9354 = load i32, ptr %9353, align 4, !tbaa !5
  store i32 %9354, ptr %205, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = call i32 @s2n_print_stacktrace(ptr noundef %9355)
  %9357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9358 = trunc i8 %9357 to i1
  br i1 %9358, label %9359, label %9381

9359:                                             ; preds = %9352
  %9360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9361 = call i32 @fileno(ptr noundef %9360) #11
  %9362 = call i32 @isatty(i32 noundef %9361) #11
  %9363 = icmp ne i32 %9362, 0
  br i1 %9363, label %9364, label %9381

9364:                                             ; preds = %9359
  %9365 = load i32, ptr %205, align 4, !tbaa !5
  %9366 = call ptr @__errno_location() #12
  store i32 %9365, ptr %9366, align 4, !tbaa !5
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @s2n_strerror(i32 noundef %9370, ptr noundef @.str.4)
  %9372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call ptr @s2n_strerror_debug(i32 noundef %9373, ptr noundef @.str.4)
  %9375 = call ptr @__errno_location() #12
  %9376 = load i32, ptr %9375, align 4, !tbaa !5
  %9377 = call ptr @strerror(i32 noundef %9376) #11
  %9378 = call ptr @__errno_location() #12
  %9379 = load i32, ptr %9378, align 4, !tbaa !5
  %9380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9367, ptr noundef @.str.2, i32 noundef %9368, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 493, ptr noundef %9371, ptr noundef %9374, ptr noundef %9377, i32 noundef %9379) #11
  br label %9398

9381:                                             ; preds = %9359, %9352
  %9382 = load i32, ptr %205, align 4, !tbaa !5
  %9383 = call ptr @__errno_location() #12
  store i32 %9382, ptr %9383, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = load i32, ptr @test_count, align 4, !tbaa !5
  %9386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call ptr @s2n_strerror(i32 noundef %9387, ptr noundef @.str.4)
  %9389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @s2n_strerror_debug(i32 noundef %9390, ptr noundef @.str.4)
  %9392 = call ptr @__errno_location() #12
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call ptr @strerror(i32 noundef %9393) #11
  %9395 = call ptr @__errno_location() #12
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  %9397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef @.str.5, i32 noundef %9385, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 493, ptr noundef %9388, ptr noundef %9391, ptr noundef %9394, i32 noundef %9396) #11
  br label %9398

9398:                                             ; preds = %9381, %9364
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %9399

9399:                                             ; preds = %9398
  br label %9400

9400:                                             ; preds = %9399
  call void @exit(i32 noundef 1) #13
  unreachable

9401:                                             ; No predecessors!
  br label %9402

9402:                                             ; preds = %9401
  br label %9403

9403:                                             ; preds = %9402, %9342
  br label %9404

9404:                                             ; preds = %9403
  br label %9405

9405:                                             ; preds = %9404
  %9406 = call i32 @s2n_io_pair_close(ptr noundef %198)
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #11
  %9407 = call i32 @s2n_connection_ptr_free(ptr noundef %194)
  %9408 = getelementptr inbounds %struct.s2n_result, ptr %206, i32 0, i32 0
  store i32 %9407, ptr %9408, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %194) #11
  %9409 = call i32 @s2n_connection_ptr_free(ptr noundef %190)
  %9410 = getelementptr inbounds %struct.s2n_result, ptr %207, i32 0, i32 0
  store i32 %9409, ptr %9410, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #11
  br label %9411

9411:                                             ; preds = %9405, %8574
  br label %9412

9412:                                             ; preds = %9411
  br label %9413

9413:                                             ; preds = %9412
  %9414 = call i32 @s2n_cleanup()
  %9415 = icmp eq i32 %9414, -1
  br i1 %9415, label %9416, label %9469

9416:                                             ; preds = %9413
  br label %9417

9417:                                             ; preds = %9416
  br label %9418

9418:                                             ; preds = %9417
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %9419 = call ptr @__errno_location() #12
  %9420 = load i32, ptr %9419, align 4, !tbaa !5
  store i32 %9420, ptr %208, align 4, !tbaa !5
  %9421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9422 = call i32 @s2n_print_stacktrace(ptr noundef %9421)
  %9423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9424 = trunc i8 %9423 to i1
  br i1 %9424, label %9425, label %9447

9425:                                             ; preds = %9418
  %9426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9427 = call i32 @fileno(ptr noundef %9426) #11
  %9428 = call i32 @isatty(i32 noundef %9427) #11
  %9429 = icmp ne i32 %9428, 0
  br i1 %9429, label %9430, label %9447

9430:                                             ; preds = %9425
  %9431 = load i32, ptr %208, align 4, !tbaa !5
  %9432 = call ptr @__errno_location() #12
  store i32 %9431, ptr %9432, align 4, !tbaa !5
  %9433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9434 = load i32, ptr @test_count, align 4, !tbaa !5
  %9435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9436 = load i32, ptr %9435, align 4, !tbaa !5
  %9437 = call ptr @s2n_strerror(i32 noundef %9436, ptr noundef @.str.4)
  %9438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  %9440 = call ptr @s2n_strerror_debug(i32 noundef %9439, ptr noundef @.str.4)
  %9441 = call ptr @__errno_location() #12
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call ptr @strerror(i32 noundef %9442) #11
  %9444 = call ptr @__errno_location() #12
  %9445 = load i32, ptr %9444, align 4, !tbaa !5
  %9446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9433, ptr noundef @.str.2, i32 noundef %9434, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9437, ptr noundef %9440, ptr noundef %9443, i32 noundef %9445) #11
  br label %9464

9447:                                             ; preds = %9425, %9418
  %9448 = load i32, ptr %208, align 4, !tbaa !5
  %9449 = call ptr @__errno_location() #12
  store i32 %9448, ptr %9449, align 4, !tbaa !5
  %9450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9451 = load i32, ptr @test_count, align 4, !tbaa !5
  %9452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9453 = load i32, ptr %9452, align 4, !tbaa !5
  %9454 = call ptr @s2n_strerror(i32 noundef %9453, ptr noundef @.str.4)
  %9455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9456 = load i32, ptr %9455, align 4, !tbaa !5
  %9457 = call ptr @s2n_strerror_debug(i32 noundef %9456, ptr noundef @.str.4)
  %9458 = call ptr @__errno_location() #12
  %9459 = load i32, ptr %9458, align 4, !tbaa !5
  %9460 = call ptr @strerror(i32 noundef %9459) #11
  %9461 = call ptr @__errno_location() #12
  %9462 = load i32, ptr %9461, align 4, !tbaa !5
  %9463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9450, ptr noundef @.str.5, i32 noundef %9451, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9454, ptr noundef %9457, ptr noundef %9460, i32 noundef %9462) #11
  br label %9464

9464:                                             ; preds = %9447, %9430
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %9465

9465:                                             ; preds = %9464
  br label %9466

9466:                                             ; preds = %9465
  call void @exit(i32 noundef 1) #13
  unreachable

9467:                                             ; No predecessors!
  br label %9468

9468:                                             ; preds = %9467
  br label %9469

9469:                                             ; preds = %9468, %9413
  br label %9470

9470:                                             ; preds = %9469
  br label %9471

9471:                                             ; preds = %9470
  br label %9472

9472:                                             ; preds = %9471
  br label %9473

9473:                                             ; preds = %9472
  %9474 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %9475 = icmp eq i32 %9474, -1
  br i1 %9475, label %9476, label %9529

9476:                                             ; preds = %9473
  br label %9477

9477:                                             ; preds = %9476
  br label %9478

9478:                                             ; preds = %9477
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %9479 = call ptr @__errno_location() #12
  %9480 = load i32, ptr %9479, align 4, !tbaa !5
  store i32 %9480, ptr %209, align 4, !tbaa !5
  %9481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9482 = call i32 @s2n_print_stacktrace(ptr noundef %9481)
  %9483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9484 = trunc i8 %9483 to i1
  br i1 %9484, label %9485, label %9507

9485:                                             ; preds = %9478
  %9486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9487 = call i32 @fileno(ptr noundef %9486) #11
  %9488 = call i32 @isatty(i32 noundef %9487) #11
  %9489 = icmp ne i32 %9488, 0
  br i1 %9489, label %9490, label %9507

9490:                                             ; preds = %9485
  %9491 = load i32, ptr %209, align 4, !tbaa !5
  %9492 = call ptr @__errno_location() #12
  store i32 %9491, ptr %9492, align 4, !tbaa !5
  %9493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9494 = load i32, ptr @test_count, align 4, !tbaa !5
  %9495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9496 = load i32, ptr %9495, align 4, !tbaa !5
  %9497 = call ptr @s2n_strerror(i32 noundef %9496, ptr noundef @.str.4)
  %9498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9499 = load i32, ptr %9498, align 4, !tbaa !5
  %9500 = call ptr @s2n_strerror_debug(i32 noundef %9499, ptr noundef @.str.4)
  %9501 = call ptr @__errno_location() #12
  %9502 = load i32, ptr %9501, align 4, !tbaa !5
  %9503 = call ptr @strerror(i32 noundef %9502) #11
  %9504 = call ptr @__errno_location() #12
  %9505 = load i32, ptr %9504, align 4, !tbaa !5
  %9506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9493, ptr noundef @.str.2, i32 noundef %9494, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9497, ptr noundef %9500, ptr noundef %9503, i32 noundef %9505) #11
  br label %9524

9507:                                             ; preds = %9485, %9478
  %9508 = load i32, ptr %209, align 4, !tbaa !5
  %9509 = call ptr @__errno_location() #12
  store i32 %9508, ptr %9509, align 4, !tbaa !5
  %9510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9511 = load i32, ptr @test_count, align 4, !tbaa !5
  %9512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9513 = load i32, ptr %9512, align 4, !tbaa !5
  %9514 = call ptr @s2n_strerror(i32 noundef %9513, ptr noundef @.str.4)
  %9515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9516 = load i32, ptr %9515, align 4, !tbaa !5
  %9517 = call ptr @s2n_strerror_debug(i32 noundef %9516, ptr noundef @.str.4)
  %9518 = call ptr @__errno_location() #12
  %9519 = load i32, ptr %9518, align 4, !tbaa !5
  %9520 = call ptr @strerror(i32 noundef %9519) #11
  %9521 = call ptr @__errno_location() #12
  %9522 = load i32, ptr %9521, align 4, !tbaa !5
  %9523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9510, ptr noundef @.str.5, i32 noundef %9511, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9514, ptr noundef %9517, ptr noundef %9520, i32 noundef %9522) #11
  br label %9524

9524:                                             ; preds = %9507, %9490
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %9525

9525:                                             ; preds = %9524
  br label %9526

9526:                                             ; preds = %9525
  call void @exit(i32 noundef 1) #13
  unreachable

9527:                                             ; No predecessors!
  br label %9528

9528:                                             ; preds = %9527
  br label %9529

9529:                                             ; preds = %9528, %9473
  br label %9530

9530:                                             ; preds = %9529
  br label %9531

9531:                                             ; preds = %9530
  %9532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9533 = trunc i8 %9532 to i1
  br i1 %9533, label %9534, label %9550

9534:                                             ; preds = %9531
  %9535 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9536 = call i32 @fileno(ptr noundef %9535) #11
  %9537 = call i32 @isatty(i32 noundef %9536) #11
  %9538 = icmp ne i32 %9537, 0
  br i1 %9538, label %9539, label %9550

9539:                                             ; preds = %9534
  %9540 = load i32, ptr @test_count, align 4, !tbaa !5
  %9541 = icmp ne i32 %9540, 0
  br i1 %9541, label %9542, label %9546

9542:                                             ; preds = %9539
  %9543 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9544 = load i32, ptr @test_count, align 4, !tbaa !5
  %9545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9543, ptr noundef @.str.90, i32 noundef %9544) #11
  br label %9549

9546:                                             ; preds = %9539
  %9547 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9547, ptr noundef @.str.91) #11
  br label %9549

9549:                                             ; preds = %9546, %9542
  br label %9561

9550:                                             ; preds = %9534, %9531
  %9551 = load i32, ptr @test_count, align 4, !tbaa !5
  %9552 = icmp ne i32 %9551, 0
  br i1 %9552, label %9553, label %9557

9553:                                             ; preds = %9550
  %9554 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9555 = load i32, ptr @test_count, align 4, !tbaa !5
  %9556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9554, ptr noundef @.str.92, i32 noundef %9555) #11
  br label %9560

9557:                                             ; preds = %9550
  %9558 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9558, ptr noundef @.str.93) #11
  br label %9560

9560:                                             ; preds = %9557, %9553
  br label %9561

9561:                                             ; preds = %9560, %9549
  store i32 0, ptr %3, align 4
  store i32 1, ptr %210, align 4
  br label %9566

9562:                                             ; No predecessors!
  br label %9563

9563:                                             ; preds = %9562
  br label %9564

9564:                                             ; preds = %9563
  br label %9565

9565:                                             ; preds = %9564
  store i32 0, ptr %210, align 4
  br label %9566

9566:                                             ; preds = %9565, %9561
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 19, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 19, ptr %17) #11
  %9567 = call i32 @s2n_config_ptr_free(ptr noundef %12)
  %9568 = getelementptr inbounds %struct.s2n_result, ptr %211, i32 0, i32 0
  store i32 %9567, ptr %9568, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  %9569 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %9570 = getelementptr inbounds %struct.s2n_result, ptr %212, i32 0, i32 0
  store i32 %9569, ptr %9570, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  %9571 = load i32, ptr %210, align 4
  switch i32 %9571, label %9574 [
    i32 0, label %9572
    i32 1, label %9572
  ]

9572:                                             ; preds = %9566, %9566
  %9573 = load i32, ptr %3, align 4
  ret i32 %9573

9574:                                             ; preds = %9566
  unreachable
}

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

declare i32 @fflush(ptr noundef) #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #1

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

declare i32 @s2n_print_stacktrace(ptr noundef) #1

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #1

declare i32 @s2n_init() #1

declare i32 @s2n_disable_tls13_in_test(...) #1

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #1

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

declare ptr @s2n_config_new() #1

declare i32 @s2n_config_ptr_free(ptr noundef) #1

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #1

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

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

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

declare ptr @s2n_connection_new(i32 noundef) #1

declare i32 @s2n_connection_free(ptr noundef) #1

declare i32 @s2n_stuffer_free(ptr noundef) #1

declare i32 @s2n_connection_ptr_free(ptr noundef) #1

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

declare void @s2n_debug_info_reset() #1

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #9

declare i32 @s2n_stuffer_rewrite(ptr noundef) #1

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

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

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

declare i32 @s2n_client_hello_send(ptr noundef) #1

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

declare i32 @s2n_client_hello_recv(ptr noundef) #1

declare i32 @s2n_server_hello_send(ptr noundef) #1

declare i32 @s2n_server_hello_recv(ptr noundef) #1

declare zeroext i1 @s2n_hash_is_available(i32 noundef) #1

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

declare i32 @s2n_io_pair_close(ptr noundef) #1

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #1

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

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

declare i32 @s2n_cleanup() #1

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

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

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


; 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_test_io_pair = type { i32, i32 }

@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 [93 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [81 x i8], align 1
@__const.main.client_verify_data = external hidden unnamed_addr constant [19 x i8], align 16
@__const.main.server_verify_data = external hidden unnamed_addr constant [19 x i8], align 16
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_server_renegotiation_info_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.18 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [151 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [154 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [157 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca [19 x i8], align 16
  %6 = alloca [19 x i8], align 16
  %7 = alloca %struct.s2n_stuffer, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %struct.s2n_stuffer, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %struct.s2n_stuffer, align 8
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_stuffer, align 8
  %26 = alloca %struct.s2n_stuffer, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %struct.s2n_test_io_pair, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %32 = load ptr, ptr @stdout, align 8, !tbaa !9
  %33 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %34 = load ptr, ptr @stdout, align 8, !tbaa !9
  %35 = tail call i32 @fflush(ptr noundef %34)
  %36 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %37 = icmp eq i32 %36, -1
  br i1 %37, label %38, label %62

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

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

49:                                               ; preds = %45, %38
  br label %50

50:                                               ; preds = %45, %49
  %.str.5.sink = phi ptr [ @.str.5, %49 ], [ @.str.2, %45 ]
  store i32 %40, ptr %39, align 4, !tbaa !5
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = load i32, ptr @test_count, align 4, !tbaa !5
  %53 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = tail call ptr @s2n_strerror(i32 noundef %54, ptr noundef nonnull @.str.4) #12
  %56 = load i32, ptr %53, align 4, !tbaa !5
  %57 = tail call ptr @s2n_strerror_debug(i32 noundef %56, ptr noundef nonnull @.str.4) #12
  %58 = load i32, ptr %39, align 4, !tbaa !5
  %59 = tail call ptr @strerror(i32 noundef %58) #12
  %60 = load i32, ptr %39, align 4, !tbaa !5
  %61 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef nonnull %.str.5.sink, i32 noundef %52, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %55, ptr noundef %57, ptr noundef %59, i32 noundef %60) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

62:                                               ; preds = %2
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = add nsw i32 %63, 1
  store i32 %64, ptr @test_count, align 4, !tbaa !5
  %65 = tail call i32 @s2n_enable_atexit() #12
  %66 = icmp eq i32 %65, -1
  br i1 %66, label %67, label %91

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

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

78:                                               ; preds = %74, %67
  br label %79

79:                                               ; preds = %74, %78
  %.str.5.sink522 = phi ptr [ @.str.5, %78 ], [ @.str.2, %74 ]
  store i32 %69, ptr %68, align 4, !tbaa !5
  %80 = load ptr, ptr @stderr, align 8, !tbaa !9
  %81 = load i32, ptr @test_count, align 4, !tbaa !5
  %82 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %83 = load i32, ptr %82, align 4, !tbaa !5
  %84 = tail call ptr @s2n_strerror(i32 noundef %83, ptr noundef nonnull @.str.4) #12
  %85 = load i32, ptr %82, align 4, !tbaa !5
  %86 = tail call ptr @s2n_strerror_debug(i32 noundef %85, ptr noundef nonnull @.str.4) #12
  %87 = load i32, ptr %68, align 4, !tbaa !5
  %88 = tail call ptr @strerror(i32 noundef %87) #12
  %89 = load i32, ptr %68, align 4, !tbaa !5
  %90 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %80, ptr noundef nonnull %.str.5.sink522, i32 noundef %81, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %84, ptr noundef %86, ptr noundef %88, i32 noundef %89) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

91:                                               ; preds = %62
  %92 = tail call i32 @s2n_init() #12
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %118

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

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

105:                                              ; preds = %101, %94
  br label %106

106:                                              ; preds = %101, %105
  %.str.5.sink533 = phi ptr [ @.str.5, %105 ], [ @.str.2, %101 ]
  store i32 %96, ptr %95, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = tail call ptr @s2n_strerror(i32 noundef %110, ptr noundef nonnull @.str.4) #12
  %112 = load i32, ptr %109, align 4, !tbaa !5
  %113 = tail call ptr @s2n_strerror_debug(i32 noundef %112, ptr noundef nonnull @.str.4) #12
  %114 = load i32, ptr %95, align 4, !tbaa !5
  %115 = tail call ptr @strerror(i32 noundef %114) #12
  %116 = load i32, ptr %95, align 4, !tbaa !5
  %117 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %107, ptr noundef nonnull %.str.5.sink533, i32 noundef %108, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %111, ptr noundef %113, ptr noundef %115, i32 noundef %116) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

118:                                              ; preds = %91
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr @test_count, align 4, !tbaa !5
  %121 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %122 = icmp eq i32 %121, -1
  br i1 %122, label %123, label %147

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

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

134:                                              ; preds = %130, %123
  br label %135

135:                                              ; preds = %130, %134
  %.str.5.sink544 = phi ptr [ @.str.5, %134 ], [ @.str.2, %130 ]
  store i32 %125, ptr %124, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = load i32, ptr @test_count, align 4, !tbaa !5
  %138 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror(i32 noundef %139, ptr noundef nonnull @.str.4) #12
  %141 = load i32, ptr %138, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror_debug(i32 noundef %141, ptr noundef nonnull @.str.4) #12
  %143 = load i32, ptr %124, align 4, !tbaa !5
  %144 = tail call ptr @strerror(i32 noundef %143) #12
  %145 = load i32, ptr %124, align 4, !tbaa !5
  %146 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %136, ptr noundef nonnull %.str.5.sink544, i32 noundef %137, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %140, ptr noundef %142, ptr noundef %144, i32 noundef %145) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

147:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  store ptr null, ptr %3, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.10) #12
  %151 = icmp eq i32 %150, -1
  br i1 %151, label %152, label %176

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

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

163:                                              ; preds = %159, %152
  br label %164

164:                                              ; preds = %159, %163
  %.str.5.sink555 = phi ptr [ @.str.5, %163 ], [ @.str.2, %159 ]
  store i32 %154, ptr %153, align 4, !tbaa !5
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = call ptr @s2n_strerror(i32 noundef %168, ptr noundef nonnull @.str.4) #12
  %170 = load i32, ptr %167, align 4, !tbaa !5
  %171 = call ptr @s2n_strerror_debug(i32 noundef %170, ptr noundef nonnull @.str.4) #12
  %172 = load i32, ptr %153, align 4, !tbaa !5
  %173 = call ptr @strerror(i32 noundef %172) #12
  %174 = load i32, ptr %153, align 4, !tbaa !5
  %175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef nonnull %.str.5.sink555, i32 noundef %166, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %169, ptr noundef %171, ptr noundef %173, i32 noundef %174) #14
  call void @exit(i32 noundef 1) #15
  unreachable

176:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  %177 = call ptr @s2n_config_new() #12
  store ptr %177, ptr %4, align 8, !tbaa !9
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = add nsw i32 %178, 1
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = icmp eq ptr %177, null
  br i1 %180, label %181, label %205

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

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

192:                                              ; preds = %188, %181
  br label %193

193:                                              ; preds = %188, %192
  %.str.5.sink566 = phi ptr [ @.str.5, %192 ], [ @.str.2, %188 ]
  store i32 %183, ptr %182, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.4) #12
  %199 = load i32, ptr %196, align 4, !tbaa !5
  %200 = call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.4) #12
  %201 = load i32, ptr %182, align 4, !tbaa !5
  %202 = call ptr @strerror(i32 noundef %201) #12
  %203 = load i32, ptr %182, align 4, !tbaa !5
  %204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef nonnull %.str.5.sink566, i32 noundef %195, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #14
  call void @exit(i32 noundef 1) #15
  unreachable

205:                                              ; preds = %176
  %206 = add nsw i32 %178, 2
  store i32 %206, ptr @test_count, align 4, !tbaa !5
  %207 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %177) #12
  %208 = icmp eq i32 %207, -1
  br i1 %208, label %209, label %233

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

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = call i32 @fileno(ptr noundef %217) #12
  %219 = call i32 @isatty(i32 noundef %218) #12
  %.not505 = icmp eq i32 %219, 0
  br i1 %.not505, label %220, label %221

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.5.sink577 = phi ptr [ @.str.5, %220 ], [ @.str.2, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %225, ptr noundef nonnull @.str.4) #12
  %227 = load i32, ptr %224, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror_debug(i32 noundef %227, ptr noundef nonnull @.str.4) #12
  %229 = load i32, ptr %210, align 4, !tbaa !5
  %230 = call ptr @strerror(i32 noundef %229) #12
  %231 = load i32, ptr %210, align 4, !tbaa !5
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.5.sink577, i32 noundef %223, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %226, ptr noundef %228, ptr noundef %230, i32 noundef %231) #14
  call void @exit(i32 noundef 1) #15
  unreachable

233:                                              ; preds = %205
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  %236 = load ptr, ptr %3, align 8, !tbaa !9
  %237 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %177, ptr noundef %236) #12
  %238 = icmp eq i32 %237, -1
  br i1 %238, label %239, label %263

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

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

250:                                              ; preds = %246, %239
  br label %251

251:                                              ; preds = %246, %250
  %.str.5.sink588 = phi ptr [ @.str.5, %250 ], [ @.str.2, %246 ]
  store i32 %241, ptr %240, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call ptr @s2n_strerror(i32 noundef %255, ptr noundef nonnull @.str.4) #12
  %257 = load i32, ptr %254, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef nonnull @.str.4) #12
  %259 = load i32, ptr %240, align 4, !tbaa !5
  %260 = call ptr @strerror(i32 noundef %259) #12
  %261 = load i32, ptr %240, align 4, !tbaa !5
  %262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef nonnull %.str.5.sink588, i32 noundef %253, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %256, ptr noundef %258, ptr noundef %260, i32 noundef %261) #14
  call void @exit(i32 noundef 1) #15
  unreachable

263:                                              ; preds = %233
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %177, ptr noundef nonnull @.str.15) #12
  %267 = icmp eq i32 %266, -1
  br i1 %267, label %268, label %292

268:                                              ; preds = %263
  %269 = tail call ptr @__errno_location() #13
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @s2n_print_stacktrace(ptr noundef %271) #12
  %273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %274 = trunc nuw i8 %273 to i1
  br i1 %274, label %275, label %279

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @fileno(ptr noundef %276) #12
  %278 = call i32 @isatty(i32 noundef %277) #12
  %.not503 = icmp eq i32 %278, 0
  br i1 %.not503, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink599 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror(i32 noundef %284, ptr noundef nonnull @.str.4) #12
  %286 = load i32, ptr %283, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef nonnull @.str.4) #12
  %288 = load i32, ptr %269, align 4, !tbaa !5
  %289 = call ptr @strerror(i32 noundef %288) #12
  %290 = load i32, ptr %269, align 4, !tbaa !5
  %291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink599, i32 noundef %282, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %285, ptr noundef %287, ptr noundef %289, i32 noundef %290) #14
  call void @exit(i32 noundef 1) #15
  unreachable

292:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 19, ptr nonnull %5) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(19) %5, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.client_verify_data, i64 19, i1 false)
  call void @llvm.lifetime.start.p0(i64 19, ptr nonnull %6) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(19) %6, ptr noundef nonnull align 16 dereferenceable(19) @__const.main.server_verify_data, i64 19, i1 false)
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 2
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %296 = icmp eq ptr %295, null
  br i1 %296, label %297, label %321

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

304:                                              ; preds = %297
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = call i32 @fileno(ptr noundef %305) #12
  %307 = call i32 @isatty(i32 noundef %306) #12
  %.not502 = icmp eq i32 %307, 0
  br i1 %.not502, label %308, label %309

308:                                              ; preds = %304, %297
  br label %309

309:                                              ; preds = %304, %308
  %.str.5.sink610 = phi ptr [ @.str.5, %308 ], [ @.str.2, %304 ]
  store i32 %299, ptr %298, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror(i32 noundef %313, ptr noundef nonnull @.str.4) #12
  %315 = load i32, ptr %312, align 4, !tbaa !5
  %316 = call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef nonnull @.str.4) #12
  %317 = load i32, ptr %298, align 4, !tbaa !5
  %318 = call ptr @strerror(i32 noundef %317) #12
  %319 = load i32, ptr %298, align 4, !tbaa !5
  %320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef nonnull %.str.5.sink610, i32 noundef %311, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %314, ptr noundef %316, ptr noundef %318, i32 noundef %319) #14
  call void @exit(i32 noundef 1) #15
  unreachable

321:                                              ; preds = %292
  %322 = getelementptr inbounds i8, ptr %295, i64 220
  store i8 33, ptr %322, align 4, !tbaa !15
  %323 = load i32, ptr %295, align 8
  %324 = and i32 %323, -9
  store i32 %324, ptr %295, align 8
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_renegotiation_info_extension, i64 24), align 8, !tbaa !42
  %328 = call zeroext i1 %327(ptr noundef nonnull %295) #12
  br i1 %328, label %329, label %353

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

336:                                              ; preds = %329
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @fileno(ptr noundef %337) #12
  %339 = call i32 @isatty(i32 noundef %338) #12
  %.not501 = icmp eq i32 %339, 0
  br i1 %.not501, label %340, label %341

340:                                              ; preds = %336, %329
  br label %341

341:                                              ; preds = %336, %340
  %.str.5.sink621 = phi ptr [ @.str.5, %340 ], [ @.str.2, %336 ]
  store i32 %331, ptr %330, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror(i32 noundef %345, ptr noundef nonnull @.str.4) #12
  %347 = load i32, ptr %344, align 4, !tbaa !5
  %348 = call ptr @s2n_strerror_debug(i32 noundef %347, ptr noundef nonnull @.str.4) #12
  %349 = load i32, ptr %330, align 4, !tbaa !5
  %350 = call ptr @strerror(i32 noundef %349) #12
  %351 = load i32, ptr %330, align 4, !tbaa !5
  %352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %342, ptr noundef nonnull %.str.5.sink621, i32 noundef %343, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %346, ptr noundef %348, ptr noundef %350, i32 noundef %351) #14
  call void @exit(i32 noundef 1) #15
  unreachable

353:                                              ; preds = %321
  store i8 34, ptr %322, align 4, !tbaa !15
  %354 = load i32, ptr %295, align 8
  %355 = and i32 %354, -9
  store i32 %355, ptr %295, align 8
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = call zeroext i1 %327(ptr noundef nonnull %295) #12
  br i1 %358, label %359, label %383

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

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

370:                                              ; preds = %366, %359
  br label %371

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

383:                                              ; preds = %353
  store i8 34, ptr %322, align 4, !tbaa !15
  %384 = load i32, ptr %295, align 8
  %385 = or i32 %384, 8
  store i32 %385, ptr %295, align 8
  %386 = load i32, ptr @test_count, align 4, !tbaa !5
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr @test_count, align 4, !tbaa !5
  %388 = call zeroext i1 %327(ptr noundef nonnull %295) #12
  br i1 %388, label %389, label %413

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

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

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

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

413:                                              ; preds = %383
  store i8 33, ptr %322, align 4, !tbaa !15
  %414 = load i32, ptr %295, align 8
  %415 = or i32 %414, 8
  store i32 %415, ptr %295, align 8
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = call zeroext i1 %327(ptr noundef nonnull %295) #12
  br i1 %418, label %443, label %419

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

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

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

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

443:                                              ; preds = %413
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr @test_count, align 4, !tbaa !5
  %446 = call i32 @s2n_connection_free(ptr noundef nonnull %295) #12
  %447 = icmp eq i32 %446, -1
  br i1 %447, label %448, label %472

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

455:                                              ; preds = %448
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = call i32 @fileno(ptr noundef %456) #12
  %458 = call i32 @isatty(i32 noundef %457) #12
  %.not498 = icmp eq i32 %458, 0
  br i1 %.not498, label %459, label %460

459:                                              ; preds = %455, %448
  br label %460

460:                                              ; preds = %455, %459
  %.str.5.sink665 = phi ptr [ @.str.5, %459 ], [ @.str.2, %455 ]
  store i32 %450, ptr %449, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror(i32 noundef %464, ptr noundef nonnull @.str.4) #12
  %466 = load i32, ptr %463, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef nonnull @.str.4) #12
  %468 = load i32, ptr %449, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #12
  %470 = load i32, ptr %449, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef nonnull %.str.5.sink665, i32 noundef %462, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %465, ptr noundef %467, ptr noundef %469, i32 noundef %470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

472:                                              ; preds = %443
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %476 = icmp eq ptr %475, null
  br i1 %476, label %477, label %501

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

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

488:                                              ; preds = %484, %477
  br label %489

489:                                              ; preds = %484, %488
  %.str.5.sink676 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.4) #12
  %495 = load i32, ptr %492, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.4) #12
  %497 = load i32, ptr %478, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #12
  %499 = load i32, ptr %478, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink676, i32 noundef %491, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #14
  call void @exit(i32 noundef 1) #15
  unreachable

501:                                              ; preds = %472
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = add nsw i32 %502, 1
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %505 = icmp eq ptr %504, null
  br i1 %505, label %506, label %530

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

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

517:                                              ; preds = %513, %506
  br label %518

518:                                              ; preds = %513, %517
  %.str.5.sink687 = phi ptr [ @.str.5, %517 ], [ @.str.2, %513 ]
  store i32 %508, ptr %507, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef nonnull @.str.4) #12
  %524 = load i32, ptr %521, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef nonnull @.str.4) #12
  %526 = load i32, ptr %507, align 4, !tbaa !5
  %527 = call ptr @strerror(i32 noundef %526) #12
  %528 = load i32, ptr %507, align 4, !tbaa !5
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef nonnull %.str.5.sink687, i32 noundef %520, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %523, ptr noundef %525, ptr noundef %527, i32 noundef %528) #14
  call void @exit(i32 noundef 1) #15
  unreachable

530:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = add nsw i32 %531, 1
  store i32 %532, ptr @test_count, align 4, !tbaa !5
  %533 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #12
  %534 = icmp eq i32 %533, -1
  br i1 %534, label %535, label %559

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

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

546:                                              ; preds = %542, %535
  br label %547

547:                                              ; preds = %542, %546
  %.str.5.sink698 = phi ptr [ @.str.5, %546 ], [ @.str.2, %542 ]
  store i32 %537, ptr %536, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef nonnull @.str.4) #12
  %553 = load i32, ptr %550, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef nonnull @.str.4) #12
  %555 = load i32, ptr %536, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #12
  %557 = load i32, ptr %536, align 4, !tbaa !5
  %558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef nonnull %.str.5.sink698, i32 noundef %549, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %552, ptr noundef %554, ptr noundef %556, i32 noundef %557) #14
  call void @exit(i32 noundef 1) #15
  unreachable

559:                                              ; preds = %530
  %560 = getelementptr inbounds i8, ptr %475, i64 220
  store i8 33, ptr %560, align 4, !tbaa !15
  %561 = load i32, ptr %475, align 8
  %562 = or i32 %561, 8
  store i32 %562, ptr %475, align 8
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_renegotiation_info_extension, i64 8), align 8, !tbaa !44
  %566 = call i32 %565(ptr noundef nonnull %475, ptr noundef nonnull %7) #12
  %567 = icmp eq i32 %566, -1
  br i1 %567, label %568, label %592

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

575:                                              ; preds = %568
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @fileno(ptr noundef %576) #12
  %578 = call i32 @isatty(i32 noundef %577) #12
  %.not494 = icmp eq i32 %578, 0
  br i1 %.not494, label %579, label %580

579:                                              ; preds = %575, %568
  br label %580

580:                                              ; preds = %575, %579
  %.str.5.sink709 = phi ptr [ @.str.5, %579 ], [ @.str.2, %575 ]
  store i32 %570, ptr %569, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %584 = load i32, ptr %583, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef nonnull @.str.4) #12
  %586 = load i32, ptr %583, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.4) #12
  %588 = load i32, ptr %569, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #12
  %590 = load i32, ptr %569, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %581, ptr noundef nonnull %.str.5.sink709, i32 noundef %582, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %585, ptr noundef %587, ptr noundef %589, i32 noundef %590) #14
  call void @exit(i32 noundef 1) #15
  unreachable

592:                                              ; preds = %559
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = getelementptr inbounds i8, ptr %7, i64 28
  %596 = load i32, ptr %595, align 4, !tbaa !45
  %597 = getelementptr inbounds i8, ptr %7, i64 24
  %598 = load i32, ptr %597, align 8, !tbaa !46
  %599 = icmp eq i32 %596, %598
  br i1 %599, label %600, label %624

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

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

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

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

624:                                              ; preds = %592
  %625 = add nsw i32 %593, 2
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_renegotiation_info_extension, i64 16), align 8, !tbaa !47
  %627 = call i32 %626(ptr noundef nonnull %504, ptr noundef nonnull %7) #12
  %628 = icmp eq i32 %627, -1
  br i1 %628, label %629, label %653

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

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

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

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

653:                                              ; preds = %624
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = load i32, ptr %504, align 8
  %657 = and i32 %656, 8
  %.not363 = icmp eq i32 %657, 0
  br i1 %.not363, label %658, label %682

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

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

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

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

682:                                              ; preds = %653
  %683 = add nsw i32 %654, 2
  store i32 %683, ptr @test_count, align 4, !tbaa !5
  %684 = load i32, ptr %595, align 4, !tbaa !45
  %685 = load i32, ptr %597, align 8, !tbaa !46
  %686 = icmp eq i32 %684, %685
  br i1 %686, label %711, label %687

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

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

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

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

711:                                              ; preds = %682
  %712 = add nsw i32 %654, 3
  store i32 %712, ptr @test_count, align 4, !tbaa !5
  %713 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #12
  %714 = icmp eq i32 %713, -1
  br i1 %714, label %715, label %739

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

722:                                              ; preds = %715
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @fileno(ptr noundef %723) #12
  %725 = call i32 @isatty(i32 noundef %724) #12
  %.not491 = icmp eq i32 %725, 0
  br i1 %.not491, label %726, label %727

726:                                              ; preds = %722, %715
  br label %727

727:                                              ; preds = %722, %726
  %.str.5.sink764 = phi ptr [ @.str.5, %726 ], [ @.str.2, %722 ]
  store i32 %717, ptr %716, align 4, !tbaa !5
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror(i32 noundef %731, ptr noundef nonnull @.str.4) #12
  %733 = load i32, ptr %730, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror_debug(i32 noundef %733, ptr noundef nonnull @.str.4) #12
  %735 = load i32, ptr %716, align 4, !tbaa !5
  %736 = call ptr @strerror(i32 noundef %735) #12
  %737 = load i32, ptr %716, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %728, ptr noundef nonnull %.str.5.sink764, i32 noundef %729, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %732, ptr noundef %734, ptr noundef %736, i32 noundef %737) #14
  call void @exit(i32 noundef 1) #15
  unreachable

739:                                              ; preds = %711
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = call i32 @s2n_connection_free(ptr noundef nonnull %504) #12
  %743 = icmp eq i32 %742, -1
  br i1 %743, label %744, label %768

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

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

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

756:                                              ; preds = %751, %755
  %.str.5.sink775 = phi ptr [ @.str.5, %755 ], [ @.str.2, %751 ]
  store i32 %746, ptr %745, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %760 = load i32, ptr %759, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror(i32 noundef %760, ptr noundef nonnull @.str.4) #12
  %762 = load i32, ptr %759, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror_debug(i32 noundef %762, ptr noundef nonnull @.str.4) #12
  %764 = load i32, ptr %745, align 4, !tbaa !5
  %765 = call ptr @strerror(i32 noundef %764) #12
  %766 = load i32, ptr %745, align 4, !tbaa !5
  %767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef nonnull %.str.5.sink775, i32 noundef %758, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %761, ptr noundef %763, ptr noundef %765, i32 noundef %766) #14
  call void @exit(i32 noundef 1) #15
  unreachable

768:                                              ; preds = %739
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = add nsw i32 %769, 1
  store i32 %770, ptr @test_count, align 4, !tbaa !5
  %771 = call i32 @s2n_connection_free(ptr noundef nonnull %475) #12
  %772 = icmp eq i32 %771, -1
  br i1 %772, label %773, label %797

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

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

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

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

797:                                              ; preds = %768
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %798 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %798, ptr %8, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = add nsw i32 %799, 1
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = icmp eq ptr %798, null
  br i1 %801, label %802, label %826

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

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

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

814:                                              ; preds = %809, %813
  %.str.5.sink797 = phi ptr [ @.str.5, %813 ], [ @.str.2, %809 ]
  store i32 %804, ptr %803, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror(i32 noundef %818, ptr noundef nonnull @.str.4) #12
  %820 = load i32, ptr %817, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef nonnull @.str.4) #12
  %822 = load i32, ptr %803, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #12
  %824 = load i32, ptr %803, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef nonnull %.str.5.sink797, i32 noundef %816, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %819, ptr noundef %821, ptr noundef %823, i32 noundef %824) #14
  call void @exit(i32 noundef 1) #15
  unreachable

826:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  %827 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %827, ptr %9, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = icmp eq ptr %827, null
  br i1 %830, label %831, label %855

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

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

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

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

855:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %856 = add nsw i32 %828, 2
  store i32 %856, ptr @test_count, align 4, !tbaa !5
  %857 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %10, i32 noundef 0) #12
  %858 = icmp eq i32 %857, -1
  br i1 %858, label %859, label %883

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

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

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

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

883:                                              ; preds = %855
  %884 = load ptr, ptr %8, align 8, !tbaa !9
  %885 = getelementptr inbounds i8, ptr %884, i64 220
  store i8 33, ptr %885, align 4, !tbaa !15
  %886 = load i32, ptr %884, align 8
  %887 = or i32 %886, 8
  store i32 %887, ptr %884, align 8
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = add nsw i32 %888, 1
  store i32 %889, ptr @test_count, align 4, !tbaa !5
  %890 = load ptr, ptr %8, align 8, !tbaa !9
  %891 = call i32 %565(ptr noundef %890, ptr noundef nonnull %10) #12
  %892 = icmp eq i32 %891, -1
  br i1 %892, label %893, label %917

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

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

904:                                              ; preds = %900, %893
  br label %905

905:                                              ; preds = %900, %904
  %.str.5.sink830 = phi ptr [ @.str.5, %904 ], [ @.str.2, %900 ]
  store i32 %895, ptr %894, 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 nonnull @.str.4) #12
  %911 = load i32, ptr %908, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror_debug(i32 noundef %911, ptr noundef nonnull @.str.4) #12
  %913 = load i32, ptr %894, align 4, !tbaa !5
  %914 = call ptr @strerror(i32 noundef %913) #12
  %915 = load i32, ptr %894, align 4, !tbaa !5
  %916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %906, ptr noundef nonnull %.str.5.sink830, i32 noundef %907, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %910, ptr noundef %912, ptr noundef %914, i32 noundef %915) #14
  call void @exit(i32 noundef 1) #15
  unreachable

917:                                              ; preds = %883
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr @test_count, align 4, !tbaa !5
  %920 = getelementptr inbounds i8, ptr %10, i64 28
  %921 = load i32, ptr %920, align 4, !tbaa !45
  %922 = getelementptr inbounds i8, ptr %10, i64 24
  %923 = load i32, ptr %922, align 8, !tbaa !46
  %924 = icmp eq i32 %921, %923
  br i1 %924, label %925, label %949

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

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

936:                                              ; preds = %932, %925
  br label %937

937:                                              ; preds = %932, %936
  %.str.5.sink841 = phi ptr [ @.str.5, %936 ], [ @.str.2, %932 ]
  store i32 %927, ptr %926, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef nonnull @.str.4) #12
  %943 = load i32, ptr %940, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror_debug(i32 noundef %943, ptr noundef nonnull @.str.4) #12
  %945 = load i32, ptr %926, align 4, !tbaa !5
  %946 = call ptr @strerror(i32 noundef %945) #12
  %947 = load i32, ptr %926, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef nonnull %.str.5.sink841, i32 noundef %939, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %942, ptr noundef %944, ptr noundef %946, i32 noundef %947) #14
  call void @exit(i32 noundef 1) #15
  unreachable

949:                                              ; preds = %917
  %950 = load ptr, ptr %9, align 8, !tbaa !9
  %951 = getelementptr inbounds i8, ptr %950, i64 218
  store i8 30, ptr %951, align 2, !tbaa !48
  %952 = getelementptr inbounds i8, ptr %950, i64 220
  store i8 30, ptr %952, align 4, !tbaa !15
  %953 = add nsw i32 %918, 2
  store i32 %953, ptr @test_count, align 4, !tbaa !5
  %954 = call i32 %626(ptr noundef %950, ptr noundef nonnull %10) #12
  %955 = icmp eq i32 %954, -1
  br i1 %955, label %956, label %980

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

963:                                              ; preds = %956
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = call i32 @fileno(ptr noundef %964) #12
  %966 = call i32 @isatty(i32 noundef %965) #12
  %.not483 = icmp eq i32 %966, 0
  br i1 %.not483, label %967, label %968

967:                                              ; preds = %963, %956
  br label %968

968:                                              ; preds = %963, %967
  %.str.5.sink852 = phi ptr [ @.str.5, %967 ], [ @.str.2, %963 ]
  store i32 %958, ptr %957, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.4) #12
  %974 = load i32, ptr %971, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.4) #12
  %976 = load i32, ptr %957, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #12
  %978 = load i32, ptr %957, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %969, ptr noundef nonnull %.str.5.sink852, i32 noundef %970, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

980:                                              ; preds = %949
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = load ptr, ptr %9, align 8, !tbaa !9
  %984 = load i32, ptr %983, align 8
  %985 = and i32 %984, 8
  %.not366 = icmp eq i32 %985, 0
  br i1 %.not366, label %986, label %1010

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

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

997:                                              ; preds = %993, %986
  br label %998

998:                                              ; preds = %993, %997
  %.str.5.sink863 = phi ptr [ @.str.5, %997 ], [ @.str.2, %993 ]
  store i32 %988, ptr %987, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef nonnull @.str.4) #12
  %1004 = load i32, ptr %1001, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef nonnull @.str.4) #12
  %1006 = load i32, ptr %987, align 4, !tbaa !5
  %1007 = call ptr @strerror(i32 noundef %1006) #12
  %1008 = load i32, ptr %987, align 4, !tbaa !5
  %1009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef nonnull %.str.5.sink863, i32 noundef %1000, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1003, ptr noundef %1005, ptr noundef %1007, i32 noundef %1008) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1010:                                             ; preds = %980
  %1011 = add nsw i32 %981, 2
  store i32 %1011, ptr @test_count, align 4, !tbaa !5
  %1012 = load i32, ptr %920, align 4, !tbaa !45
  %1013 = load i32, ptr %922, align 8, !tbaa !46
  %1014 = icmp eq i32 %1012, %1013
  br i1 %1014, label %1039, label %1015

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

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

1026:                                             ; preds = %1022, %1015
  br label %1027

1027:                                             ; preds = %1022, %1026
  %.str.5.sink874 = phi ptr [ @.str.5, %1026 ], [ @.str.2, %1022 ]
  store i32 %1017, ptr %1016, align 4, !tbaa !5
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror(i32 noundef %1031, ptr noundef nonnull @.str.4) #12
  %1033 = load i32, ptr %1030, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef %1033, ptr noundef nonnull @.str.4) #12
  %1035 = load i32, ptr %1016, align 4, !tbaa !5
  %1036 = call ptr @strerror(i32 noundef %1035) #12
  %1037 = load i32, ptr %1016, align 4, !tbaa !5
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1028, ptr noundef nonnull %.str.5.sink874, i32 noundef %1029, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1032, ptr noundef %1034, ptr noundef %1036, i32 noundef %1037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1039:                                             ; preds = %1010
  %1040 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #12
  %1041 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  %1042 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1046 = icmp eq ptr %1045, null
  br i1 %1046, label %1047, label %1071

1047:                                             ; preds = %1039
  %1048 = tail call ptr @__errno_location() #13
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @s2n_print_stacktrace(ptr noundef %1050) #12
  %1052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1053 = trunc nuw i8 %1052 to i1
  br i1 %1053, label %1054, label %1058

1054:                                             ; preds = %1047
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = call i32 @fileno(ptr noundef %1055) #12
  %1057 = call i32 @isatty(i32 noundef %1056) #12
  %.not482 = icmp eq i32 %1057, 0
  br i1 %.not482, label %1058, label %1059

1058:                                             ; preds = %1054, %1047
  br label %1059

1059:                                             ; preds = %1054, %1058
  %.str.5.sink885 = phi ptr [ @.str.5, %1058 ], [ @.str.2, %1054 ]
  store i32 %1049, ptr %1048, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef nonnull @.str.4) #12
  %1065 = load i32, ptr %1062, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror_debug(i32 noundef %1065, ptr noundef nonnull @.str.4) #12
  %1067 = load i32, ptr %1048, align 4, !tbaa !5
  %1068 = call ptr @strerror(i32 noundef %1067) #12
  %1069 = load i32, ptr %1048, align 4, !tbaa !5
  %1070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef nonnull %.str.5.sink885, i32 noundef %1061, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1064, ptr noundef %1066, ptr noundef %1068, i32 noundef %1069) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1071:                                             ; preds = %1039
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = add nsw i32 %1072, 1
  store i32 %1073, ptr @test_count, align 4, !tbaa !5
  %1074 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1075 = icmp eq ptr %1074, null
  br i1 %1075, label %1076, label %1100

1076:                                             ; preds = %1071
  %1077 = tail call ptr @__errno_location() #13
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = call i32 @s2n_print_stacktrace(ptr noundef %1079) #12
  %1081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1082 = trunc nuw i8 %1081 to i1
  br i1 %1082, label %1083, label %1087

1083:                                             ; preds = %1076
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = call i32 @fileno(ptr noundef %1084) #12
  %1086 = call i32 @isatty(i32 noundef %1085) #12
  %.not481 = icmp eq i32 %1086, 0
  br i1 %.not481, label %1087, label %1088

1087:                                             ; preds = %1083, %1076
  br label %1088

1088:                                             ; preds = %1083, %1087
  %.str.5.sink896 = phi ptr [ @.str.5, %1087 ], [ @.str.2, %1083 ]
  store i32 %1078, ptr %1077, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror(i32 noundef %1092, ptr noundef nonnull @.str.4) #12
  %1094 = load i32, ptr %1091, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef nonnull @.str.4) #12
  %1096 = load i32, ptr %1077, align 4, !tbaa !5
  %1097 = call ptr @strerror(i32 noundef %1096) #12
  %1098 = load i32, ptr %1077, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1089, ptr noundef nonnull %.str.5.sink896, i32 noundef %1090, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %1093, ptr noundef %1095, ptr noundef %1097, i32 noundef %1098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1100:                                             ; preds = %1071
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  %1101 = load i32, ptr @test_count, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr @test_count, align 4, !tbaa !5
  %1103 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #12
  %1104 = icmp eq i32 %1103, -1
  br i1 %1104, label %1105, label %1129

1105:                                             ; preds = %1100
  %1106 = tail call ptr @__errno_location() #13
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = call i32 @s2n_print_stacktrace(ptr noundef %1108) #12
  %1110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1111 = trunc nuw i8 %1110 to i1
  br i1 %1111, label %1112, label %1116

1112:                                             ; preds = %1105
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = call i32 @fileno(ptr noundef %1113) #12
  %1115 = call i32 @isatty(i32 noundef %1114) #12
  %.not480 = icmp eq i32 %1115, 0
  br i1 %.not480, label %1116, label %1117

1116:                                             ; preds = %1112, %1105
  br label %1117

1117:                                             ; preds = %1112, %1116
  %.str.5.sink907 = phi ptr [ @.str.5, %1116 ], [ @.str.2, %1112 ]
  store i32 %1107, ptr %1106, align 4, !tbaa !5
  %1118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror(i32 noundef %1121, ptr noundef nonnull @.str.4) #12
  %1123 = load i32, ptr %1120, align 4, !tbaa !5
  %1124 = call ptr @s2n_strerror_debug(i32 noundef %1123, ptr noundef nonnull @.str.4) #12
  %1125 = load i32, ptr %1106, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #12
  %1127 = load i32, ptr %1106, align 4, !tbaa !5
  %1128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1118, ptr noundef nonnull %.str.5.sink907, i32 noundef %1119, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1122, ptr noundef %1124, ptr noundef %1126, i32 noundef %1127) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1129:                                             ; preds = %1100
  %1130 = getelementptr inbounds i8, ptr %1045, i64 220
  store i8 33, ptr %1130, align 4, !tbaa !15
  %1131 = load i32, ptr %1045, align 8
  %1132 = or i32 %1131, 8
  store i32 %1132, ptr %1045, align 8
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = add nsw i32 %1133, 1
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = call i32 %565(ptr noundef nonnull %1045, ptr noundef nonnull %11) #12
  %1136 = icmp eq i32 %1135, -1
  br i1 %1136, label %1137, label %1161

1137:                                             ; preds = %1129
  %1138 = tail call ptr @__errno_location() #13
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140) #12
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1148

1144:                                             ; preds = %1137
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #12
  %1147 = call i32 @isatty(i32 noundef %1146) #12
  %.not479 = icmp eq i32 %1147, 0
  br i1 %.not479, label %1148, label %1149

1148:                                             ; preds = %1144, %1137
  br label %1149

1149:                                             ; preds = %1144, %1148
  %.str.5.sink918 = phi ptr [ @.str.5, %1148 ], [ @.str.2, %1144 ]
  store i32 %1139, ptr %1138, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror(i32 noundef %1153, ptr noundef nonnull @.str.4) #12
  %1155 = load i32, ptr %1152, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef nonnull @.str.4) #12
  %1157 = load i32, ptr %1138, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #12
  %1159 = load i32, ptr %1138, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef nonnull %.str.5.sink918, i32 noundef %1151, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1154, ptr noundef %1156, ptr noundef %1158, i32 noundef %1159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1161:                                             ; preds = %1129
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %11, i8 noundef zeroext 0) #12
  %1165 = icmp eq i32 %1164, -1
  br i1 %1165, label %1166, label %1190

1166:                                             ; preds = %1161
  %1167 = tail call ptr @__errno_location() #13
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169) #12
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc nuw i8 %1171 to i1
  br i1 %1172, label %1173, label %1177

1173:                                             ; preds = %1166
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @fileno(ptr noundef %1174) #12
  %1176 = call i32 @isatty(i32 noundef %1175) #12
  %.not478 = icmp eq i32 %1176, 0
  br i1 %.not478, label %1177, label %1178

1177:                                             ; preds = %1173, %1166
  br label %1178

1178:                                             ; preds = %1173, %1177
  %.str.5.sink929 = phi ptr [ @.str.5, %1177 ], [ @.str.2, %1173 ]
  store i32 %1168, ptr %1167, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef nonnull @.str.4) #12
  %1184 = load i32, ptr %1181, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror_debug(i32 noundef %1184, ptr noundef nonnull @.str.4) #12
  %1186 = load i32, ptr %1167, align 4, !tbaa !5
  %1187 = call ptr @strerror(i32 noundef %1186) #12
  %1188 = load i32, ptr %1167, align 4, !tbaa !5
  %1189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef nonnull %.str.5.sink929, i32 noundef %1180, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1183, ptr noundef %1185, ptr noundef %1187, i32 noundef %1188) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1190:                                             ; preds = %1161
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr @test_count, align 4, !tbaa !5
  %1193 = call i32 %626(ptr noundef nonnull %1074, ptr noundef nonnull %11) #12
  %1194 = icmp eq i32 %1193, -1
  br i1 %1194, label %1219, label %1195

1195:                                             ; preds = %1190
  %1196 = tail call ptr @__errno_location() #13
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = call i32 @s2n_print_stacktrace(ptr noundef %1198) #12
  %1200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1201 = trunc nuw i8 %1200 to i1
  br i1 %1201, label %1202, label %1206

1202:                                             ; preds = %1195
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = call i32 @fileno(ptr noundef %1203) #12
  %1205 = call i32 @isatty(i32 noundef %1204) #12
  %.not369 = icmp eq i32 %1205, 0
  br i1 %.not369, label %1206, label %1207

1206:                                             ; preds = %1202, %1195
  br label %1207

1207:                                             ; preds = %1202, %1206
  %.str.5.sink940 = phi ptr [ @.str.5, %1206 ], [ @.str.2, %1202 ]
  store i32 %1197, ptr %1196, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror(i32 noundef %1211, ptr noundef nonnull @.str.4) #12
  %1213 = load i32, ptr %1210, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror_debug(i32 noundef %1213, ptr noundef nonnull @.str.4) #12
  %1215 = load i32, ptr %1196, align 4, !tbaa !5
  %1216 = call ptr @strerror(i32 noundef %1215) #12
  %1217 = load i32, ptr %1196, align 4, !tbaa !5
  %1218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1208, ptr noundef nonnull %.str.5.sink940, i32 noundef %1209, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1212, ptr noundef %1214, ptr noundef %1216, i32 noundef %1217) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1219:                                             ; preds = %1190
  %1220 = load i32, ptr @test_count, align 4, !tbaa !5
  %1221 = add nsw i32 %1220, 1
  store i32 %1221, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = icmp eq i32 %1223, 335544364
  br i1 %1224, label %1248, label %1225

1225:                                             ; preds = %1219
  %1226 = tail call ptr @__errno_location() #13
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228) #12
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1236

1232:                                             ; preds = %1225
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #12
  %1235 = call i32 @isatty(i32 noundef %1234) #12
  %.not370 = icmp eq i32 %1235, 0
  br i1 %.not370, label %1236, label %1237

1236:                                             ; preds = %1232, %1225
  br label %1237

1237:                                             ; preds = %1232, %1236
  %.str.5.sink951 = phi ptr [ @.str.5, %1236 ], [ @.str.2, %1232 ]
  store i32 %1227, ptr %1226, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = load i32, ptr %1222, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef nonnull @.str.4) #12
  %1242 = load i32, ptr %1222, align 4, !tbaa !5
  %1243 = call ptr @s2n_strerror_debug(i32 noundef %1242, ptr noundef nonnull @.str.4) #12
  %1244 = load i32, ptr %1226, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #12
  %1246 = load i32, ptr %1226, align 4, !tbaa !5
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull %.str.5.sink951, i32 noundef %1239, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1241, ptr noundef %1243, ptr noundef %1245, i32 noundef %1246) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1248:                                             ; preds = %1219
  %1249 = add nsw i32 %1220, 2
  store i32 %1249, ptr @test_count, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef 335544364, ptr noundef nonnull @.str.4) #12
  %1251 = icmp eq ptr %1250, null
  br i1 %1251, label %1252, label %1275

1252:                                             ; preds = %1248
  %1253 = tail call ptr @__errno_location() #13
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = call i32 @s2n_print_stacktrace(ptr noundef %1255) #12
  %1257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1258 = trunc nuw i8 %1257 to i1
  br i1 %1258, label %1259, label %1263

1259:                                             ; preds = %1252
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @fileno(ptr noundef %1260) #12
  %1262 = call i32 @isatty(i32 noundef %1261) #12
  %.not477 = icmp eq i32 %1262, 0
  br i1 %.not477, label %1263, label %1264

1263:                                             ; preds = %1259, %1252
  br label %1264

1264:                                             ; preds = %1259, %1263
  %.str.5.sink960 = phi ptr [ @.str.5, %1263 ], [ @.str.2, %1259 ]
  store i32 %1254, ptr %1253, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = load i32, ptr %1222, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef nonnull @.str.4) #12
  %1269 = load i32, ptr %1222, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror_debug(i32 noundef %1269, ptr noundef nonnull @.str.4) #12
  %1271 = load i32, ptr %1253, align 4, !tbaa !5
  %1272 = call ptr @strerror(i32 noundef %1271) #12
  %1273 = load i32, ptr %1253, align 4, !tbaa !5
  %1274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1265, ptr noundef nonnull %.str.5.sink960, i32 noundef %1266, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1268, ptr noundef %1270, ptr noundef %1272, i32 noundef %1273) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1275:                                             ; preds = %1248
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1276 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1276, align 4, !tbaa !5
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = load i32, ptr %1074, align 8
  %1280 = and i32 %1279, 8
  %1281 = icmp eq i32 %1280, 0
  br i1 %1281, label %1304, label %1282

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

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

1292:                                             ; preds = %1288, %1282
  br label %1293

1293:                                             ; preds = %1288, %1292
  %.str.5.sink969 = phi ptr [ @.str.5, %1292 ], [ @.str.2, %1288 ]
  store i32 %1283, ptr %1276, align 4, !tbaa !5
  %1294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = load i32, ptr %1222, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror(i32 noundef %1296, ptr noundef nonnull @.str.4) #12
  %1298 = load i32, ptr %1222, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror_debug(i32 noundef %1298, ptr noundef nonnull @.str.4) #12
  %1300 = load i32, ptr %1276, align 4, !tbaa !5
  %1301 = call ptr @strerror(i32 noundef %1300) #12
  %1302 = load i32, ptr %1276, align 4, !tbaa !5
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1294, ptr noundef nonnull %.str.5.sink969, i32 noundef %1295, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1297, ptr noundef %1299, ptr noundef %1301, i32 noundef %1302) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1304:                                             ; preds = %1275
  %1305 = add nsw i32 %1277, 2
  store i32 %1305, ptr @test_count, align 4, !tbaa !5
  %1306 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #12
  %1307 = icmp eq i32 %1306, -1
  br i1 %1307, label %1308, label %1330

1308:                                             ; preds = %1304
  %1309 = load i32, ptr %1276, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @s2n_print_stacktrace(ptr noundef %1310) #12
  %1312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1313 = trunc nuw i8 %1312 to i1
  br i1 %1313, label %1314, label %1318

1314:                                             ; preds = %1308
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @fileno(ptr noundef %1315) #12
  %1317 = call i32 @isatty(i32 noundef %1316) #12
  %.not476 = icmp eq i32 %1317, 0
  br i1 %.not476, label %1318, label %1319

1318:                                             ; preds = %1314, %1308
  br label %1319

1319:                                             ; preds = %1314, %1318
  %.str.5.sink978 = phi ptr [ @.str.5, %1318 ], [ @.str.2, %1314 ]
  store i32 %1309, ptr %1276, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = load i32, ptr %1222, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror(i32 noundef %1322, ptr noundef nonnull @.str.4) #12
  %1324 = load i32, ptr %1222, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror_debug(i32 noundef %1324, ptr noundef nonnull @.str.4) #12
  %1326 = load i32, ptr %1276, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #12
  %1328 = load i32, ptr %1276, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef nonnull %.str.5.sink978, i32 noundef %1321, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1323, ptr noundef %1325, ptr noundef %1327, i32 noundef %1328) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1330:                                             ; preds = %1304
  %1331 = load i32, ptr @test_count, align 4, !tbaa !5
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr @test_count, align 4, !tbaa !5
  %1333 = call i32 @s2n_connection_free(ptr noundef nonnull %1074) #12
  %1334 = icmp eq i32 %1333, -1
  br i1 %1334, label %1335, label %1357

1335:                                             ; preds = %1330
  %1336 = load i32, ptr %1276, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 @s2n_print_stacktrace(ptr noundef %1337) #12
  %1339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1340 = trunc nuw i8 %1339 to i1
  br i1 %1340, label %1341, label %1345

1341:                                             ; preds = %1335
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = call i32 @fileno(ptr noundef %1342) #12
  %1344 = call i32 @isatty(i32 noundef %1343) #12
  %.not475 = icmp eq i32 %1344, 0
  br i1 %.not475, label %1345, label %1346

1345:                                             ; preds = %1341, %1335
  br label %1346

1346:                                             ; preds = %1341, %1345
  %.str.5.sink987 = phi ptr [ @.str.5, %1345 ], [ @.str.2, %1341 ]
  store i32 %1336, ptr %1276, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = load i32, ptr %1222, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef nonnull @.str.4) #12
  %1351 = load i32, ptr %1222, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef nonnull @.str.4) #12
  %1353 = load i32, ptr %1276, align 4, !tbaa !5
  %1354 = call ptr @strerror(i32 noundef %1353) #12
  %1355 = load i32, ptr %1276, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef nonnull %.str.5.sink987, i32 noundef %1348, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1350, ptr noundef %1352, ptr noundef %1354, i32 noundef %1355) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1357:                                             ; preds = %1330
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr @test_count, align 4, !tbaa !5
  %1360 = call i32 @s2n_connection_free(ptr noundef nonnull %1045) #12
  %1361 = icmp eq i32 %1360, -1
  br i1 %1361, label %1362, label %1384

1362:                                             ; preds = %1357
  %1363 = load i32, ptr %1276, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @s2n_print_stacktrace(ptr noundef %1364) #12
  %1366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1367 = trunc nuw i8 %1366 to i1
  br i1 %1367, label %1368, label %1372

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

1372:                                             ; preds = %1368, %1362
  br label %1373

1373:                                             ; preds = %1368, %1372
  %.str.5.sink996 = phi ptr [ @.str.5, %1372 ], [ @.str.2, %1368 ]
  store i32 %1363, ptr %1276, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = load i32, ptr %1222, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror(i32 noundef %1376, ptr noundef nonnull @.str.4) #12
  %1378 = load i32, ptr %1222, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror_debug(i32 noundef %1378, ptr noundef nonnull @.str.4) #12
  %1380 = load i32, ptr %1276, align 4, !tbaa !5
  %1381 = call ptr @strerror(i32 noundef %1380) #12
  %1382 = load i32, ptr %1276, align 4, !tbaa !5
  %1383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1374, ptr noundef nonnull %.str.5.sink996, i32 noundef %1375, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1377, ptr noundef %1379, ptr noundef %1381, i32 noundef %1382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1384:                                             ; preds = %1357
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #12
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = add nsw i32 %1385, 1
  store i32 %1386, ptr @test_count, align 4, !tbaa !5
  %1387 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1388 = icmp eq ptr %1387, null
  br i1 %1388, label %1389, label %1411

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

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

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

1400:                                             ; preds = %1395, %1399
  %.str.5.sink1005 = phi ptr [ @.str.5, %1399 ], [ @.str.2, %1395 ]
  store i32 %1390, ptr %1276, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = load i32, ptr %1222, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef nonnull @.str.4) #12
  %1405 = load i32, ptr %1222, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef nonnull @.str.4) #12
  %1407 = load i32, ptr %1276, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #12
  %1409 = load i32, ptr %1276, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink1005, i32 noundef %1402, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1404, ptr noundef %1406, ptr noundef %1408, i32 noundef %1409) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1411:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  %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_growable_alloc(ptr noundef nonnull %12, i32 noundef 0) #12
  %1415 = icmp eq i32 %1414, -1
  br i1 %1415, label %1416, label %1438

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

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

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

1427:                                             ; preds = %1422, %1426
  %.str.5.sink1014 = phi ptr [ @.str.5, %1426 ], [ @.str.2, %1422 ]
  store i32 %1417, ptr %1276, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = load i32, ptr %1222, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef nonnull @.str.4) #12
  %1432 = load i32, ptr %1222, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef nonnull @.str.4) #12
  %1434 = load i32, ptr %1276, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #12
  %1436 = load i32, ptr %1276, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef nonnull %.str.5.sink1014, i32 noundef %1429, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, i32 noundef %1436) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1438:                                             ; preds = %1411
  %1439 = load i32, ptr @test_count, align 4, !tbaa !5
  %1440 = add nsw i32 %1439, 1
  store i32 %1440, ptr @test_count, align 4, !tbaa !5
  %1441 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %12, i8 noundef zeroext 5) #12
  %1442 = icmp eq i32 %1441, -1
  br i1 %1442, label %1443, label %1465

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

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

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

1454:                                             ; preds = %1449, %1453
  %.str.5.sink1023 = phi ptr [ @.str.5, %1453 ], [ @.str.2, %1449 ]
  store i32 %1444, ptr %1276, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = load i32, ptr %1222, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef nonnull @.str.4) #12
  %1459 = load i32, ptr %1222, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef nonnull @.str.4) #12
  %1461 = load i32, ptr %1276, align 4, !tbaa !5
  %1462 = call ptr @strerror(i32 noundef %1461) #12
  %1463 = load i32, ptr %1276, align 4, !tbaa !5
  %1464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull %.str.5.sink1023, i32 noundef %1456, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1458, ptr noundef %1460, ptr noundef %1462, i32 noundef %1463) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1465:                                             ; preds = %1438
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = add nsw i32 %1466, 1
  store i32 %1467, ptr @test_count, align 4, !tbaa !5
  %1468 = call i32 %626(ptr noundef nonnull %1387, ptr noundef nonnull %12) #12
  %1469 = icmp eq i32 %1468, -1
  br i1 %1469, label %1492, label %1470

1470:                                             ; preds = %1465
  %1471 = load i32, ptr %1276, align 4, !tbaa !5
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = call i32 @s2n_print_stacktrace(ptr noundef %1472) #12
  %1474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1475 = trunc nuw i8 %1474 to i1
  br i1 %1475, label %1476, label %1480

1476:                                             ; preds = %1470
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @fileno(ptr noundef %1477) #12
  %1479 = call i32 @isatty(i32 noundef %1478) #12
  %.not372 = icmp eq i32 %1479, 0
  br i1 %.not372, label %1480, label %1481

1480:                                             ; preds = %1476, %1470
  br label %1481

1481:                                             ; preds = %1476, %1480
  %.str.5.sink1032 = phi ptr [ @.str.5, %1480 ], [ @.str.2, %1476 ]
  store i32 %1471, ptr %1276, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = load i32, ptr %1222, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror(i32 noundef %1484, ptr noundef nonnull @.str.4) #12
  %1486 = load i32, ptr %1222, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror_debug(i32 noundef %1486, ptr noundef nonnull @.str.4) #12
  %1488 = load i32, ptr %1276, align 4, !tbaa !5
  %1489 = call ptr @strerror(i32 noundef %1488) #12
  %1490 = load i32, ptr %1276, align 4, !tbaa !5
  %1491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef nonnull %.str.5.sink1032, i32 noundef %1483, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1485, ptr noundef %1487, ptr noundef %1489, i32 noundef %1490) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1492:                                             ; preds = %1465
  %1493 = load i32, ptr @test_count, align 4, !tbaa !5
  %1494 = add nsw i32 %1493, 1
  store i32 %1494, ptr @test_count, align 4, !tbaa !5
  %1495 = load i32, ptr %1222, align 4, !tbaa !5
  %1496 = icmp eq i32 %1495, 335544364
  br i1 %1496, label %1519, label %1497

1497:                                             ; preds = %1492
  %1498 = load i32, ptr %1276, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = call i32 @s2n_print_stacktrace(ptr noundef %1499) #12
  %1501 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1502 = trunc nuw i8 %1501 to i1
  br i1 %1502, label %1503, label %1507

1503:                                             ; preds = %1497
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = call i32 @fileno(ptr noundef %1504) #12
  %1506 = call i32 @isatty(i32 noundef %1505) #12
  %.not373 = icmp eq i32 %1506, 0
  br i1 %.not373, label %1507, label %1508

1507:                                             ; preds = %1503, %1497
  br label %1508

1508:                                             ; preds = %1503, %1507
  %.str.5.sink1041 = phi ptr [ @.str.5, %1507 ], [ @.str.2, %1503 ]
  store i32 %1498, ptr %1276, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = load i32, ptr @test_count, align 4, !tbaa !5
  %1511 = load i32, ptr %1222, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef nonnull @.str.4) #12
  %1513 = load i32, ptr %1222, align 4, !tbaa !5
  %1514 = call ptr @s2n_strerror_debug(i32 noundef %1513, ptr noundef nonnull @.str.4) #12
  %1515 = load i32, ptr %1276, align 4, !tbaa !5
  %1516 = call ptr @strerror(i32 noundef %1515) #12
  %1517 = load i32, ptr %1276, align 4, !tbaa !5
  %1518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1509, ptr noundef nonnull %.str.5.sink1041, i32 noundef %1510, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1512, ptr noundef %1514, ptr noundef %1516, i32 noundef %1517) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1519:                                             ; preds = %1492
  %1520 = add nsw i32 %1493, 2
  store i32 %1520, ptr @test_count, align 4, !tbaa !5
  %1521 = call ptr @s2n_strerror_debug(i32 noundef 335544364, ptr noundef nonnull @.str.4) #12
  %1522 = icmp eq ptr %1521, null
  br i1 %1522, label %1523, label %1545

1523:                                             ; preds = %1519
  %1524 = load i32, ptr %1276, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @s2n_print_stacktrace(ptr noundef %1525) #12
  %1527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1528 = trunc nuw i8 %1527 to i1
  br i1 %1528, label %1529, label %1533

1529:                                             ; preds = %1523
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @fileno(ptr noundef %1530) #12
  %1532 = call i32 @isatty(i32 noundef %1531) #12
  %.not470 = icmp eq i32 %1532, 0
  br i1 %.not470, label %1533, label %1534

1533:                                             ; preds = %1529, %1523
  br label %1534

1534:                                             ; preds = %1529, %1533
  %.str.5.sink1050 = phi ptr [ @.str.5, %1533 ], [ @.str.2, %1529 ]
  store i32 %1524, ptr %1276, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = load i32, ptr %1222, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror(i32 noundef %1537, ptr noundef nonnull @.str.4) #12
  %1539 = load i32, ptr %1222, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef %1539, ptr noundef nonnull @.str.4) #12
  %1541 = load i32, ptr %1276, align 4, !tbaa !5
  %1542 = call ptr @strerror(i32 noundef %1541) #12
  %1543 = load i32, ptr %1276, align 4, !tbaa !5
  %1544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1535, ptr noundef nonnull %.str.5.sink1050, i32 noundef %1536, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1538, ptr noundef %1540, ptr noundef %1542, i32 noundef %1543) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1545:                                             ; preds = %1519
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = add nsw i32 %1546, 1
  store i32 %1547, ptr @test_count, align 4, !tbaa !5
  %1548 = load i32, ptr %1387, align 8
  %1549 = and i32 %1548, 8
  %1550 = icmp eq i32 %1549, 0
  br i1 %1550, label %1573, label %1551

1551:                                             ; preds = %1545
  %1552 = load i32, ptr %1276, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = call i32 @s2n_print_stacktrace(ptr noundef %1553) #12
  %1555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1556 = trunc nuw i8 %1555 to i1
  br i1 %1556, label %1557, label %1561

1557:                                             ; preds = %1551
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @fileno(ptr noundef %1558) #12
  %1560 = call i32 @isatty(i32 noundef %1559) #12
  %.not374 = icmp eq i32 %1560, 0
  br i1 %.not374, label %1561, label %1562

1561:                                             ; preds = %1557, %1551
  br label %1562

1562:                                             ; preds = %1557, %1561
  %.str.5.sink1059 = phi ptr [ @.str.5, %1561 ], [ @.str.2, %1557 ]
  store i32 %1552, ptr %1276, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = load i32, ptr %1222, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror(i32 noundef %1565, ptr noundef nonnull @.str.4) #12
  %1567 = load i32, ptr %1222, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror_debug(i32 noundef %1567, ptr noundef nonnull @.str.4) #12
  %1569 = load i32, ptr %1276, align 4, !tbaa !5
  %1570 = call ptr @strerror(i32 noundef %1569) #12
  %1571 = load i32, ptr %1276, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1563, ptr noundef nonnull %.str.5.sink1059, i32 noundef %1564, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1566, ptr noundef %1568, ptr noundef %1570, i32 noundef %1571) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1573:                                             ; preds = %1545
  %1574 = add nsw i32 %1546, 2
  store i32 %1574, ptr @test_count, align 4, !tbaa !5
  %1575 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #12
  %1576 = icmp eq i32 %1575, -1
  br i1 %1576, label %1577, label %1599

1577:                                             ; preds = %1573
  %1578 = load i32, ptr %1276, align 4, !tbaa !5
  %1579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1580 = call i32 @s2n_print_stacktrace(ptr noundef %1579) #12
  %1581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1582 = trunc nuw i8 %1581 to i1
  br i1 %1582, label %1583, label %1587

1583:                                             ; preds = %1577
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = call i32 @fileno(ptr noundef %1584) #12
  %1586 = call i32 @isatty(i32 noundef %1585) #12
  %.not469 = icmp eq i32 %1586, 0
  br i1 %.not469, label %1587, label %1588

1587:                                             ; preds = %1583, %1577
  br label %1588

1588:                                             ; preds = %1583, %1587
  %.str.5.sink1068 = phi ptr [ @.str.5, %1587 ], [ @.str.2, %1583 ]
  store i32 %1578, ptr %1276, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = load i32, ptr @test_count, align 4, !tbaa !5
  %1591 = load i32, ptr %1222, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror(i32 noundef %1591, ptr noundef nonnull @.str.4) #12
  %1593 = load i32, ptr %1222, align 4, !tbaa !5
  %1594 = call ptr @s2n_strerror_debug(i32 noundef %1593, ptr noundef nonnull @.str.4) #12
  %1595 = load i32, ptr %1276, align 4, !tbaa !5
  %1596 = call ptr @strerror(i32 noundef %1595) #12
  %1597 = load i32, ptr %1276, align 4, !tbaa !5
  %1598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1589, ptr noundef nonnull %.str.5.sink1068, i32 noundef %1590, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1592, ptr noundef %1594, ptr noundef %1596, i32 noundef %1597) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1599:                                             ; preds = %1573
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = add nsw i32 %1600, 1
  store i32 %1601, ptr @test_count, align 4, !tbaa !5
  %1602 = call i32 @s2n_connection_free(ptr noundef nonnull %1387) #12
  %1603 = icmp eq i32 %1602, -1
  br i1 %1603, label %1604, label %1626

1604:                                             ; preds = %1599
  %1605 = load i32, ptr %1276, align 4, !tbaa !5
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1607 = call i32 @s2n_print_stacktrace(ptr noundef %1606) #12
  %1608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1609 = trunc nuw i8 %1608 to i1
  br i1 %1609, label %1610, label %1614

1610:                                             ; preds = %1604
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @fileno(ptr noundef %1611) #12
  %1613 = call i32 @isatty(i32 noundef %1612) #12
  %.not468 = icmp eq i32 %1613, 0
  br i1 %.not468, label %1614, label %1615

1614:                                             ; preds = %1610, %1604
  br label %1615

1615:                                             ; preds = %1610, %1614
  %.str.5.sink1077 = phi ptr [ @.str.5, %1614 ], [ @.str.2, %1610 ]
  store i32 %1605, ptr %1276, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = load i32, ptr %1222, align 4, !tbaa !5
  %1619 = call ptr @s2n_strerror(i32 noundef %1618, ptr noundef nonnull @.str.4) #12
  %1620 = load i32, ptr %1222, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef nonnull @.str.4) #12
  %1622 = load i32, ptr %1276, align 4, !tbaa !5
  %1623 = call ptr @strerror(i32 noundef %1622) #12
  %1624 = load i32, ptr %1276, align 4, !tbaa !5
  %1625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef nonnull %.str.5.sink1077, i32 noundef %1617, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %1619, ptr noundef %1621, ptr noundef %1623, i32 noundef %1624) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1626:                                             ; preds = %1599
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %1627 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1627, ptr %13, align 8, !tbaa !9
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %1629 = add nsw i32 %1628, 1
  store i32 %1629, ptr @test_count, align 4, !tbaa !5
  %1630 = icmp eq ptr %1627, null
  br i1 %1630, label %1631, label %1653

1631:                                             ; preds = %1626
  %1632 = load i32, ptr %1276, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633) #12
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc nuw i8 %1635 to i1
  br i1 %1636, label %1637, label %1641

1637:                                             ; preds = %1631
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #12
  %1640 = call i32 @isatty(i32 noundef %1639) #12
  %.not467 = icmp eq i32 %1640, 0
  br i1 %.not467, label %1641, label %1642

1641:                                             ; preds = %1637, %1631
  br label %1642

1642:                                             ; preds = %1637, %1641
  %.str.5.sink1086 = phi ptr [ @.str.5, %1641 ], [ @.str.2, %1637 ]
  store i32 %1632, ptr %1276, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = load i32, ptr @test_count, align 4, !tbaa !5
  %1645 = load i32, ptr %1222, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror(i32 noundef %1645, ptr noundef nonnull @.str.4) #12
  %1647 = load i32, ptr %1222, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror_debug(i32 noundef %1647, ptr noundef nonnull @.str.4) #12
  %1649 = load i32, ptr %1276, align 4, !tbaa !5
  %1650 = call ptr @strerror(i32 noundef %1649) #12
  %1651 = load i32, ptr %1276, align 4, !tbaa !5
  %1652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1643, ptr noundef nonnull %.str.5.sink1086, i32 noundef %1644, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %1646, ptr noundef %1648, ptr noundef %1650, i32 noundef %1651) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1653:                                             ; preds = %1626
  %1654 = add nsw i32 %1628, 2
  store i32 %1654, ptr @test_count, align 4, !tbaa !5
  %1655 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_renegotiation_info_extension, i64 32), align 8, !tbaa !49
  %1656 = call i32 %1655(ptr noundef nonnull %1627) #12
  %1657 = icmp eq i32 %1656, -1
  br i1 %1657, label %1658, label %1680

1658:                                             ; preds = %1653
  %1659 = load i32, ptr %1276, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = call i32 @s2n_print_stacktrace(ptr noundef %1660) #12
  %1662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1663 = trunc nuw i8 %1662 to i1
  br i1 %1663, label %1664, label %1668

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

1668:                                             ; preds = %1664, %1658
  br label %1669

1669:                                             ; preds = %1664, %1668
  %.str.5.sink1095 = phi ptr [ @.str.5, %1668 ], [ @.str.2, %1664 ]
  store i32 %1659, ptr %1276, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = load i32, ptr %1222, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror(i32 noundef %1672, ptr noundef nonnull @.str.4) #12
  %1674 = load i32, ptr %1222, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror_debug(i32 noundef %1674, ptr noundef nonnull @.str.4) #12
  %1676 = load i32, ptr %1276, align 4, !tbaa !5
  %1677 = call ptr @strerror(i32 noundef %1676) #12
  %1678 = load i32, ptr %1276, align 4, !tbaa !5
  %1679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1670, ptr noundef nonnull %.str.5.sink1095, i32 noundef %1671, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1673, ptr noundef %1675, ptr noundef %1677, i32 noundef %1678) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1680:                                             ; preds = %1653
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = add nsw i32 %1681, 1
  store i32 %1682, ptr @test_count, align 4, !tbaa !5
  %1683 = load ptr, ptr %13, align 8, !tbaa !9
  %1684 = load i32, ptr %1683, align 8
  %1685 = and i32 %1684, 8
  %.not375 = icmp eq i32 %1685, 0
  br i1 %.not375, label %1708, label %1686

1686:                                             ; preds = %1680
  %1687 = load i32, ptr %1276, align 4, !tbaa !5
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = call i32 @s2n_print_stacktrace(ptr noundef %1688) #12
  %1690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1691 = trunc nuw i8 %1690 to i1
  br i1 %1691, label %1692, label %1696

1692:                                             ; preds = %1686
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = call i32 @fileno(ptr noundef %1693) #12
  %1695 = call i32 @isatty(i32 noundef %1694) #12
  %.not465 = icmp eq i32 %1695, 0
  br i1 %.not465, label %1696, label %1697

1696:                                             ; preds = %1692, %1686
  br label %1697

1697:                                             ; preds = %1692, %1696
  %.str.5.sink1104 = phi ptr [ @.str.5, %1696 ], [ @.str.2, %1692 ]
  store i32 %1687, ptr %1276, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = load i32, ptr %1222, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror(i32 noundef %1700, ptr noundef nonnull @.str.4) #12
  %1702 = load i32, ptr %1222, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror_debug(i32 noundef %1702, ptr noundef nonnull @.str.4) #12
  %1704 = load i32, ptr %1276, align 4, !tbaa !5
  %1705 = call ptr @strerror(i32 noundef %1704) #12
  %1706 = load i32, ptr %1276, align 4, !tbaa !5
  %1707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef nonnull %.str.5.sink1104, i32 noundef %1699, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1701, ptr noundef %1703, ptr noundef %1705, i32 noundef %1706) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1708:                                             ; preds = %1680
  %1709 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  %1710 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1710, ptr %14, align 8, !tbaa !9
  %1711 = load i32, ptr @test_count, align 4, !tbaa !5
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr @test_count, align 4, !tbaa !5
  %1713 = icmp eq ptr %1710, null
  br i1 %1713, label %1714, label %1736

1714:                                             ; preds = %1708
  %1715 = load i32, ptr %1276, align 4, !tbaa !5
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = call i32 @s2n_print_stacktrace(ptr noundef %1716) #12
  %1718 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1719 = trunc nuw i8 %1718 to i1
  br i1 %1719, label %1720, label %1724

1720:                                             ; preds = %1714
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = call i32 @fileno(ptr noundef %1721) #12
  %1723 = call i32 @isatty(i32 noundef %1722) #12
  %.not464 = icmp eq i32 %1723, 0
  br i1 %.not464, label %1724, label %1725

1724:                                             ; preds = %1720, %1714
  br label %1725

1725:                                             ; preds = %1720, %1724
  %.str.5.sink1113 = phi ptr [ @.str.5, %1724 ], [ @.str.2, %1720 ]
  store i32 %1715, ptr %1276, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = load i32, ptr @test_count, align 4, !tbaa !5
  %1728 = load i32, ptr %1222, align 4, !tbaa !5
  %1729 = call ptr @s2n_strerror(i32 noundef %1728, ptr noundef nonnull @.str.4) #12
  %1730 = load i32, ptr %1222, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror_debug(i32 noundef %1730, ptr noundef nonnull @.str.4) #12
  %1732 = load i32, ptr %1276, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #12
  %1734 = load i32, ptr %1276, align 4, !tbaa !5
  %1735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1726, ptr noundef nonnull %.str.5.sink1113, i32 noundef %1727, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1729, ptr noundef %1731, ptr noundef %1733, i32 noundef %1734) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1736:                                             ; preds = %1708
  %1737 = getelementptr inbounds i8, ptr %1710, i64 2200
  %1738 = load i8, ptr %1737, align 8
  %1739 = or i8 %1738, 8
  store i8 %1739, ptr %1737, align 8
  %1740 = add nsw i32 %1711, 2
  store i32 %1740, ptr @test_count, align 4, !tbaa !5
  %1741 = call i32 %1655(ptr noundef nonnull %1710) #12
  %1742 = icmp eq i32 %1741, -1
  br i1 %1742, label %1765, label %1743

1743:                                             ; preds = %1736
  %1744 = load i32, ptr %1276, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745) #12
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc nuw i8 %1747 to i1
  br i1 %1748, label %1749, label %1753

1749:                                             ; preds = %1743
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #12
  %1752 = call i32 @isatty(i32 noundef %1751) #12
  %.not376 = icmp eq i32 %1752, 0
  br i1 %.not376, label %1753, label %1754

1753:                                             ; preds = %1749, %1743
  br label %1754

1754:                                             ; preds = %1749, %1753
  %.str.5.sink1122 = phi ptr [ @.str.5, %1753 ], [ @.str.2, %1749 ]
  store i32 %1744, ptr %1276, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = load i32, ptr %1222, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #12
  %1759 = load i32, ptr %1222, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #12
  %1761 = load i32, ptr %1276, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #12
  %1763 = load i32, ptr %1276, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef nonnull %.str.5.sink1122, i32 noundef %1756, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1765:                                             ; preds = %1736
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr @test_count, align 4, !tbaa !5
  %1768 = load i32, ptr %1222, align 4, !tbaa !5
  %1769 = icmp eq i32 %1768, 335544398
  br i1 %1769, label %1792, label %1770

1770:                                             ; preds = %1765
  %1771 = load i32, ptr %1276, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = call i32 @s2n_print_stacktrace(ptr noundef %1772) #12
  %1774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1775 = trunc nuw i8 %1774 to i1
  br i1 %1775, label %1776, label %1780

1776:                                             ; preds = %1770
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #12
  %1779 = call i32 @isatty(i32 noundef %1778) #12
  %.not377 = icmp eq i32 %1779, 0
  br i1 %.not377, label %1780, label %1781

1780:                                             ; preds = %1776, %1770
  br label %1781

1781:                                             ; preds = %1776, %1780
  %.str.5.sink1131 = phi ptr [ @.str.5, %1780 ], [ @.str.2, %1776 ]
  store i32 %1771, ptr %1276, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = load i32, ptr %1222, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror(i32 noundef %1784, ptr noundef nonnull @.str.4) #12
  %1786 = load i32, ptr %1222, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef %1786, ptr noundef nonnull @.str.4) #12
  %1788 = load i32, ptr %1276, align 4, !tbaa !5
  %1789 = call ptr @strerror(i32 noundef %1788) #12
  %1790 = load i32, ptr %1276, align 4, !tbaa !5
  %1791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef nonnull %.str.5.sink1131, i32 noundef %1783, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %1785, ptr noundef %1787, ptr noundef %1789, i32 noundef %1790) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1792:                                             ; preds = %1765
  %1793 = add nsw i32 %1766, 2
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef 335544398, ptr noundef nonnull @.str.4) #12
  %1795 = icmp eq ptr %1794, null
  br i1 %1795, label %1796, label %1818

1796:                                             ; preds = %1792
  %1797 = load i32, ptr %1276, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @s2n_print_stacktrace(ptr noundef %1798) #12
  %1800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1801 = trunc nuw i8 %1800 to i1
  br i1 %1801, label %1802, label %1806

1802:                                             ; preds = %1796
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @fileno(ptr noundef %1803) #12
  %1805 = call i32 @isatty(i32 noundef %1804) #12
  %.not463 = icmp eq i32 %1805, 0
  br i1 %.not463, label %1806, label %1807

1806:                                             ; preds = %1802, %1796
  br label %1807

1807:                                             ; preds = %1802, %1806
  %.str.5.sink1140 = phi ptr [ @.str.5, %1806 ], [ @.str.2, %1802 ]
  store i32 %1797, ptr %1276, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = load i32, ptr %1222, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror(i32 noundef %1810, ptr noundef nonnull @.str.4) #12
  %1812 = load i32, ptr %1222, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror_debug(i32 noundef %1812, ptr noundef nonnull @.str.4) #12
  %1814 = load i32, ptr %1276, align 4, !tbaa !5
  %1815 = call ptr @strerror(i32 noundef %1814) #12
  %1816 = load i32, ptr %1276, align 4, !tbaa !5
  %1817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1808, ptr noundef nonnull %.str.5.sink1140, i32 noundef %1809, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %1811, ptr noundef %1813, ptr noundef %1815, i32 noundef %1816) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1818:                                             ; preds = %1792
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %1819 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %1820 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1820, ptr %15, align 8, !tbaa !9
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = add nsw i32 %1821, 1
  store i32 %1822, ptr @test_count, align 4, !tbaa !5
  %1823 = icmp eq ptr %1820, null
  br i1 %1823, label %1824, label %1846

1824:                                             ; preds = %1818
  %1825 = load i32, ptr %1276, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = call i32 @s2n_print_stacktrace(ptr noundef %1826) #12
  %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 = %1824
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @fileno(ptr noundef %1831) #12
  %1833 = call i32 @isatty(i32 noundef %1832) #12
  %.not462 = icmp eq i32 %1833, 0
  br i1 %.not462, label %1834, label %1835

1834:                                             ; preds = %1830, %1824
  br label %1835

1835:                                             ; preds = %1830, %1834
  %.str.5.sink1149 = phi ptr [ @.str.5, %1834 ], [ @.str.2, %1830 ]
  store i32 %1825, ptr %1276, align 4, !tbaa !5
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = load i32, ptr @test_count, align 4, !tbaa !5
  %1838 = load i32, ptr %1222, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror(i32 noundef %1838, ptr noundef nonnull @.str.4) #12
  %1840 = load i32, ptr %1222, align 4, !tbaa !5
  %1841 = call ptr @s2n_strerror_debug(i32 noundef %1840, ptr noundef nonnull @.str.4) #12
  %1842 = load i32, ptr %1276, align 4, !tbaa !5
  %1843 = call ptr @strerror(i32 noundef %1842) #12
  %1844 = load i32, ptr %1276, align 4, !tbaa !5
  %1845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1836, ptr noundef nonnull %.str.5.sink1149, i32 noundef %1837, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1839, ptr noundef %1841, ptr noundef %1843, i32 noundef %1844) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1846:                                             ; preds = %1818
  %1847 = getelementptr inbounds i8, ptr %1820, i64 2200
  %1848 = load i8, ptr %1847, align 8
  %1849 = or i8 %1848, 8
  store i8 %1849, ptr %1847, align 8
  %1850 = load i32, ptr %1820, align 8
  %1851 = or i32 %1850, 8
  store i32 %1851, ptr %1820, align 8
  %1852 = load ptr, ptr %15, align 8, !tbaa !9
  %1853 = getelementptr inbounds i8, ptr %1852, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %1853, ptr noundef nonnull align 16 dereferenceable(19) %5, i64 19, i1 false)
  %1854 = getelementptr inbounds i8, ptr %1852, i64 2072
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %1854, ptr noundef nonnull align 16 dereferenceable(19) %6, i64 19, i1 false)
  %1855 = getelementptr inbounds i8, ptr %1852, i64 2168
  store i8 19, ptr %1855, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, i8 0, i64 40, i1 false)
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %16, ptr noundef nonnull %5, ptr noundef nonnull %6, i8 noundef zeroext 19)
  %1859 = call zeroext i1 @s2n_result_is_ok(i32 %1858)
  br i1 %1859, label %1882, label %1860

1860:                                             ; preds = %1846
  %1861 = load i32, ptr %1276, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = call i32 @s2n_print_stacktrace(ptr noundef %1862) #12
  %1864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1865 = trunc nuw i8 %1864 to i1
  br i1 %1865, label %1866, label %1870

1866:                                             ; preds = %1860
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @fileno(ptr noundef %1867) #12
  %1869 = call i32 @isatty(i32 noundef %1868) #12
  %.not378 = icmp eq i32 %1869, 0
  br i1 %.not378, label %1870, label %1871

1870:                                             ; preds = %1866, %1860
  br label %1871

1871:                                             ; preds = %1866, %1870
  %.str.5.sink1158 = phi ptr [ @.str.5, %1870 ], [ @.str.2, %1866 ]
  store i32 %1861, ptr %1276, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = load i32, ptr %1222, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef nonnull @.str.4) #12
  %1876 = load i32, ptr %1222, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef nonnull @.str.4) #12
  %1878 = load i32, ptr %1276, align 4, !tbaa !5
  %1879 = call ptr @strerror(i32 noundef %1878) #12
  %1880 = load i32, ptr %1276, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef nonnull %.str.5.sink1158, i32 noundef %1873, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %1875, ptr noundef %1877, ptr noundef %1879, i32 noundef %1880) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1882:                                             ; preds = %1846
  %1883 = load ptr, ptr %15, align 8, !tbaa !9
  %1884 = load i32, ptr %1883, align 8
  %1885 = and i32 %1884, -9
  store i32 %1885, ptr %1883, align 8
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = load ptr, ptr %15, align 8, !tbaa !9
  %1889 = call i32 %626(ptr noundef %1888, ptr noundef nonnull %16) #12
  %1890 = icmp eq i32 %1889, -1
  br i1 %1890, label %1913, label %1891

1891:                                             ; preds = %1882
  %1892 = load i32, ptr %1276, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @s2n_print_stacktrace(ptr noundef %1893) #12
  %1895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1896 = trunc nuw i8 %1895 to i1
  br i1 %1896, label %1897, label %1901

1897:                                             ; preds = %1891
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @fileno(ptr noundef %1898) #12
  %1900 = call i32 @isatty(i32 noundef %1899) #12
  %.not379 = icmp eq i32 %1900, 0
  br i1 %.not379, label %1901, label %1902

1901:                                             ; preds = %1897, %1891
  br label %1902

1902:                                             ; preds = %1897, %1901
  %.str.5.sink1167 = phi ptr [ @.str.5, %1901 ], [ @.str.2, %1897 ]
  store i32 %1892, ptr %1276, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = load i32, ptr %1222, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef nonnull @.str.4) #12
  %1907 = load i32, ptr %1222, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror_debug(i32 noundef %1907, ptr noundef nonnull @.str.4) #12
  %1909 = load i32, ptr %1276, align 4, !tbaa !5
  %1910 = call ptr @strerror(i32 noundef %1909) #12
  %1911 = load i32, ptr %1276, align 4, !tbaa !5
  %1912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1903, ptr noundef nonnull %.str.5.sink1167, i32 noundef %1904, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1906, ptr noundef %1908, ptr noundef %1910, i32 noundef %1911) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1913:                                             ; preds = %1882
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = add nsw i32 %1914, 1
  store i32 %1915, ptr @test_count, align 4, !tbaa !5
  %1916 = load i32, ptr %1222, align 4, !tbaa !5
  %1917 = icmp eq i32 %1916, 335544398
  br i1 %1917, label %1940, label %1918

1918:                                             ; preds = %1913
  %1919 = load i32, ptr %1276, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @s2n_print_stacktrace(ptr noundef %1920) #12
  %1922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1923 = trunc nuw i8 %1922 to i1
  br i1 %1923, label %1924, label %1928

1924:                                             ; preds = %1918
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @fileno(ptr noundef %1925) #12
  %1927 = call i32 @isatty(i32 noundef %1926) #12
  %.not380 = icmp eq i32 %1927, 0
  br i1 %.not380, label %1928, label %1929

1928:                                             ; preds = %1924, %1918
  br label %1929

1929:                                             ; preds = %1924, %1928
  %.str.5.sink1176 = phi ptr [ @.str.5, %1928 ], [ @.str.2, %1924 ]
  store i32 %1919, ptr %1276, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = load i32, ptr @test_count, align 4, !tbaa !5
  %1932 = load i32, ptr %1222, align 4, !tbaa !5
  %1933 = call ptr @s2n_strerror(i32 noundef %1932, ptr noundef nonnull @.str.4) #12
  %1934 = load i32, ptr %1222, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror_debug(i32 noundef %1934, ptr noundef nonnull @.str.4) #12
  %1936 = load i32, ptr %1276, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #12
  %1938 = load i32, ptr %1276, align 4, !tbaa !5
  %1939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1930, ptr noundef nonnull %.str.5.sink1176, i32 noundef %1931, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1933, ptr noundef %1935, ptr noundef %1937, i32 noundef %1938) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1940:                                             ; preds = %1913
  %1941 = add nsw i32 %1914, 2
  store i32 %1941, ptr @test_count, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef 335544398, ptr noundef nonnull @.str.4) #12
  %1943 = icmp eq ptr %1942, null
  br i1 %1943, label %1944, label %1966

1944:                                             ; preds = %1940
  %1945 = load i32, ptr %1276, align 4, !tbaa !5
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @s2n_print_stacktrace(ptr noundef %1946) #12
  %1948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1949 = trunc nuw i8 %1948 to i1
  br i1 %1949, label %1950, label %1954

1950:                                             ; preds = %1944
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = call i32 @fileno(ptr noundef %1951) #12
  %1953 = call i32 @isatty(i32 noundef %1952) #12
  %.not461 = icmp eq i32 %1953, 0
  br i1 %.not461, label %1954, label %1955

1954:                                             ; preds = %1950, %1944
  br label %1955

1955:                                             ; preds = %1950, %1954
  %.str.5.sink1185 = phi ptr [ @.str.5, %1954 ], [ @.str.2, %1950 ]
  store i32 %1945, ptr %1276, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = load i32, ptr %1222, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror(i32 noundef %1958, ptr noundef nonnull @.str.4) #12
  %1960 = load i32, ptr %1222, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror_debug(i32 noundef %1960, ptr noundef nonnull @.str.4) #12
  %1962 = load i32, ptr %1276, align 4, !tbaa !5
  %1963 = call ptr @strerror(i32 noundef %1962) #12
  %1964 = load i32, ptr %1276, align 4, !tbaa !5
  %1965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1956, ptr noundef nonnull %.str.5.sink1185, i32 noundef %1957, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1959, ptr noundef %1961, ptr noundef %1963, i32 noundef %1964) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1966:                                             ; preds = %1940
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %1967 = call i32 @s2n_stuffer_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #12
  %1968 = load ptr, ptr %15, align 8, !tbaa !9
  %1969 = load i32, ptr %1968, align 8
  %1970 = or i32 %1969, 8
  store i32 %1970, ptr %1968, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %17, i8 0, i64 40, i1 false)
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = add nsw i32 %1971, 1
  store i32 %1972, ptr @test_count, align 4, !tbaa !5
  %1973 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %17, ptr noundef nonnull %5, ptr noundef nonnull %6, i8 noundef zeroext 19)
  %1974 = call zeroext i1 @s2n_result_is_ok(i32 %1973)
  br i1 %1974, label %1997, label %1975

1975:                                             ; preds = %1966
  %1976 = load i32, ptr %1276, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @s2n_print_stacktrace(ptr noundef %1977) #12
  %1979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1980 = trunc nuw i8 %1979 to i1
  br i1 %1980, label %1981, label %1985

1981:                                             ; preds = %1975
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @fileno(ptr noundef %1982) #12
  %1984 = call i32 @isatty(i32 noundef %1983) #12
  %.not381 = icmp eq i32 %1984, 0
  br i1 %.not381, label %1985, label %1986

1985:                                             ; preds = %1981, %1975
  br label %1986

1986:                                             ; preds = %1981, %1985
  %.str.5.sink1194 = phi ptr [ @.str.5, %1985 ], [ @.str.2, %1981 ]
  store i32 %1976, ptr %1276, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = load i32, ptr %1222, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror(i32 noundef %1989, ptr noundef nonnull @.str.4) #12
  %1991 = load i32, ptr %1222, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror_debug(i32 noundef %1991, ptr noundef nonnull @.str.4) #12
  %1993 = load i32, ptr %1276, align 4, !tbaa !5
  %1994 = call ptr @strerror(i32 noundef %1993) #12
  %1995 = load i32, ptr %1276, align 4, !tbaa !5
  %1996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef nonnull %.str.5.sink1194, i32 noundef %1988, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %1990, ptr noundef %1992, ptr noundef %1994, i32 noundef %1995) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1997:                                             ; preds = %1966
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = add nsw i32 %1998, 1
  store i32 %1999, ptr @test_count, align 4, !tbaa !5
  %2000 = load ptr, ptr %15, align 8, !tbaa !9
  %2001 = call i32 %626(ptr noundef %2000, ptr noundef nonnull %17) #12
  %2002 = icmp eq i32 %2001, -1
  br i1 %2002, label %2003, label %2025

2003:                                             ; preds = %1997
  %2004 = load i32, ptr %1276, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = call i32 @s2n_print_stacktrace(ptr noundef %2005) #12
  %2007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2008 = trunc nuw i8 %2007 to i1
  br i1 %2008, label %2009, label %2013

2009:                                             ; preds = %2003
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = call i32 @fileno(ptr noundef %2010) #12
  %2012 = call i32 @isatty(i32 noundef %2011) #12
  %.not460 = icmp eq i32 %2012, 0
  br i1 %.not460, label %2013, label %2014

2013:                                             ; preds = %2009, %2003
  br label %2014

2014:                                             ; preds = %2009, %2013
  %.str.5.sink1203 = phi ptr [ @.str.5, %2013 ], [ @.str.2, %2009 ]
  store i32 %2004, ptr %1276, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = load i32, ptr %1222, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror(i32 noundef %2017, ptr noundef nonnull @.str.4) #12
  %2019 = load i32, ptr %1222, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef nonnull @.str.4) #12
  %2021 = load i32, ptr %1276, align 4, !tbaa !5
  %2022 = call ptr @strerror(i32 noundef %2021) #12
  %2023 = load i32, ptr %1276, align 4, !tbaa !5
  %2024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2015, ptr noundef nonnull %.str.5.sink1203, i32 noundef %2016, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2018, ptr noundef %2020, ptr noundef %2022, i32 noundef %2023) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2025:                                             ; preds = %1997
  %2026 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %18, i8 0, i64 40, i1 false)
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = add nsw i32 %2027, 1
  store i32 %2028, ptr @test_count, align 4, !tbaa !5
  %2029 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %18, ptr noundef nonnull %5, ptr noundef nonnull %6, i8 noundef zeroext 19)
  %2030 = call zeroext i1 @s2n_result_is_ok(i32 %2029)
  br i1 %2030, label %2053, label %2031

2031:                                             ; preds = %2025
  %2032 = load i32, ptr %1276, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = call i32 @s2n_print_stacktrace(ptr noundef %2033) #12
  %2035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2036 = trunc nuw i8 %2035 to i1
  br i1 %2036, label %2037, label %2041

2037:                                             ; preds = %2031
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @fileno(ptr noundef %2038) #12
  %2040 = call i32 @isatty(i32 noundef %2039) #12
  %.not382 = icmp eq i32 %2040, 0
  br i1 %.not382, label %2041, label %2042

2041:                                             ; preds = %2037, %2031
  br label %2042

2042:                                             ; preds = %2037, %2041
  %.str.5.sink1212 = phi ptr [ @.str.5, %2041 ], [ @.str.2, %2037 ]
  store i32 %2032, ptr %1276, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = load i32, ptr %1222, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef nonnull @.str.4) #12
  %2047 = load i32, ptr %1222, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef nonnull @.str.4) #12
  %2049 = load i32, ptr %1276, align 4, !tbaa !5
  %2050 = call ptr @strerror(i32 noundef %2049) #12
  %2051 = load i32, ptr %1276, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2043, ptr noundef nonnull %.str.5.sink1212, i32 noundef %2044, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2046, ptr noundef %2048, ptr noundef %2050, i32 noundef %2051) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2053:                                             ; preds = %2025
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = add nsw i32 %2054, 1
  store i32 %2055, ptr @test_count, align 4, !tbaa !5
  %2056 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %18) #12
  %2057 = icmp eq i32 %2056, -1
  br i1 %2057, label %2058, label %2080

2058:                                             ; preds = %2053
  %2059 = load i32, ptr %1276, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @s2n_print_stacktrace(ptr noundef %2060) #12
  %2062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2063 = trunc nuw i8 %2062 to i1
  br i1 %2063, label %2064, label %2068

2064:                                             ; preds = %2058
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @fileno(ptr noundef %2065) #12
  %2067 = call i32 @isatty(i32 noundef %2066) #12
  %.not459 = icmp eq i32 %2067, 0
  br i1 %.not459, label %2068, label %2069

2068:                                             ; preds = %2064, %2058
  br label %2069

2069:                                             ; preds = %2064, %2068
  %.str.5.sink1221 = phi ptr [ @.str.5, %2068 ], [ @.str.2, %2064 ]
  store i32 %2059, ptr %1276, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = load i32, ptr %1222, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror(i32 noundef %2072, ptr noundef nonnull @.str.4) #12
  %2074 = load i32, ptr %1222, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror_debug(i32 noundef %2074, ptr noundef nonnull @.str.4) #12
  %2076 = load i32, ptr %1276, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #12
  %2078 = load i32, ptr %1276, align 4, !tbaa !5
  %2079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef nonnull %.str.5.sink1221, i32 noundef %2071, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %2073, ptr noundef %2075, ptr noundef %2077, i32 noundef %2078) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2080:                                             ; preds = %2053
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = add nsw i32 %2081, 1
  store i32 %2082, ptr @test_count, align 4, !tbaa !5
  %2083 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %18, i8 noundef zeroext 37) #12
  %2084 = icmp eq i32 %2083, -1
  br i1 %2084, label %2085, label %2107

2085:                                             ; preds = %2080
  %2086 = load i32, ptr %1276, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = call i32 @s2n_print_stacktrace(ptr noundef %2087) #12
  %2089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2090 = trunc nuw i8 %2089 to i1
  br i1 %2090, label %2091, label %2095

2091:                                             ; preds = %2085
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @fileno(ptr noundef %2092) #12
  %2094 = call i32 @isatty(i32 noundef %2093) #12
  %.not458 = icmp eq i32 %2094, 0
  br i1 %.not458, label %2095, label %2096

2095:                                             ; preds = %2091, %2085
  br label %2096

2096:                                             ; preds = %2091, %2095
  %.str.5.sink1230 = phi ptr [ @.str.5, %2095 ], [ @.str.2, %2091 ]
  store i32 %2086, ptr %1276, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = load i32, ptr %1222, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef nonnull @.str.4) #12
  %2101 = load i32, ptr %1222, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror_debug(i32 noundef %2101, ptr noundef nonnull @.str.4) #12
  %2103 = load i32, ptr %1276, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #12
  %2105 = load i32, ptr %1276, align 4, !tbaa !5
  %2106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2097, ptr noundef nonnull %.str.5.sink1230, i32 noundef %2098, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2100, ptr noundef %2102, ptr noundef %2104, i32 noundef %2105) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2107:                                             ; preds = %2080
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = add nsw i32 %2108, 1
  store i32 %2109, ptr @test_count, align 4, !tbaa !5
  %2110 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %18, i32 noundef 38) #12
  %2111 = icmp eq i32 %2110, -1
  br i1 %2111, label %2112, label %2134

2112:                                             ; preds = %2107
  %2113 = load i32, ptr %1276, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = call i32 @s2n_print_stacktrace(ptr noundef %2114) #12
  %2116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2117 = trunc nuw i8 %2116 to i1
  br i1 %2117, label %2118, label %2122

2118:                                             ; preds = %2112
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @fileno(ptr noundef %2119) #12
  %2121 = call i32 @isatty(i32 noundef %2120) #12
  %.not457 = icmp eq i32 %2121, 0
  br i1 %.not457, label %2122, label %2123

2122:                                             ; preds = %2118, %2112
  br label %2123

2123:                                             ; preds = %2118, %2122
  %.str.5.sink1239 = phi ptr [ @.str.5, %2122 ], [ @.str.2, %2118 ]
  store i32 %2113, ptr %1276, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = load i32, ptr %1222, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror(i32 noundef %2126, ptr noundef nonnull @.str.4) #12
  %2128 = load i32, ptr %1222, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef nonnull @.str.4) #12
  %2130 = load i32, ptr %1276, align 4, !tbaa !5
  %2131 = call ptr @strerror(i32 noundef %2130) #12
  %2132 = load i32, ptr %1276, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2124, ptr noundef nonnull %.str.5.sink1239, i32 noundef %2125, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 302, ptr noundef %2127, ptr noundef %2129, ptr noundef %2131, i32 noundef %2132) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2134:                                             ; preds = %2107
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = add nsw i32 %2135, 1
  store i32 %2136, ptr @test_count, align 4, !tbaa !5
  %2137 = load ptr, ptr %15, align 8, !tbaa !9
  %2138 = call i32 %626(ptr noundef %2137, ptr noundef nonnull %18) #12
  %2139 = icmp eq i32 %2138, -1
  br i1 %2139, label %2162, label %2140

2140:                                             ; preds = %2134
  %2141 = load i32, ptr %1276, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = call i32 @s2n_print_stacktrace(ptr noundef %2142) #12
  %2144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2145 = trunc nuw i8 %2144 to i1
  br i1 %2145, label %2146, label %2150

2146:                                             ; preds = %2140
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @fileno(ptr noundef %2147) #12
  %2149 = call i32 @isatty(i32 noundef %2148) #12
  %.not383 = icmp eq i32 %2149, 0
  br i1 %.not383, label %2150, label %2151

2150:                                             ; preds = %2146, %2140
  br label %2151

2151:                                             ; preds = %2146, %2150
  %.str.5.sink1248 = phi ptr [ @.str.5, %2150 ], [ @.str.2, %2146 ]
  store i32 %2141, ptr %1276, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = load i32, ptr %1222, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef nonnull @.str.4) #12
  %2156 = load i32, ptr %1222, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror_debug(i32 noundef %2156, ptr noundef nonnull @.str.4) #12
  %2158 = load i32, ptr %1276, align 4, !tbaa !5
  %2159 = call ptr @strerror(i32 noundef %2158) #12
  %2160 = load i32, ptr %1276, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef nonnull %.str.5.sink1248, i32 noundef %2153, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2155, ptr noundef %2157, ptr noundef %2159, i32 noundef %2160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2162:                                             ; preds = %2134
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = add nsw i32 %2163, 1
  store i32 %2164, ptr @test_count, align 4, !tbaa !5
  %2165 = load i32, ptr %1222, align 4, !tbaa !5
  %2166 = icmp eq i32 %2165, 335544322
  br i1 %2166, label %2189, label %2167

2167:                                             ; preds = %2162
  %2168 = load i32, ptr %1276, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @s2n_print_stacktrace(ptr noundef %2169) #12
  %2171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2172 = trunc nuw i8 %2171 to i1
  br i1 %2172, label %2173, label %2177

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

2177:                                             ; preds = %2173, %2167
  br label %2178

2178:                                             ; preds = %2173, %2177
  %.str.5.sink1257 = phi ptr [ @.str.5, %2177 ], [ @.str.2, %2173 ]
  store i32 %2168, ptr %1276, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = load i32, ptr %1222, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef nonnull @.str.4) #12
  %2183 = load i32, ptr %1222, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef nonnull @.str.4) #12
  %2185 = load i32, ptr %1276, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #12
  %2187 = load i32, ptr %1276, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2179, ptr noundef nonnull %.str.5.sink1257, i32 noundef %2180, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2182, ptr noundef %2184, ptr noundef %2186, i32 noundef %2187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2189:                                             ; preds = %2162
  %2190 = add nsw i32 %2163, 2
  store i32 %2190, ptr @test_count, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %2192 = icmp eq ptr %2191, null
  br i1 %2192, label %2193, label %2215

2193:                                             ; preds = %2189
  %2194 = load i32, ptr %1276, align 4, !tbaa !5
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = call i32 @s2n_print_stacktrace(ptr noundef %2195) #12
  %2197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2198 = trunc nuw i8 %2197 to i1
  br i1 %2198, label %2199, label %2203

2199:                                             ; preds = %2193
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @fileno(ptr noundef %2200) #12
  %2202 = call i32 @isatty(i32 noundef %2201) #12
  %.not456 = icmp eq i32 %2202, 0
  br i1 %.not456, label %2203, label %2204

2203:                                             ; preds = %2199, %2193
  br label %2204

2204:                                             ; preds = %2199, %2203
  %.str.5.sink1266 = phi ptr [ @.str.5, %2203 ], [ @.str.2, %2199 ]
  store i32 %2194, ptr %1276, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = load i32, ptr @test_count, align 4, !tbaa !5
  %2207 = load i32, ptr %1222, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror(i32 noundef %2207, ptr noundef nonnull @.str.4) #12
  %2209 = load i32, ptr %1222, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror_debug(i32 noundef %2209, ptr noundef nonnull @.str.4) #12
  %2211 = load i32, ptr %1276, align 4, !tbaa !5
  %2212 = call ptr @strerror(i32 noundef %2211) #12
  %2213 = load i32, ptr %1276, align 4, !tbaa !5
  %2214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2205, ptr noundef nonnull %.str.5.sink1266, i32 noundef %2206, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2208, ptr noundef %2210, ptr noundef %2212, i32 noundef %2213) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2215:                                             ; preds = %2189
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %2216 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, i8 0, i64 40, i1 false)
  %2217 = load i32, ptr @test_count, align 4, !tbaa !5
  %2218 = add nsw i32 %2217, 1
  store i32 %2218, ptr @test_count, align 4, !tbaa !5
  %2219 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %19, ptr noundef nonnull %5, ptr noundef nonnull %6, i8 noundef zeroext 19)
  %2220 = call zeroext i1 @s2n_result_is_ok(i32 %2219)
  br i1 %2220, label %2243, label %2221

2221:                                             ; preds = %2215
  %2222 = load i32, ptr %1276, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = call i32 @s2n_print_stacktrace(ptr noundef %2223) #12
  %2225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2226 = trunc nuw i8 %2225 to i1
  br i1 %2226, label %2227, label %2231

2227:                                             ; preds = %2221
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = call i32 @fileno(ptr noundef %2228) #12
  %2230 = call i32 @isatty(i32 noundef %2229) #12
  %.not385 = icmp eq i32 %2230, 0
  br i1 %.not385, label %2231, label %2232

2231:                                             ; preds = %2227, %2221
  br label %2232

2232:                                             ; preds = %2227, %2231
  %.str.5.sink1275 = phi ptr [ @.str.5, %2231 ], [ @.str.2, %2227 ]
  store i32 %2222, ptr %1276, align 4, !tbaa !5
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = load i32, ptr %1222, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef nonnull @.str.4) #12
  %2237 = load i32, ptr %1222, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror_debug(i32 noundef %2237, ptr noundef nonnull @.str.4) #12
  %2239 = load i32, ptr %1276, align 4, !tbaa !5
  %2240 = call ptr @strerror(i32 noundef %2239) #12
  %2241 = load i32, ptr %1276, align 4, !tbaa !5
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2233, ptr noundef nonnull %.str.5.sink1275, i32 noundef %2234, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2236, ptr noundef %2238, ptr noundef %2240, i32 noundef %2241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2243:                                             ; preds = %2215
  %2244 = load i32, ptr @test_count, align 4, !tbaa !5
  %2245 = add nsw i32 %2244, 1
  store i32 %2245, ptr @test_count, align 4, !tbaa !5
  %2246 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %19) #12
  %2247 = icmp eq i32 %2246, -1
  br i1 %2247, label %2248, label %2270

2248:                                             ; preds = %2243
  %2249 = load i32, ptr %1276, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @s2n_print_stacktrace(ptr noundef %2250) #12
  %2252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2253 = trunc nuw i8 %2252 to i1
  br i1 %2253, label %2254, label %2258

2254:                                             ; preds = %2248
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #12
  %2257 = call i32 @isatty(i32 noundef %2256) #12
  %.not455 = icmp eq i32 %2257, 0
  br i1 %.not455, label %2258, label %2259

2258:                                             ; preds = %2254, %2248
  br label %2259

2259:                                             ; preds = %2254, %2258
  %.str.5.sink1284 = phi ptr [ @.str.5, %2258 ], [ @.str.2, %2254 ]
  store i32 %2249, ptr %1276, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = load i32, ptr %1222, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror(i32 noundef %2262, ptr noundef nonnull @.str.4) #12
  %2264 = load i32, ptr %1222, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef nonnull @.str.4) #12
  %2266 = load i32, ptr %1276, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #12
  %2268 = load i32, ptr %1276, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2260, ptr noundef nonnull %.str.5.sink1284, i32 noundef %2261, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %2263, ptr noundef %2265, ptr noundef %2267, i32 noundef %2268) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2270:                                             ; preds = %2243
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = add nsw i32 %2271, 1
  store i32 %2272, ptr @test_count, align 4, !tbaa !5
  %2273 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %19, i8 noundef zeroext 39) #12
  %2274 = icmp eq i32 %2273, -1
  br i1 %2274, label %2275, label %2297

2275:                                             ; preds = %2270
  %2276 = load i32, ptr %1276, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = call i32 @s2n_print_stacktrace(ptr noundef %2277) #12
  %2279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2280 = trunc nuw i8 %2279 to i1
  br i1 %2280, label %2281, label %2285

2281:                                             ; preds = %2275
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = call i32 @fileno(ptr noundef %2282) #12
  %2284 = call i32 @isatty(i32 noundef %2283) #12
  %.not454 = icmp eq i32 %2284, 0
  br i1 %.not454, label %2285, label %2286

2285:                                             ; preds = %2281, %2275
  br label %2286

2286:                                             ; preds = %2281, %2285
  %.str.5.sink1293 = phi ptr [ @.str.5, %2285 ], [ @.str.2, %2281 ]
  store i32 %2276, ptr %1276, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = load i32, ptr @test_count, align 4, !tbaa !5
  %2289 = load i32, ptr %1222, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror(i32 noundef %2289, ptr noundef nonnull @.str.4) #12
  %2291 = load i32, ptr %1222, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef nonnull @.str.4) #12
  %2293 = load i32, ptr %1276, align 4, !tbaa !5
  %2294 = call ptr @strerror(i32 noundef %2293) #12
  %2295 = load i32, ptr %1276, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2287, ptr noundef nonnull %.str.5.sink1293, i32 noundef %2288, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %2290, ptr noundef %2292, ptr noundef %2294, i32 noundef %2295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2297:                                             ; preds = %2270
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = add nsw i32 %2298, 1
  store i32 %2299, ptr @test_count, align 4, !tbaa !5
  %2300 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %19, i32 noundef 38) #12
  %2301 = icmp eq i32 %2300, -1
  br i1 %2301, label %2302, label %2324

2302:                                             ; preds = %2297
  %2303 = load i32, ptr %1276, align 4, !tbaa !5
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = call i32 @s2n_print_stacktrace(ptr noundef %2304) #12
  %2306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2307 = trunc nuw i8 %2306 to i1
  br i1 %2307, label %2308, label %2312

2308:                                             ; preds = %2302
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = call i32 @fileno(ptr noundef %2309) #12
  %2311 = call i32 @isatty(i32 noundef %2310) #12
  %.not453 = icmp eq i32 %2311, 0
  br i1 %.not453, label %2312, label %2313

2312:                                             ; preds = %2308, %2302
  br label %2313

2313:                                             ; preds = %2308, %2312
  %.str.5.sink1302 = phi ptr [ @.str.5, %2312 ], [ @.str.2, %2308 ]
  store i32 %2303, ptr %1276, align 4, !tbaa !5
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = load i32, ptr %1222, align 4, !tbaa !5
  %2317 = call ptr @s2n_strerror(i32 noundef %2316, ptr noundef nonnull @.str.4) #12
  %2318 = load i32, ptr %1222, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror_debug(i32 noundef %2318, ptr noundef nonnull @.str.4) #12
  %2320 = load i32, ptr %1276, align 4, !tbaa !5
  %2321 = call ptr @strerror(i32 noundef %2320) #12
  %2322 = load i32, ptr %1276, align 4, !tbaa !5
  %2323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2314, ptr noundef nonnull %.str.5.sink1302, i32 noundef %2315, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %2317, ptr noundef %2319, ptr noundef %2321, i32 noundef %2322) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2324:                                             ; preds = %2297
  %2325 = load i32, ptr @test_count, align 4, !tbaa !5
  %2326 = add nsw i32 %2325, 1
  store i32 %2326, ptr @test_count, align 4, !tbaa !5
  %2327 = load ptr, ptr %15, align 8, !tbaa !9
  %2328 = call i32 %626(ptr noundef %2327, ptr noundef nonnull %19) #12
  %2329 = icmp eq i32 %2328, -1
  br i1 %2329, label %2352, label %2330

2330:                                             ; preds = %2324
  %2331 = load i32, ptr %1276, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @s2n_print_stacktrace(ptr noundef %2332) #12
  %2334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc nuw i8 %2334 to i1
  br i1 %2335, label %2336, label %2340

2336:                                             ; preds = %2330
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #12
  %2339 = call i32 @isatty(i32 noundef %2338) #12
  %.not386 = icmp eq i32 %2339, 0
  br i1 %.not386, label %2340, label %2341

2340:                                             ; preds = %2336, %2330
  br label %2341

2341:                                             ; preds = %2336, %2340
  %.str.5.sink1311 = phi ptr [ @.str.5, %2340 ], [ @.str.2, %2336 ]
  store i32 %2331, ptr %1276, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = load i32, ptr @test_count, align 4, !tbaa !5
  %2344 = load i32, ptr %1222, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef nonnull @.str.4) #12
  %2346 = load i32, ptr %1222, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror_debug(i32 noundef %2346, ptr noundef nonnull @.str.4) #12
  %2348 = load i32, ptr %1276, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #12
  %2350 = load i32, ptr %1276, align 4, !tbaa !5
  %2351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2342, ptr noundef nonnull %.str.5.sink1311, i32 noundef %2343, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2345, ptr noundef %2347, ptr noundef %2349, i32 noundef %2350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2352:                                             ; preds = %2324
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = add nsw i32 %2353, 1
  store i32 %2354, ptr @test_count, align 4, !tbaa !5
  %2355 = load i32, ptr %1222, align 4, !tbaa !5
  %2356 = icmp eq i32 %2355, 335544322
  br i1 %2356, label %2379, label %2357

2357:                                             ; preds = %2352
  %2358 = load i32, ptr %1276, align 4, !tbaa !5
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = call i32 @s2n_print_stacktrace(ptr noundef %2359) #12
  %2361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2362 = trunc nuw i8 %2361 to i1
  br i1 %2362, label %2363, label %2367

2363:                                             ; preds = %2357
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = call i32 @fileno(ptr noundef %2364) #12
  %2366 = call i32 @isatty(i32 noundef %2365) #12
  %.not387 = icmp eq i32 %2366, 0
  br i1 %.not387, label %2367, label %2368

2367:                                             ; preds = %2363, %2357
  br label %2368

2368:                                             ; preds = %2363, %2367
  %.str.5.sink1320 = phi ptr [ @.str.5, %2367 ], [ @.str.2, %2363 ]
  store i32 %2358, ptr %1276, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %2371 = load i32, ptr %1222, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror(i32 noundef %2371, ptr noundef nonnull @.str.4) #12
  %2373 = load i32, ptr %1222, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror_debug(i32 noundef %2373, ptr noundef nonnull @.str.4) #12
  %2375 = load i32, ptr %1276, align 4, !tbaa !5
  %2376 = call ptr @strerror(i32 noundef %2375) #12
  %2377 = load i32, ptr %1276, align 4, !tbaa !5
  %2378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2369, ptr noundef nonnull %.str.5.sink1320, i32 noundef %2370, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2372, ptr noundef %2374, ptr noundef %2376, i32 noundef %2377) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2379:                                             ; preds = %2352
  %2380 = add nsw i32 %2353, 2
  store i32 %2380, ptr @test_count, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %2382 = icmp eq ptr %2381, null
  br i1 %2382, label %2383, label %2405

2383:                                             ; preds = %2379
  %2384 = load i32, ptr %1276, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = call i32 @s2n_print_stacktrace(ptr noundef %2385) #12
  %2387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2388 = trunc nuw i8 %2387 to i1
  br i1 %2388, label %2389, label %2393

2389:                                             ; preds = %2383
  %2390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2391 = call i32 @fileno(ptr noundef %2390) #12
  %2392 = call i32 @isatty(i32 noundef %2391) #12
  %.not452 = icmp eq i32 %2392, 0
  br i1 %.not452, label %2393, label %2394

2393:                                             ; preds = %2389, %2383
  br label %2394

2394:                                             ; preds = %2389, %2393
  %.str.5.sink1329 = phi ptr [ @.str.5, %2393 ], [ @.str.2, %2389 ]
  store i32 %2384, ptr %1276, align 4, !tbaa !5
  %2395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = load i32, ptr %1222, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror(i32 noundef %2397, ptr noundef nonnull @.str.4) #12
  %2399 = load i32, ptr %1222, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror_debug(i32 noundef %2399, ptr noundef nonnull @.str.4) #12
  %2401 = load i32, ptr %1276, align 4, !tbaa !5
  %2402 = call ptr @strerror(i32 noundef %2401) #12
  %2403 = load i32, ptr %1276, align 4, !tbaa !5
  %2404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2395, ptr noundef nonnull %.str.5.sink1329, i32 noundef %2396, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 321, ptr noundef %2398, ptr noundef %2400, ptr noundef %2402, i32 noundef %2403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2405:                                             ; preds = %2379
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %2406 = call i32 @s2n_stuffer_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr @test_count, align 4, !tbaa !5
  %2409 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %20, ptr noundef nonnull %6, ptr noundef nonnull %6, i8 noundef zeroext 19)
  %2410 = call zeroext i1 @s2n_result_is_ok(i32 %2409)
  br i1 %2410, label %2433, label %2411

2411:                                             ; preds = %2405
  %2412 = load i32, ptr %1276, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = call i32 @s2n_print_stacktrace(ptr noundef %2413) #12
  %2415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2416 = trunc nuw i8 %2415 to i1
  br i1 %2416, label %2417, label %2421

2417:                                             ; preds = %2411
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @fileno(ptr noundef %2418) #12
  %2420 = call i32 @isatty(i32 noundef %2419) #12
  %.not388 = icmp eq i32 %2420, 0
  br i1 %.not388, label %2421, label %2422

2421:                                             ; preds = %2417, %2411
  br label %2422

2422:                                             ; preds = %2417, %2421
  %.str.5.sink1338 = phi ptr [ @.str.5, %2421 ], [ @.str.2, %2417 ]
  store i32 %2412, ptr %1276, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = load i32, ptr @test_count, align 4, !tbaa !5
  %2425 = load i32, ptr %1222, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef nonnull @.str.4) #12
  %2427 = load i32, ptr %1222, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror_debug(i32 noundef %2427, ptr noundef nonnull @.str.4) #12
  %2429 = load i32, ptr %1276, align 4, !tbaa !5
  %2430 = call ptr @strerror(i32 noundef %2429) #12
  %2431 = load i32, ptr %1276, align 4, !tbaa !5
  %2432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2423, ptr noundef nonnull %.str.5.sink1338, i32 noundef %2424, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %2426, ptr noundef %2428, ptr noundef %2430, i32 noundef %2431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2433:                                             ; preds = %2405
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = add nsw i32 %2434, 1
  store i32 %2435, ptr @test_count, align 4, !tbaa !5
  %2436 = load ptr, ptr %15, align 8, !tbaa !9
  %2437 = call i32 %626(ptr noundef %2436, ptr noundef nonnull %20) #12
  %2438 = icmp eq i32 %2437, -1
  br i1 %2438, label %2461, label %2439

2439:                                             ; preds = %2433
  %2440 = load i32, ptr %1276, align 4, !tbaa !5
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = call i32 @s2n_print_stacktrace(ptr noundef %2441) #12
  %2443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2444 = trunc nuw i8 %2443 to i1
  br i1 %2444, label %2445, label %2449

2445:                                             ; preds = %2439
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = call i32 @fileno(ptr noundef %2446) #12
  %2448 = call i32 @isatty(i32 noundef %2447) #12
  %.not389 = icmp eq i32 %2448, 0
  br i1 %.not389, label %2449, label %2450

2449:                                             ; preds = %2445, %2439
  br label %2450

2450:                                             ; preds = %2445, %2449
  %.str.5.sink1347 = phi ptr [ @.str.5, %2449 ], [ @.str.2, %2445 ]
  store i32 %2440, ptr %1276, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = load i32, ptr %1222, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror(i32 noundef %2453, ptr noundef nonnull @.str.4) #12
  %2455 = load i32, ptr %1222, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror_debug(i32 noundef %2455, ptr noundef nonnull @.str.4) #12
  %2457 = load i32, ptr %1276, align 4, !tbaa !5
  %2458 = call ptr @strerror(i32 noundef %2457) #12
  %2459 = load i32, ptr %1276, align 4, !tbaa !5
  %2460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2451, ptr noundef nonnull %.str.5.sink1347, i32 noundef %2452, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2454, ptr noundef %2456, ptr noundef %2458, i32 noundef %2459) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2461:                                             ; preds = %2433
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = add nsw i32 %2462, 1
  store i32 %2463, ptr @test_count, align 4, !tbaa !5
  %2464 = load i32, ptr %1222, align 4, !tbaa !5
  %2465 = icmp eq i32 %2464, 335544322
  br i1 %2465, label %2488, label %2466

2466:                                             ; preds = %2461
  %2467 = load i32, ptr %1276, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = call i32 @s2n_print_stacktrace(ptr noundef %2468) #12
  %2470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2471 = trunc nuw i8 %2470 to i1
  br i1 %2471, label %2472, label %2476

2472:                                             ; preds = %2466
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = call i32 @fileno(ptr noundef %2473) #12
  %2475 = call i32 @isatty(i32 noundef %2474) #12
  %.not390 = icmp eq i32 %2475, 0
  br i1 %.not390, label %2476, label %2477

2476:                                             ; preds = %2472, %2466
  br label %2477

2477:                                             ; preds = %2472, %2476
  %.str.5.sink1356 = phi ptr [ @.str.5, %2476 ], [ @.str.2, %2472 ]
  store i32 %2467, ptr %1276, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = load i32, ptr %1222, align 4, !tbaa !5
  %2481 = call ptr @s2n_strerror(i32 noundef %2480, ptr noundef nonnull @.str.4) #12
  %2482 = load i32, ptr %1222, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror_debug(i32 noundef %2482, ptr noundef nonnull @.str.4) #12
  %2484 = load i32, ptr %1276, align 4, !tbaa !5
  %2485 = call ptr @strerror(i32 noundef %2484) #12
  %2486 = load i32, ptr %1276, align 4, !tbaa !5
  %2487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef nonnull %.str.5.sink1356, i32 noundef %2479, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2481, ptr noundef %2483, ptr noundef %2485, i32 noundef %2486) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2488:                                             ; preds = %2461
  %2489 = add nsw i32 %2462, 2
  store i32 %2489, ptr @test_count, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %2491 = icmp eq ptr %2490, null
  br i1 %2491, label %2492, label %2514

2492:                                             ; preds = %2488
  %2493 = load i32, ptr %1276, align 4, !tbaa !5
  %2494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2495 = call i32 @s2n_print_stacktrace(ptr noundef %2494) #12
  %2496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2497 = trunc nuw i8 %2496 to i1
  br i1 %2497, label %2498, label %2502

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

2502:                                             ; preds = %2498, %2492
  br label %2503

2503:                                             ; preds = %2498, %2502
  %.str.5.sink1365 = phi ptr [ @.str.5, %2502 ], [ @.str.2, %2498 ]
  store i32 %2493, ptr %1276, align 4, !tbaa !5
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = load i32, ptr %1222, align 4, !tbaa !5
  %2507 = call ptr @s2n_strerror(i32 noundef %2506, ptr noundef nonnull @.str.4) #12
  %2508 = load i32, ptr %1222, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror_debug(i32 noundef %2508, ptr noundef nonnull @.str.4) #12
  %2510 = load i32, ptr %1276, align 4, !tbaa !5
  %2511 = call ptr @strerror(i32 noundef %2510) #12
  %2512 = load i32, ptr %1276, align 4, !tbaa !5
  %2513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2504, ptr noundef nonnull %.str.5.sink1365, i32 noundef %2505, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 331, ptr noundef %2507, ptr noundef %2509, ptr noundef %2511, i32 noundef %2512) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2514:                                             ; preds = %2488
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %2515 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %21, i8 0, i64 40, i1 false)
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = add nsw i32 %2516, 1
  store i32 %2517, ptr @test_count, align 4, !tbaa !5
  %2518 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %21, ptr noundef nonnull %5, ptr noundef nonnull %5, i8 noundef zeroext 19)
  %2519 = call zeroext i1 @s2n_result_is_ok(i32 %2518)
  br i1 %2519, label %2542, label %2520

2520:                                             ; preds = %2514
  %2521 = load i32, ptr %1276, align 4, !tbaa !5
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = call i32 @s2n_print_stacktrace(ptr noundef %2522) #12
  %2524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2525 = trunc nuw i8 %2524 to i1
  br i1 %2525, label %2526, label %2530

2526:                                             ; preds = %2520
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @fileno(ptr noundef %2527) #12
  %2529 = call i32 @isatty(i32 noundef %2528) #12
  %.not391 = icmp eq i32 %2529, 0
  br i1 %.not391, label %2530, label %2531

2530:                                             ; preds = %2526, %2520
  br label %2531

2531:                                             ; preds = %2526, %2530
  %.str.5.sink1374 = phi ptr [ @.str.5, %2530 ], [ @.str.2, %2526 ]
  store i32 %2521, ptr %1276, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = load i32, ptr %1222, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror(i32 noundef %2534, ptr noundef nonnull @.str.4) #12
  %2536 = load i32, ptr %1222, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef nonnull @.str.4) #12
  %2538 = load i32, ptr %1276, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #12
  %2540 = load i32, ptr %1276, align 4, !tbaa !5
  %2541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2532, ptr noundef nonnull %.str.5.sink1374, i32 noundef %2533, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %2535, ptr noundef %2537, ptr noundef %2539, i32 noundef %2540) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2542:                                             ; preds = %2514
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = add nsw i32 %2543, 1
  store i32 %2544, ptr @test_count, align 4, !tbaa !5
  %2545 = load ptr, ptr %15, align 8, !tbaa !9
  %2546 = call i32 %626(ptr noundef %2545, ptr noundef nonnull %21) #12
  %2547 = icmp eq i32 %2546, -1
  br i1 %2547, label %2570, label %2548

2548:                                             ; preds = %2542
  %2549 = load i32, ptr %1276, align 4, !tbaa !5
  %2550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2551 = call i32 @s2n_print_stacktrace(ptr noundef %2550) #12
  %2552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2553 = trunc nuw i8 %2552 to i1
  br i1 %2553, label %2554, label %2558

2554:                                             ; preds = %2548
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @fileno(ptr noundef %2555) #12
  %2557 = call i32 @isatty(i32 noundef %2556) #12
  %.not392 = icmp eq i32 %2557, 0
  br i1 %.not392, label %2558, label %2559

2558:                                             ; preds = %2554, %2548
  br label %2559

2559:                                             ; preds = %2554, %2558
  %.str.5.sink1383 = phi ptr [ @.str.5, %2558 ], [ @.str.2, %2554 ]
  store i32 %2549, ptr %1276, align 4, !tbaa !5
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = load i32, ptr @test_count, align 4, !tbaa !5
  %2562 = load i32, ptr %1222, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror(i32 noundef %2562, ptr noundef nonnull @.str.4) #12
  %2564 = load i32, ptr %1222, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef nonnull @.str.4) #12
  %2566 = load i32, ptr %1276, align 4, !tbaa !5
  %2567 = call ptr @strerror(i32 noundef %2566) #12
  %2568 = load i32, ptr %1276, align 4, !tbaa !5
  %2569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2560, ptr noundef nonnull %.str.5.sink1383, i32 noundef %2561, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2563, ptr noundef %2565, ptr noundef %2567, i32 noundef %2568) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2570:                                             ; preds = %2542
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = add nsw i32 %2571, 1
  store i32 %2572, ptr @test_count, align 4, !tbaa !5
  %2573 = load i32, ptr %1222, align 4, !tbaa !5
  %2574 = icmp eq i32 %2573, 335544322
  br i1 %2574, label %2597, label %2575

2575:                                             ; preds = %2570
  %2576 = load i32, ptr %1276, align 4, !tbaa !5
  %2577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2578 = call i32 @s2n_print_stacktrace(ptr noundef %2577) #12
  %2579 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2580 = trunc nuw i8 %2579 to i1
  br i1 %2580, label %2581, label %2585

2581:                                             ; preds = %2575
  %2582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2583 = call i32 @fileno(ptr noundef %2582) #12
  %2584 = call i32 @isatty(i32 noundef %2583) #12
  %.not393 = icmp eq i32 %2584, 0
  br i1 %.not393, label %2585, label %2586

2585:                                             ; preds = %2581, %2575
  br label %2586

2586:                                             ; preds = %2581, %2585
  %.str.5.sink1392 = phi ptr [ @.str.5, %2585 ], [ @.str.2, %2581 ]
  store i32 %2576, ptr %1276, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = load i32, ptr %1222, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror(i32 noundef %2589, ptr noundef nonnull @.str.4) #12
  %2591 = load i32, ptr %1222, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror_debug(i32 noundef %2591, ptr noundef nonnull @.str.4) #12
  %2593 = load i32, ptr %1276, align 4, !tbaa !5
  %2594 = call ptr @strerror(i32 noundef %2593) #12
  %2595 = load i32, ptr %1276, align 4, !tbaa !5
  %2596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef nonnull %.str.5.sink1392, i32 noundef %2588, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2590, ptr noundef %2592, ptr noundef %2594, i32 noundef %2595) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2597:                                             ; preds = %2570
  %2598 = add nsw i32 %2571, 2
  store i32 %2598, ptr @test_count, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %2600 = icmp eq ptr %2599, null
  br i1 %2600, label %2601, label %2623

2601:                                             ; preds = %2597
  %2602 = load i32, ptr %1276, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #12
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2601
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #12
  %2610 = call i32 @isatty(i32 noundef %2609) #12
  %.not450 = icmp eq i32 %2610, 0
  br i1 %.not450, label %2611, label %2612

2611:                                             ; preds = %2607, %2601
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.5.sink1401 = phi ptr [ @.str.5, %2611 ], [ @.str.2, %2607 ]
  store i32 %2602, ptr %1276, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = load i32, ptr %1222, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef nonnull @.str.4) #12
  %2617 = load i32, ptr %1222, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror_debug(i32 noundef %2617, ptr noundef nonnull @.str.4) #12
  %2619 = load i32, ptr %1276, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #12
  %2621 = load i32, ptr %1276, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.5.sink1401, i32 noundef %2614, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 341, ptr noundef %2616, ptr noundef %2618, ptr noundef %2620, i32 noundef %2621) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2623:                                             ; preds = %2597
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %2624 = call i32 @s2n_stuffer_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, i8 0, i64 40, i1 false)
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = add nsw i32 %2625, 1
  store i32 %2626, ptr @test_count, align 4, !tbaa !5
  %2627 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %22, i32 noundef 0) #12
  %2628 = icmp eq i32 %2627, -1
  br i1 %2628, label %2629, label %2651

2629:                                             ; preds = %2623
  %2630 = load i32, ptr %1276, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = call i32 @s2n_print_stacktrace(ptr noundef %2631) #12
  %2633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2634 = trunc nuw i8 %2633 to i1
  br i1 %2634, label %2635, label %2639

2635:                                             ; preds = %2629
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @fileno(ptr noundef %2636) #12
  %2638 = call i32 @isatty(i32 noundef %2637) #12
  %.not449 = icmp eq i32 %2638, 0
  br i1 %.not449, label %2639, label %2640

2639:                                             ; preds = %2635, %2629
  br label %2640

2640:                                             ; preds = %2635, %2639
  %.str.5.sink1410 = phi ptr [ @.str.5, %2639 ], [ @.str.2, %2635 ]
  store i32 %2630, ptr %1276, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = load i32, ptr %1222, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef nonnull @.str.4) #12
  %2645 = load i32, ptr %1222, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror_debug(i32 noundef %2645, ptr noundef nonnull @.str.4) #12
  %2647 = load i32, ptr %1276, align 4, !tbaa !5
  %2648 = call ptr @strerror(i32 noundef %2647) #12
  %2649 = load i32, ptr %1276, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef nonnull %.str.5.sink1410, i32 noundef %2642, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 347, ptr noundef %2644, ptr noundef %2646, ptr noundef %2648, i32 noundef %2649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2651:                                             ; preds = %2623
  %2652 = load ptr, ptr %15, align 8, !tbaa !9
  %2653 = getelementptr inbounds i8, ptr %2652, i64 2200
  %2654 = load i8, ptr %2653, align 8
  %2655 = and i8 %2654, -9
  store i8 %2655, ptr %2653, align 8
  %2656 = load i32, ptr @test_count, align 4, !tbaa !5
  %2657 = add nsw i32 %2656, 1
  store i32 %2657, ptr @test_count, align 4, !tbaa !5
  %2658 = call i32 %565(ptr noundef %2652, ptr noundef nonnull %22) #12
  %2659 = icmp eq i32 %2658, -1
  br i1 %2659, label %2660, label %2682

2660:                                             ; preds = %2651
  %2661 = load i32, ptr %1276, align 4, !tbaa !5
  %2662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2663 = call i32 @s2n_print_stacktrace(ptr noundef %2662) #12
  %2664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2665 = trunc nuw i8 %2664 to i1
  br i1 %2665, label %2666, label %2670

2666:                                             ; preds = %2660
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = call i32 @fileno(ptr noundef %2667) #12
  %2669 = call i32 @isatty(i32 noundef %2668) #12
  %.not448 = icmp eq i32 %2669, 0
  br i1 %.not448, label %2670, label %2671

2670:                                             ; preds = %2666, %2660
  br label %2671

2671:                                             ; preds = %2666, %2670
  %.str.5.sink1419 = phi ptr [ @.str.5, %2670 ], [ @.str.2, %2666 ]
  store i32 %2661, ptr %1276, align 4, !tbaa !5
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = load i32, ptr %1222, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef nonnull @.str.4) #12
  %2676 = load i32, ptr %1222, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror_debug(i32 noundef %2676, ptr noundef nonnull @.str.4) #12
  %2678 = load i32, ptr %1276, align 4, !tbaa !5
  %2679 = call ptr @strerror(i32 noundef %2678) #12
  %2680 = load i32, ptr %1276, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2672, ptr noundef nonnull %.str.5.sink1419, i32 noundef %2673, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %2675, ptr noundef %2677, ptr noundef %2679, i32 noundef %2680) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2682:                                             ; preds = %2651
  %2683 = load ptr, ptr %15, align 8, !tbaa !9
  %2684 = getelementptr inbounds i8, ptr %2683, i64 2200
  %2685 = load i8, ptr %2684, align 8
  %2686 = or i8 %2685, 8
  store i8 %2686, ptr %2684, align 8
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = add nsw i32 %2687, 1
  store i32 %2688, ptr @test_count, align 4, !tbaa !5
  %2689 = call i32 %626(ptr noundef %2683, ptr noundef nonnull %22) #12
  %2690 = icmp eq i32 %2689, -1
  br i1 %2690, label %2713, label %2691

2691:                                             ; preds = %2682
  %2692 = load i32, ptr %1276, align 4, !tbaa !5
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = call i32 @s2n_print_stacktrace(ptr noundef %2693) #12
  %2695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2696 = trunc nuw i8 %2695 to i1
  br i1 %2696, label %2697, label %2701

2697:                                             ; preds = %2691
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = call i32 @fileno(ptr noundef %2698) #12
  %2700 = call i32 @isatty(i32 noundef %2699) #12
  %.not394 = icmp eq i32 %2700, 0
  br i1 %.not394, label %2701, label %2702

2701:                                             ; preds = %2697, %2691
  br label %2702

2702:                                             ; preds = %2697, %2701
  %.str.5.sink1428 = phi ptr [ @.str.5, %2701 ], [ @.str.2, %2697 ]
  store i32 %2692, ptr %1276, align 4, !tbaa !5
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = load i32, ptr %1222, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef nonnull @.str.4) #12
  %2707 = load i32, ptr %1222, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror_debug(i32 noundef %2707, ptr noundef nonnull @.str.4) #12
  %2709 = load i32, ptr %1276, align 4, !tbaa !5
  %2710 = call ptr @strerror(i32 noundef %2709) #12
  %2711 = load i32, ptr %1276, align 4, !tbaa !5
  %2712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2703, ptr noundef nonnull %.str.5.sink1428, i32 noundef %2704, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %2706, ptr noundef %2708, ptr noundef %2710, i32 noundef %2711) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2713:                                             ; preds = %2682
  %2714 = load i32, ptr @test_count, align 4, !tbaa !5
  %2715 = add nsw i32 %2714, 1
  store i32 %2715, ptr @test_count, align 4, !tbaa !5
  %2716 = load i32, ptr %1222, align 4, !tbaa !5
  %2717 = icmp eq i32 %2716, 335544322
  br i1 %2717, label %2740, label %2718

2718:                                             ; preds = %2713
  %2719 = load i32, ptr %1276, align 4, !tbaa !5
  %2720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2721 = call i32 @s2n_print_stacktrace(ptr noundef %2720) #12
  %2722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2723 = trunc nuw i8 %2722 to i1
  br i1 %2723, label %2724, label %2728

2724:                                             ; preds = %2718
  %2725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2726 = call i32 @fileno(ptr noundef %2725) #12
  %2727 = call i32 @isatty(i32 noundef %2726) #12
  %.not395 = icmp eq i32 %2727, 0
  br i1 %.not395, label %2728, label %2729

2728:                                             ; preds = %2724, %2718
  br label %2729

2729:                                             ; preds = %2724, %2728
  %.str.5.sink1437 = phi ptr [ @.str.5, %2728 ], [ @.str.2, %2724 ]
  store i32 %2719, ptr %1276, align 4, !tbaa !5
  %2730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2731 = load i32, ptr @test_count, align 4, !tbaa !5
  %2732 = load i32, ptr %1222, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef nonnull @.str.4) #12
  %2734 = load i32, ptr %1222, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror_debug(i32 noundef %2734, ptr noundef nonnull @.str.4) #12
  %2736 = load i32, ptr %1276, align 4, !tbaa !5
  %2737 = call ptr @strerror(i32 noundef %2736) #12
  %2738 = load i32, ptr %1276, align 4, !tbaa !5
  %2739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2730, ptr noundef nonnull %.str.5.sink1437, i32 noundef %2731, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %2733, ptr noundef %2735, ptr noundef %2737, i32 noundef %2738) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2740:                                             ; preds = %2713
  %2741 = add nsw i32 %2714, 2
  store i32 %2741, ptr @test_count, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %2743 = icmp eq ptr %2742, null
  br i1 %2743, label %2744, label %2766

2744:                                             ; preds = %2740
  %2745 = load i32, ptr %1276, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = call i32 @s2n_print_stacktrace(ptr noundef %2746) #12
  %2748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2749 = trunc nuw i8 %2748 to i1
  br i1 %2749, label %2750, label %2754

2750:                                             ; preds = %2744
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @fileno(ptr noundef %2751) #12
  %2753 = call i32 @isatty(i32 noundef %2752) #12
  %.not447 = icmp eq i32 %2753, 0
  br i1 %.not447, label %2754, label %2755

2754:                                             ; preds = %2750, %2744
  br label %2755

2755:                                             ; preds = %2750, %2754
  %.str.5.sink1446 = phi ptr [ @.str.5, %2754 ], [ @.str.2, %2750 ]
  store i32 %2745, ptr %1276, align 4, !tbaa !5
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = load i32, ptr %1222, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef nonnull @.str.4) #12
  %2760 = load i32, ptr %1222, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror_debug(i32 noundef %2760, ptr noundef nonnull @.str.4) #12
  %2762 = load i32, ptr %1276, align 4, !tbaa !5
  %2763 = call ptr @strerror(i32 noundef %2762) #12
  %2764 = load i32, ptr %1276, align 4, !tbaa !5
  %2765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2756, ptr noundef nonnull %.str.5.sink1446, i32 noundef %2757, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %2759, ptr noundef %2761, ptr noundef %2763, i32 noundef %2764) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2766:                                             ; preds = %2740
  store i32 0, ptr %1222, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1276, align 4, !tbaa !5
  %2767 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  %2768 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  %2769 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2769, ptr %23, align 8, !tbaa !9
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = add nsw i32 %2770, 1
  store i32 %2771, ptr @test_count, align 4, !tbaa !5
  %2772 = icmp eq ptr %2769, null
  br i1 %2772, label %2773, label %2795

2773:                                             ; preds = %2766
  %2774 = load i32, ptr %1276, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @s2n_print_stacktrace(ptr noundef %2775) #12
  %2777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2778 = trunc nuw i8 %2777 to i1
  br i1 %2778, label %2779, label %2783

2779:                                             ; preds = %2773
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = call i32 @fileno(ptr noundef %2780) #12
  %2782 = call i32 @isatty(i32 noundef %2781) #12
  %.not446 = icmp eq i32 %2782, 0
  br i1 %.not446, label %2783, label %2784

2783:                                             ; preds = %2779, %2773
  br label %2784

2784:                                             ; preds = %2779, %2783
  %.str.5.sink1455 = phi ptr [ @.str.5, %2783 ], [ @.str.2, %2779 ]
  store i32 %2774, ptr %1276, align 4, !tbaa !5
  %2785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2786 = load i32, ptr @test_count, align 4, !tbaa !5
  %2787 = load i32, ptr %1222, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror(i32 noundef %2787, ptr noundef nonnull @.str.4) #12
  %2789 = load i32, ptr %1222, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef nonnull @.str.4) #12
  %2791 = load i32, ptr %1276, align 4, !tbaa !5
  %2792 = call ptr @strerror(i32 noundef %2791) #12
  %2793 = load i32, ptr %1276, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2785, ptr noundef nonnull %.str.5.sink1455, i32 noundef %2786, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %2788, ptr noundef %2790, ptr noundef %2792, i32 noundef %2793) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2795:                                             ; preds = %2766
  %2796 = getelementptr inbounds i8, ptr %2769, i64 2200
  %2797 = load i8, ptr %2796, align 8
  %2798 = or i8 %2797, 8
  store i8 %2798, ptr %2796, align 8
  %2799 = load i32, ptr %2769, align 8
  %2800 = or i32 %2799, 8
  store i32 %2800, ptr %2769, align 8
  %2801 = load ptr, ptr %23, align 8, !tbaa !9
  %2802 = getelementptr inbounds i8, ptr %2801, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2802, ptr noundef nonnull align 16 dereferenceable(19) %5, i64 19, i1 false)
  %2803 = getelementptr inbounds i8, ptr %2801, i64 2072
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2803, ptr noundef nonnull align 16 dereferenceable(19) %6, i64 19, i1 false)
  %2804 = getelementptr inbounds i8, ptr %2801, i64 2168
  store i8 19, ptr %2804, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #12
  %2805 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2805, ptr %24, align 8, !tbaa !9
  %2806 = load i32, ptr @test_count, align 4, !tbaa !5
  %2807 = add nsw i32 %2806, 1
  store i32 %2807, ptr @test_count, align 4, !tbaa !5
  %2808 = icmp eq ptr %2805, null
  br i1 %2808, label %2809, label %2831

2809:                                             ; preds = %2795
  %2810 = load i32, ptr %1276, align 4, !tbaa !5
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = call i32 @s2n_print_stacktrace(ptr noundef %2811) #12
  %2813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2814 = trunc nuw i8 %2813 to i1
  br i1 %2814, label %2815, label %2819

2815:                                             ; preds = %2809
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = call i32 @fileno(ptr noundef %2816) #12
  %2818 = call i32 @isatty(i32 noundef %2817) #12
  %.not445 = icmp eq i32 %2818, 0
  br i1 %.not445, label %2819, label %2820

2819:                                             ; preds = %2815, %2809
  br label %2820

2820:                                             ; preds = %2815, %2819
  %.str.5.sink1464 = phi ptr [ @.str.5, %2819 ], [ @.str.2, %2815 ]
  store i32 %2810, ptr %1276, align 4, !tbaa !5
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = load i32, ptr %1222, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror(i32 noundef %2823, ptr noundef nonnull @.str.4) #12
  %2825 = load i32, ptr %1222, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror_debug(i32 noundef %2825, ptr noundef nonnull @.str.4) #12
  %2827 = load i32, ptr %1276, align 4, !tbaa !5
  %2828 = call ptr @strerror(i32 noundef %2827) #12
  %2829 = load i32, ptr %1276, align 4, !tbaa !5
  %2830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2821, ptr noundef nonnull %.str.5.sink1464, i32 noundef %2822, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %2824, ptr noundef %2826, ptr noundef %2828, i32 noundef %2829) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2831:                                             ; preds = %2795
  %2832 = getelementptr inbounds i8, ptr %2805, i64 2200
  %2833 = load i8, ptr %2832, align 8
  %2834 = or i8 %2833, 8
  store i8 %2834, ptr %2832, align 8
  %2835 = load i32, ptr %2805, align 8
  %2836 = or i32 %2835, 8
  store i32 %2836, ptr %2805, align 8
  %2837 = load ptr, ptr %24, align 8, !tbaa !9
  %2838 = getelementptr inbounds i8, ptr %2837, i64 2120
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2838, ptr noundef nonnull align 16 dereferenceable(19) %5, i64 19, i1 false)
  %2839 = getelementptr inbounds i8, ptr %2837, i64 2072
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(19) %2839, ptr noundef nonnull align 16 dereferenceable(19) %6, i64 19, i1 false)
  %2840 = getelementptr inbounds i8, ptr %2837, i64 2168
  store i8 19, ptr %2840, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %25, i8 0, i64 40, i1 false)
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = add nsw i32 %2841, 1
  store i32 %2842, ptr @test_count, align 4, !tbaa !5
  %2843 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %25, i32 noundef 0) #12
  %2844 = icmp eq i32 %2843, -1
  br i1 %2844, label %2845, label %2867

2845:                                             ; preds = %2831
  %2846 = load i32, ptr %1276, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = call i32 @s2n_print_stacktrace(ptr noundef %2847) #12
  %2849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2850 = trunc nuw i8 %2849 to i1
  br i1 %2850, label %2851, label %2855

2851:                                             ; preds = %2845
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = call i32 @fileno(ptr noundef %2852) #12
  %2854 = call i32 @isatty(i32 noundef %2853) #12
  %.not444 = icmp eq i32 %2854, 0
  br i1 %.not444, label %2855, label %2856

2855:                                             ; preds = %2851, %2845
  br label %2856

2856:                                             ; preds = %2851, %2855
  %.str.5.sink1473 = phi ptr [ @.str.5, %2855 ], [ @.str.2, %2851 ]
  store i32 %2846, ptr %1276, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = load i32, ptr @test_count, align 4, !tbaa !5
  %2859 = load i32, ptr %1222, align 4, !tbaa !5
  %2860 = call ptr @s2n_strerror(i32 noundef %2859, ptr noundef nonnull @.str.4) #12
  %2861 = load i32, ptr %1222, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror_debug(i32 noundef %2861, ptr noundef nonnull @.str.4) #12
  %2863 = load i32, ptr %1276, align 4, !tbaa !5
  %2864 = call ptr @strerror(i32 noundef %2863) #12
  %2865 = load i32, ptr %1276, align 4, !tbaa !5
  %2866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2857, ptr noundef nonnull %.str.5.sink1473, i32 noundef %2858, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 389, ptr noundef %2860, ptr noundef %2862, ptr noundef %2864, i32 noundef %2865) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2867:                                             ; preds = %2831
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = add nsw i32 %2868, 1
  store i32 %2869, ptr @test_count, align 4, !tbaa !5
  %2870 = load ptr, ptr %23, align 8, !tbaa !9
  %2871 = call zeroext i1 %327(ptr noundef %2870) #12
  br i1 %2871, label %2894, label %2872

2872:                                             ; preds = %2867
  %2873 = load i32, ptr %1276, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @s2n_print_stacktrace(ptr noundef %2874) #12
  %2876 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2877 = trunc nuw i8 %2876 to i1
  br i1 %2877, label %2878, label %2882

2878:                                             ; preds = %2872
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @fileno(ptr noundef %2879) #12
  %2881 = call i32 @isatty(i32 noundef %2880) #12
  %.not396 = icmp eq i32 %2881, 0
  br i1 %.not396, label %2882, label %2883

2882:                                             ; preds = %2878, %2872
  br label %2883

2883:                                             ; preds = %2878, %2882
  %.str.5.sink1482 = phi ptr [ @.str.5, %2882 ], [ @.str.2, %2878 ]
  store i32 %2873, ptr %1276, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = load i32, ptr %1222, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef nonnull @.str.4) #12
  %2888 = load i32, ptr %1222, align 4, !tbaa !5
  %2889 = call ptr @s2n_strerror_debug(i32 noundef %2888, ptr noundef nonnull @.str.4) #12
  %2890 = load i32, ptr %1276, align 4, !tbaa !5
  %2891 = call ptr @strerror(i32 noundef %2890) #12
  %2892 = load i32, ptr %1276, align 4, !tbaa !5
  %2893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef nonnull %.str.5.sink1482, i32 noundef %2885, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 390, ptr noundef %2887, ptr noundef %2889, ptr noundef %2891, i32 noundef %2892) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2894:                                             ; preds = %2867
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = add nsw i32 %2895, 1
  store i32 %2896, ptr @test_count, align 4, !tbaa !5
  %2897 = load ptr, ptr %23, align 8, !tbaa !9
  %2898 = call i32 %565(ptr noundef %2897, ptr noundef nonnull %25) #12
  %2899 = icmp eq i32 %2898, -1
  br i1 %2899, label %2900, label %2922

2900:                                             ; preds = %2894
  %2901 = load i32, ptr %1276, align 4, !tbaa !5
  %2902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2903 = call i32 @s2n_print_stacktrace(ptr noundef %2902) #12
  %2904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2905 = trunc nuw i8 %2904 to i1
  br i1 %2905, label %2906, label %2910

2906:                                             ; preds = %2900
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = call i32 @fileno(ptr noundef %2907) #12
  %2909 = call i32 @isatty(i32 noundef %2908) #12
  %.not443 = icmp eq i32 %2909, 0
  br i1 %.not443, label %2910, label %2911

2910:                                             ; preds = %2906, %2900
  br label %2911

2911:                                             ; preds = %2906, %2910
  %.str.5.sink1491 = phi ptr [ @.str.5, %2910 ], [ @.str.2, %2906 ]
  store i32 %2901, ptr %1276, align 4, !tbaa !5
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = load i32, ptr @test_count, align 4, !tbaa !5
  %2914 = load i32, ptr %1222, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror(i32 noundef %2914, ptr noundef nonnull @.str.4) #12
  %2916 = load i32, ptr %1222, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef %2916, ptr noundef nonnull @.str.4) #12
  %2918 = load i32, ptr %1276, align 4, !tbaa !5
  %2919 = call ptr @strerror(i32 noundef %2918) #12
  %2920 = load i32, ptr %1276, align 4, !tbaa !5
  %2921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2912, ptr noundef nonnull %.str.5.sink1491, i32 noundef %2913, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %2915, ptr noundef %2917, ptr noundef %2919, i32 noundef %2920) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2922:                                             ; preds = %2894
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %26, i8 0, i64 40, i1 false)
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = add nsw i32 %2923, 1
  store i32 %2924, ptr @test_count, align 4, !tbaa !5
  %2925 = call i32 @s2n_server_renegotiation_info_extension_write(ptr noundef nonnull %26, ptr noundef nonnull %5, ptr noundef nonnull %6, i8 noundef zeroext 19)
  %2926 = call zeroext i1 @s2n_result_is_ok(i32 %2925)
  br i1 %2926, label %2949, label %2927

2927:                                             ; preds = %2922
  %2928 = load i32, ptr %1276, align 4, !tbaa !5
  %2929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2930 = call i32 @s2n_print_stacktrace(ptr noundef %2929) #12
  %2931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2932 = trunc nuw i8 %2931 to i1
  br i1 %2932, label %2933, label %2937

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

2937:                                             ; preds = %2933, %2927
  br label %2938

2938:                                             ; preds = %2933, %2937
  %.str.5.sink1500 = phi ptr [ @.str.5, %2937 ], [ @.str.2, %2933 ]
  store i32 %2928, ptr %1276, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = load i32, ptr %1222, align 4, !tbaa !5
  %2942 = call ptr @s2n_strerror(i32 noundef %2941, ptr noundef nonnull @.str.4) #12
  %2943 = load i32, ptr %1222, align 4, !tbaa !5
  %2944 = call ptr @s2n_strerror_debug(i32 noundef %2943, ptr noundef nonnull @.str.4) #12
  %2945 = load i32, ptr %1276, align 4, !tbaa !5
  %2946 = call ptr @strerror(i32 noundef %2945) #12
  %2947 = load i32, ptr %1276, align 4, !tbaa !5
  %2948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef nonnull %.str.5.sink1500, i32 noundef %2940, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 396, ptr noundef %2942, ptr noundef %2944, ptr noundef %2946, i32 noundef %2947) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2949:                                             ; preds = %2922
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = add nsw i32 %2950, 1
  store i32 %2951, ptr @test_count, align 4, !tbaa !5
  %2952 = getelementptr inbounds i8, ptr %25, i64 28
  %2953 = load i32, ptr %2952, align 4, !tbaa !45
  %2954 = getelementptr inbounds i8, ptr %25, i64 24
  %2955 = load i32, ptr %2954, align 8, !tbaa !46
  %2956 = sub i32 %2953, %2955
  %2957 = getelementptr inbounds i8, ptr %26, i64 28
  %2958 = load i32, ptr %2957, align 4, !tbaa !45
  %2959 = getelementptr inbounds i8, ptr %26, i64 24
  %2960 = load i32, ptr %2959, align 8, !tbaa !46
  %2961 = sub i32 %2958, %2960
  %2962 = icmp eq i32 %2956, %2961
  br i1 %2962, label %2985, label %2963

2963:                                             ; preds = %2949
  %2964 = load i32, ptr %1276, align 4, !tbaa !5
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = call i32 @s2n_print_stacktrace(ptr noundef %2965) #12
  %2967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2968 = trunc nuw i8 %2967 to i1
  br i1 %2968, label %2969, label %2973

2969:                                             ; preds = %2963
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = call i32 @fileno(ptr noundef %2970) #12
  %2972 = call i32 @isatty(i32 noundef %2971) #12
  %.not398 = icmp eq i32 %2972, 0
  br i1 %.not398, label %2973, label %2974

2973:                                             ; preds = %2969, %2963
  br label %2974

2974:                                             ; preds = %2969, %2973
  %.str.5.sink1509 = phi ptr [ @.str.5, %2973 ], [ @.str.2, %2969 ]
  store i32 %2964, ptr %1276, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = load i32, ptr @test_count, align 4, !tbaa !5
  %2977 = load i32, ptr %1222, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror(i32 noundef %2977, ptr noundef nonnull @.str.4) #12
  %2979 = load i32, ptr %1222, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror_debug(i32 noundef %2979, ptr noundef nonnull @.str.4) #12
  %2981 = load i32, ptr %1276, align 4, !tbaa !5
  %2982 = call ptr @strerror(i32 noundef %2981) #12
  %2983 = load i32, ptr %1276, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2975, ptr noundef nonnull %.str.5.sink1509, i32 noundef %2976, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %2978, ptr noundef %2980, ptr noundef %2982, i32 noundef %2983) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2985:                                             ; preds = %2949
  %.not399 = icmp eq i32 %2953, %2955
  br i1 %.not399, label %3014, label %2986

2986:                                             ; preds = %2985
  %2987 = add nsw i32 %2950, 2
  store i32 %2987, ptr @test_count, align 4, !tbaa !5
  %2988 = load ptr, ptr %25, align 8, !tbaa !51
  %2989 = load ptr, ptr %26, align 8, !tbaa !51
  %2990 = zext i32 %2956 to i64
  %bcmp = call i32 @bcmp(ptr %2988, ptr %2989, i64 %2990)
  %2991 = icmp eq i32 %bcmp, 0
  br i1 %2991, label %3014, label %2992

2992:                                             ; preds = %2986
  %2993 = load i32, ptr %1276, align 4, !tbaa !5
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = call i32 @s2n_print_stacktrace(ptr noundef %2994) #12
  %2996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2997 = trunc nuw i8 %2996 to i1
  br i1 %2997, label %2998, label %3002

2998:                                             ; preds = %2992
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = call i32 @fileno(ptr noundef %2999) #12
  %3001 = call i32 @isatty(i32 noundef %3000) #12
  %.not400 = icmp eq i32 %3001, 0
  br i1 %.not400, label %3002, label %3003

3002:                                             ; preds = %2998, %2992
  br label %3003

3003:                                             ; preds = %2998, %3002
  %.str.5.sink1518 = phi ptr [ @.str.5, %3002 ], [ @.str.2, %2998 ]
  store i32 %2993, ptr %1276, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = load i32, ptr %1222, align 4, !tbaa !5
  %3007 = call ptr @s2n_strerror(i32 noundef %3006, ptr noundef nonnull @.str.4) #12
  %3008 = load i32, ptr %1222, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror_debug(i32 noundef %3008, ptr noundef nonnull @.str.4) #12
  %3010 = load i32, ptr %1276, align 4, !tbaa !5
  %3011 = call ptr @strerror(i32 noundef %3010) #12
  %3012 = load i32, ptr %1276, align 4, !tbaa !5
  %3013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3004, ptr noundef nonnull %.str.5.sink1518, i32 noundef %3005, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %3007, ptr noundef %3009, ptr noundef %3011, i32 noundef %3012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3014:                                             ; preds = %2985, %2986
  %3015 = phi i32 [ %2951, %2985 ], [ %2987, %2986 ]
  %3016 = add nsw i32 %3015, 1
  store i32 %3016, ptr @test_count, align 4, !tbaa !5
  %3017 = load ptr, ptr %24, align 8, !tbaa !9
  %3018 = call i32 %626(ptr noundef %3017, ptr noundef nonnull %25) #12
  %3019 = icmp eq i32 %3018, -1
  br i1 %3019, label %3020, label %3042

3020:                                             ; preds = %3014
  %3021 = load i32, ptr %1276, align 4, !tbaa !5
  %3022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3023 = call i32 @s2n_print_stacktrace(ptr noundef %3022) #12
  %3024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3025 = trunc nuw i8 %3024 to i1
  br i1 %3025, label %3026, label %3030

3026:                                             ; preds = %3020
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = call i32 @fileno(ptr noundef %3027) #12
  %3029 = call i32 @isatty(i32 noundef %3028) #12
  %.not442 = icmp eq i32 %3029, 0
  br i1 %.not442, label %3030, label %3031

3030:                                             ; preds = %3026, %3020
  br label %3031

3031:                                             ; preds = %3026, %3030
  %.str.5.sink1527 = phi ptr [ @.str.5, %3030 ], [ @.str.2, %3026 ]
  store i32 %3021, ptr %1276, align 4, !tbaa !5
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = load i32, ptr %1222, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror(i32 noundef %3034, ptr noundef nonnull @.str.4) #12
  %3036 = load i32, ptr %1222, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror_debug(i32 noundef %3036, ptr noundef nonnull @.str.4) #12
  %3038 = load i32, ptr %1276, align 4, !tbaa !5
  %3039 = call ptr @strerror(i32 noundef %3038) #12
  %3040 = load i32, ptr %1276, align 4, !tbaa !5
  %3041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3032, ptr noundef nonnull %.str.5.sink1527, i32 noundef %3033, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %3035, ptr noundef %3037, ptr noundef %3039, i32 noundef %3040) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3042:                                             ; preds = %3014
  %3043 = call i32 @s2n_stuffer_free(ptr noundef nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %26) #12
  %3044 = call i32 @s2n_stuffer_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #12
  %3045 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #12
  %3046 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #12
  %3047 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3047, ptr %27, align 8, !tbaa !9
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = add nsw i32 %3048, 1
  store i32 %3049, ptr @test_count, align 4, !tbaa !5
  %3050 = icmp eq ptr %3047, null
  br i1 %3050, label %3051, label %3073

3051:                                             ; preds = %3042
  %3052 = load i32, ptr %1276, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = call i32 @s2n_print_stacktrace(ptr noundef %3053) #12
  %3055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3056 = trunc nuw i8 %3055 to i1
  br i1 %3056, label %3057, label %3061

3057:                                             ; preds = %3051
  %3058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3059 = call i32 @fileno(ptr noundef %3058) #12
  %3060 = call i32 @isatty(i32 noundef %3059) #12
  %.not441 = icmp eq i32 %3060, 0
  br i1 %.not441, label %3061, label %3062

3061:                                             ; preds = %3057, %3051
  br label %3062

3062:                                             ; preds = %3057, %3061
  %.str.5.sink1536 = phi ptr [ @.str.5, %3061 ], [ @.str.2, %3057 ]
  store i32 %3052, ptr %1276, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = load i32, ptr %1222, align 4, !tbaa !5
  %3066 = call ptr @s2n_strerror(i32 noundef %3065, ptr noundef nonnull @.str.4) #12
  %3067 = load i32, ptr %1222, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror_debug(i32 noundef %3067, ptr noundef nonnull @.str.4) #12
  %3069 = load i32, ptr %1276, align 4, !tbaa !5
  %3070 = call ptr @strerror(i32 noundef %3069) #12
  %3071 = load i32, ptr %1276, align 4, !tbaa !5
  %3072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3063, ptr noundef nonnull %.str.5.sink1536, i32 noundef %3064, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %3066, ptr noundef %3068, ptr noundef %3070, i32 noundef %3071) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3073:                                             ; preds = %3042
  %3074 = add nsw i32 %3048, 2
  store i32 %3074, ptr @test_count, align 4, !tbaa !5
  %3075 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3047, ptr noundef nonnull %177) #12
  %3076 = icmp eq i32 %3075, -1
  br i1 %3076, label %3077, label %3099

3077:                                             ; preds = %3073
  %3078 = load i32, ptr %1276, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = call i32 @s2n_print_stacktrace(ptr noundef %3079) #12
  %3081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3082 = trunc nuw i8 %3081 to i1
  br i1 %3082, label %3083, label %3087

3083:                                             ; preds = %3077
  %3084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3085 = call i32 @fileno(ptr noundef %3084) #12
  %3086 = call i32 @isatty(i32 noundef %3085) #12
  %.not440 = icmp eq i32 %3086, 0
  br i1 %.not440, label %3087, label %3088

3087:                                             ; preds = %3083, %3077
  br label %3088

3088:                                             ; preds = %3083, %3087
  %.str.5.sink1545 = phi ptr [ @.str.5, %3087 ], [ @.str.2, %3083 ]
  store i32 %3078, ptr %1276, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = load i32, ptr @test_count, align 4, !tbaa !5
  %3091 = load i32, ptr %1222, align 4, !tbaa !5
  %3092 = call ptr @s2n_strerror(i32 noundef %3091, ptr noundef nonnull @.str.4) #12
  %3093 = load i32, ptr %1222, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror_debug(i32 noundef %3093, ptr noundef nonnull @.str.4) #12
  %3095 = load i32, ptr %1276, align 4, !tbaa !5
  %3096 = call ptr @strerror(i32 noundef %3095) #12
  %3097 = load i32, ptr %1276, align 4, !tbaa !5
  %3098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3089, ptr noundef nonnull %.str.5.sink1545, i32 noundef %3090, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %3092, ptr noundef %3094, ptr noundef %3096, i32 noundef %3097) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3099:                                             ; preds = %3073
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %3100 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3100, ptr %28, align 8, !tbaa !9
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = add nsw i32 %3101, 1
  store i32 %3102, ptr @test_count, align 4, !tbaa !5
  %3103 = icmp eq ptr %3100, null
  br i1 %3103, label %3104, label %3126

3104:                                             ; preds = %3099
  %3105 = load i32, ptr %1276, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = call i32 @s2n_print_stacktrace(ptr noundef %3106) #12
  %3108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3109 = trunc nuw i8 %3108 to i1
  br i1 %3109, label %3110, label %3114

3110:                                             ; preds = %3104
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @fileno(ptr noundef %3111) #12
  %3113 = call i32 @isatty(i32 noundef %3112) #12
  %.not439 = icmp eq i32 %3113, 0
  br i1 %.not439, label %3114, label %3115

3114:                                             ; preds = %3110, %3104
  br label %3115

3115:                                             ; preds = %3110, %3114
  %.str.5.sink1554 = phi ptr [ @.str.5, %3114 ], [ @.str.2, %3110 ]
  store i32 %3105, ptr %1276, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = load i32, ptr %1222, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror(i32 noundef %3118, ptr noundef nonnull @.str.4) #12
  %3120 = load i32, ptr %1222, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror_debug(i32 noundef %3120, ptr noundef nonnull @.str.4) #12
  %3122 = load i32, ptr %1276, align 4, !tbaa !5
  %3123 = call ptr @strerror(i32 noundef %3122) #12
  %3124 = load i32, ptr %1276, align 4, !tbaa !5
  %3125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3116, ptr noundef nonnull %.str.5.sink1554, i32 noundef %3117, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %3119, ptr noundef %3121, ptr noundef %3123, i32 noundef %3124) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3126:                                             ; preds = %3099
  %3127 = add nsw i32 %3101, 2
  store i32 %3127, ptr @test_count, align 4, !tbaa !5
  %3128 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3100, ptr noundef nonnull %177) #12
  %3129 = icmp eq i32 %3128, -1
  br i1 %3129, label %3130, label %3152

3130:                                             ; preds = %3126
  %3131 = load i32, ptr %1276, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = call i32 @s2n_print_stacktrace(ptr noundef %3132) #12
  %3134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3135 = trunc nuw i8 %3134 to i1
  br i1 %3135, label %3136, label %3140

3136:                                             ; preds = %3130
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @fileno(ptr noundef %3137) #12
  %3139 = call i32 @isatty(i32 noundef %3138) #12
  %.not438 = icmp eq i32 %3139, 0
  br i1 %.not438, label %3140, label %3141

3140:                                             ; preds = %3136, %3130
  br label %3141

3141:                                             ; preds = %3136, %3140
  %.str.5.sink1563 = phi ptr [ @.str.5, %3140 ], [ @.str.2, %3136 ]
  store i32 %3131, ptr %1276, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = load i32, ptr %1222, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror(i32 noundef %3144, ptr noundef nonnull @.str.4) #12
  %3146 = load i32, ptr %1222, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror_debug(i32 noundef %3146, ptr noundef nonnull @.str.4) #12
  %3148 = load i32, ptr %1276, align 4, !tbaa !5
  %3149 = call ptr @strerror(i32 noundef %3148) #12
  %3150 = load i32, ptr %1276, align 4, !tbaa !5
  %3151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3142, ptr noundef nonnull %.str.5.sink1563, i32 noundef %3143, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 421, ptr noundef %3145, ptr noundef %3147, ptr noundef %3149, i32 noundef %3150) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3152:                                             ; preds = %3126
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = add nsw i32 %3153, 1
  store i32 %3154, ptr @test_count, align 4, !tbaa !5
  %3155 = load ptr, ptr %27, align 8, !tbaa !9
  %3156 = call i32 @s2n_client_hello_send(ptr noundef %3155) #12
  %3157 = icmp eq i32 %3156, -1
  br i1 %3157, label %3158, label %3180

3158:                                             ; preds = %3152
  %3159 = load i32, ptr %1276, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = call i32 @s2n_print_stacktrace(ptr noundef %3160) #12
  %3162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3163 = trunc nuw i8 %3162 to i1
  br i1 %3163, label %3164, label %3168

3164:                                             ; preds = %3158
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @fileno(ptr noundef %3165) #12
  %3167 = call i32 @isatty(i32 noundef %3166) #12
  %.not437 = icmp eq i32 %3167, 0
  br i1 %.not437, label %3168, label %3169

3168:                                             ; preds = %3164, %3158
  br label %3169

3169:                                             ; preds = %3164, %3168
  %.str.5.sink1572 = phi ptr [ @.str.5, %3168 ], [ @.str.2, %3164 ]
  store i32 %3159, ptr %1276, align 4, !tbaa !5
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = load i32, ptr @test_count, align 4, !tbaa !5
  %3172 = load i32, ptr %1222, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror(i32 noundef %3172, ptr noundef nonnull @.str.4) #12
  %3174 = load i32, ptr %1222, align 4, !tbaa !5
  %3175 = call ptr @s2n_strerror_debug(i32 noundef %3174, ptr noundef nonnull @.str.4) #12
  %3176 = load i32, ptr %1276, align 4, !tbaa !5
  %3177 = call ptr @strerror(i32 noundef %3176) #12
  %3178 = load i32, ptr %1276, align 4, !tbaa !5
  %3179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3170, ptr noundef nonnull %.str.5.sink1572, i32 noundef %3171, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %3173, ptr noundef %3175, ptr noundef %3177, i32 noundef %3178) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3180:                                             ; preds = %3152
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  %3182 = add nsw i32 %3181, 1
  store i32 %3182, ptr @test_count, align 4, !tbaa !5
  %3183 = load ptr, ptr %27, align 8, !tbaa !9
  %3184 = getelementptr inbounds i8, ptr %3183, i64 2016
  %3185 = load ptr, ptr %28, align 8, !tbaa !9
  %3186 = getelementptr inbounds i8, ptr %3185, i64 2016
  %3187 = getelementptr inbounds i8, ptr %3183, i64 2044
  %3188 = load i32, ptr %3187, align 4, !tbaa !52
  %3189 = getelementptr inbounds i8, ptr %3183, i64 2040
  %3190 = load i32, ptr %3189, align 8, !tbaa !53
  %3191 = sub i32 %3188, %3190
  %3192 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3184, ptr noundef nonnull %3186, i32 noundef %3191) #12
  %3193 = icmp eq i32 %3192, -1
  br i1 %3193, label %3194, label %3216

3194:                                             ; preds = %3180
  %3195 = load i32, ptr %1276, align 4, !tbaa !5
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = call i32 @s2n_print_stacktrace(ptr noundef %3196) #12
  %3198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3199 = trunc nuw i8 %3198 to i1
  br i1 %3199, label %3200, label %3204

3200:                                             ; preds = %3194
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = call i32 @fileno(ptr noundef %3201) #12
  %3203 = call i32 @isatty(i32 noundef %3202) #12
  %.not436 = icmp eq i32 %3203, 0
  br i1 %.not436, label %3204, label %3205

3204:                                             ; preds = %3200, %3194
  br label %3205

3205:                                             ; preds = %3200, %3204
  %.str.5.sink1581 = phi ptr [ @.str.5, %3204 ], [ @.str.2, %3200 ]
  store i32 %3195, ptr %1276, align 4, !tbaa !5
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3207 = load i32, ptr @test_count, align 4, !tbaa !5
  %3208 = load i32, ptr %1222, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror(i32 noundef %3208, ptr noundef nonnull @.str.4) #12
  %3210 = load i32, ptr %1222, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror_debug(i32 noundef %3210, ptr noundef nonnull @.str.4) #12
  %3212 = load i32, ptr %1276, align 4, !tbaa !5
  %3213 = call ptr @strerror(i32 noundef %3212) #12
  %3214 = load i32, ptr %1276, align 4, !tbaa !5
  %3215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3206, ptr noundef nonnull %.str.5.sink1581, i32 noundef %3207, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %3209, ptr noundef %3211, ptr noundef %3213, i32 noundef %3214) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3216:                                             ; preds = %3180
  %3217 = load i32, ptr @test_count, align 4, !tbaa !5
  %3218 = add nsw i32 %3217, 1
  store i32 %3218, ptr @test_count, align 4, !tbaa !5
  %3219 = load ptr, ptr %28, align 8, !tbaa !9
  %3220 = call i32 @s2n_client_hello_recv(ptr noundef %3219) #12
  %3221 = icmp eq i32 %3220, -1
  br i1 %3221, label %3222, label %3244

3222:                                             ; preds = %3216
  %3223 = load i32, ptr %1276, align 4, !tbaa !5
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = call i32 @s2n_print_stacktrace(ptr noundef %3224) #12
  %3226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3227 = trunc nuw i8 %3226 to i1
  br i1 %3227, label %3228, label %3232

3228:                                             ; preds = %3222
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = call i32 @fileno(ptr noundef %3229) #12
  %3231 = call i32 @isatty(i32 noundef %3230) #12
  %.not435 = icmp eq i32 %3231, 0
  br i1 %.not435, label %3232, label %3233

3232:                                             ; preds = %3228, %3222
  br label %3233

3233:                                             ; preds = %3228, %3232
  %.str.5.sink1590 = phi ptr [ @.str.5, %3232 ], [ @.str.2, %3228 ]
  store i32 %3223, ptr %1276, align 4, !tbaa !5
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = load i32, ptr @test_count, align 4, !tbaa !5
  %3236 = load i32, ptr %1222, align 4, !tbaa !5
  %3237 = call ptr @s2n_strerror(i32 noundef %3236, ptr noundef nonnull @.str.4) #12
  %3238 = load i32, ptr %1222, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror_debug(i32 noundef %3238, ptr noundef nonnull @.str.4) #12
  %3240 = load i32, ptr %1276, align 4, !tbaa !5
  %3241 = call ptr @strerror(i32 noundef %3240) #12
  %3242 = load i32, ptr %1276, align 4, !tbaa !5
  %3243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3234, ptr noundef nonnull %.str.5.sink1590, i32 noundef %3235, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %3237, ptr noundef %3239, ptr noundef %3241, i32 noundef %3242) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3244:                                             ; preds = %3216
  %3245 = load i32, ptr @test_count, align 4, !tbaa !5
  %3246 = add nsw i32 %3245, 1
  store i32 %3246, ptr @test_count, align 4, !tbaa !5
  %3247 = load ptr, ptr %27, align 8, !tbaa !9
  %3248 = load i32, ptr %3247, align 8
  %3249 = and i32 %3248, 8
  %.not401 = icmp eq i32 %3249, 0
  br i1 %.not401, label %3272, label %3250

3250:                                             ; preds = %3244
  %3251 = load i32, ptr %1276, align 4, !tbaa !5
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = call i32 @s2n_print_stacktrace(ptr noundef %3252) #12
  %3254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3255 = trunc nuw i8 %3254 to i1
  br i1 %3255, label %3256, label %3260

3256:                                             ; preds = %3250
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = call i32 @fileno(ptr noundef %3257) #12
  %3259 = call i32 @isatty(i32 noundef %3258) #12
  %.not434 = icmp eq i32 %3259, 0
  br i1 %.not434, label %3260, label %3261

3260:                                             ; preds = %3256, %3250
  br label %3261

3261:                                             ; preds = %3256, %3260
  %.str.5.sink1599 = phi ptr [ @.str.5, %3260 ], [ @.str.2, %3256 ]
  store i32 %3251, ptr %1276, align 4, !tbaa !5
  %3262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3263 = load i32, ptr @test_count, align 4, !tbaa !5
  %3264 = load i32, ptr %1222, align 4, !tbaa !5
  %3265 = call ptr @s2n_strerror(i32 noundef %3264, ptr noundef nonnull @.str.4) #12
  %3266 = load i32, ptr %1222, align 4, !tbaa !5
  %3267 = call ptr @s2n_strerror_debug(i32 noundef %3266, ptr noundef nonnull @.str.4) #12
  %3268 = load i32, ptr %1276, align 4, !tbaa !5
  %3269 = call ptr @strerror(i32 noundef %3268) #12
  %3270 = load i32, ptr %1276, align 4, !tbaa !5
  %3271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3262, ptr noundef nonnull %.str.5.sink1599, i32 noundef %3263, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %3265, ptr noundef %3267, ptr noundef %3269, i32 noundef %3270) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3272:                                             ; preds = %3244
  %3273 = load ptr, ptr %28, align 8, !tbaa !9
  %3274 = load i32, ptr %3273, align 8
  %3275 = and i32 %3274, -9
  store i32 %3275, ptr %3273, align 8
  %3276 = load i32, ptr @test_count, align 4, !tbaa !5
  %3277 = add nsw i32 %3276, 1
  store i32 %3277, ptr @test_count, align 4, !tbaa !5
  %3278 = load ptr, ptr %28, align 8, !tbaa !9
  %3279 = call i32 @s2n_server_hello_send(ptr noundef %3278) #12
  %3280 = icmp eq i32 %3279, -1
  br i1 %3280, label %3281, label %3303

3281:                                             ; preds = %3272
  %3282 = load i32, ptr %1276, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = call i32 @s2n_print_stacktrace(ptr noundef %3283) #12
  %3285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3286 = trunc nuw i8 %3285 to i1
  br i1 %3286, label %3287, label %3291

3287:                                             ; preds = %3281
  %3288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3289 = call i32 @fileno(ptr noundef %3288) #12
  %3290 = call i32 @isatty(i32 noundef %3289) #12
  %.not433 = icmp eq i32 %3290, 0
  br i1 %.not433, label %3291, label %3292

3291:                                             ; preds = %3287, %3281
  br label %3292

3292:                                             ; preds = %3287, %3291
  %.str.5.sink1608 = phi ptr [ @.str.5, %3291 ], [ @.str.2, %3287 ]
  store i32 %3282, ptr %1276, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = load i32, ptr %1222, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror(i32 noundef %3295, ptr noundef nonnull @.str.4) #12
  %3297 = load i32, ptr %1222, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef nonnull @.str.4) #12
  %3299 = load i32, ptr %1276, align 4, !tbaa !5
  %3300 = call ptr @strerror(i32 noundef %3299) #12
  %3301 = load i32, ptr %1276, align 4, !tbaa !5
  %3302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef nonnull %.str.5.sink1608, i32 noundef %3294, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %3296, ptr noundef %3298, ptr noundef %3300, i32 noundef %3301) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3303:                                             ; preds = %3272
  %3304 = load i32, ptr @test_count, align 4, !tbaa !5
  %3305 = add nsw i32 %3304, 1
  store i32 %3305, ptr @test_count, align 4, !tbaa !5
  %3306 = load ptr, ptr %28, align 8, !tbaa !9
  %3307 = getelementptr inbounds i8, ptr %3306, i64 2016
  %3308 = load ptr, ptr %27, align 8, !tbaa !9
  %3309 = getelementptr inbounds i8, ptr %3308, i64 2016
  %3310 = getelementptr inbounds i8, ptr %3306, i64 2044
  %3311 = load i32, ptr %3310, align 4, !tbaa !52
  %3312 = getelementptr inbounds i8, ptr %3306, i64 2040
  %3313 = load i32, ptr %3312, align 8, !tbaa !53
  %3314 = sub i32 %3311, %3313
  %3315 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3307, ptr noundef nonnull %3309, i32 noundef %3314) #12
  %3316 = icmp eq i32 %3315, -1
  br i1 %3316, label %3317, label %3339

3317:                                             ; preds = %3303
  %3318 = load i32, ptr %1276, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @s2n_print_stacktrace(ptr noundef %3319) #12
  %3321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3322 = trunc nuw i8 %3321 to i1
  br i1 %3322, label %3323, label %3327

3323:                                             ; preds = %3317
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @fileno(ptr noundef %3324) #12
  %3326 = call i32 @isatty(i32 noundef %3325) #12
  %.not432 = icmp eq i32 %3326, 0
  br i1 %.not432, label %3327, label %3328

3327:                                             ; preds = %3323, %3317
  br label %3328

3328:                                             ; preds = %3323, %3327
  %.str.5.sink1617 = phi ptr [ @.str.5, %3327 ], [ @.str.2, %3323 ]
  store i32 %3318, ptr %1276, align 4, !tbaa !5
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = load i32, ptr %1222, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror(i32 noundef %3331, ptr noundef nonnull @.str.4) #12
  %3333 = load i32, ptr %1222, align 4, !tbaa !5
  %3334 = call ptr @s2n_strerror_debug(i32 noundef %3333, ptr noundef nonnull @.str.4) #12
  %3335 = load i32, ptr %1276, align 4, !tbaa !5
  %3336 = call ptr @strerror(i32 noundef %3335) #12
  %3337 = load i32, ptr %1276, align 4, !tbaa !5
  %3338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3329, ptr noundef nonnull %.str.5.sink1617, i32 noundef %3330, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %3332, ptr noundef %3334, ptr noundef %3336, i32 noundef %3337) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3339:                                             ; preds = %3303
  %3340 = load i32, ptr @test_count, align 4, !tbaa !5
  %3341 = add nsw i32 %3340, 1
  store i32 %3341, ptr @test_count, align 4, !tbaa !5
  %3342 = load ptr, ptr %27, align 8, !tbaa !9
  %3343 = call i32 @s2n_server_hello_recv(ptr noundef %3342) #12
  %3344 = icmp eq i32 %3343, -1
  br i1 %3344, label %3345, label %3367

3345:                                             ; preds = %3339
  %3346 = load i32, ptr %1276, align 4, !tbaa !5
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @s2n_print_stacktrace(ptr noundef %3347) #12
  %3349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3350 = trunc nuw i8 %3349 to i1
  br i1 %3350, label %3351, label %3355

3351:                                             ; preds = %3345
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @fileno(ptr noundef %3352) #12
  %3354 = call i32 @isatty(i32 noundef %3353) #12
  %.not431 = icmp eq i32 %3354, 0
  br i1 %.not431, label %3355, label %3356

3355:                                             ; preds = %3351, %3345
  br label %3356

3356:                                             ; preds = %3351, %3355
  %.str.5.sink1626 = phi ptr [ @.str.5, %3355 ], [ @.str.2, %3351 ]
  store i32 %3346, ptr %1276, align 4, !tbaa !5
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = load i32, ptr @test_count, align 4, !tbaa !5
  %3359 = load i32, ptr %1222, align 4, !tbaa !5
  %3360 = call ptr @s2n_strerror(i32 noundef %3359, ptr noundef nonnull @.str.4) #12
  %3361 = load i32, ptr %1222, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror_debug(i32 noundef %3361, ptr noundef nonnull @.str.4) #12
  %3363 = load i32, ptr %1276, align 4, !tbaa !5
  %3364 = call ptr @strerror(i32 noundef %3363) #12
  %3365 = load i32, ptr %1276, align 4, !tbaa !5
  %3366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3357, ptr noundef nonnull %.str.5.sink1626, i32 noundef %3358, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %3360, ptr noundef %3362, ptr noundef %3364, i32 noundef %3365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3367:                                             ; preds = %3339
  %3368 = load i32, ptr @test_count, align 4, !tbaa !5
  %3369 = add nsw i32 %3368, 1
  store i32 %3369, ptr @test_count, align 4, !tbaa !5
  %3370 = load ptr, ptr %27, align 8, !tbaa !9
  %3371 = load i32, ptr %3370, align 8
  %3372 = and i32 %3371, 8
  %.not402 = icmp eq i32 %3372, 0
  br i1 %.not402, label %3395, label %3373

3373:                                             ; preds = %3367
  %3374 = load i32, ptr %1276, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @s2n_print_stacktrace(ptr noundef %3375) #12
  %3377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3378 = trunc nuw i8 %3377 to i1
  br i1 %3378, label %3379, label %3383

3379:                                             ; preds = %3373
  %3380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3381 = call i32 @fileno(ptr noundef %3380) #12
  %3382 = call i32 @isatty(i32 noundef %3381) #12
  %.not430 = icmp eq i32 %3382, 0
  br i1 %.not430, label %3383, label %3384

3383:                                             ; preds = %3379, %3373
  br label %3384

3384:                                             ; preds = %3379, %3383
  %.str.5.sink1635 = phi ptr [ @.str.5, %3383 ], [ @.str.2, %3379 ]
  store i32 %3374, ptr %1276, align 4, !tbaa !5
  %3385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = load i32, ptr %1222, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror(i32 noundef %3387, ptr noundef nonnull @.str.4) #12
  %3389 = load i32, ptr %1222, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror_debug(i32 noundef %3389, ptr noundef nonnull @.str.4) #12
  %3391 = load i32, ptr %1276, align 4, !tbaa !5
  %3392 = call ptr @strerror(i32 noundef %3391) #12
  %3393 = load i32, ptr %1276, align 4, !tbaa !5
  %3394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3385, ptr noundef nonnull %.str.5.sink1635, i32 noundef %3386, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %3388, ptr noundef %3390, ptr noundef %3392, i32 noundef %3393) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3395:                                             ; preds = %3367
  %3396 = add nsw i32 %3368, 2
  store i32 %3396, ptr @test_count, align 4, !tbaa !5
  %3397 = load i32, ptr %3370, align 8
  %3398 = and i32 %3397, 8
  %.not403 = icmp eq i32 %3398, 0
  br i1 %.not403, label %3421, label %3399

3399:                                             ; preds = %3395
  %3400 = load i32, ptr %1276, align 4, !tbaa !5
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @s2n_print_stacktrace(ptr noundef %3401) #12
  %3403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3404 = trunc nuw i8 %3403 to i1
  br i1 %3404, label %3405, label %3409

3405:                                             ; preds = %3399
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = call i32 @fileno(ptr noundef %3406) #12
  %3408 = call i32 @isatty(i32 noundef %3407) #12
  %.not429 = icmp eq i32 %3408, 0
  br i1 %.not429, label %3409, label %3410

3409:                                             ; preds = %3405, %3399
  br label %3410

3410:                                             ; preds = %3405, %3409
  %.str.5.sink1644 = phi ptr [ @.str.5, %3409 ], [ @.str.2, %3405 ]
  store i32 %3400, ptr %1276, align 4, !tbaa !5
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = load i32, ptr %1222, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror(i32 noundef %3413, ptr noundef nonnull @.str.4) #12
  %3415 = load i32, ptr %1222, align 4, !tbaa !5
  %3416 = call ptr @s2n_strerror_debug(i32 noundef %3415, ptr noundef nonnull @.str.4) #12
  %3417 = load i32, ptr %1276, align 4, !tbaa !5
  %3418 = call ptr @strerror(i32 noundef %3417) #12
  %3419 = load i32, ptr %1276, align 4, !tbaa !5
  %3420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3411, ptr noundef nonnull %.str.5.sink1644, i32 noundef %3412, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %3414, ptr noundef %3416, ptr noundef %3418, i32 noundef %3419) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3421:                                             ; preds = %3395
  %3422 = load ptr, ptr %28, align 8, !tbaa !9
  %3423 = load i32, ptr %3422, align 8
  %3424 = or i32 %3423, 8
  store i32 %3424, ptr %3422, align 8
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = add nsw i32 %3425, 1
  store i32 %3426, ptr @test_count, align 4, !tbaa !5
  %3427 = load ptr, ptr %28, align 8, !tbaa !9
  %3428 = call i32 @s2n_server_hello_send(ptr noundef %3427) #12
  %3429 = icmp eq i32 %3428, -1
  br i1 %3429, label %3430, label %3452

3430:                                             ; preds = %3421
  %3431 = load i32, ptr %1276, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @s2n_print_stacktrace(ptr noundef %3432) #12
  %3434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3435 = trunc nuw i8 %3434 to i1
  br i1 %3435, label %3436, label %3440

3436:                                             ; preds = %3430
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @fileno(ptr noundef %3437) #12
  %3439 = call i32 @isatty(i32 noundef %3438) #12
  %.not428 = icmp eq i32 %3439, 0
  br i1 %.not428, label %3440, label %3441

3440:                                             ; preds = %3436, %3430
  br label %3441

3441:                                             ; preds = %3436, %3440
  %.str.5.sink1653 = phi ptr [ @.str.5, %3440 ], [ @.str.2, %3436 ]
  store i32 %3431, ptr %1276, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = load i32, ptr @test_count, align 4, !tbaa !5
  %3444 = load i32, ptr %1222, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef nonnull @.str.4) #12
  %3446 = load i32, ptr %1222, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror_debug(i32 noundef %3446, ptr noundef nonnull @.str.4) #12
  %3448 = load i32, ptr %1276, align 4, !tbaa !5
  %3449 = call ptr @strerror(i32 noundef %3448) #12
  %3450 = load i32, ptr %1276, align 4, !tbaa !5
  %3451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3442, ptr noundef nonnull %.str.5.sink1653, i32 noundef %3443, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %3445, ptr noundef %3447, ptr noundef %3449, i32 noundef %3450) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3452:                                             ; preds = %3421
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = add nsw i32 %3453, 1
  store i32 %3454, ptr @test_count, align 4, !tbaa !5
  %3455 = load ptr, ptr %28, align 8, !tbaa !9
  %3456 = getelementptr inbounds i8, ptr %3455, i64 2016
  %3457 = load ptr, ptr %27, align 8, !tbaa !9
  %3458 = getelementptr inbounds i8, ptr %3457, i64 2016
  %3459 = getelementptr inbounds i8, ptr %3455, i64 2044
  %3460 = load i32, ptr %3459, align 4, !tbaa !52
  %3461 = getelementptr inbounds i8, ptr %3455, i64 2040
  %3462 = load i32, ptr %3461, align 8, !tbaa !53
  %3463 = sub i32 %3460, %3462
  %3464 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %3456, ptr noundef nonnull %3458, i32 noundef %3463) #12
  %3465 = icmp eq i32 %3464, -1
  br i1 %3465, label %3466, label %3488

3466:                                             ; preds = %3452
  %3467 = load i32, ptr %1276, align 4, !tbaa !5
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = call i32 @s2n_print_stacktrace(ptr noundef %3468) #12
  %3470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3471 = trunc nuw i8 %3470 to i1
  br i1 %3471, label %3472, label %3476

3472:                                             ; preds = %3466
  %3473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3474 = call i32 @fileno(ptr noundef %3473) #12
  %3475 = call i32 @isatty(i32 noundef %3474) #12
  %.not427 = icmp eq i32 %3475, 0
  br i1 %.not427, label %3476, label %3477

3476:                                             ; preds = %3472, %3466
  br label %3477

3477:                                             ; preds = %3472, %3476
  %.str.5.sink1662 = phi ptr [ @.str.5, %3476 ], [ @.str.2, %3472 ]
  store i32 %3467, ptr %1276, align 4, !tbaa !5
  %3478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3479 = load i32, ptr @test_count, align 4, !tbaa !5
  %3480 = load i32, ptr %1222, align 4, !tbaa !5
  %3481 = call ptr @s2n_strerror(i32 noundef %3480, ptr noundef nonnull @.str.4) #12
  %3482 = load i32, ptr %1222, align 4, !tbaa !5
  %3483 = call ptr @s2n_strerror_debug(i32 noundef %3482, ptr noundef nonnull @.str.4) #12
  %3484 = load i32, ptr %1276, align 4, !tbaa !5
  %3485 = call ptr @strerror(i32 noundef %3484) #12
  %3486 = load i32, ptr %1276, align 4, !tbaa !5
  %3487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3478, ptr noundef nonnull %.str.5.sink1662, i32 noundef %3479, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %3481, ptr noundef %3483, ptr noundef %3485, i32 noundef %3486) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3488:                                             ; preds = %3452
  %3489 = load i32, ptr @test_count, align 4, !tbaa !5
  %3490 = add nsw i32 %3489, 1
  store i32 %3490, ptr @test_count, align 4, !tbaa !5
  %3491 = load ptr, ptr %27, align 8, !tbaa !9
  %3492 = call i32 @s2n_server_hello_recv(ptr noundef %3491) #12
  %3493 = icmp eq i32 %3492, -1
  br i1 %3493, label %3494, label %3516

3494:                                             ; preds = %3488
  %3495 = load i32, ptr %1276, align 4, !tbaa !5
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = call i32 @s2n_print_stacktrace(ptr noundef %3496) #12
  %3498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3499 = trunc nuw i8 %3498 to i1
  br i1 %3499, label %3500, label %3504

3500:                                             ; preds = %3494
  %3501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3502 = call i32 @fileno(ptr noundef %3501) #12
  %3503 = call i32 @isatty(i32 noundef %3502) #12
  %.not426 = icmp eq i32 %3503, 0
  br i1 %.not426, label %3504, label %3505

3504:                                             ; preds = %3500, %3494
  br label %3505

3505:                                             ; preds = %3500, %3504
  %.str.5.sink1671 = phi ptr [ @.str.5, %3504 ], [ @.str.2, %3500 ]
  store i32 %3495, ptr %1276, align 4, !tbaa !5
  %3506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3507 = load i32, ptr @test_count, align 4, !tbaa !5
  %3508 = load i32, ptr %1222, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror(i32 noundef %3508, ptr noundef nonnull @.str.4) #12
  %3510 = load i32, ptr %1222, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror_debug(i32 noundef %3510, ptr noundef nonnull @.str.4) #12
  %3512 = load i32, ptr %1276, align 4, !tbaa !5
  %3513 = call ptr @strerror(i32 noundef %3512) #12
  %3514 = load i32, ptr %1276, align 4, !tbaa !5
  %3515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3506, ptr noundef nonnull %.str.5.sink1671, i32 noundef %3507, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 450, ptr noundef %3509, ptr noundef %3511, ptr noundef %3513, i32 noundef %3514) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3516:                                             ; preds = %3488
  %3517 = load i32, ptr @test_count, align 4, !tbaa !5
  %3518 = add nsw i32 %3517, 1
  store i32 %3518, ptr @test_count, align 4, !tbaa !5
  %3519 = load ptr, ptr %27, align 8, !tbaa !9
  %3520 = load i32, ptr %3519, align 8
  %3521 = and i32 %3520, 8
  %.not404 = icmp eq i32 %3521, 0
  br i1 %.not404, label %3522, label %3544

3522:                                             ; preds = %3516
  %3523 = load i32, ptr %1276, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = call i32 @s2n_print_stacktrace(ptr noundef %3524) #12
  %3526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3527 = trunc nuw i8 %3526 to i1
  br i1 %3527, label %3528, label %3532

3528:                                             ; preds = %3522
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = call i32 @fileno(ptr noundef %3529) #12
  %3531 = call i32 @isatty(i32 noundef %3530) #12
  %.not405 = icmp eq i32 %3531, 0
  br i1 %.not405, label %3532, label %3533

3532:                                             ; preds = %3528, %3522
  br label %3533

3533:                                             ; preds = %3528, %3532
  %.str.5.sink1680 = phi ptr [ @.str.5, %3532 ], [ @.str.2, %3528 ]
  store i32 %3523, ptr %1276, align 4, !tbaa !5
  %3534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3535 = load i32, ptr @test_count, align 4, !tbaa !5
  %3536 = load i32, ptr %1222, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror(i32 noundef %3536, ptr noundef nonnull @.str.4) #12
  %3538 = load i32, ptr %1222, align 4, !tbaa !5
  %3539 = call ptr @s2n_strerror_debug(i32 noundef %3538, ptr noundef nonnull @.str.4) #12
  %3540 = load i32, ptr %1276, align 4, !tbaa !5
  %3541 = call ptr @strerror(i32 noundef %3540) #12
  %3542 = load i32, ptr %1276, align 4, !tbaa !5
  %3543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3534, ptr noundef nonnull %.str.5.sink1680, i32 noundef %3535, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %3537, ptr noundef %3539, ptr noundef %3541, i32 noundef %3542) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3544:                                             ; preds = %3516
  %3545 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  %3546 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #12
  %3547 = call zeroext i1 @s2n_hash_is_available(i32 noundef 1) #12
  br i1 %3547, label %3548, label %3902

3548:                                             ; preds = %3544
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %3549 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3549, ptr %29, align 8, !tbaa !9
  %3550 = load i32, ptr @test_count, align 4, !tbaa !5
  %3551 = add nsw i32 %3550, 1
  store i32 %3551, ptr @test_count, align 4, !tbaa !5
  %3552 = icmp eq ptr %3549, null
  br i1 %3552, label %3553, label %3575

3553:                                             ; preds = %3548
  %3554 = load i32, ptr %1276, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = call i32 @s2n_print_stacktrace(ptr noundef %3555) #12
  %3557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3558 = trunc nuw i8 %3557 to i1
  br i1 %3558, label %3559, label %3563

3559:                                             ; preds = %3553
  %3560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3561 = call i32 @fileno(ptr noundef %3560) #12
  %3562 = call i32 @isatty(i32 noundef %3561) #12
  %.not425 = icmp eq i32 %3562, 0
  br i1 %.not425, label %3563, label %3564

3563:                                             ; preds = %3559, %3553
  br label %3564

3564:                                             ; preds = %3559, %3563
  %.str.5.sink1689 = phi ptr [ @.str.5, %3563 ], [ @.str.2, %3559 ]
  store i32 %3554, ptr %1276, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = load i32, ptr @test_count, align 4, !tbaa !5
  %3567 = load i32, ptr %1222, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror(i32 noundef %3567, ptr noundef nonnull @.str.4) #12
  %3569 = load i32, ptr %1222, align 4, !tbaa !5
  %3570 = call ptr @s2n_strerror_debug(i32 noundef %3569, ptr noundef nonnull @.str.4) #12
  %3571 = load i32, ptr %1276, align 4, !tbaa !5
  %3572 = call ptr @strerror(i32 noundef %3571) #12
  %3573 = load i32, ptr %1276, align 4, !tbaa !5
  %3574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3565, ptr noundef nonnull %.str.5.sink1689, i32 noundef %3566, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %3568, ptr noundef %3570, ptr noundef %3572, i32 noundef %3573) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3575:                                             ; preds = %3548
  %3576 = add nsw i32 %3550, 2
  store i32 %3576, ptr @test_count, align 4, !tbaa !5
  %3577 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3549, ptr noundef nonnull %177) #12
  %3578 = icmp eq i32 %3577, -1
  br i1 %3578, label %3579, label %3601

3579:                                             ; preds = %3575
  %3580 = load i32, ptr %1276, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @s2n_print_stacktrace(ptr noundef %3581) #12
  %3583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3584 = trunc nuw i8 %3583 to i1
  br i1 %3584, label %3585, label %3589

3585:                                             ; preds = %3579
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = call i32 @fileno(ptr noundef %3586) #12
  %3588 = call i32 @isatty(i32 noundef %3587) #12
  %.not424 = icmp eq i32 %3588, 0
  br i1 %.not424, label %3589, label %3590

3589:                                             ; preds = %3585, %3579
  br label %3590

3590:                                             ; preds = %3585, %3589
  %.str.5.sink1698 = phi ptr [ @.str.5, %3589 ], [ @.str.2, %3585 ]
  store i32 %3580, ptr %1276, align 4, !tbaa !5
  %3591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3592 = load i32, ptr @test_count, align 4, !tbaa !5
  %3593 = load i32, ptr %1222, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror(i32 noundef %3593, ptr noundef nonnull @.str.4) #12
  %3595 = load i32, ptr %1222, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror_debug(i32 noundef %3595, ptr noundef nonnull @.str.4) #12
  %3597 = load i32, ptr %1276, align 4, !tbaa !5
  %3598 = call ptr @strerror(i32 noundef %3597) #12
  %3599 = load i32, ptr %1276, align 4, !tbaa !5
  %3600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3591, ptr noundef nonnull %.str.5.sink1698, i32 noundef %3592, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %3594, ptr noundef %3596, ptr noundef %3598, i32 noundef %3599) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3601:                                             ; preds = %3575
  %3602 = load i32, ptr @test_count, align 4, !tbaa !5
  %3603 = add nsw i32 %3602, 1
  store i32 %3603, ptr @test_count, align 4, !tbaa !5
  %3604 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3549, ptr noundef nonnull @.str.79) #12
  %3605 = icmp eq i32 %3604, -1
  br i1 %3605, label %3606, label %3628

3606:                                             ; preds = %3601
  %3607 = load i32, ptr %1276, align 4, !tbaa !5
  %3608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3609 = call i32 @s2n_print_stacktrace(ptr noundef %3608) #12
  %3610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3611 = trunc nuw i8 %3610 to i1
  br i1 %3611, label %3612, label %3616

3612:                                             ; preds = %3606
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = call i32 @fileno(ptr noundef %3613) #12
  %3615 = call i32 @isatty(i32 noundef %3614) #12
  %.not423 = icmp eq i32 %3615, 0
  br i1 %.not423, label %3616, label %3617

3616:                                             ; preds = %3612, %3606
  br label %3617

3617:                                             ; preds = %3612, %3616
  %.str.5.sink1707 = phi ptr [ @.str.5, %3616 ], [ @.str.2, %3612 ]
  store i32 %3607, ptr %1276, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = load i32, ptr %1222, align 4, !tbaa !5
  %3621 = call ptr @s2n_strerror(i32 noundef %3620, ptr noundef nonnull @.str.4) #12
  %3622 = load i32, ptr %1222, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror_debug(i32 noundef %3622, ptr noundef nonnull @.str.4) #12
  %3624 = load i32, ptr %1276, align 4, !tbaa !5
  %3625 = call ptr @strerror(i32 noundef %3624) #12
  %3626 = load i32, ptr %1276, align 4, !tbaa !5
  %3627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3618, ptr noundef nonnull %.str.5.sink1707, i32 noundef %3619, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %3621, ptr noundef %3623, ptr noundef %3625, i32 noundef %3626) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3628:                                             ; preds = %3601
  %3629 = getelementptr inbounds i8, ptr %3549, i64 218
  store i8 30, ptr %3629, align 2, !tbaa !48
  %3630 = getelementptr inbounds i8, ptr %3549, i64 220
  store i8 30, ptr %3630, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #12
  %3631 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %3631, ptr %30, align 8, !tbaa !9
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = add nsw i32 %3632, 1
  store i32 %3633, ptr @test_count, align 4, !tbaa !5
  %3634 = icmp eq ptr %3631, null
  br i1 %3634, label %3635, label %3657

3635:                                             ; preds = %3628
  %3636 = load i32, ptr %1276, align 4, !tbaa !5
  %3637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3638 = call i32 @s2n_print_stacktrace(ptr noundef %3637) #12
  %3639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3640 = trunc nuw i8 %3639 to i1
  br i1 %3640, label %3641, label %3645

3641:                                             ; preds = %3635
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @fileno(ptr noundef %3642) #12
  %3644 = call i32 @isatty(i32 noundef %3643) #12
  %.not422 = icmp eq i32 %3644, 0
  br i1 %.not422, label %3645, label %3646

3645:                                             ; preds = %3641, %3635
  br label %3646

3646:                                             ; preds = %3641, %3645
  %.str.5.sink1716 = phi ptr [ @.str.5, %3645 ], [ @.str.2, %3641 ]
  store i32 %3636, ptr %1276, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = load i32, ptr @test_count, align 4, !tbaa !5
  %3649 = load i32, ptr %1222, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef nonnull @.str.4) #12
  %3651 = load i32, ptr %1222, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror_debug(i32 noundef %3651, ptr noundef nonnull @.str.4) #12
  %3653 = load i32, ptr %1276, align 4, !tbaa !5
  %3654 = call ptr @strerror(i32 noundef %3653) #12
  %3655 = load i32, ptr %1276, align 4, !tbaa !5
  %3656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3647, ptr noundef nonnull %.str.5.sink1716, i32 noundef %3648, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 479, ptr noundef %3650, ptr noundef %3652, ptr noundef %3654, i32 noundef %3655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3657:                                             ; preds = %3628
  %3658 = add nsw i32 %3632, 2
  store i32 %3658, ptr @test_count, align 4, !tbaa !5
  %3659 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3631, ptr noundef nonnull %177) #12
  %3660 = icmp eq i32 %3659, -1
  br i1 %3660, label %3661, label %3683

3661:                                             ; preds = %3657
  %3662 = load i32, ptr %1276, align 4, !tbaa !5
  %3663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3664 = call i32 @s2n_print_stacktrace(ptr noundef %3663) #12
  %3665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3666 = trunc nuw i8 %3665 to i1
  br i1 %3666, label %3667, label %3671

3667:                                             ; preds = %3661
  %3668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3669 = call i32 @fileno(ptr noundef %3668) #12
  %3670 = call i32 @isatty(i32 noundef %3669) #12
  %.not421 = icmp eq i32 %3670, 0
  br i1 %.not421, label %3671, label %3672

3671:                                             ; preds = %3667, %3661
  br label %3672

3672:                                             ; preds = %3667, %3671
  %.str.5.sink1725 = phi ptr [ @.str.5, %3671 ], [ @.str.2, %3667 ]
  store i32 %3662, ptr %1276, align 4, !tbaa !5
  %3673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3674 = load i32, ptr @test_count, align 4, !tbaa !5
  %3675 = load i32, ptr %1222, align 4, !tbaa !5
  %3676 = call ptr @s2n_strerror(i32 noundef %3675, ptr noundef nonnull @.str.4) #12
  %3677 = load i32, ptr %1222, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef nonnull @.str.4) #12
  %3679 = load i32, ptr %1276, align 4, !tbaa !5
  %3680 = call ptr @strerror(i32 noundef %3679) #12
  %3681 = load i32, ptr %1276, align 4, !tbaa !5
  %3682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3673, ptr noundef nonnull %.str.5.sink1725, i32 noundef %3674, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %3676, ptr noundef %3678, ptr noundef %3680, i32 noundef %3681) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3683:                                             ; preds = %3657
  %3684 = load i32, ptr @test_count, align 4, !tbaa !5
  %3685 = add nsw i32 %3684, 1
  store i32 %3685, ptr @test_count, align 4, !tbaa !5
  %3686 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3631, ptr noundef nonnull @.str.79) #12
  %3687 = icmp eq i32 %3686, -1
  br i1 %3687, label %3688, label %3710

3688:                                             ; preds = %3683
  %3689 = load i32, ptr %1276, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = call i32 @s2n_print_stacktrace(ptr noundef %3690) #12
  %3692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3693 = trunc nuw i8 %3692 to i1
  br i1 %3693, label %3694, label %3698

3694:                                             ; preds = %3688
  %3695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3696 = call i32 @fileno(ptr noundef %3695) #12
  %3697 = call i32 @isatty(i32 noundef %3696) #12
  %.not420 = icmp eq i32 %3697, 0
  br i1 %.not420, label %3698, label %3699

3698:                                             ; preds = %3694, %3688
  br label %3699

3699:                                             ; preds = %3694, %3698
  %.str.5.sink1734 = phi ptr [ @.str.5, %3698 ], [ @.str.2, %3694 ]
  store i32 %3689, ptr %1276, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = load i32, ptr %1222, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror(i32 noundef %3702, ptr noundef nonnull @.str.4) #12
  %3704 = load i32, ptr %1222, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror_debug(i32 noundef %3704, ptr noundef nonnull @.str.4) #12
  %3706 = load i32, ptr %1276, align 4, !tbaa !5
  %3707 = call ptr @strerror(i32 noundef %3706) #12
  %3708 = load i32, ptr %1276, align 4, !tbaa !5
  %3709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3700, ptr noundef nonnull %.str.5.sink1734, i32 noundef %3701, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 481, ptr noundef %3703, ptr noundef %3705, ptr noundef %3707, i32 noundef %3708) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3710:                                             ; preds = %3683
  %3711 = getelementptr inbounds i8, ptr %3631, i64 219
  store i8 30, ptr %3711, align 1, !tbaa !54
  %3712 = getelementptr inbounds i8, ptr %3631, i64 220
  store i8 30, ptr %3712, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #12
  store i64 0, ptr %31, align 8
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = add nsw i32 %3713, 1
  store i32 %3714, ptr @test_count, align 4, !tbaa !5
  %3715 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %31) #12
  %3716 = icmp eq i32 %3715, -1
  br i1 %3716, label %3717, label %3739

3717:                                             ; preds = %3710
  %3718 = load i32, ptr %1276, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @s2n_print_stacktrace(ptr noundef %3719) #12
  %3721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3722 = trunc nuw i8 %3721 to i1
  br i1 %3722, label %3723, label %3727

3723:                                             ; preds = %3717
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = call i32 @fileno(ptr noundef %3724) #12
  %3726 = call i32 @isatty(i32 noundef %3725) #12
  %.not419 = icmp eq i32 %3726, 0
  br i1 %.not419, label %3727, label %3728

3727:                                             ; preds = %3723, %3717
  br label %3728

3728:                                             ; preds = %3723, %3727
  %.str.5.sink1743 = phi ptr [ @.str.5, %3727 ], [ @.str.2, %3723 ]
  store i32 %3718, ptr %1276, align 4, !tbaa !5
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = load i32, ptr %1222, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror(i32 noundef %3731, ptr noundef nonnull @.str.4) #12
  %3733 = load i32, ptr %1222, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror_debug(i32 noundef %3733, ptr noundef nonnull @.str.4) #12
  %3735 = load i32, ptr %1276, align 4, !tbaa !5
  %3736 = call ptr @strerror(i32 noundef %3735) #12
  %3737 = load i32, ptr %1276, align 4, !tbaa !5
  %3738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3729, ptr noundef nonnull %.str.5.sink1743, i32 noundef %3730, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %3732, ptr noundef %3734, ptr noundef %3736, i32 noundef %3737) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3739:                                             ; preds = %3710
  %3740 = load i32, ptr @test_count, align 4, !tbaa !5
  %3741 = add nsw i32 %3740, 1
  store i32 %3741, ptr @test_count, align 4, !tbaa !5
  %3742 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %3549, ptr noundef nonnull %3631, ptr noundef nonnull %31) #12
  %3743 = icmp eq i32 %3742, -1
  br i1 %3743, label %3744, label %3766

3744:                                             ; preds = %3739
  %3745 = load i32, ptr %1276, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = call i32 @s2n_print_stacktrace(ptr noundef %3746) #12
  %3748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3749 = trunc nuw i8 %3748 to i1
  br i1 %3749, label %3750, label %3754

3750:                                             ; preds = %3744
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @fileno(ptr noundef %3751) #12
  %3753 = call i32 @isatty(i32 noundef %3752) #12
  %.not418 = icmp eq i32 %3753, 0
  br i1 %.not418, label %3754, label %3755

3754:                                             ; preds = %3750, %3744
  br label %3755

3755:                                             ; preds = %3750, %3754
  %.str.5.sink1752 = phi ptr [ @.str.5, %3754 ], [ @.str.2, %3750 ]
  store i32 %3745, ptr %1276, align 4, !tbaa !5
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = load i32, ptr %1222, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror(i32 noundef %3758, ptr noundef nonnull @.str.4) #12
  %3760 = load i32, ptr %1222, align 4, !tbaa !5
  %3761 = call ptr @s2n_strerror_debug(i32 noundef %3760, ptr noundef nonnull @.str.4) #12
  %3762 = load i32, ptr %1276, align 4, !tbaa !5
  %3763 = call ptr @strerror(i32 noundef %3762) #12
  %3764 = load i32, ptr %1276, align 4, !tbaa !5
  %3765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3756, ptr noundef nonnull %.str.5.sink1752, i32 noundef %3757, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %3759, ptr noundef %3761, ptr noundef %3763, i32 noundef %3764) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3766:                                             ; preds = %3739
  %3767 = load i32, ptr @test_count, align 4, !tbaa !5
  %3768 = add nsw i32 %3767, 1
  store i32 %3768, ptr @test_count, align 4, !tbaa !5
  %3769 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %3631, ptr noundef nonnull %3549) #12
  %3770 = icmp eq i32 %3769, -1
  br i1 %3770, label %3771, label %3793

3771:                                             ; preds = %3766
  %3772 = load i32, ptr %1276, align 4, !tbaa !5
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = call i32 @s2n_print_stacktrace(ptr noundef %3773) #12
  %3775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3776 = trunc nuw i8 %3775 to i1
  br i1 %3776, label %3777, label %3781

3777:                                             ; preds = %3771
  %3778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3779 = call i32 @fileno(ptr noundef %3778) #12
  %3780 = call i32 @isatty(i32 noundef %3779) #12
  %.not417 = icmp eq i32 %3780, 0
  br i1 %.not417, label %3781, label %3782

3781:                                             ; preds = %3777, %3771
  br label %3782

3782:                                             ; preds = %3777, %3781
  %.str.5.sink1761 = phi ptr [ @.str.5, %3781 ], [ @.str.2, %3777 ]
  store i32 %3772, ptr %1276, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3784 = load i32, ptr @test_count, align 4, !tbaa !5
  %3785 = load i32, ptr %1222, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror(i32 noundef %3785, ptr noundef nonnull @.str.4) #12
  %3787 = load i32, ptr %1222, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror_debug(i32 noundef %3787, ptr noundef nonnull @.str.4) #12
  %3789 = load i32, ptr %1276, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #12
  %3791 = load i32, ptr %1276, align 4, !tbaa !5
  %3792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3783, ptr noundef nonnull %.str.5.sink1761, i32 noundef %3784, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %3786, ptr noundef %3788, ptr noundef %3790, i32 noundef %3791) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3793:                                             ; preds = %3766
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = add nsw i32 %3794, 1
  store i32 %3795, ptr @test_count, align 4, !tbaa !5
  %3796 = load i32, ptr %3549, align 8
  %3797 = and i32 %3796, 8
  %.not406 = icmp eq i32 %3797, 0
  br i1 %.not406, label %3798, label %3820

3798:                                             ; preds = %3793
  %3799 = load i32, ptr %1276, align 4, !tbaa !5
  %3800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3801 = call i32 @s2n_print_stacktrace(ptr noundef %3800) #12
  %3802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3803 = trunc nuw i8 %3802 to i1
  br i1 %3803, label %3804, label %3808

3804:                                             ; preds = %3798
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = call i32 @fileno(ptr noundef %3805) #12
  %3807 = call i32 @isatty(i32 noundef %3806) #12
  %.not407 = icmp eq i32 %3807, 0
  br i1 %.not407, label %3808, label %3809

3808:                                             ; preds = %3804, %3798
  br label %3809

3809:                                             ; preds = %3804, %3808
  %.str.5.sink1770 = phi ptr [ @.str.5, %3808 ], [ @.str.2, %3804 ]
  store i32 %3799, ptr %1276, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = load i32, ptr %1222, align 4, !tbaa !5
  %3813 = call ptr @s2n_strerror(i32 noundef %3812, ptr noundef nonnull @.str.4) #12
  %3814 = load i32, ptr %1222, align 4, !tbaa !5
  %3815 = call ptr @s2n_strerror_debug(i32 noundef %3814, ptr noundef nonnull @.str.4) #12
  %3816 = load i32, ptr %1276, align 4, !tbaa !5
  %3817 = call ptr @strerror(i32 noundef %3816) #12
  %3818 = load i32, ptr %1276, align 4, !tbaa !5
  %3819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3810, ptr noundef nonnull %.str.5.sink1770, i32 noundef %3811, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %3813, ptr noundef %3815, ptr noundef %3817, i32 noundef %3818) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3820:                                             ; preds = %3793
  %3821 = add nsw i32 %3794, 2
  store i32 %3821, ptr @test_count, align 4, !tbaa !5
  %3822 = load i32, ptr %3631, align 8
  %3823 = and i32 %3822, 8
  %.not408 = icmp eq i32 %3823, 0
  br i1 %.not408, label %3824, label %3846

3824:                                             ; preds = %3820
  %3825 = load i32, ptr %1276, align 4, !tbaa !5
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = call i32 @s2n_print_stacktrace(ptr noundef %3826) #12
  %3828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3829 = trunc nuw i8 %3828 to i1
  br i1 %3829, label %3830, label %3834

3830:                                             ; preds = %3824
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = call i32 @fileno(ptr noundef %3831) #12
  %3833 = call i32 @isatty(i32 noundef %3832) #12
  %.not409 = icmp eq i32 %3833, 0
  br i1 %.not409, label %3834, label %3835

3834:                                             ; preds = %3830, %3824
  br label %3835

3835:                                             ; preds = %3830, %3834
  %.str.5.sink1779 = phi ptr [ @.str.5, %3834 ], [ @.str.2, %3830 ]
  store i32 %3825, ptr %1276, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = load i32, ptr %1222, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror(i32 noundef %3838, ptr noundef nonnull @.str.4) #12
  %3840 = load i32, ptr %1222, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror_debug(i32 noundef %3840, ptr noundef nonnull @.str.4) #12
  %3842 = load i32, ptr %1276, align 4, !tbaa !5
  %3843 = call ptr @strerror(i32 noundef %3842) #12
  %3844 = load i32, ptr %1276, align 4, !tbaa !5
  %3845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3836, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3837, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %3839, ptr noundef %3841, ptr noundef %3843, i32 noundef %3844) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3846:                                             ; preds = %3820
  %3847 = add nsw i32 %3794, 3
  store i32 %3847, ptr @test_count, align 4, !tbaa !5
  %3848 = load i8, ptr %3630, align 4, !tbaa !15
  %3849 = icmp eq i8 %3848, 30
  br i1 %3849, label %3872, label %3850

3850:                                             ; preds = %3846
  %3851 = load i32, ptr %1276, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = call i32 @s2n_print_stacktrace(ptr noundef %3852) #12
  %3854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3855 = trunc nuw i8 %3854 to i1
  br i1 %3855, label %3856, label %3860

3856:                                             ; preds = %3850
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @fileno(ptr noundef %3857) #12
  %3859 = call i32 @isatty(i32 noundef %3858) #12
  %.not410 = icmp eq i32 %3859, 0
  br i1 %.not410, label %3860, label %3861

3860:                                             ; preds = %3856, %3850
  br label %3861

3861:                                             ; preds = %3856, %3860
  %.str.5.sink1788 = phi ptr [ @.str.5, %3860 ], [ @.str.2, %3856 ]
  store i32 %3851, ptr %1276, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = load i32, ptr %1222, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror(i32 noundef %3864, ptr noundef nonnull @.str.4) #12
  %3866 = load i32, ptr %1222, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror_debug(i32 noundef %3866, ptr noundef nonnull @.str.4) #12
  %3868 = load i32, ptr %1276, align 4, !tbaa !5
  %3869 = call ptr @strerror(i32 noundef %3868) #12
  %3870 = load i32, ptr %1276, align 4, !tbaa !5
  %3871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3862, ptr noundef nonnull %.str.5.sink1788, i32 noundef %3863, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %3865, ptr noundef %3867, ptr noundef %3869, i32 noundef %3870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3872:                                             ; preds = %3846
  %3873 = add nsw i32 %3794, 4
  store i32 %3873, ptr @test_count, align 4, !tbaa !5
  %3874 = load i8, ptr %3712, align 4, !tbaa !15
  %3875 = icmp eq i8 %3874, 30
  br i1 %3875, label %3898, label %3876

3876:                                             ; preds = %3872
  %3877 = load i32, ptr %1276, align 4, !tbaa !5
  %3878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3879 = call i32 @s2n_print_stacktrace(ptr noundef %3878) #12
  %3880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3881 = trunc nuw i8 %3880 to i1
  br i1 %3881, label %3882, label %3886

3882:                                             ; preds = %3876
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = call i32 @fileno(ptr noundef %3883) #12
  %3885 = call i32 @isatty(i32 noundef %3884) #12
  %.not411 = icmp eq i32 %3885, 0
  br i1 %.not411, label %3886, label %3887

3886:                                             ; preds = %3882, %3876
  br label %3887

3887:                                             ; preds = %3882, %3886
  %.str.5.sink1797 = phi ptr [ @.str.5, %3886 ], [ @.str.2, %3882 ]
  store i32 %3877, ptr %1276, align 4, !tbaa !5
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = load i32, ptr @test_count, align 4, !tbaa !5
  %3890 = load i32, ptr %1222, align 4, !tbaa !5
  %3891 = call ptr @s2n_strerror(i32 noundef %3890, ptr noundef nonnull @.str.4) #12
  %3892 = load i32, ptr %1222, align 4, !tbaa !5
  %3893 = call ptr @s2n_strerror_debug(i32 noundef %3892, ptr noundef nonnull @.str.4) #12
  %3894 = load i32, ptr %1276, align 4, !tbaa !5
  %3895 = call ptr @strerror(i32 noundef %3894) #12
  %3896 = load i32, ptr %1276, align 4, !tbaa !5
  %3897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3888, ptr noundef nonnull %.str.5.sink1797, i32 noundef %3889, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %3891, ptr noundef %3893, ptr noundef %3895, i32 noundef %3896) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3898:                                             ; preds = %3872
  %3899 = call i32 @s2n_io_pair_close(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #12
  %3900 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #12
  %3901 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  br label %3902

3902:                                             ; preds = %3898, %3544
  %3903 = call i32 @s2n_cleanup() #12
  %3904 = icmp eq i32 %3903, -1
  br i1 %3904, label %3905, label %3927

3905:                                             ; preds = %3902
  %3906 = load i32, ptr %1276, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = call i32 @s2n_print_stacktrace(ptr noundef %3907) #12
  %3909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3910 = trunc nuw i8 %3909 to i1
  br i1 %3910, label %3911, label %3915

3911:                                             ; preds = %3905
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = call i32 @fileno(ptr noundef %3912) #12
  %3914 = call i32 @isatty(i32 noundef %3913) #12
  %.not416 = icmp eq i32 %3914, 0
  br i1 %.not416, label %3915, label %3916

3915:                                             ; preds = %3911, %3905
  br label %3916

3916:                                             ; preds = %3911, %3915
  %.str.5.sink1806 = phi ptr [ @.str.5, %3915 ], [ @.str.2, %3911 ]
  store i32 %3906, ptr %1276, align 4, !tbaa !5
  %3917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3918 = load i32, ptr @test_count, align 4, !tbaa !5
  %3919 = load i32, ptr %1222, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror(i32 noundef %3919, ptr noundef nonnull @.str.4) #12
  %3921 = load i32, ptr %1222, align 4, !tbaa !5
  %3922 = call ptr @s2n_strerror_debug(i32 noundef %3921, ptr noundef nonnull @.str.4) #12
  %3923 = load i32, ptr %1276, align 4, !tbaa !5
  %3924 = call ptr @strerror(i32 noundef %3923) #12
  %3925 = load i32, ptr %1276, align 4, !tbaa !5
  %3926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3917, ptr noundef nonnull %.str.5.sink1806, i32 noundef %3918, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %3920, ptr noundef %3922, ptr noundef %3924, i32 noundef %3925) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3927:                                             ; preds = %3902
  %3928 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3929 = icmp eq i32 %3928, -1
  br i1 %3929, label %3930, label %3952

3930:                                             ; preds = %3927
  %3931 = load i32, ptr %1276, align 4, !tbaa !5
  %3932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3933 = call i32 @s2n_print_stacktrace(ptr noundef %3932) #12
  %3934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3935 = trunc nuw i8 %3934 to i1
  br i1 %3935, label %3936, label %3940

3936:                                             ; preds = %3930
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = call i32 @fileno(ptr noundef %3937) #12
  %3939 = call i32 @isatty(i32 noundef %3938) #12
  %.not415 = icmp eq i32 %3939, 0
  br i1 %.not415, label %3940, label %3941

3940:                                             ; preds = %3936, %3930
  br label %3941

3941:                                             ; preds = %3936, %3940
  %.str.5.sink1815 = phi ptr [ @.str.5, %3940 ], [ @.str.2, %3936 ]
  store i32 %3931, ptr %1276, align 4, !tbaa !5
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = load i32, ptr %1222, align 4, !tbaa !5
  %3945 = call ptr @s2n_strerror(i32 noundef %3944, ptr noundef nonnull @.str.4) #12
  %3946 = load i32, ptr %1222, align 4, !tbaa !5
  %3947 = call ptr @s2n_strerror_debug(i32 noundef %3946, ptr noundef nonnull @.str.4) #12
  %3948 = load i32, ptr %1276, align 4, !tbaa !5
  %3949 = call ptr @strerror(i32 noundef %3948) #12
  %3950 = load i32, ptr %1276, align 4, !tbaa !5
  %3951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3942, ptr noundef nonnull %.str.5.sink1815, i32 noundef %3943, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %3945, ptr noundef %3947, ptr noundef %3949, i32 noundef %3950) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3952:                                             ; preds = %3927
  %3953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3954 = trunc nuw i8 %3953 to i1
  br i1 %3954, label %3955, label %3966

3955:                                             ; preds = %3952
  %3956 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3957 = call i32 @fileno(ptr noundef %3956) #12
  %3958 = call i32 @isatty(i32 noundef %3957) #12
  %.not412 = icmp eq i32 %3958, 0
  br i1 %.not412, label %3966, label %3959

3959:                                             ; preds = %3955
  %3960 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not414 = icmp eq i32 %3960, 0
  %3961 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not414, label %3964, label %3962

3962:                                             ; preds = %3959
  %3963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3961, ptr noundef nonnull @.str.90, i32 noundef %3960) #12
  br label %3973

3964:                                             ; preds = %3959
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3961, ptr noundef nonnull @.str.91) #12
  br label %3973

3966:                                             ; preds = %3955, %3952
  %3967 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not413 = icmp eq i32 %3967, 0
  %3968 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not413, label %3971, label %3969

3969:                                             ; preds = %3966
  %3970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef nonnull @.str.92, i32 noundef %3967) #12
  br label %3973

3971:                                             ; preds = %3966
  %3972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3968, ptr noundef nonnull @.str.93) #12
  br label %3973

3973:                                             ; preds = %3969, %3971, %3962, %3964
  call void @llvm.lifetime.end.p0(i64 19, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 19, ptr nonnull %5) #12
  %3974 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  %3975 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  ret i32 0
}

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #1

declare i32 @s2n_init() local_unnamed_addr #1

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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare ptr @s2n_config_new() local_unnamed_addr #1

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #1

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #1

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #1

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

declare void @s2n_debug_info_reset() local_unnamed_addr #1

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

declare i32 @s2n_stuffer_rewrite(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #1

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

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_server_hello_send(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_server_hello_recv(ptr noundef) local_unnamed_addr #1

declare zeroext i1 @s2n_hash_is_available(i32 noundef) local_unnamed_addr #1

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #1

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #1

declare i32 @s2n_cleanup() local_unnamed_addr #1

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

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

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

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


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