; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_hello_recv_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_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_psk = type { i32, %struct.s2n_blob, %struct.s2n_blob, i32, i32, i64, %struct.s2n_blob, %struct.s2n_early_data_config, i64 }
%struct.s2n_early_data_config = type { i32, i8, ptr, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }

@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 [85 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 [61 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [81 x i8], align 1
@__const.main.sslv2_client_hello = external hidden unnamed_addr constant [176 x i8], align 16
@.str.36 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.sslv2_client_hello.75 = external hidden unnamed_addr constant [176 x i8], align 16
@.str.76 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [323 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [105 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.89 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [76 x i8], align 1
@__const.main.sslv2_client_hello_bytes = external hidden unnamed_addr constant [181 x i8], align 16
@.str.91 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %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 i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca 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 i32, align 4
  %42 = alloca [176 x i8], align 16
  %43 = alloca %struct.s2n_blob, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %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 i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i8, align 1
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca [2 x i8], align 1
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %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 i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca [2 x i8], align 1
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca [2 x i8], align 1
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  %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 [176 x i8], align 16
  %179 = alloca %struct.s2n_blob, align 8
  %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 i64, align 8
  %186 = alloca ptr, align 8
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i32, align 4
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, 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 i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca %struct.s2n_psk, align 8
  %214 = alloca i32, align 4
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca %struct.s2n_blob, align 8
  %220 = alloca %struct.s2n_result, align 4
  %221 = alloca i32, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca i32, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca ptr, align 8
  %234 = alloca i32, align 4
  %235 = alloca %struct.s2n_stuffer, align 8
  %236 = alloca [181 x i8], align 16
  %237 = alloca i32, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i64, align 8
  %241 = alloca %struct.s2n_result, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca i32, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca %struct.s2n_result, align 4
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca %struct.s2n_result, align 4
  %253 = alloca i32, align 4
  %254 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #11
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #11
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #11
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  store ptr null, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  store ptr null, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #11
  store ptr null, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  store ptr null, ptr %16, align 8, !tbaa !9
  br label %255

255:                                              ; preds = %2
  br label %256

256:                                              ; preds = %255
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %257 = load ptr, ptr @stdout, align 8, !tbaa !9
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef @.str, ptr noundef @.str.1) #11
  %259 = load ptr, ptr @stdout, align 8, !tbaa !9
  %260 = call i32 @fflush(ptr noundef %259)
  br label %261

261:                                              ; preds = %256
  %262 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %263 = icmp eq i32 %262, -1
  br i1 %263, label %264, label %317

264:                                              ; preds = %261
  br label %265

265:                                              ; preds = %264
  br label %266

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

273:                                              ; preds = %266
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @fileno(ptr noundef %274) #11
  %276 = call i32 @isatty(i32 noundef %275) #11
  %277 = icmp ne i32 %276, 0
  br i1 %277, label %278, label %295

278:                                              ; preds = %273
  %279 = load i32, ptr %17, align 4, !tbaa !5
  %280 = call ptr @__errno_location() #12
  store i32 %279, ptr %280, 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 @.str.4)
  %286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror_debug(i32 noundef %287, ptr noundef @.str.4)
  %289 = call ptr @__errno_location() #12
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call ptr @strerror(i32 noundef %290) #11
  %292 = call ptr @__errno_location() #12
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef @.str.2, i32 noundef %282, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 48, ptr noundef %285, ptr noundef %288, ptr noundef %291, i32 noundef %293) #11
  br label %312

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

312:                                              ; preds = %295, %278
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %313

313:                                              ; preds = %312
  br label %314

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

315:                                              ; No predecessors!
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316, %261
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  br label %320

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

325:                                              ; preds = %320
  br label %326

326:                                              ; preds = %325
  br label %327

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

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

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

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

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

374:                                              ; preds = %373
  br label %375

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

376:                                              ; No predecessors!
  br label %377

377:                                              ; preds = %376
  br label %378

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

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  br label %381

381:                                              ; preds = %380
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382
  %384 = call i32 @s2n_init()
  %385 = icmp eq i32 %384, -1
  br i1 %385, label %386, label %439

386:                                              ; preds = %383
  br label %387

387:                                              ; preds = %386
  br label %388

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

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

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

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

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

435:                                              ; preds = %434
  br label %436

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

437:                                              ; No predecessors!
  br label %438

438:                                              ; preds = %437
  br label %439

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

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  br label %444

444:                                              ; preds = %443
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = call i32 (...) @s2n_disable_tls13_in_test()
  %448 = icmp eq i32 %447, -1
  br i1 %448, label %449, label %502

449:                                              ; preds = %444
  br label %450

450:                                              ; preds = %449
  br label %451

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

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

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

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

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

498:                                              ; preds = %497
  br label %499

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

500:                                              ; No predecessors!
  br label %501

501:                                              ; preds = %500
  br label %502

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

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %508, ptr %13, align 8, !tbaa !9
  %509 = icmp eq ptr %508, null
  br i1 %509, label %510, label %563

510:                                              ; preds = %505
  br label %511

511:                                              ; preds = %510
  br label %512

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

519:                                              ; preds = %512
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @fileno(ptr noundef %520) #11
  %522 = call i32 @isatty(i32 noundef %521) #11
  %523 = icmp ne i32 %522, 0
  br i1 %523, label %524, label %541

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

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

558:                                              ; preds = %541, %524
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %559

559:                                              ; preds = %558
  br label %560

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

561:                                              ; No predecessors!
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562, %505
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = add nsw i32 %567, 1
  store i32 %568, ptr @test_count, align 4, !tbaa !5
  %569 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %569, ptr %15, align 8, !tbaa !9
  %570 = icmp eq ptr %569, null
  br i1 %570, label %571, label %624

571:                                              ; preds = %566
  br label %572

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %574 = call ptr @__errno_location() #12
  %575 = load i32, ptr %574, align 4, !tbaa !5
  store i32 %575, ptr %22, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @s2n_print_stacktrace(ptr noundef %576)
  %578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %579 = trunc i8 %578 to i1
  br i1 %579, label %580, label %602

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

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

602:                                              ; preds = %580, %573
  %603 = load i32, ptr %22, align 4, !tbaa !5
  %604 = call ptr @__errno_location() #12
  store i32 %603, ptr %604, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror(i32 noundef %608, ptr noundef @.str.4)
  %610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror_debug(i32 noundef %611, ptr noundef @.str.4)
  %613 = call ptr @__errno_location() #12
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @strerror(i32 noundef %614) #11
  %616 = call ptr @__errno_location() #12
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %605, ptr noundef @.str.5, i32 noundef %606, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 52, ptr noundef %609, ptr noundef %612, ptr noundef %615, i32 noundef %617) #11
  br label %619

619:                                              ; preds = %602, %585
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %620

620:                                              ; preds = %619
  br label %621

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

622:                                              ; No predecessors!
  br label %623

623:                                              ; preds = %622
  br label %624

624:                                              ; preds = %623, %566
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  br label %627

627:                                              ; preds = %626
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr @test_count, align 4, !tbaa !5
  %630 = call ptr @s2n_config_new()
  store ptr %630, ptr %9, align 8, !tbaa !9
  %631 = icmp eq ptr %630, null
  br i1 %631, label %632, label %685

632:                                              ; preds = %627
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %635 = call ptr @__errno_location() #12
  %636 = load i32, ptr %635, align 4, !tbaa !5
  store i32 %636, ptr %23, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @s2n_print_stacktrace(ptr noundef %637)
  %639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %640 = trunc i8 %639 to i1
  br i1 %640, label %641, label %663

641:                                              ; preds = %634
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @fileno(ptr noundef %642) #11
  %644 = call i32 @isatty(i32 noundef %643) #11
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %646, label %663

646:                                              ; preds = %641
  %647 = load i32, ptr %23, align 4, !tbaa !5
  %648 = call ptr @__errno_location() #12
  store i32 %647, ptr %648, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef @.str.4)
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef @.str.4)
  %657 = call ptr @__errno_location() #12
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #11
  %660 = call ptr @__errno_location() #12
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef @.str.2, i32 noundef %650, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 53, ptr noundef %653, ptr noundef %656, ptr noundef %659, i32 noundef %661) #11
  br label %680

663:                                              ; preds = %641, %634
  %664 = load i32, ptr %23, align 4, !tbaa !5
  %665 = call ptr @__errno_location() #12
  store i32 %664, ptr %665, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef @.str.4)
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror_debug(i32 noundef %672, ptr noundef @.str.4)
  %674 = call ptr @__errno_location() #12
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #11
  %677 = call ptr @__errno_location() #12
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef @.str.5, i32 noundef %667, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 53, ptr noundef %670, ptr noundef %673, ptr noundef %676, i32 noundef %678) #11
  br label %680

680:                                              ; preds = %663, %646
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %681

681:                                              ; preds = %680
  br label %682

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

683:                                              ; No predecessors!
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684, %627
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %691, ptr %11, align 8, !tbaa !9
  %692 = icmp eq ptr %691, null
  br i1 %692, label %693, label %746

693:                                              ; preds = %688
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %696 = call ptr @__errno_location() #12
  %697 = load i32, ptr %696, align 4, !tbaa !5
  store i32 %697, ptr %24, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @s2n_print_stacktrace(ptr noundef %698)
  %700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %701 = trunc i8 %700 to i1
  br i1 %701, label %702, label %724

702:                                              ; preds = %695
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @fileno(ptr noundef %703) #11
  %705 = call i32 @isatty(i32 noundef %704) #11
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %724

707:                                              ; preds = %702
  %708 = load i32, ptr %24, align 4, !tbaa !5
  %709 = call ptr @__errno_location() #12
  store i32 %708, ptr %709, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef @.str.4)
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef @.str.4)
  %718 = call ptr @__errno_location() #12
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #11
  %721 = call ptr @__errno_location() #12
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef @.str.2, i32 noundef %711, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 54, ptr noundef %714, ptr noundef %717, ptr noundef %720, i32 noundef %722) #11
  br label %741

724:                                              ; preds = %702, %695
  %725 = load i32, ptr %24, align 4, !tbaa !5
  %726 = call ptr @__errno_location() #12
  store i32 %725, ptr %726, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror(i32 noundef %730, ptr noundef @.str.4)
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror_debug(i32 noundef %733, ptr noundef @.str.4)
  %735 = call ptr @__errno_location() #12
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #11
  %738 = call ptr @__errno_location() #12
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef @.str.5, i32 noundef %728, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 54, ptr noundef %731, ptr noundef %734, ptr noundef %737, i32 noundef %739) #11
  br label %741

741:                                              ; preds = %724, %707
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %742

742:                                              ; preds = %741
  br label %743

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

744:                                              ; No predecessors!
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745, %688
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = load ptr, ptr %9, align 8, !tbaa !9
  %753 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %752, ptr noundef @.str.13)
  %754 = icmp eq i32 %753, -1
  br i1 %754, label %755, label %808

755:                                              ; preds = %749
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %758 = call ptr @__errno_location() #12
  %759 = load i32, ptr %758, align 4, !tbaa !5
  store i32 %759, ptr %25, align 4, !tbaa !5
  %760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %761 = call i32 @s2n_print_stacktrace(ptr noundef %760)
  %762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %763 = trunc i8 %762 to i1
  br i1 %763, label %764, label %786

764:                                              ; preds = %757
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = call i32 @fileno(ptr noundef %765) #11
  %767 = call i32 @isatty(i32 noundef %766) #11
  %768 = icmp ne i32 %767, 0
  br i1 %768, label %769, label %786

769:                                              ; preds = %764
  %770 = load i32, ptr %25, align 4, !tbaa !5
  %771 = call ptr @__errno_location() #12
  store i32 %770, ptr %771, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef @.str.4)
  %777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef @.str.4)
  %780 = call ptr @__errno_location() #12
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @strerror(i32 noundef %781) #11
  %783 = call ptr @__errno_location() #12
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef @.str.2, i32 noundef %773, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 55, ptr noundef %776, ptr noundef %779, ptr noundef %782, i32 noundef %784) #11
  br label %803

786:                                              ; preds = %764, %757
  %787 = load i32, ptr %25, align 4, !tbaa !5
  %788 = call ptr @__errno_location() #12
  store i32 %787, ptr %788, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %792, ptr noundef @.str.4)
  %794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @s2n_strerror_debug(i32 noundef %795, ptr noundef @.str.4)
  %797 = call ptr @__errno_location() #12
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call ptr @strerror(i32 noundef %798) #11
  %800 = call ptr @__errno_location() #12
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef @.str.5, i32 noundef %790, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 55, ptr noundef %793, ptr noundef %796, ptr noundef %799, i32 noundef %801) #11
  br label %803

803:                                              ; preds = %786, %769
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %804

804:                                              ; preds = %803
  br label %805

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

806:                                              ; No predecessors!
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807, %749
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr @test_count, align 4, !tbaa !5
  %814 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %814, ptr %14, align 8, !tbaa !9
  %815 = icmp eq ptr %814, null
  br i1 %815, label %816, label %869

816:                                              ; preds = %811
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %819 = call ptr @__errno_location() #12
  %820 = load i32, ptr %819, align 4, !tbaa !5
  store i32 %820, ptr %26, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @s2n_print_stacktrace(ptr noundef %821)
  %823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %824 = trunc i8 %823 to i1
  br i1 %824, label %825, label %847

825:                                              ; preds = %818
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = call i32 @fileno(ptr noundef %826) #11
  %828 = call i32 @isatty(i32 noundef %827) #11
  %829 = icmp ne i32 %828, 0
  br i1 %829, label %830, label %847

830:                                              ; preds = %825
  %831 = load i32, ptr %26, align 4, !tbaa !5
  %832 = call ptr @__errno_location() #12
  store i32 %831, ptr %832, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = load i32, ptr @test_count, align 4, !tbaa !5
  %835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call ptr @s2n_strerror(i32 noundef %836, ptr noundef @.str.4)
  %838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror_debug(i32 noundef %839, ptr noundef @.str.4)
  %841 = call ptr @__errno_location() #12
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @strerror(i32 noundef %842) #11
  %844 = call ptr @__errno_location() #12
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %833, ptr noundef @.str.2, i32 noundef %834, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 57, ptr noundef %837, ptr noundef %840, ptr noundef %843, i32 noundef %845) #11
  br label %864

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

864:                                              ; preds = %847, %830
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %865

865:                                              ; preds = %864
  br label %866

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

867:                                              ; No predecessors!
  br label %868

868:                                              ; preds = %867
  br label %869

869:                                              ; preds = %868, %811
  br label %870

870:                                              ; preds = %869
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = call noalias ptr @malloc(i64 noundef 12000) #14
  store ptr %875, ptr %16, align 8, !tbaa !9
  %876 = icmp eq ptr %875, null
  br i1 %876, label %877, label %930

877:                                              ; preds = %872
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %880 = call ptr @__errno_location() #12
  %881 = load i32, ptr %880, align 4, !tbaa !5
  store i32 %881, ptr %27, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @s2n_print_stacktrace(ptr noundef %882)
  %884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %885 = trunc i8 %884 to i1
  br i1 %885, label %886, label %908

886:                                              ; preds = %879
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @fileno(ptr noundef %887) #11
  %889 = call i32 @isatty(i32 noundef %888) #11
  %890 = icmp ne i32 %889, 0
  br i1 %890, label %891, label %908

891:                                              ; preds = %886
  %892 = load i32, ptr %27, align 4, !tbaa !5
  %893 = call ptr @__errno_location() #12
  store i32 %892, ptr %893, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror(i32 noundef %897, ptr noundef @.str.4)
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef @.str.4)
  %902 = call ptr @__errno_location() #12
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @strerror(i32 noundef %903) #11
  %905 = call ptr @__errno_location() #12
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef @.str.2, i32 noundef %895, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 58, ptr noundef %898, ptr noundef %901, ptr noundef %904, i32 noundef %906) #11
  br label %925

908:                                              ; preds = %886, %879
  %909 = load i32, ptr %27, align 4, !tbaa !5
  %910 = call ptr @__errno_location() #12
  store i32 %909, ptr %910, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef @.str.4)
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef @.str.4)
  %919 = call ptr @__errno_location() #12
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #11
  %922 = call ptr @__errno_location() #12
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef @.str.5, i32 noundef %912, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 58, ptr noundef %915, ptr noundef %918, ptr noundef %921, i32 noundef %923) #11
  br label %925

925:                                              ; preds = %908, %891
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %926

926:                                              ; preds = %925
  br label %927

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

928:                                              ; No predecessors!
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929, %872
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @test_count, align 4, !tbaa !5
  %936 = call ptr @s2n_config_new()
  store ptr %936, ptr %10, align 8, !tbaa !9
  %937 = icmp eq ptr %936, null
  br i1 %937, label %938, label %991

938:                                              ; preds = %933
  br label %939

939:                                              ; preds = %938
  br label %940

940:                                              ; preds = %939
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %941 = call ptr @__errno_location() #12
  %942 = load i32, ptr %941, align 4, !tbaa !5
  store i32 %942, ptr %28, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943)
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc i8 %945 to i1
  br i1 %946, label %947, label %969

947:                                              ; preds = %940
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #11
  %950 = call i32 @isatty(i32 noundef %949) #11
  %951 = icmp ne i32 %950, 0
  br i1 %951, label %952, label %969

952:                                              ; preds = %947
  %953 = load i32, ptr %28, align 4, !tbaa !5
  %954 = call ptr @__errno_location() #12
  store i32 %953, ptr %954, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror(i32 noundef %958, ptr noundef @.str.4)
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror_debug(i32 noundef %961, ptr noundef @.str.4)
  %963 = call ptr @__errno_location() #12
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @strerror(i32 noundef %964) #11
  %966 = call ptr @__errno_location() #12
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef @.str.2, i32 noundef %956, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 59, ptr noundef %959, ptr noundef %962, ptr noundef %965, i32 noundef %967) #11
  br label %986

969:                                              ; preds = %947, %940
  %970 = load i32, ptr %28, align 4, !tbaa !5
  %971 = call ptr @__errno_location() #12
  store i32 %970, ptr %971, align 4, !tbaa !5
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror(i32 noundef %975, ptr noundef @.str.4)
  %977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef @.str.4)
  %980 = call ptr @__errno_location() #12
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @strerror(i32 noundef %981) #11
  %983 = call ptr @__errno_location() #12
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %972, ptr noundef @.str.5, i32 noundef %973, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 59, ptr noundef %976, ptr noundef %979, ptr noundef %982, i32 noundef %984) #11
  br label %986

986:                                              ; preds = %969, %952
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %987

987:                                              ; preds = %986
  br label %988

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

989:                                              ; No predecessors!
  br label %990

990:                                              ; preds = %989
  br label %991

991:                                              ; preds = %990, %933
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = add nsw i32 %995, 1
  store i32 %996, ptr @test_count, align 4, !tbaa !5
  %997 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %997, ptr %12, align 8, !tbaa !9
  %998 = icmp eq ptr %997, null
  br i1 %998, label %999, label %1052

999:                                              ; preds = %994
  br label %1000

1000:                                             ; preds = %999
  br label %1001

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

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

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

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

1047:                                             ; preds = %1030, %1013
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

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

1050:                                             ; No predecessors!
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

1052:                                             ; preds = %1051, %994
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = load ptr, ptr %10, align 8, !tbaa !9
  %1059 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1058, ptr noundef @.str.19)
  %1060 = icmp eq i32 %1059, -1
  br i1 %1060, label %1061, label %1114

1061:                                             ; preds = %1055
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

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

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

1075:                                             ; preds = %1070
  %1076 = load i32, ptr %30, align 4, !tbaa !5
  %1077 = call ptr @__errno_location() #12
  store i32 %1076, ptr %1077, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call ptr @__errno_location() #12
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @strerror(i32 noundef %1087) #11
  %1089 = call ptr @__errno_location() #12
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef @.str.2, i32 noundef %1079, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1082, ptr noundef %1085, ptr noundef %1088, i32 noundef %1090) #11
  br label %1109

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

1109:                                             ; preds = %1092, %1075
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

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

1112:                                             ; No predecessors!
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

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

1115:                                             ; preds = %1114
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr @test_count, align 4, !tbaa !5
  %1120 = load ptr, ptr %13, align 8, !tbaa !9
  %1121 = call i32 @s2n_read_test_pem(ptr noundef @.str.21, ptr noundef %1120, i64 noundef 12000)
  %1122 = icmp eq i32 %1121, -1
  br i1 %1122, label %1123, label %1176

1123:                                             ; preds = %1117
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

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

1132:                                             ; preds = %1125
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @fileno(ptr noundef %1133) #11
  %1135 = call i32 @isatty(i32 noundef %1134) #11
  %1136 = icmp ne i32 %1135, 0
  br i1 %1136, label %1137, label %1154

1137:                                             ; preds = %1132
  %1138 = load i32, ptr %31, align 4, !tbaa !5
  %1139 = call ptr @__errno_location() #12
  store i32 %1138, ptr %1139, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1143 = load i32, ptr %1142, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror(i32 noundef %1143, ptr noundef @.str.4)
  %1145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef @.str.4)
  %1148 = call ptr @__errno_location() #12
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call ptr @strerror(i32 noundef %1149) #11
  %1151 = call ptr @__errno_location() #12
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1140, ptr noundef @.str.2, i32 noundef %1141, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1144, ptr noundef %1147, ptr noundef %1150, i32 noundef %1152) #11
  br label %1171

1154:                                             ; preds = %1132, %1125
  %1155 = load i32, ptr %31, align 4, !tbaa !5
  %1156 = call ptr @__errno_location() #12
  store i32 %1155, ptr %1156, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = load i32, ptr @test_count, align 4, !tbaa !5
  %1159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef @.str.4)
  %1162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1163 = load i32, ptr %1162, align 4, !tbaa !5
  %1164 = call ptr @s2n_strerror_debug(i32 noundef %1163, ptr noundef @.str.4)
  %1165 = call ptr @__errno_location() #12
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #11
  %1168 = call ptr @__errno_location() #12
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1157, ptr noundef @.str.5, i32 noundef %1158, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1161, ptr noundef %1164, ptr noundef %1167, i32 noundef %1169) #11
  br label %1171

1171:                                             ; preds = %1154, %1137
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

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

1174:                                             ; No predecessors!
  br label %1175

1175:                                             ; preds = %1174
  br label %1176

1176:                                             ; preds = %1175, %1117
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  br label %1179

1179:                                             ; preds = %1178
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = add nsw i32 %1180, 1
  store i32 %1181, ptr @test_count, align 4, !tbaa !5
  %1182 = load ptr, ptr %15, align 8, !tbaa !9
  %1183 = call i32 @s2n_read_test_pem(ptr noundef @.str.23, ptr noundef %1182, i64 noundef 12000)
  %1184 = icmp eq i32 %1183, -1
  br i1 %1184, label %1185, label %1238

1185:                                             ; preds = %1179
  br label %1186

1186:                                             ; preds = %1185
  br label %1187

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

1194:                                             ; preds = %1187
  %1195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1196 = call i32 @fileno(ptr noundef %1195) #11
  %1197 = call i32 @isatty(i32 noundef %1196) #11
  %1198 = icmp ne i32 %1197, 0
  br i1 %1198, label %1199, label %1216

1199:                                             ; preds = %1194
  %1200 = load i32, ptr %32, align 4, !tbaa !5
  %1201 = call ptr @__errno_location() #12
  store i32 %1200, ptr %1201, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror(i32 noundef %1205, ptr noundef @.str.4)
  %1207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror_debug(i32 noundef %1208, ptr noundef @.str.4)
  %1210 = call ptr @__errno_location() #12
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @strerror(i32 noundef %1211) #11
  %1213 = call ptr @__errno_location() #12
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1202, ptr noundef @.str.2, i32 noundef %1203, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 64, ptr noundef %1206, ptr noundef %1209, ptr noundef %1212, i32 noundef %1214) #11
  br label %1233

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

1233:                                             ; preds = %1216, %1199
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

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

1236:                                             ; No predecessors!
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237, %1179
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240
  %1242 = load i32, ptr @test_count, align 4, !tbaa !5
  %1243 = add nsw i32 %1242, 1
  store i32 %1243, ptr @test_count, align 4, !tbaa !5
  %1244 = load ptr, ptr %11, align 8, !tbaa !9
  %1245 = load ptr, ptr %13, align 8, !tbaa !9
  %1246 = load ptr, ptr %15, align 8, !tbaa !9
  %1247 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1244, ptr noundef %1245, ptr noundef %1246)
  %1248 = icmp eq i32 %1247, -1
  br i1 %1248, label %1249, label %1302

1249:                                             ; preds = %1241
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

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

1258:                                             ; preds = %1251
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = call i32 @fileno(ptr noundef %1259) #11
  %1261 = call i32 @isatty(i32 noundef %1260) #11
  %1262 = icmp ne i32 %1261, 0
  br i1 %1262, label %1263, label %1280

1263:                                             ; preds = %1258
  %1264 = load i32, ptr %33, align 4, !tbaa !5
  %1265 = call ptr @__errno_location() #12
  store i32 %1264, ptr %1265, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror(i32 noundef %1269, ptr noundef @.str.4)
  %1271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef @.str.4)
  %1274 = call ptr @__errno_location() #12
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @strerror(i32 noundef %1275) #11
  %1277 = call ptr @__errno_location() #12
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef @.str.2, i32 noundef %1267, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1270, ptr noundef %1273, ptr noundef %1276, i32 noundef %1278) #11
  br label %1297

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

1297:                                             ; preds = %1280, %1263
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

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

1300:                                             ; No predecessors!
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301, %1241
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr @test_count, align 4, !tbaa !5
  %1308 = load ptr, ptr %9, align 8, !tbaa !9
  %1309 = load ptr, ptr %11, align 8, !tbaa !9
  %1310 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1308, ptr noundef %1309)
  %1311 = icmp eq i32 %1310, -1
  br i1 %1311, label %1312, label %1365

1312:                                             ; preds = %1305
  br label %1313

1313:                                             ; preds = %1312
  br label %1314

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

1321:                                             ; preds = %1314
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @fileno(ptr noundef %1322) #11
  %1324 = call i32 @isatty(i32 noundef %1323) #11
  %1325 = icmp ne i32 %1324, 0
  br i1 %1325, label %1326, label %1343

1326:                                             ; preds = %1321
  %1327 = load i32, ptr %34, align 4, !tbaa !5
  %1328 = call ptr @__errno_location() #12
  store i32 %1327, ptr %1328, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror(i32 noundef %1332, ptr noundef @.str.4)
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef @.str.4)
  %1337 = call ptr @__errno_location() #12
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #11
  %1340 = call ptr @__errno_location() #12
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1329, ptr noundef @.str.2, i32 noundef %1330, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1333, ptr noundef %1336, ptr noundef %1339, i32 noundef %1341) #11
  br label %1360

1343:                                             ; preds = %1321, %1314
  %1344 = load i32, ptr %34, align 4, !tbaa !5
  %1345 = call ptr @__errno_location() #12
  store i32 %1344, ptr %1345, align 4, !tbaa !5
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef @.str.4)
  %1351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = call ptr @s2n_strerror_debug(i32 noundef %1352, ptr noundef @.str.4)
  %1354 = call ptr @__errno_location() #12
  %1355 = load i32, ptr %1354, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #11
  %1357 = call ptr @__errno_location() #12
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1346, ptr noundef @.str.5, i32 noundef %1347, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1350, ptr noundef %1353, ptr noundef %1356, i32 noundef %1358) #11
  br label %1360

1360:                                             ; preds = %1343, %1326
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

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

1363:                                             ; No predecessors!
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364, %1305
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  br label %1368

1368:                                             ; preds = %1367
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = add nsw i32 %1369, 1
  store i32 %1370, ptr @test_count, align 4, !tbaa !5
  %1371 = load ptr, ptr %14, align 8, !tbaa !9
  %1372 = call i32 @s2n_read_test_pem(ptr noundef @.str.27, ptr noundef %1371, i64 noundef 12000)
  %1373 = icmp eq i32 %1372, -1
  br i1 %1373, label %1374, label %1427

1374:                                             ; preds = %1368
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1377 = call ptr @__errno_location() #12
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  store i32 %1378, ptr %35, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379)
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc i8 %1381 to i1
  br i1 %1382, label %1383, label %1405

1383:                                             ; preds = %1376
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @fileno(ptr noundef %1384) #11
  %1386 = call i32 @isatty(i32 noundef %1385) #11
  %1387 = icmp ne i32 %1386, 0
  br i1 %1387, label %1388, label %1405

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

1405:                                             ; preds = %1383, %1376
  %1406 = load i32, ptr %35, align 4, !tbaa !5
  %1407 = call ptr @__errno_location() #12
  store i32 %1406, ptr %1407, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef @.str.4)
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef @.str.4)
  %1416 = call ptr @__errno_location() #12
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #11
  %1419 = call ptr @__errno_location() #12
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef @.str.5, i32 noundef %1409, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, i32 noundef %1420) #11
  br label %1422

1422:                                             ; preds = %1405, %1388
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

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

1425:                                             ; No predecessors!
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426, %1368
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr @test_count, align 4, !tbaa !5
  %1433 = load ptr, ptr %16, align 8, !tbaa !9
  %1434 = call i32 @s2n_read_test_pem(ptr noundef @.str.29, ptr noundef %1433, i64 noundef 12000)
  %1435 = icmp eq i32 %1434, -1
  br i1 %1435, label %1436, label %1489

1436:                                             ; preds = %1430
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1439 = call ptr @__errno_location() #12
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  store i32 %1440, ptr %36, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = call i32 @s2n_print_stacktrace(ptr noundef %1441)
  %1443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1444 = trunc i8 %1443 to i1
  br i1 %1444, label %1445, label %1467

1445:                                             ; preds = %1438
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @fileno(ptr noundef %1446) #11
  %1448 = call i32 @isatty(i32 noundef %1447) #11
  %1449 = icmp ne i32 %1448, 0
  br i1 %1449, label %1450, label %1467

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

1467:                                             ; preds = %1445, %1438
  %1468 = load i32, ptr %36, align 4, !tbaa !5
  %1469 = call ptr @__errno_location() #12
  store i32 %1468, ptr %1469, align 4, !tbaa !5
  %1470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror(i32 noundef %1473, ptr noundef @.str.4)
  %1475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror_debug(i32 noundef %1476, ptr noundef @.str.4)
  %1478 = call ptr @__errno_location() #12
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @strerror(i32 noundef %1479) #11
  %1481 = call ptr @__errno_location() #12
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1470, ptr noundef @.str.5, i32 noundef %1471, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1474, ptr noundef %1477, ptr noundef %1480, i32 noundef %1482) #11
  br label %1484

1484:                                             ; preds = %1467, %1450
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

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

1487:                                             ; No predecessors!
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488, %1430
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  %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 ptr, ptr %12, align 8, !tbaa !9
  %1496 = load ptr, ptr %14, align 8, !tbaa !9
  %1497 = load ptr, ptr %16, align 8, !tbaa !9
  %1498 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1495, ptr noundef %1496, ptr noundef %1497)
  %1499 = icmp eq i32 %1498, -1
  br i1 %1499, label %1500, label %1553

1500:                                             ; preds = %1492
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1503 = call ptr @__errno_location() #12
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  store i32 %1504, ptr %37, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @s2n_print_stacktrace(ptr noundef %1505)
  %1507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1508 = trunc i8 %1507 to i1
  br i1 %1508, label %1509, label %1531

1509:                                             ; preds = %1502
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @fileno(ptr noundef %1510) #11
  %1512 = call i32 @isatty(i32 noundef %1511) #11
  %1513 = icmp ne i32 %1512, 0
  br i1 %1513, label %1514, label %1531

1514:                                             ; preds = %1509
  %1515 = load i32, ptr %37, 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.2, i32 noundef %1518, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1521, ptr noundef %1524, ptr noundef %1527, i32 noundef %1529) #11
  br label %1548

1531:                                             ; preds = %1509, %1502
  %1532 = load i32, ptr %37, align 4, !tbaa !5
  %1533 = call ptr @__errno_location() #12
  store i32 %1532, ptr %1533, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror(i32 noundef %1537, ptr noundef @.str.4)
  %1539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror_debug(i32 noundef %1540, ptr noundef @.str.4)
  %1542 = call ptr @__errno_location() #12
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @strerror(i32 noundef %1543) #11
  %1545 = call ptr @__errno_location() #12
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1534, ptr noundef @.str.5, i32 noundef %1535, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1538, ptr noundef %1541, ptr noundef %1544, i32 noundef %1546) #11
  br label %1548

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

1549:                                             ; preds = %1548
  br label %1550

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

1551:                                             ; No predecessors!
  br label %1552

1552:                                             ; preds = %1551
  br label %1553

1553:                                             ; preds = %1552, %1492
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555
  %1557 = load i32, ptr @test_count, align 4, !tbaa !5
  %1558 = add nsw i32 %1557, 1
  store i32 %1558, ptr @test_count, align 4, !tbaa !5
  %1559 = load ptr, ptr %10, align 8, !tbaa !9
  %1560 = load ptr, ptr %12, align 8, !tbaa !9
  %1561 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1559, ptr noundef %1560)
  %1562 = icmp eq i32 %1561, -1
  br i1 %1562, label %1563, label %1616

1563:                                             ; preds = %1556
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1566 = call ptr @__errno_location() #12
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  store i32 %1567, ptr %38, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @s2n_print_stacktrace(ptr noundef %1568)
  %1570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1571 = trunc i8 %1570 to i1
  br i1 %1571, label %1572, label %1594

1572:                                             ; preds = %1565
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @fileno(ptr noundef %1573) #11
  %1575 = call i32 @isatty(i32 noundef %1574) #11
  %1576 = icmp ne i32 %1575, 0
  br i1 %1576, label %1577, label %1594

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

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

1611:                                             ; preds = %1594, %1577
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1612

1612:                                             ; preds = %1611
  br label %1613

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

1614:                                             ; No predecessors!
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

1616:                                             ; preds = %1615, %1556
  br label %1617

1617:                                             ; preds = %1616
  br label %1618

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = add nsw i32 %1620, 1
  store i32 %1621, ptr @test_count, align 4, !tbaa !5
  %1622 = call i32 (...) @s2n_reset_tls13_in_test()
  %1623 = icmp eq i32 %1622, -1
  br i1 %1623, label %1624, label %1677

1624:                                             ; preds = %1619
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

1626:                                             ; preds = %1625
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1627 = call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  store i32 %1628, ptr %39, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @s2n_print_stacktrace(ptr noundef %1629)
  %1631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1632 = trunc i8 %1631 to i1
  br i1 %1632, label %1633, label %1655

1633:                                             ; preds = %1626
  %1634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1635 = call i32 @fileno(ptr noundef %1634) #11
  %1636 = call i32 @isatty(i32 noundef %1635) #11
  %1637 = icmp ne i32 %1636, 0
  br i1 %1637, label %1638, label %1655

1638:                                             ; preds = %1633
  %1639 = load i32, ptr %39, align 4, !tbaa !5
  %1640 = call ptr @__errno_location() #12
  store i32 %1639, ptr %1640, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror(i32 noundef %1644, ptr noundef @.str.4)
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror_debug(i32 noundef %1647, ptr noundef @.str.4)
  %1649 = call ptr @__errno_location() #12
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #11
  %1652 = call ptr @__errno_location() #12
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef @.str.2, i32 noundef %1642, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1645, ptr noundef %1648, ptr noundef %1651, i32 noundef %1653) #11
  br label %1672

1655:                                             ; preds = %1633, %1626
  %1656 = load i32, ptr %39, align 4, !tbaa !5
  %1657 = call ptr @__errno_location() #12
  store i32 %1656, ptr %1657, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror(i32 noundef %1661, ptr noundef @.str.4)
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1664, ptr noundef @.str.4)
  %1666 = call ptr @__errno_location() #12
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #11
  %1669 = call ptr @__errno_location() #12
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef @.str.5, i32 noundef %1659, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1662, ptr noundef %1665, ptr noundef %1668, i32 noundef %1670) #11
  br label %1672

1672:                                             ; preds = %1655, %1638
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

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

1675:                                             ; No predecessors!
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676, %1619
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

1679:                                             ; preds = %1678
  br label %1680

1680:                                             ; preds = %1679
  %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 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1683, ptr %6, align 8, !tbaa !9
  %1684 = icmp eq ptr %1683, null
  br i1 %1684, label %1685, label %1738

1685:                                             ; preds = %1680
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

1687:                                             ; preds = %1686
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1688 = call ptr @__errno_location() #12
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  store i32 %1689, ptr %40, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @s2n_print_stacktrace(ptr noundef %1690)
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc i8 %1692 to i1
  br i1 %1693, label %1694, label %1716

1694:                                             ; preds = %1687
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @fileno(ptr noundef %1695) #11
  %1697 = call i32 @isatty(i32 noundef %1696) #11
  %1698 = icmp ne i32 %1697, 0
  br i1 %1698, label %1699, label %1716

1699:                                             ; preds = %1694
  %1700 = load i32, ptr %40, align 4, !tbaa !5
  %1701 = call ptr @__errno_location() #12
  store i32 %1700, ptr %1701, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = load i32, ptr @test_count, align 4, !tbaa !5
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror(i32 noundef %1705, ptr noundef @.str.4)
  %1707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror_debug(i32 noundef %1708, ptr noundef @.str.4)
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call ptr @strerror(i32 noundef %1711) #11
  %1713 = call ptr @__errno_location() #12
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1702, ptr noundef @.str.2, i32 noundef %1703, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1706, ptr noundef %1709, ptr noundef %1712, i32 noundef %1714) #11
  br label %1733

1716:                                             ; preds = %1694, %1687
  %1717 = load i32, ptr %40, align 4, !tbaa !5
  %1718 = call ptr @__errno_location() #12
  store i32 %1717, ptr %1718, align 4, !tbaa !5
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef @.str.4)
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror_debug(i32 noundef %1725, ptr noundef @.str.4)
  %1727 = call ptr @__errno_location() #12
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #11
  %1730 = call ptr @__errno_location() #12
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1719, ptr noundef @.str.5, i32 noundef %1720, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1723, ptr noundef %1726, ptr noundef %1729, i32 noundef %1731) #11
  br label %1733

1733:                                             ; preds = %1716, %1699
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1734

1734:                                             ; preds = %1733
  br label %1735

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

1736:                                             ; No predecessors!
  br label %1737

1737:                                             ; preds = %1736
  br label %1738

1738:                                             ; preds = %1737, %1680
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = add nsw i32 %1742, 1
  store i32 %1743, ptr @test_count, align 4, !tbaa !5
  %1744 = load ptr, ptr %6, align 8, !tbaa !9
  %1745 = load ptr, ptr %10, align 8, !tbaa !9
  %1746 = call i32 @s2n_connection_set_config(ptr noundef %1744, ptr noundef %1745)
  %1747 = icmp eq i32 %1746, -1
  br i1 %1747, label %1748, label %1801

1748:                                             ; preds = %1741
  br label %1749

1749:                                             ; preds = %1748
  br label %1750

1750:                                             ; preds = %1749
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1751 = call ptr @__errno_location() #12
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  store i32 %1752, ptr %41, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @s2n_print_stacktrace(ptr noundef %1753)
  %1755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc i8 %1755 to i1
  br i1 %1756, label %1757, label %1779

1757:                                             ; preds = %1750
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @fileno(ptr noundef %1758) #11
  %1760 = call i32 @isatty(i32 noundef %1759) #11
  %1761 = icmp ne i32 %1760, 0
  br i1 %1761, label %1762, label %1779

1762:                                             ; preds = %1757
  %1763 = load i32, ptr %41, align 4, !tbaa !5
  %1764 = call ptr @__errno_location() #12
  store i32 %1763, ptr %1764, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1768 = load i32, ptr %1767, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror(i32 noundef %1768, ptr noundef @.str.4)
  %1770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror_debug(i32 noundef %1771, ptr noundef @.str.4)
  %1773 = call ptr @__errno_location() #12
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = call ptr @strerror(i32 noundef %1774) #11
  %1776 = call ptr @__errno_location() #12
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1765, ptr noundef @.str.2, i32 noundef %1766, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1769, ptr noundef %1772, ptr noundef %1775, i32 noundef %1777) #11
  br label %1796

1779:                                             ; preds = %1757, %1750
  %1780 = load i32, ptr %41, align 4, !tbaa !5
  %1781 = call ptr @__errno_location() #12
  store i32 %1780, ptr %1781, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef @.str.4)
  %1787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror_debug(i32 noundef %1788, ptr noundef @.str.4)
  %1790 = call ptr @__errno_location() #12
  %1791 = load i32, ptr %1790, align 4, !tbaa !5
  %1792 = call ptr @strerror(i32 noundef %1791) #11
  %1793 = call ptr @__errno_location() #12
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef @.str.5, i32 noundef %1783, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1786, ptr noundef %1789, ptr noundef %1792, i32 noundef %1794) #11
  br label %1796

1796:                                             ; preds = %1779, %1762
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

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

1799:                                             ; No predecessors!
  br label %1800

1800:                                             ; preds = %1799
  br label %1801

1801:                                             ; preds = %1800, %1741
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  %1804 = load ptr, ptr %6, align 8, !tbaa !9
  %1805 = getelementptr inbounds %struct.s2n_connection, ptr %1804, i32 0, i32 20
  store i8 20, ptr %1805, align 1, !tbaa !15
  %1806 = load ptr, ptr %6, align 8, !tbaa !9
  %1807 = getelementptr inbounds %struct.s2n_connection, ptr %1806, i32 0, i32 21
  store i8 33, ptr %1807, align 2, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 176, ptr %42) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %42, ptr align 16 @__const.main.sslv2_client_hello, i64 176, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #11
  %1808 = getelementptr inbounds %struct.s2n_blob, ptr %43, i32 0, i32 0
  %1809 = getelementptr inbounds [176 x i8], ptr %42, i64 0, i64 0
  store ptr %1809, ptr %1808, align 8, !tbaa !43
  %1810 = getelementptr inbounds %struct.s2n_blob, ptr %43, i32 0, i32 1
  store i32 176, ptr %1810, align 8, !tbaa !44
  %1811 = getelementptr inbounds %struct.s2n_blob, ptr %43, i32 0, i32 2
  store i32 0, ptr %1811, align 4, !tbaa !45
  %1812 = getelementptr inbounds %struct.s2n_blob, ptr %43, i32 0, i32 3
  %1813 = load i8, ptr %1812, align 8
  %1814 = and i8 %1813, -2
  %1815 = or i8 %1814, 0
  store i8 %1815, ptr %1812, align 8
  br label %1816

1816:                                             ; preds = %1803
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = add nsw i32 %1817, 1
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = load ptr, ptr %6, align 8, !tbaa !9
  %1820 = getelementptr inbounds %struct.s2n_connection, ptr %1819, i32 0, i32 52
  %1821 = getelementptr inbounds %struct.s2n_handshake, ptr %1820, i32 0, i32 0
  %1822 = call i32 @s2n_stuffer_write(ptr noundef %1821, ptr noundef %43)
  %1823 = icmp eq i32 %1822, -1
  br i1 %1823, label %1824, label %1877

1824:                                             ; preds = %1816
  br label %1825

1825:                                             ; preds = %1824
  br label %1826

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

1833:                                             ; preds = %1826
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = call i32 @fileno(ptr noundef %1834) #11
  %1836 = call i32 @isatty(i32 noundef %1835) #11
  %1837 = icmp ne i32 %1836, 0
  br i1 %1837, label %1838, label %1855

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

1855:                                             ; preds = %1833, %1826
  %1856 = load i32, ptr %44, align 4, !tbaa !5
  %1857 = call ptr @__errno_location() #12
  store i32 %1856, ptr %1857, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef @.str.4)
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call ptr @__errno_location() #12
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #11
  %1869 = call ptr @__errno_location() #12
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef @.str.5, i32 noundef %1859, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1862, ptr noundef %1865, ptr noundef %1868, i32 noundef %1870) #11
  br label %1872

1872:                                             ; preds = %1855, %1838
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

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

1875:                                             ; No predecessors!
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876, %1816
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  br label %1880

1880:                                             ; preds = %1879
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = add nsw i32 %1881, 1
  store i32 %1882, ptr @test_count, align 4, !tbaa !5
  %1883 = load ptr, ptr %6, align 8, !tbaa !9
  %1884 = call i32 @s2n_client_hello_recv(ptr noundef %1883)
  %1885 = icmp eq i32 %1884, -1
  br i1 %1885, label %1886, label %1939

1886:                                             ; preds = %1880
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

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

1895:                                             ; preds = %1888
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = call i32 @fileno(ptr noundef %1896) #11
  %1898 = call i32 @isatty(i32 noundef %1897) #11
  %1899 = icmp ne i32 %1898, 0
  br i1 %1899, label %1900, label %1917

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

1917:                                             ; preds = %1895, %1888
  %1918 = load i32, ptr %45, align 4, !tbaa !5
  %1919 = call ptr @__errno_location() #12
  store i32 %1918, ptr %1919, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = load i32, ptr @test_count, align 4, !tbaa !5
  %1922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = call ptr @s2n_strerror(i32 noundef %1923, ptr noundef @.str.4)
  %1925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror_debug(i32 noundef %1926, ptr noundef @.str.4)
  %1928 = call ptr @__errno_location() #12
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = call ptr @strerror(i32 noundef %1929) #11
  %1931 = call ptr @__errno_location() #12
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  %1933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1920, ptr noundef @.str.5, i32 noundef %1921, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1924, ptr noundef %1927, ptr noundef %1930, i32 noundef %1932) #11
  br label %1934

1934:                                             ; preds = %1917, %1900
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

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

1937:                                             ; No predecessors!
  br label %1938

1938:                                             ; preds = %1937
  br label %1939

1939:                                             ; preds = %1938, %1880
  br label %1940

1940:                                             ; preds = %1939
  br label %1941

1941:                                             ; preds = %1940
  br label %1942

1942:                                             ; preds = %1941
  %1943 = load i32, ptr @test_count, align 4, !tbaa !5
  %1944 = add nsw i32 %1943, 1
  store i32 %1944, ptr @test_count, align 4, !tbaa !5
  %1945 = load ptr, ptr %6, align 8, !tbaa !9
  %1946 = getelementptr inbounds %struct.s2n_connection, ptr %1945, i32 0, i32 23
  %1947 = load i8, ptr %1946, align 4, !tbaa !46
  %1948 = zext i8 %1947 to i32
  %1949 = icmp eq i32 %1948, 33
  br i1 %1949, label %2003, label %1950

1950:                                             ; preds = %1942
  br label %1951

1951:                                             ; preds = %1950
  br label %1952

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

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

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

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

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

1999:                                             ; preds = %1998
  br label %2000

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

2001:                                             ; No predecessors!
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

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

2004:                                             ; preds = %2003
  br label %2005

2005:                                             ; preds = %2004
  br label %2006

2006:                                             ; preds = %2005
  %2007 = load i32, ptr @test_count, align 4, !tbaa !5
  %2008 = add nsw i32 %2007, 1
  store i32 %2008, ptr @test_count, align 4, !tbaa !5
  %2009 = load ptr, ptr %6, align 8, !tbaa !9
  %2010 = getelementptr inbounds %struct.s2n_connection, ptr %2009, i32 0, i32 21
  %2011 = load i8, ptr %2010, align 2, !tbaa !42
  %2012 = zext i8 %2011 to i32
  %2013 = icmp eq i32 %2012, 33
  br i1 %2013, label %2067, label %2014

2014:                                             ; preds = %2006
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

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

2023:                                             ; preds = %2016
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #11
  %2026 = call i32 @isatty(i32 noundef %2025) #11
  %2027 = icmp ne i32 %2026, 0
  br i1 %2027, label %2028, label %2045

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

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

2062:                                             ; preds = %2045, %2028
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

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

2065:                                             ; No predecessors!
  br label %2066

2066:                                             ; preds = %2065
  br label %2067

2067:                                             ; preds = %2066, %2006
  br label %2068

2068:                                             ; preds = %2067
  br label %2069

2069:                                             ; preds = %2068
  br label %2070

2070:                                             ; preds = %2069
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = add nsw i32 %2071, 1
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = load ptr, ptr %6, align 8, !tbaa !9
  %2074 = getelementptr inbounds %struct.s2n_connection, ptr %2073, i32 0, i32 20
  %2075 = load i8, ptr %2074, align 1, !tbaa !15
  %2076 = zext i8 %2075 to i32
  %2077 = icmp eq i32 %2076, 20
  br i1 %2077, label %2131, label %2078

2078:                                             ; preds = %2070
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

2080:                                             ; preds = %2079
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2081 = call ptr @__errno_location() #12
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  store i32 %2082, ptr %48, align 4, !tbaa !5
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = call i32 @s2n_print_stacktrace(ptr noundef %2083)
  %2085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2086 = trunc i8 %2085 to i1
  br i1 %2086, label %2087, label %2109

2087:                                             ; preds = %2080
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = call i32 @fileno(ptr noundef %2088) #11
  %2090 = call i32 @isatty(i32 noundef %2089) #11
  %2091 = icmp ne i32 %2090, 0
  br i1 %2091, label %2092, label %2109

2092:                                             ; preds = %2087
  %2093 = load i32, ptr %48, align 4, !tbaa !5
  %2094 = call ptr @__errno_location() #12
  store i32 %2093, ptr %2094, align 4, !tbaa !5
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = load i32, ptr @test_count, align 4, !tbaa !5
  %2097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror(i32 noundef %2098, ptr noundef @.str.4)
  %2100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror_debug(i32 noundef %2101, ptr noundef @.str.4)
  %2103 = call ptr @__errno_location() #12
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call ptr @strerror(i32 noundef %2104) #11
  %2106 = call ptr @__errno_location() #12
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  %2108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2095, ptr noundef @.str.2, i32 noundef %2096, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2099, ptr noundef %2102, ptr noundef %2105, i32 noundef %2107) #11
  br label %2126

2109:                                             ; preds = %2087, %2080
  %2110 = load i32, ptr %48, align 4, !tbaa !5
  %2111 = call ptr @__errno_location() #12
  store i32 %2110, ptr %2111, align 4, !tbaa !5
  %2112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2113 = load i32, ptr @test_count, align 4, !tbaa !5
  %2114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call ptr @s2n_strerror(i32 noundef %2115, ptr noundef @.str.4)
  %2117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call ptr @s2n_strerror_debug(i32 noundef %2118, ptr noundef @.str.4)
  %2120 = call ptr @__errno_location() #12
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = call ptr @strerror(i32 noundef %2121) #11
  %2123 = call ptr @__errno_location() #12
  %2124 = load i32, ptr %2123, align 4, !tbaa !5
  %2125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2112, ptr noundef @.str.5, i32 noundef %2113, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2116, ptr noundef %2119, ptr noundef %2122, i32 noundef %2124) #11
  br label %2126

2126:                                             ; preds = %2109, %2092
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

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

2129:                                             ; No predecessors!
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130, %2070
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133
  %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 %6, align 8, !tbaa !9
  %2138 = getelementptr inbounds %struct.s2n_connection, ptr %2137, i32 0, i32 71
  %2139 = getelementptr inbounds %struct.s2n_client_hello, ptr %2138, i32 0, i32 7
  %2140 = load i8, ptr %2139, align 2
  %2141 = lshr i8 %2140, 1
  %2142 = and i8 %2141, 1
  %2143 = zext i8 %2142 to i32
  %2144 = icmp eq i32 %2143, 1
  br i1 %2144, label %2198, label %2145

2145:                                             ; preds = %2134
  br label %2146

2146:                                             ; preds = %2145
  br label %2147

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

2154:                                             ; preds = %2147
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = call i32 @fileno(ptr noundef %2155) #11
  %2157 = call i32 @isatty(i32 noundef %2156) #11
  %2158 = icmp ne i32 %2157, 0
  br i1 %2158, label %2159, label %2176

2159:                                             ; preds = %2154
  %2160 = load i32, ptr %49, align 4, !tbaa !5
  %2161 = call ptr @__errno_location() #12
  store i32 %2160, ptr %2161, align 4, !tbaa !5
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror(i32 noundef %2165, ptr noundef @.str.4)
  %2167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @s2n_strerror_debug(i32 noundef %2168, ptr noundef @.str.4)
  %2170 = call ptr @__errno_location() #12
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @strerror(i32 noundef %2171) #11
  %2173 = call ptr @__errno_location() #12
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef @.str.2, i32 noundef %2163, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2166, ptr noundef %2169, ptr noundef %2172, i32 noundef %2174) #11
  br label %2193

2176:                                             ; preds = %2154, %2147
  %2177 = load i32, ptr %49, align 4, !tbaa !5
  %2178 = call ptr @__errno_location() #12
  store i32 %2177, ptr %2178, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror_debug(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call ptr @__errno_location() #12
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #11
  %2190 = call ptr @__errno_location() #12
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2179, ptr noundef @.str.5, i32 noundef %2180, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2183, ptr noundef %2186, ptr noundef %2189, i32 noundef %2191) #11
  br label %2193

2193:                                             ; preds = %2176, %2159
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2194

2194:                                             ; preds = %2193
  br label %2195

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

2196:                                             ; No predecessors!
  br label %2197

2197:                                             ; preds = %2196
  br label %2198

2198:                                             ; preds = %2197, %2134
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

2200:                                             ; preds = %2199
  %2201 = load ptr, ptr %6, align 8, !tbaa !9
  %2202 = call i32 @s2n_connection_free(ptr noundef %2201)
  br label %2203

2203:                                             ; preds = %2200
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = add nsw i32 %2204, 1
  store i32 %2205, ptr @test_count, align 4, !tbaa !5
  %2206 = call i32 (...) @s2n_disable_tls13_in_test()
  %2207 = icmp eq i32 %2206, -1
  br i1 %2207, label %2208, label %2261

2208:                                             ; preds = %2203
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

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

2217:                                             ; preds = %2210
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @fileno(ptr noundef %2218) #11
  %2220 = call i32 @isatty(i32 noundef %2219) #11
  %2221 = icmp ne i32 %2220, 0
  br i1 %2221, label %2222, label %2239

2222:                                             ; preds = %2217
  %2223 = load i32, ptr %50, align 4, !tbaa !5
  %2224 = call ptr @__errno_location() #12
  store i32 %2223, ptr %2224, align 4, !tbaa !5
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = load i32, ptr @test_count, align 4, !tbaa !5
  %2227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @s2n_strerror(i32 noundef %2228, ptr noundef @.str.4)
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror_debug(i32 noundef %2231, ptr noundef @.str.4)
  %2233 = call ptr @__errno_location() #12
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @strerror(i32 noundef %2234) #11
  %2236 = call ptr @__errno_location() #12
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2225, ptr noundef @.str.2, i32 noundef %2226, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2229, ptr noundef %2232, ptr noundef %2235, i32 noundef %2237) #11
  br label %2256

2239:                                             ; preds = %2217, %2210
  %2240 = load i32, ptr %50, align 4, !tbaa !5
  %2241 = call ptr @__errno_location() #12
  store i32 %2240, ptr %2241, align 4, !tbaa !5
  %2242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2243 = load i32, ptr @test_count, align 4, !tbaa !5
  %2244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2245 = load i32, ptr %2244, align 4, !tbaa !5
  %2246 = call ptr @s2n_strerror(i32 noundef %2245, ptr noundef @.str.4)
  %2247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  %2249 = call ptr @s2n_strerror_debug(i32 noundef %2248, ptr noundef @.str.4)
  %2250 = call ptr @__errno_location() #12
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call ptr @strerror(i32 noundef %2251) #11
  %2253 = call ptr @__errno_location() #12
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2242, ptr noundef @.str.5, i32 noundef %2243, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2246, ptr noundef %2249, ptr noundef %2252, i32 noundef %2254) #11
  br label %2256

2256:                                             ; preds = %2239, %2222
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

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

2259:                                             ; No predecessors!
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

2261:                                             ; preds = %2260, %2203
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 176, ptr %42) #11
  br label %2264

2264:                                             ; preds = %2263
  %2265 = load i32, ptr @test_count, align 4, !tbaa !5
  %2266 = add nsw i32 %2265, 1
  store i32 %2266, ptr @test_count, align 4, !tbaa !5
  %2267 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2267, ptr %6, align 8, !tbaa !9
  %2268 = icmp eq ptr %2267, null
  br i1 %2268, label %2269, label %2322

2269:                                             ; preds = %2264
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

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

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

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

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

2317:                                             ; preds = %2300, %2283
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

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

2320:                                             ; No predecessors!
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

2322:                                             ; preds = %2321, %2264
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = add nsw i32 %2326, 1
  store i32 %2327, ptr @test_count, align 4, !tbaa !5
  %2328 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2328, ptr %7, align 8, !tbaa !9
  %2329 = icmp eq ptr %2328, null
  br i1 %2329, label %2330, label %2383

2330:                                             ; preds = %2325
  br label %2331

2331:                                             ; preds = %2330
  br label %2332

2332:                                             ; preds = %2331
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %2333 = call ptr @__errno_location() #12
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  store i32 %2334, ptr %52, align 4, !tbaa !5
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2336 = call i32 @s2n_print_stacktrace(ptr noundef %2335)
  %2337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2338 = trunc i8 %2337 to i1
  br i1 %2338, label %2339, label %2361

2339:                                             ; preds = %2332
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = call i32 @fileno(ptr noundef %2340) #11
  %2342 = call i32 @isatty(i32 noundef %2341) #11
  %2343 = icmp ne i32 %2342, 0
  br i1 %2343, label %2344, label %2361

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

2361:                                             ; preds = %2339, %2332
  %2362 = load i32, ptr %52, align 4, !tbaa !5
  %2363 = call ptr @__errno_location() #12
  store i32 %2362, ptr %2363, align 4, !tbaa !5
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror(i32 noundef %2367, ptr noundef @.str.4)
  %2369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror_debug(i32 noundef %2370, ptr noundef @.str.4)
  %2372 = call ptr @__errno_location() #12
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call ptr @strerror(i32 noundef %2373) #11
  %2375 = call ptr @__errno_location() #12
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2364, ptr noundef @.str.5, i32 noundef %2365, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2368, ptr noundef %2371, ptr noundef %2374, i32 noundef %2376) #11
  br label %2378

2378:                                             ; preds = %2361, %2344
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

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

2381:                                             ; No predecessors!
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382, %2325
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385
  %2387 = load i32, ptr @test_count, align 4, !tbaa !5
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr @test_count, align 4, !tbaa !5
  %2389 = load ptr, ptr %6, align 8, !tbaa !9
  %2390 = load ptr, ptr %9, align 8, !tbaa !9
  %2391 = call i32 @s2n_connection_set_config(ptr noundef %2389, ptr noundef %2390)
  %2392 = icmp eq i32 %2391, -1
  br i1 %2392, label %2393, label %2446

2393:                                             ; preds = %2386
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

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

2402:                                             ; preds = %2395
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = call i32 @fileno(ptr noundef %2403) #11
  %2405 = call i32 @isatty(i32 noundef %2404) #11
  %2406 = icmp ne i32 %2405, 0
  br i1 %2406, label %2407, label %2424

2407:                                             ; preds = %2402
  %2408 = load i32, ptr %53, align 4, !tbaa !5
  %2409 = call ptr @__errno_location() #12
  store i32 %2408, ptr %2409, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror(i32 noundef %2413, ptr noundef @.str.4)
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call ptr @__errno_location() #12
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @strerror(i32 noundef %2419) #11
  %2421 = call ptr @__errno_location() #12
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef @.str.2, i32 noundef %2411, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2414, ptr noundef %2417, ptr noundef %2420, i32 noundef %2422) #11
  br label %2441

2424:                                             ; preds = %2402, %2395
  %2425 = load i32, ptr %53, align 4, !tbaa !5
  %2426 = call ptr @__errno_location() #12
  store i32 %2425, ptr %2426, align 4, !tbaa !5
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef @.str.4)
  %2432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call ptr @s2n_strerror_debug(i32 noundef %2433, ptr noundef @.str.4)
  %2435 = call ptr @__errno_location() #12
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @strerror(i32 noundef %2436) #11
  %2438 = call ptr @__errno_location() #12
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2427, ptr noundef @.str.5, i32 noundef %2428, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2431, ptr noundef %2434, ptr noundef %2437, i32 noundef %2439) #11
  br label %2441

2441:                                             ; preds = %2424, %2407
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

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

2444:                                             ; No predecessors!
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445, %2386
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448
  %2450 = load i32, ptr @test_count, align 4, !tbaa !5
  %2451 = add nsw i32 %2450, 1
  store i32 %2451, ptr @test_count, align 4, !tbaa !5
  %2452 = load ptr, ptr %7, align 8, !tbaa !9
  %2453 = load ptr, ptr %9, align 8, !tbaa !9
  %2454 = call i32 @s2n_connection_set_config(ptr noundef %2452, ptr noundef %2453)
  %2455 = icmp eq i32 %2454, -1
  br i1 %2455, label %2456, label %2509

2456:                                             ; preds = %2449
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

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

2465:                                             ; preds = %2458
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @fileno(ptr noundef %2466) #11
  %2468 = call i32 @isatty(i32 noundef %2467) #11
  %2469 = icmp ne i32 %2468, 0
  br i1 %2469, label %2470, label %2487

2470:                                             ; preds = %2465
  %2471 = load i32, ptr %54, 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.2, i32 noundef %2474, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2477, ptr noundef %2480, ptr noundef %2483, i32 noundef %2485) #11
  br label %2504

2487:                                             ; preds = %2465, %2458
  %2488 = load i32, ptr %54, align 4, !tbaa !5
  %2489 = call ptr @__errno_location() #12
  store i32 %2488, ptr %2489, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef @.str.4)
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef @.str.4)
  %2498 = call ptr @__errno_location() #12
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #11
  %2501 = call ptr @__errno_location() #12
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef @.str.5, i32 noundef %2491, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 120, ptr noundef %2494, ptr noundef %2497, ptr noundef %2500, i32 noundef %2502) #11
  br label %2504

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

2505:                                             ; preds = %2504
  br label %2506

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

2507:                                             ; No predecessors!
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508, %2449
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = add nsw i32 %2513, 1
  store i32 %2514, ptr @test_count, align 4, !tbaa !5
  %2515 = load ptr, ptr %7, align 8, !tbaa !9
  %2516 = call i32 @s2n_client_hello_send(ptr noundef %2515)
  %2517 = icmp eq i32 %2516, -1
  br i1 %2517, label %2518, label %2571

2518:                                             ; preds = %2512
  br label %2519

2519:                                             ; preds = %2518
  br label %2520

2520:                                             ; preds = %2519
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %2521 = call ptr @__errno_location() #12
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  store i32 %2522, ptr %55, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @s2n_print_stacktrace(ptr noundef %2523)
  %2525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2526 = trunc i8 %2525 to i1
  br i1 %2526, label %2527, label %2549

2527:                                             ; preds = %2520
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @fileno(ptr noundef %2528) #11
  %2530 = call i32 @isatty(i32 noundef %2529) #11
  %2531 = icmp ne i32 %2530, 0
  br i1 %2531, label %2532, label %2549

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

2549:                                             ; preds = %2527, %2520
  %2550 = load i32, ptr %55, align 4, !tbaa !5
  %2551 = call ptr @__errno_location() #12
  store i32 %2550, ptr %2551, align 4, !tbaa !5
  %2552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = call ptr @s2n_strerror(i32 noundef %2555, ptr noundef @.str.4)
  %2557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2558 = load i32, ptr %2557, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef @.str.4)
  %2560 = call ptr @__errno_location() #12
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #11
  %2563 = call ptr @__errno_location() #12
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2552, ptr noundef @.str.5, i32 noundef %2553, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2556, ptr noundef %2559, ptr noundef %2562, i32 noundef %2564) #11
  br label %2566

2566:                                             ; preds = %2549, %2532
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

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

2569:                                             ; No predecessors!
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570, %2512
  br label %2572

2572:                                             ; preds = %2571
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

2574:                                             ; preds = %2573
  %2575 = load i32, ptr @test_count, align 4, !tbaa !5
  %2576 = add nsw i32 %2575, 1
  store i32 %2576, ptr @test_count, align 4, !tbaa !5
  %2577 = load ptr, ptr %7, align 8, !tbaa !9
  %2578 = getelementptr inbounds %struct.s2n_connection, ptr %2577, i32 0, i32 23
  %2579 = load i8, ptr %2578, align 4, !tbaa !46
  %2580 = zext i8 %2579 to i32
  %2581 = icmp eq i32 %2580, 33
  br i1 %2581, label %2635, label %2582

2582:                                             ; preds = %2574
  br label %2583

2583:                                             ; preds = %2582
  br label %2584

2584:                                             ; preds = %2583
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2585 = call ptr @__errno_location() #12
  %2586 = load i32, ptr %2585, align 4, !tbaa !5
  store i32 %2586, ptr %56, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = call i32 @s2n_print_stacktrace(ptr noundef %2587)
  %2589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2590 = trunc i8 %2589 to i1
  br i1 %2590, label %2591, label %2613

2591:                                             ; preds = %2584
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = call i32 @fileno(ptr noundef %2592) #11
  %2594 = call i32 @isatty(i32 noundef %2593) #11
  %2595 = icmp ne i32 %2594, 0
  br i1 %2595, label %2596, label %2613

2596:                                             ; preds = %2591
  %2597 = load i32, ptr %56, align 4, !tbaa !5
  %2598 = call ptr @__errno_location() #12
  store i32 %2597, ptr %2598, align 4, !tbaa !5
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = load i32, ptr @test_count, align 4, !tbaa !5
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror(i32 noundef %2602, ptr noundef @.str.4)
  %2604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @s2n_strerror_debug(i32 noundef %2605, ptr noundef @.str.4)
  %2607 = call ptr @__errno_location() #12
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call ptr @strerror(i32 noundef %2608) #11
  %2610 = call ptr @__errno_location() #12
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2599, ptr noundef @.str.2, i32 noundef %2600, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2603, ptr noundef %2606, ptr noundef %2609, i32 noundef %2611) #11
  br label %2630

2613:                                             ; preds = %2591, %2584
  %2614 = load i32, ptr %56, align 4, !tbaa !5
  %2615 = call ptr @__errno_location() #12
  store i32 %2614, ptr %2615, align 4, !tbaa !5
  %2616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2617 = load i32, ptr @test_count, align 4, !tbaa !5
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror(i32 noundef %2619, ptr noundef @.str.4)
  %2621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call ptr @s2n_strerror_debug(i32 noundef %2622, ptr noundef @.str.4)
  %2624 = call ptr @__errno_location() #12
  %2625 = load i32, ptr %2624, align 4, !tbaa !5
  %2626 = call ptr @strerror(i32 noundef %2625) #11
  %2627 = call ptr @__errno_location() #12
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  %2629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2616, ptr noundef @.str.5, i32 noundef %2617, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2620, ptr noundef %2623, ptr noundef %2626, i32 noundef %2628) #11
  br label %2630

2630:                                             ; preds = %2613, %2596
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

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

2633:                                             ; No predecessors!
  br label %2634

2634:                                             ; preds = %2633
  br label %2635

2635:                                             ; preds = %2634, %2574
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636
  br label %2638

2638:                                             ; preds = %2637
  %2639 = load i32, ptr @test_count, align 4, !tbaa !5
  %2640 = add nsw i32 %2639, 1
  store i32 %2640, ptr @test_count, align 4, !tbaa !5
  %2641 = load ptr, ptr %7, align 8, !tbaa !9
  %2642 = getelementptr inbounds %struct.s2n_connection, ptr %2641, i32 0, i32 21
  %2643 = load i8, ptr %2642, align 2, !tbaa !42
  %2644 = zext i8 %2643 to i32
  %2645 = icmp eq i32 %2644, 33
  br i1 %2645, label %2699, label %2646

2646:                                             ; preds = %2638
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

2648:                                             ; preds = %2647
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2649 = call ptr @__errno_location() #12
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  store i32 %2650, ptr %57, align 4, !tbaa !5
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = call i32 @s2n_print_stacktrace(ptr noundef %2651)
  %2653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2654 = trunc i8 %2653 to i1
  br i1 %2654, label %2655, label %2677

2655:                                             ; preds = %2648
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @fileno(ptr noundef %2656) #11
  %2658 = call i32 @isatty(i32 noundef %2657) #11
  %2659 = icmp ne i32 %2658, 0
  br i1 %2659, label %2660, label %2677

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

2677:                                             ; preds = %2655, %2648
  %2678 = load i32, ptr %57, align 4, !tbaa !5
  %2679 = call ptr @__errno_location() #12
  store i32 %2678, ptr %2679, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @s2n_strerror_debug(i32 noundef %2686, ptr noundef @.str.4)
  %2688 = call ptr @__errno_location() #12
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @strerror(i32 noundef %2689) #11
  %2691 = call ptr @__errno_location() #12
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef @.str.5, i32 noundef %2681, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2684, ptr noundef %2687, ptr noundef %2690, i32 noundef %2692) #11
  br label %2694

2694:                                             ; preds = %2677, %2660
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

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

2697:                                             ; No predecessors!
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698, %2638
  br label %2700

2700:                                             ; preds = %2699
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

2702:                                             ; preds = %2701
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = add nsw i32 %2703, 1
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = load ptr, ptr %7, align 8, !tbaa !9
  %2706 = getelementptr inbounds %struct.s2n_connection, ptr %2705, i32 0, i32 20
  %2707 = load i8, ptr %2706, align 1, !tbaa !15
  %2708 = zext i8 %2707 to i32
  %2709 = icmp eq i32 %2708, 33
  br i1 %2709, label %2763, label %2710

2710:                                             ; preds = %2702
  br label %2711

2711:                                             ; preds = %2710
  br label %2712

2712:                                             ; preds = %2711
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2713 = call ptr @__errno_location() #12
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  store i32 %2714, ptr %58, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = call i32 @s2n_print_stacktrace(ptr noundef %2715)
  %2717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2718 = trunc i8 %2717 to i1
  br i1 %2718, label %2719, label %2741

2719:                                             ; preds = %2712
  %2720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2721 = call i32 @fileno(ptr noundef %2720) #11
  %2722 = call i32 @isatty(i32 noundef %2721) #11
  %2723 = icmp ne i32 %2722, 0
  br i1 %2723, label %2724, label %2741

2724:                                             ; preds = %2719
  %2725 = load i32, ptr %58, align 4, !tbaa !5
  %2726 = call ptr @__errno_location() #12
  store i32 %2725, ptr %2726, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @s2n_strerror(i32 noundef %2730, ptr noundef @.str.4)
  %2732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call ptr @s2n_strerror_debug(i32 noundef %2733, ptr noundef @.str.4)
  %2735 = call ptr @__errno_location() #12
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  %2737 = call ptr @strerror(i32 noundef %2736) #11
  %2738 = call ptr @__errno_location() #12
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef @.str.2, i32 noundef %2728, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2731, ptr noundef %2734, ptr noundef %2737, i32 noundef %2739) #11
  br label %2758

2741:                                             ; preds = %2719, %2712
  %2742 = load i32, ptr %58, align 4, !tbaa !5
  %2743 = call ptr @__errno_location() #12
  store i32 %2742, ptr %2743, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = load i32, ptr @test_count, align 4, !tbaa !5
  %2746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror(i32 noundef %2747, ptr noundef @.str.4)
  %2749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @s2n_strerror_debug(i32 noundef %2750, ptr noundef @.str.4)
  %2752 = call ptr @__errno_location() #12
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @strerror(i32 noundef %2753) #11
  %2755 = call ptr @__errno_location() #12
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef @.str.5, i32 noundef %2745, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2748, ptr noundef %2751, ptr noundef %2754, i32 noundef %2756) #11
  br label %2758

2758:                                             ; preds = %2741, %2724
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

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

2761:                                             ; No predecessors!
  br label %2762

2762:                                             ; preds = %2761
  br label %2763

2763:                                             ; preds = %2762, %2702
  br label %2764

2764:                                             ; preds = %2763
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

2766:                                             ; preds = %2765
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = add nsw i32 %2767, 1
  store i32 %2768, ptr @test_count, align 4, !tbaa !5
  %2769 = load ptr, ptr %6, align 8, !tbaa !9
  %2770 = getelementptr inbounds %struct.s2n_connection, ptr %2769, i32 0, i32 52
  %2771 = getelementptr inbounds %struct.s2n_handshake, ptr %2770, i32 0, i32 0
  %2772 = load ptr, ptr %7, align 8, !tbaa !9
  %2773 = getelementptr inbounds %struct.s2n_connection, ptr %2772, i32 0, i32 52
  %2774 = getelementptr inbounds %struct.s2n_handshake, ptr %2773, i32 0, i32 0
  %2775 = getelementptr inbounds %struct.s2n_stuffer, ptr %2774, i32 0, i32 0
  %2776 = call i32 @s2n_stuffer_write(ptr noundef %2771, ptr noundef %2775)
  %2777 = icmp eq i32 %2776, -1
  br i1 %2777, label %2778, label %2831

2778:                                             ; preds = %2766
  br label %2779

2779:                                             ; preds = %2778
  br label %2780

2780:                                             ; preds = %2779
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2781 = call ptr @__errno_location() #12
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  store i32 %2782, ptr %59, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @s2n_print_stacktrace(ptr noundef %2783)
  %2785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2786 = trunc i8 %2785 to i1
  br i1 %2786, label %2787, label %2809

2787:                                             ; preds = %2780
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = call i32 @fileno(ptr noundef %2788) #11
  %2790 = call i32 @isatty(i32 noundef %2789) #11
  %2791 = icmp ne i32 %2790, 0
  br i1 %2791, label %2792, label %2809

2792:                                             ; preds = %2787
  %2793 = load i32, ptr %59, align 4, !tbaa !5
  %2794 = call ptr @__errno_location() #12
  store i32 %2793, ptr %2794, align 4, !tbaa !5
  %2795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2796 = load i32, ptr @test_count, align 4, !tbaa !5
  %2797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror(i32 noundef %2798, ptr noundef @.str.4)
  %2800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror_debug(i32 noundef %2801, ptr noundef @.str.4)
  %2803 = call ptr @__errno_location() #12
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @strerror(i32 noundef %2804) #11
  %2806 = call ptr @__errno_location() #12
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2795, ptr noundef @.str.2, i32 noundef %2796, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2799, ptr noundef %2802, ptr noundef %2805, i32 noundef %2807) #11
  br label %2826

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

2826:                                             ; preds = %2809, %2792
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

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

2829:                                             ; No predecessors!
  br label %2830

2830:                                             ; preds = %2829
  br label %2831

2831:                                             ; preds = %2830, %2766
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

2834:                                             ; preds = %2833
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = add nsw i32 %2835, 1
  store i32 %2836, ptr @test_count, align 4, !tbaa !5
  %2837 = load ptr, ptr %6, align 8, !tbaa !9
  %2838 = call i32 @s2n_client_hello_recv(ptr noundef %2837)
  %2839 = icmp eq i32 %2838, -1
  br i1 %2839, label %2840, label %2893

2840:                                             ; preds = %2834
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

2842:                                             ; preds = %2841
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2843 = call ptr @__errno_location() #12
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  store i32 %2844, ptr %60, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = call i32 @s2n_print_stacktrace(ptr noundef %2845)
  %2847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2848 = trunc i8 %2847 to i1
  br i1 %2848, label %2849, label %2871

2849:                                             ; preds = %2842
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = call i32 @fileno(ptr noundef %2850) #11
  %2852 = call i32 @isatty(i32 noundef %2851) #11
  %2853 = icmp ne i32 %2852, 0
  br i1 %2853, label %2854, label %2871

2854:                                             ; preds = %2849
  %2855 = load i32, ptr %60, align 4, !tbaa !5
  %2856 = call ptr @__errno_location() #12
  store i32 %2855, ptr %2856, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2860, ptr noundef @.str.4)
  %2862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror_debug(i32 noundef %2863, ptr noundef @.str.4)
  %2865 = call ptr @__errno_location() #12
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @strerror(i32 noundef %2866) #11
  %2868 = call ptr @__errno_location() #12
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2857, ptr noundef @.str.2, i32 noundef %2858, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2861, ptr noundef %2864, ptr noundef %2867, i32 noundef %2869) #11
  br label %2888

2871:                                             ; preds = %2849, %2842
  %2872 = load i32, ptr %60, align 4, !tbaa !5
  %2873 = call ptr @__errno_location() #12
  store i32 %2872, ptr %2873, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call ptr @s2n_strerror(i32 noundef %2877, ptr noundef @.str.4)
  %2879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror_debug(i32 noundef %2880, ptr noundef @.str.4)
  %2882 = call ptr @__errno_location() #12
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @strerror(i32 noundef %2883) #11
  %2885 = call ptr @__errno_location() #12
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2874, ptr noundef @.str.5, i32 noundef %2875, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2878, ptr noundef %2881, ptr noundef %2884, i32 noundef %2886) #11
  br label %2888

2888:                                             ; preds = %2871, %2854
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

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

2891:                                             ; No predecessors!
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892, %2834
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  br label %2896

2896:                                             ; preds = %2895
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = add nsw i32 %2897, 1
  store i32 %2898, ptr @test_count, align 4, !tbaa !5
  %2899 = load ptr, ptr %6, align 8, !tbaa !9
  %2900 = getelementptr inbounds %struct.s2n_connection, ptr %2899, i32 0, i32 22
  %2901 = load i8, ptr %2900, align 1, !tbaa !47
  %2902 = zext i8 %2901 to i32
  %2903 = icmp eq i32 %2902, 33
  br i1 %2903, label %2957, label %2904

2904:                                             ; preds = %2896
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2907 = call ptr @__errno_location() #12
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  store i32 %2908, ptr %61, align 4, !tbaa !5
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @s2n_print_stacktrace(ptr noundef %2909)
  %2911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2912 = trunc i8 %2911 to i1
  br i1 %2912, label %2913, label %2935

2913:                                             ; preds = %2906
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = call i32 @fileno(ptr noundef %2914) #11
  %2916 = call i32 @isatty(i32 noundef %2915) #11
  %2917 = icmp ne i32 %2916, 0
  br i1 %2917, label %2918, label %2935

2918:                                             ; preds = %2913
  %2919 = load i32, ptr %61, align 4, !tbaa !5
  %2920 = call ptr @__errno_location() #12
  store i32 %2919, ptr %2920, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = call ptr @s2n_strerror(i32 noundef %2924, ptr noundef @.str.4)
  %2926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror_debug(i32 noundef %2927, ptr noundef @.str.4)
  %2929 = call ptr @__errno_location() #12
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @strerror(i32 noundef %2930) #11
  %2932 = call ptr @__errno_location() #12
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2921, ptr noundef @.str.2, i32 noundef %2922, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2925, ptr noundef %2928, ptr noundef %2931, i32 noundef %2933) #11
  br label %2952

2935:                                             ; preds = %2913, %2906
  %2936 = load i32, ptr %61, align 4, !tbaa !5
  %2937 = call ptr @__errno_location() #12
  store i32 %2936, ptr %2937, align 4, !tbaa !5
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = load i32, ptr @test_count, align 4, !tbaa !5
  %2940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  %2942 = call ptr @s2n_strerror(i32 noundef %2941, ptr noundef @.str.4)
  %2943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  %2945 = call ptr @s2n_strerror_debug(i32 noundef %2944, ptr noundef @.str.4)
  %2946 = call ptr @__errno_location() #12
  %2947 = load i32, ptr %2946, align 4, !tbaa !5
  %2948 = call ptr @strerror(i32 noundef %2947) #11
  %2949 = call ptr @__errno_location() #12
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  %2951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2938, ptr noundef @.str.5, i32 noundef %2939, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2942, ptr noundef %2945, ptr noundef %2948, i32 noundef %2950) #11
  br label %2952

2952:                                             ; preds = %2935, %2918
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2953

2953:                                             ; preds = %2952
  br label %2954

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

2955:                                             ; No predecessors!
  br label %2956

2956:                                             ; preds = %2955
  br label %2957

2957:                                             ; preds = %2956, %2896
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = add nsw i32 %2961, 1
  store i32 %2962, ptr @test_count, align 4, !tbaa !5
  %2963 = load ptr, ptr %6, align 8, !tbaa !9
  %2964 = getelementptr inbounds %struct.s2n_connection, ptr %2963, i32 0, i32 23
  %2965 = load i8, ptr %2964, align 4, !tbaa !46
  %2966 = zext i8 %2965 to i32
  %2967 = icmp eq i32 %2966, 33
  br i1 %2967, label %3021, label %2968

2968:                                             ; preds = %2960
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2971 = call ptr @__errno_location() #12
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  store i32 %2972, ptr %62, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = call i32 @s2n_print_stacktrace(ptr noundef %2973)
  %2975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2976 = trunc i8 %2975 to i1
  br i1 %2976, label %2977, label %2999

2977:                                             ; preds = %2970
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = call i32 @fileno(ptr noundef %2978) #11
  %2980 = call i32 @isatty(i32 noundef %2979) #11
  %2981 = icmp ne i32 %2980, 0
  br i1 %2981, label %2982, label %2999

2982:                                             ; preds = %2977
  %2983 = load i32, ptr %62, align 4, !tbaa !5
  %2984 = call ptr @__errno_location() #12
  store i32 %2983, ptr %2984, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @s2n_strerror(i32 noundef %2988, ptr noundef @.str.4)
  %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_debug(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call ptr @__errno_location() #12
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @strerror(i32 noundef %2994) #11
  %2996 = call ptr @__errno_location() #12
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef @.str.2, i32 noundef %2986, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2989, ptr noundef %2992, ptr noundef %2995, i32 noundef %2997) #11
  br label %3016

2999:                                             ; preds = %2977, %2970
  %3000 = load i32, ptr %62, align 4, !tbaa !5
  %3001 = call ptr @__errno_location() #12
  store i32 %3000, ptr %3001, align 4, !tbaa !5
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror(i32 noundef %3005, ptr noundef @.str.4)
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror_debug(i32 noundef %3008, ptr noundef @.str.4)
  %3010 = call ptr @__errno_location() #12
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @strerror(i32 noundef %3011) #11
  %3013 = call ptr @__errno_location() #12
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3002, ptr noundef @.str.5, i32 noundef %3003, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 131, ptr noundef %3006, ptr noundef %3009, ptr noundef %3012, i32 noundef %3014) #11
  br label %3016

3016:                                             ; preds = %2999, %2982
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

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

3019:                                             ; No predecessors!
  br label %3020

3020:                                             ; preds = %3019
  br label %3021

3021:                                             ; preds = %3020, %2960
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022
  br label %3024

3024:                                             ; preds = %3023
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = add nsw i32 %3025, 1
  store i32 %3026, ptr @test_count, align 4, !tbaa !5
  %3027 = load ptr, ptr %6, align 8, !tbaa !9
  %3028 = getelementptr inbounds %struct.s2n_connection, ptr %3027, i32 0, i32 21
  %3029 = load i8, ptr %3028, align 2, !tbaa !42
  %3030 = zext i8 %3029 to i32
  %3031 = icmp eq i32 %3030, 33
  br i1 %3031, label %3085, label %3032

3032:                                             ; preds = %3024
  br label %3033

3033:                                             ; preds = %3032
  br label %3034

3034:                                             ; preds = %3033
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %3035 = call ptr @__errno_location() #12
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  store i32 %3036, ptr %63, align 4, !tbaa !5
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = call i32 @s2n_print_stacktrace(ptr noundef %3037)
  %3039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3040 = trunc i8 %3039 to i1
  br i1 %3040, label %3041, label %3063

3041:                                             ; preds = %3034
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @fileno(ptr noundef %3042) #11
  %3044 = call i32 @isatty(i32 noundef %3043) #11
  %3045 = icmp ne i32 %3044, 0
  br i1 %3045, label %3046, label %3063

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

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

3080:                                             ; preds = %3063, %3046
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

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

3083:                                             ; No predecessors!
  br label %3084

3084:                                             ; preds = %3083
  br label %3085

3085:                                             ; preds = %3084, %3024
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

3087:                                             ; preds = %3086
  %3088 = load ptr, ptr %6, align 8, !tbaa !9
  %3089 = call i32 @s2n_connection_free(ptr noundef %3088)
  %3090 = load ptr, ptr %7, align 8, !tbaa !9
  %3091 = call i32 @s2n_connection_free(ptr noundef %3090)
  br label %3092

3092:                                             ; preds = %3087
  %3093 = load i32, ptr @test_count, align 4, !tbaa !5
  %3094 = add nsw i32 %3093, 1
  store i32 %3094, ptr @test_count, align 4, !tbaa !5
  %3095 = call i32 (...) @s2n_enable_tls13_in_test()
  %3096 = icmp eq i32 %3095, -1
  br i1 %3096, label %3097, label %3150

3097:                                             ; preds = %3092
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %3100 = call ptr @__errno_location() #12
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  store i32 %3101, ptr %64, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = call i32 @s2n_print_stacktrace(ptr noundef %3102)
  %3104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3105 = trunc i8 %3104 to i1
  br i1 %3105, label %3106, label %3128

3106:                                             ; preds = %3099
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = call i32 @fileno(ptr noundef %3107) #11
  %3109 = call i32 @isatty(i32 noundef %3108) #11
  %3110 = icmp ne i32 %3109, 0
  br i1 %3110, label %3111, label %3128

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

3128:                                             ; preds = %3106, %3099
  %3129 = load i32, ptr %64, align 4, !tbaa !5
  %3130 = call ptr @__errno_location() #12
  store i32 %3129, ptr %3130, align 4, !tbaa !5
  %3131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3132 = load i32, ptr @test_count, align 4, !tbaa !5
  %3133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror(i32 noundef %3134, ptr noundef @.str.4)
  %3136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3137 = load i32, ptr %3136, align 4, !tbaa !5
  %3138 = call ptr @s2n_strerror_debug(i32 noundef %3137, ptr noundef @.str.4)
  %3139 = call ptr @__errno_location() #12
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call ptr @strerror(i32 noundef %3140) #11
  %3142 = call ptr @__errno_location() #12
  %3143 = load i32, ptr %3142, align 4, !tbaa !5
  %3144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3131, ptr noundef @.str.5, i32 noundef %3132, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3135, ptr noundef %3138, ptr noundef %3141, i32 noundef %3143) #11
  br label %3145

3145:                                             ; preds = %3128, %3111
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

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

3148:                                             ; No predecessors!
  br label %3149

3149:                                             ; preds = %3148
  br label %3150

3150:                                             ; preds = %3149, %3092
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

3152:                                             ; preds = %3151
  br label %3153

3153:                                             ; preds = %3152
  %3154 = load i32, ptr @test_count, align 4, !tbaa !5
  %3155 = add nsw i32 %3154, 1
  store i32 %3155, ptr @test_count, align 4, !tbaa !5
  %3156 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3156, ptr %6, align 8, !tbaa !9
  %3157 = icmp eq ptr %3156, null
  br i1 %3157, label %3158, label %3211

3158:                                             ; preds = %3153
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %3161 = call ptr @__errno_location() #12
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  store i32 %3162, ptr %65, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @s2n_print_stacktrace(ptr noundef %3163)
  %3165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3166 = trunc i8 %3165 to i1
  br i1 %3166, label %3167, label %3189

3167:                                             ; preds = %3160
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = call i32 @fileno(ptr noundef %3168) #11
  %3170 = call i32 @isatty(i32 noundef %3169) #11
  %3171 = icmp ne i32 %3170, 0
  br i1 %3171, label %3172, label %3189

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

3189:                                             ; preds = %3167, %3160
  %3190 = load i32, ptr %65, align 4, !tbaa !5
  %3191 = call ptr @__errno_location() #12
  store i32 %3190, ptr %3191, align 4, !tbaa !5
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @s2n_strerror(i32 noundef %3195, ptr noundef @.str.4)
  %3197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @s2n_strerror_debug(i32 noundef %3198, ptr noundef @.str.4)
  %3200 = call ptr @__errno_location() #12
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = call ptr @strerror(i32 noundef %3201) #11
  %3203 = call ptr @__errno_location() #12
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3192, ptr noundef @.str.5, i32 noundef %3193, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3196, ptr noundef %3199, ptr noundef %3202, i32 noundef %3204) #11
  br label %3206

3206:                                             ; preds = %3189, %3172
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

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

3209:                                             ; No predecessors!
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210, %3153
  br label %3212

3212:                                             ; preds = %3211
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

3214:                                             ; preds = %3213
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = add nsw i32 %3215, 1
  store i32 %3216, ptr @test_count, align 4, !tbaa !5
  %3217 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3217, ptr %7, align 8, !tbaa !9
  %3218 = icmp eq ptr %3217, null
  br i1 %3218, label %3219, label %3272

3219:                                             ; preds = %3214
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %3222 = call ptr @__errno_location() #12
  %3223 = load i32, ptr %3222, align 4, !tbaa !5
  store i32 %3223, ptr %66, align 4, !tbaa !5
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = call i32 @s2n_print_stacktrace(ptr noundef %3224)
  %3226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3227 = trunc i8 %3226 to i1
  br i1 %3227, label %3228, label %3250

3228:                                             ; preds = %3221
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = call i32 @fileno(ptr noundef %3229) #11
  %3231 = call i32 @isatty(i32 noundef %3230) #11
  %3232 = icmp ne i32 %3231, 0
  br i1 %3232, label %3233, label %3250

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

3250:                                             ; preds = %3228, %3221
  %3251 = load i32, ptr %66, align 4, !tbaa !5
  %3252 = call ptr @__errno_location() #12
  store i32 %3251, ptr %3252, align 4, !tbaa !5
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @s2n_strerror(i32 noundef %3256, ptr noundef @.str.4)
  %3258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call ptr @s2n_strerror_debug(i32 noundef %3259, ptr noundef @.str.4)
  %3261 = call ptr @__errno_location() #12
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @strerror(i32 noundef %3262) #11
  %3264 = call ptr @__errno_location() #12
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3253, ptr noundef @.str.5, i32 noundef %3254, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 143, ptr noundef %3257, ptr noundef %3260, ptr noundef %3263, i32 noundef %3265) #11
  br label %3267

3267:                                             ; preds = %3250, %3233
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3268

3268:                                             ; preds = %3267
  br label %3269

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

3270:                                             ; No predecessors!
  br label %3271

3271:                                             ; preds = %3270
  br label %3272

3272:                                             ; preds = %3271, %3214
  br label %3273

3273:                                             ; preds = %3272
  br label %3274

3274:                                             ; preds = %3273
  br label %3275

3275:                                             ; preds = %3274
  %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 %6, align 8, !tbaa !9
  %3279 = load ptr, ptr %9, align 8, !tbaa !9
  %3280 = call i32 @s2n_connection_set_config(ptr noundef %3278, ptr noundef %3279)
  %3281 = icmp eq i32 %3280, -1
  br i1 %3281, label %3282, label %3335

3282:                                             ; preds = %3275
  br label %3283

3283:                                             ; preds = %3282
  br label %3284

3284:                                             ; preds = %3283
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3285 = call ptr @__errno_location() #12
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  store i32 %3286, ptr %67, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = call i32 @s2n_print_stacktrace(ptr noundef %3287)
  %3289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3290 = trunc i8 %3289 to i1
  br i1 %3290, label %3291, label %3313

3291:                                             ; preds = %3284
  %3292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3293 = call i32 @fileno(ptr noundef %3292) #11
  %3294 = call i32 @isatty(i32 noundef %3293) #11
  %3295 = icmp ne i32 %3294, 0
  br i1 %3295, label %3296, label %3313

3296:                                             ; preds = %3291
  %3297 = load i32, ptr %67, align 4, !tbaa !5
  %3298 = call ptr @__errno_location() #12
  store i32 %3297, ptr %3298, align 4, !tbaa !5
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = load i32, ptr @test_count, align 4, !tbaa !5
  %3301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @s2n_strerror(i32 noundef %3302, ptr noundef @.str.4)
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror_debug(i32 noundef %3305, ptr noundef @.str.4)
  %3307 = call ptr @__errno_location() #12
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @strerror(i32 noundef %3308) #11
  %3310 = call ptr @__errno_location() #12
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3299, ptr noundef @.str.2, i32 noundef %3300, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 144, ptr noundef %3303, ptr noundef %3306, ptr noundef %3309, i32 noundef %3311) #11
  br label %3330

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

3330:                                             ; preds = %3313, %3296
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

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

3333:                                             ; No predecessors!
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

3335:                                             ; preds = %3334, %3275
  br label %3336

3336:                                             ; preds = %3335
  br label %3337

3337:                                             ; preds = %3336
  br label %3338

3338:                                             ; preds = %3337
  %3339 = load i32, ptr @test_count, align 4, !tbaa !5
  %3340 = add nsw i32 %3339, 1
  store i32 %3340, ptr @test_count, align 4, !tbaa !5
  %3341 = load ptr, ptr %7, align 8, !tbaa !9
  %3342 = load ptr, ptr %9, align 8, !tbaa !9
  %3343 = call i32 @s2n_connection_set_config(ptr noundef %3341, ptr noundef %3342)
  %3344 = icmp eq i32 %3343, -1
  br i1 %3344, label %3345, label %3398

3345:                                             ; preds = %3338
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3348 = call ptr @__errno_location() #12
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  store i32 %3349, ptr %68, align 4, !tbaa !5
  %3350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3351 = call i32 @s2n_print_stacktrace(ptr noundef %3350)
  %3352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3353 = trunc i8 %3352 to i1
  br i1 %3353, label %3354, label %3376

3354:                                             ; preds = %3347
  %3355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3356 = call i32 @fileno(ptr noundef %3355) #11
  %3357 = call i32 @isatty(i32 noundef %3356) #11
  %3358 = icmp ne i32 %3357, 0
  br i1 %3358, label %3359, label %3376

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

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

3393:                                             ; preds = %3376, %3359
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3394

3394:                                             ; preds = %3393
  br label %3395

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

3396:                                             ; No predecessors!
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397, %3338
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  br label %3401

3401:                                             ; preds = %3400
  %3402 = load i32, ptr @test_count, align 4, !tbaa !5
  %3403 = add nsw i32 %3402, 1
  store i32 %3403, ptr @test_count, align 4, !tbaa !5
  %3404 = load ptr, ptr %7, align 8, !tbaa !9
  %3405 = call i32 @s2n_client_hello_send(ptr noundef %3404)
  %3406 = icmp eq i32 %3405, -1
  br i1 %3406, label %3407, label %3460

3407:                                             ; preds = %3401
  br label %3408

3408:                                             ; preds = %3407
  br label %3409

3409:                                             ; preds = %3408
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %3410 = call ptr @__errno_location() #12
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  store i32 %3411, ptr %69, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = call i32 @s2n_print_stacktrace(ptr noundef %3412)
  %3414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3415 = trunc i8 %3414 to i1
  br i1 %3415, label %3416, label %3438

3416:                                             ; preds = %3409
  %3417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3418 = call i32 @fileno(ptr noundef %3417) #11
  %3419 = call i32 @isatty(i32 noundef %3418) #11
  %3420 = icmp ne i32 %3419, 0
  br i1 %3420, label %3421, label %3438

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

3438:                                             ; preds = %3416, %3409
  %3439 = load i32, ptr %69, align 4, !tbaa !5
  %3440 = call ptr @__errno_location() #12
  store i32 %3439, ptr %3440, align 4, !tbaa !5
  %3441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3442 = load i32, ptr @test_count, align 4, !tbaa !5
  %3443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3444 = load i32, ptr %3443, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef @.str.4)
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror_debug(i32 noundef %3447, ptr noundef @.str.4)
  %3449 = call ptr @__errno_location() #12
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @strerror(i32 noundef %3450) #11
  %3452 = call ptr @__errno_location() #12
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3441, ptr noundef @.str.5, i32 noundef %3442, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3445, ptr noundef %3448, ptr noundef %3451, i32 noundef %3453) #11
  br label %3455

3455:                                             ; preds = %3438, %3421
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3456

3456:                                             ; preds = %3455
  br label %3457

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

3458:                                             ; No predecessors!
  br label %3459

3459:                                             ; preds = %3458
  br label %3460

3460:                                             ; preds = %3459, %3401
  br label %3461

3461:                                             ; preds = %3460
  br label %3462

3462:                                             ; preds = %3461
  br label %3463

3463:                                             ; preds = %3462
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = add nsw i32 %3464, 1
  store i32 %3465, ptr @test_count, align 4, !tbaa !5
  %3466 = load ptr, ptr %7, align 8, !tbaa !9
  %3467 = getelementptr inbounds %struct.s2n_connection, ptr %3466, i32 0, i32 23
  %3468 = load i8, ptr %3467, align 4, !tbaa !46
  %3469 = zext i8 %3468 to i32
  %3470 = icmp eq i32 %3469, 33
  br i1 %3470, label %3524, label %3471

3471:                                             ; preds = %3463
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3474 = call ptr @__errno_location() #12
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  store i32 %3475, ptr %70, align 4, !tbaa !5
  %3476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3477 = call i32 @s2n_print_stacktrace(ptr noundef %3476)
  %3478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3479 = trunc i8 %3478 to i1
  br i1 %3479, label %3480, label %3502

3480:                                             ; preds = %3473
  %3481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3482 = call i32 @fileno(ptr noundef %3481) #11
  %3483 = call i32 @isatty(i32 noundef %3482) #11
  %3484 = icmp ne i32 %3483, 0
  br i1 %3484, label %3485, label %3502

3485:                                             ; preds = %3480
  %3486 = load i32, ptr %70, align 4, !tbaa !5
  %3487 = call ptr @__errno_location() #12
  store i32 %3486, ptr %3487, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3491, ptr noundef @.str.4)
  %3493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror_debug(i32 noundef %3494, ptr noundef @.str.4)
  %3496 = call ptr @__errno_location() #12
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @strerror(i32 noundef %3497) #11
  %3499 = call ptr @__errno_location() #12
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3488, ptr noundef @.str.2, i32 noundef %3489, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3492, ptr noundef %3495, ptr noundef %3498, i32 noundef %3500) #11
  br label %3519

3502:                                             ; preds = %3480, %3473
  %3503 = load i32, ptr %70, align 4, !tbaa !5
  %3504 = call ptr @__errno_location() #12
  store i32 %3503, ptr %3504, align 4, !tbaa !5
  %3505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3506 = load i32, ptr @test_count, align 4, !tbaa !5
  %3507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror(i32 noundef %3508, ptr noundef @.str.4)
  %3510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  %3512 = call ptr @s2n_strerror_debug(i32 noundef %3511, ptr noundef @.str.4)
  %3513 = call ptr @__errno_location() #12
  %3514 = load i32, ptr %3513, align 4, !tbaa !5
  %3515 = call ptr @strerror(i32 noundef %3514) #11
  %3516 = call ptr @__errno_location() #12
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3505, ptr noundef @.str.5, i32 noundef %3506, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3509, ptr noundef %3512, ptr noundef %3515, i32 noundef %3517) #11
  br label %3519

3519:                                             ; preds = %3502, %3485
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3520

3520:                                             ; preds = %3519
  br label %3521

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

3522:                                             ; No predecessors!
  br label %3523

3523:                                             ; preds = %3522
  br label %3524

3524:                                             ; preds = %3523, %3463
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526
  %3528 = load i32, ptr @test_count, align 4, !tbaa !5
  %3529 = add nsw i32 %3528, 1
  store i32 %3529, ptr @test_count, align 4, !tbaa !5
  %3530 = load ptr, ptr %7, align 8, !tbaa !9
  %3531 = getelementptr inbounds %struct.s2n_connection, ptr %3530, i32 0, i32 21
  %3532 = load i8, ptr %3531, align 2, !tbaa !42
  %3533 = zext i8 %3532 to i32
  %3534 = icmp eq i32 %3533, 33
  br i1 %3534, label %3588, label %3535

3535:                                             ; preds = %3527
  br label %3536

3536:                                             ; preds = %3535
  br label %3537

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

3544:                                             ; preds = %3537
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @fileno(ptr noundef %3545) #11
  %3547 = call i32 @isatty(i32 noundef %3546) #11
  %3548 = icmp ne i32 %3547, 0
  br i1 %3548, label %3549, label %3566

3549:                                             ; preds = %3544
  %3550 = load i32, ptr %71, align 4, !tbaa !5
  %3551 = call ptr @__errno_location() #12
  store i32 %3550, ptr %3551, align 4, !tbaa !5
  %3552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3553 = load i32, ptr @test_count, align 4, !tbaa !5
  %3554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror(i32 noundef %3555, ptr noundef @.str.4)
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror_debug(i32 noundef %3558, ptr noundef @.str.4)
  %3560 = call ptr @__errno_location() #12
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @strerror(i32 noundef %3561) #11
  %3563 = call ptr @__errno_location() #12
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3552, ptr noundef @.str.2, i32 noundef %3553, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3556, ptr noundef %3559, ptr noundef %3562, i32 noundef %3564) #11
  br label %3583

3566:                                             ; preds = %3544, %3537
  %3567 = load i32, ptr %71, align 4, !tbaa !5
  %3568 = call ptr @__errno_location() #12
  store i32 %3567, ptr %3568, align 4, !tbaa !5
  %3569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3570 = load i32, ptr @test_count, align 4, !tbaa !5
  %3571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = call ptr @s2n_strerror(i32 noundef %3572, ptr noundef @.str.4)
  %3574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3575 = load i32, ptr %3574, align 4, !tbaa !5
  %3576 = call ptr @s2n_strerror_debug(i32 noundef %3575, ptr noundef @.str.4)
  %3577 = call ptr @__errno_location() #12
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call ptr @strerror(i32 noundef %3578) #11
  %3580 = call ptr @__errno_location() #12
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3569, ptr noundef @.str.5, i32 noundef %3570, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3573, ptr noundef %3576, ptr noundef %3579, i32 noundef %3581) #11
  br label %3583

3583:                                             ; preds = %3566, %3549
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3584

3584:                                             ; preds = %3583
  br label %3585

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

3586:                                             ; No predecessors!
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

3588:                                             ; preds = %3587, %3527
  br label %3589

3589:                                             ; preds = %3588
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

3591:                                             ; preds = %3590
  %3592 = load i32, ptr @test_count, align 4, !tbaa !5
  %3593 = add nsw i32 %3592, 1
  store i32 %3593, ptr @test_count, align 4, !tbaa !5
  %3594 = load ptr, ptr %7, align 8, !tbaa !9
  %3595 = getelementptr inbounds %struct.s2n_connection, ptr %3594, i32 0, i32 20
  %3596 = load i8, ptr %3595, align 1, !tbaa !15
  %3597 = zext i8 %3596 to i32
  %3598 = icmp eq i32 %3597, 33
  br i1 %3598, label %3652, label %3599

3599:                                             ; preds = %3591
  br label %3600

3600:                                             ; preds = %3599
  br label %3601

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

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

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

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

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

3648:                                             ; preds = %3647
  br label %3649

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

3650:                                             ; No predecessors!
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

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

3653:                                             ; preds = %3652
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = add nsw i32 %3656, 1
  store i32 %3657, ptr @test_count, align 4, !tbaa !5
  %3658 = load ptr, ptr %6, align 8, !tbaa !9
  %3659 = getelementptr inbounds %struct.s2n_connection, ptr %3658, i32 0, i32 52
  %3660 = getelementptr inbounds %struct.s2n_handshake, ptr %3659, i32 0, i32 0
  %3661 = load ptr, ptr %7, align 8, !tbaa !9
  %3662 = getelementptr inbounds %struct.s2n_connection, ptr %3661, i32 0, i32 52
  %3663 = getelementptr inbounds %struct.s2n_handshake, ptr %3662, i32 0, i32 0
  %3664 = getelementptr inbounds %struct.s2n_stuffer, ptr %3663, i32 0, i32 0
  %3665 = call i32 @s2n_stuffer_write(ptr noundef %3660, ptr noundef %3664)
  %3666 = icmp eq i32 %3665, -1
  br i1 %3666, label %3667, label %3720

3667:                                             ; preds = %3655
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %3670 = call ptr @__errno_location() #12
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  store i32 %3671, ptr %73, align 4, !tbaa !5
  %3672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3673 = call i32 @s2n_print_stacktrace(ptr noundef %3672)
  %3674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3675 = trunc i8 %3674 to i1
  br i1 %3675, label %3676, label %3698

3676:                                             ; preds = %3669
  %3677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3678 = call i32 @fileno(ptr noundef %3677) #11
  %3679 = call i32 @isatty(i32 noundef %3678) #11
  %3680 = icmp ne i32 %3679, 0
  br i1 %3680, label %3681, label %3698

3681:                                             ; preds = %3676
  %3682 = load i32, ptr %73, align 4, !tbaa !5
  %3683 = call ptr @__errno_location() #12
  store i32 %3682, ptr %3683, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3687, ptr noundef @.str.4)
  %3689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror_debug(i32 noundef %3690, ptr noundef @.str.4)
  %3692 = call ptr @__errno_location() #12
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @strerror(i32 noundef %3693) #11
  %3695 = call ptr @__errno_location() #12
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3684, ptr noundef @.str.2, i32 noundef %3685, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3688, ptr noundef %3691, ptr noundef %3694, i32 noundef %3696) #11
  br label %3715

3698:                                             ; preds = %3676, %3669
  %3699 = load i32, ptr %73, align 4, !tbaa !5
  %3700 = call ptr @__errno_location() #12
  store i32 %3699, ptr %3700, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = load i32, ptr @test_count, align 4, !tbaa !5
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror(i32 noundef %3704, ptr noundef @.str.4)
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror_debug(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call ptr @__errno_location() #12
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @strerror(i32 noundef %3710) #11
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3701, ptr noundef @.str.5, i32 noundef %3702, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3705, ptr noundef %3708, ptr noundef %3711, i32 noundef %3713) #11
  br label %3715

3715:                                             ; preds = %3698, %3681
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3716

3716:                                             ; preds = %3715
  br label %3717

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

3718:                                             ; No predecessors!
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

3720:                                             ; preds = %3719, %3655
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722
  %3724 = load i32, ptr @test_count, align 4, !tbaa !5
  %3725 = add nsw i32 %3724, 1
  store i32 %3725, ptr @test_count, align 4, !tbaa !5
  %3726 = load ptr, ptr %6, align 8, !tbaa !9
  %3727 = call i32 @s2n_client_hello_recv(ptr noundef %3726)
  %3728 = icmp eq i32 %3727, -1
  br i1 %3728, label %3729, label %3782

3729:                                             ; preds = %3723
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

3731:                                             ; preds = %3730
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %3732 = call ptr @__errno_location() #12
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  store i32 %3733, ptr %74, align 4, !tbaa !5
  %3734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3735 = call i32 @s2n_print_stacktrace(ptr noundef %3734)
  %3736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3737 = trunc i8 %3736 to i1
  br i1 %3737, label %3738, label %3760

3738:                                             ; preds = %3731
  %3739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3740 = call i32 @fileno(ptr noundef %3739) #11
  %3741 = call i32 @isatty(i32 noundef %3740) #11
  %3742 = icmp ne i32 %3741, 0
  br i1 %3742, label %3743, label %3760

3743:                                             ; preds = %3738
  %3744 = load i32, ptr %74, align 4, !tbaa !5
  %3745 = call ptr @__errno_location() #12
  store i32 %3744, ptr %3745, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3749, ptr noundef @.str.4)
  %3751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3752 = load i32, ptr %3751, align 4, !tbaa !5
  %3753 = call ptr @s2n_strerror_debug(i32 noundef %3752, ptr noundef @.str.4)
  %3754 = call ptr @__errno_location() #12
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call ptr @strerror(i32 noundef %3755) #11
  %3757 = call ptr @__errno_location() #12
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3746, ptr noundef @.str.2, i32 noundef %3747, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3750, ptr noundef %3753, ptr noundef %3756, i32 noundef %3758) #11
  br label %3777

3760:                                             ; preds = %3738, %3731
  %3761 = load i32, ptr %74, align 4, !tbaa !5
  %3762 = call ptr @__errno_location() #12
  store i32 %3761, ptr %3762, align 4, !tbaa !5
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @s2n_strerror(i32 noundef %3766, ptr noundef @.str.4)
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror_debug(i32 noundef %3769, ptr noundef @.str.4)
  %3771 = call ptr @__errno_location() #12
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @strerror(i32 noundef %3772) #11
  %3774 = call ptr @__errno_location() #12
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3763, ptr noundef @.str.5, i32 noundef %3764, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3767, ptr noundef %3770, ptr noundef %3773, i32 noundef %3775) #11
  br label %3777

3777:                                             ; preds = %3760, %3743
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3778

3778:                                             ; preds = %3777
  br label %3779

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

3780:                                             ; No predecessors!
  br label %3781

3781:                                             ; preds = %3780
  br label %3782

3782:                                             ; preds = %3781, %3723
  br label %3783

3783:                                             ; preds = %3782
  br label %3784

3784:                                             ; preds = %3783
  br label %3785

3785:                                             ; preds = %3784
  %3786 = load i32, ptr @test_count, align 4, !tbaa !5
  %3787 = add nsw i32 %3786, 1
  store i32 %3787, ptr @test_count, align 4, !tbaa !5
  %3788 = load ptr, ptr %6, align 8, !tbaa !9
  %3789 = getelementptr inbounds %struct.s2n_connection, ptr %3788, i32 0, i32 22
  %3790 = load i8, ptr %3789, align 1, !tbaa !47
  %3791 = zext i8 %3790 to i32
  %3792 = icmp eq i32 %3791, 33
  br i1 %3792, label %3846, label %3793

3793:                                             ; preds = %3785
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %3796 = call ptr @__errno_location() #12
  %3797 = load i32, ptr %3796, align 4, !tbaa !5
  store i32 %3797, ptr %75, align 4, !tbaa !5
  %3798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3799 = call i32 @s2n_print_stacktrace(ptr noundef %3798)
  %3800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3801 = trunc i8 %3800 to i1
  br i1 %3801, label %3802, label %3824

3802:                                             ; preds = %3795
  %3803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3804 = call i32 @fileno(ptr noundef %3803) #11
  %3805 = call i32 @isatty(i32 noundef %3804) #11
  %3806 = icmp ne i32 %3805, 0
  br i1 %3806, label %3807, label %3824

3807:                                             ; preds = %3802
  %3808 = load i32, ptr %75, align 4, !tbaa !5
  %3809 = call ptr @__errno_location() #12
  store i32 %3808, ptr %3809, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror(i32 noundef %3813, ptr noundef @.str.4)
  %3815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  %3817 = call ptr @s2n_strerror_debug(i32 noundef %3816, ptr noundef @.str.4)
  %3818 = call ptr @__errno_location() #12
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call ptr @strerror(i32 noundef %3819) #11
  %3821 = call ptr @__errno_location() #12
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3810, ptr noundef @.str.2, i32 noundef %3811, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3814, ptr noundef %3817, ptr noundef %3820, i32 noundef %3822) #11
  br label %3841

3824:                                             ; preds = %3802, %3795
  %3825 = load i32, ptr %75, align 4, !tbaa !5
  %3826 = call ptr @__errno_location() #12
  store i32 %3825, ptr %3826, align 4, !tbaa !5
  %3827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3828 = load i32, ptr @test_count, align 4, !tbaa !5
  %3829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call ptr @s2n_strerror(i32 noundef %3830, ptr noundef @.str.4)
  %3832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  %3834 = call ptr @s2n_strerror_debug(i32 noundef %3833, ptr noundef @.str.4)
  %3835 = call ptr @__errno_location() #12
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call ptr @strerror(i32 noundef %3836) #11
  %3838 = call ptr @__errno_location() #12
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3827, ptr noundef @.str.5, i32 noundef %3828, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3831, ptr noundef %3834, ptr noundef %3837, i32 noundef %3839) #11
  br label %3841

3841:                                             ; preds = %3824, %3807
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3842

3842:                                             ; preds = %3841
  br label %3843

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

3844:                                             ; No predecessors!
  br label %3845

3845:                                             ; preds = %3844
  br label %3846

3846:                                             ; preds = %3845, %3785
  br label %3847

3847:                                             ; preds = %3846
  br label %3848

3848:                                             ; preds = %3847
  br label %3849

3849:                                             ; preds = %3848
  %3850 = load i32, ptr @test_count, align 4, !tbaa !5
  %3851 = add nsw i32 %3850, 1
  store i32 %3851, ptr @test_count, align 4, !tbaa !5
  %3852 = load ptr, ptr %6, align 8, !tbaa !9
  %3853 = getelementptr inbounds %struct.s2n_connection, ptr %3852, i32 0, i32 23
  %3854 = load i8, ptr %3853, align 4, !tbaa !46
  %3855 = zext i8 %3854 to i32
  %3856 = icmp eq i32 %3855, 33
  br i1 %3856, label %3910, label %3857

3857:                                             ; preds = %3849
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %3860 = call ptr @__errno_location() #12
  %3861 = load i32, ptr %3860, align 4, !tbaa !5
  store i32 %3861, ptr %76, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = call i32 @s2n_print_stacktrace(ptr noundef %3862)
  %3864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3865 = trunc i8 %3864 to i1
  br i1 %3865, label %3866, label %3888

3866:                                             ; preds = %3859
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = call i32 @fileno(ptr noundef %3867) #11
  %3869 = call i32 @isatty(i32 noundef %3868) #11
  %3870 = icmp ne i32 %3869, 0
  br i1 %3870, label %3871, label %3888

3871:                                             ; preds = %3866
  %3872 = load i32, ptr %76, align 4, !tbaa !5
  %3873 = call ptr @__errno_location() #12
  store i32 %3872, ptr %3873, align 4, !tbaa !5
  %3874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3875 = load i32, ptr @test_count, align 4, !tbaa !5
  %3876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call ptr @s2n_strerror(i32 noundef %3877, ptr noundef @.str.4)
  %3879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call ptr @s2n_strerror_debug(i32 noundef %3880, ptr noundef @.str.4)
  %3882 = call ptr @__errno_location() #12
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call ptr @strerror(i32 noundef %3883) #11
  %3885 = call ptr @__errno_location() #12
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  %3887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3874, ptr noundef @.str.2, i32 noundef %3875, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3878, ptr noundef %3881, ptr noundef %3884, i32 noundef %3886) #11
  br label %3905

3888:                                             ; preds = %3866, %3859
  %3889 = load i32, ptr %76, align 4, !tbaa !5
  %3890 = call ptr @__errno_location() #12
  store i32 %3889, ptr %3890, align 4, !tbaa !5
  %3891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3892 = load i32, ptr @test_count, align 4, !tbaa !5
  %3893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror(i32 noundef %3894, ptr noundef @.str.4)
  %3896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  %3898 = call ptr @s2n_strerror_debug(i32 noundef %3897, ptr noundef @.str.4)
  %3899 = call ptr @__errno_location() #12
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call ptr @strerror(i32 noundef %3900) #11
  %3902 = call ptr @__errno_location() #12
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  %3904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3891, ptr noundef @.str.5, i32 noundef %3892, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3895, ptr noundef %3898, ptr noundef %3901, i32 noundef %3903) #11
  br label %3905

3905:                                             ; preds = %3888, %3871
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3906

3906:                                             ; preds = %3905
  br label %3907

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

3908:                                             ; No predecessors!
  br label %3909

3909:                                             ; preds = %3908
  br label %3910

3910:                                             ; preds = %3909, %3849
  br label %3911

3911:                                             ; preds = %3910
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

3913:                                             ; preds = %3912
  %3914 = load i32, ptr @test_count, align 4, !tbaa !5
  %3915 = add nsw i32 %3914, 1
  store i32 %3915, ptr @test_count, align 4, !tbaa !5
  %3916 = load ptr, ptr %6, align 8, !tbaa !9
  %3917 = getelementptr inbounds %struct.s2n_connection, ptr %3916, i32 0, i32 21
  %3918 = load i8, ptr %3917, align 2, !tbaa !42
  %3919 = zext i8 %3918 to i32
  %3920 = icmp eq i32 %3919, 33
  br i1 %3920, label %3974, label %3921

3921:                                             ; preds = %3913
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3924 = call ptr @__errno_location() #12
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  store i32 %3925, ptr %77, align 4, !tbaa !5
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3927 = call i32 @s2n_print_stacktrace(ptr noundef %3926)
  %3928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3929 = trunc i8 %3928 to i1
  br i1 %3929, label %3930, label %3952

3930:                                             ; preds = %3923
  %3931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3932 = call i32 @fileno(ptr noundef %3931) #11
  %3933 = call i32 @isatty(i32 noundef %3932) #11
  %3934 = icmp ne i32 %3933, 0
  br i1 %3934, label %3935, label %3952

3935:                                             ; preds = %3930
  %3936 = load i32, ptr %77, align 4, !tbaa !5
  %3937 = call ptr @__errno_location() #12
  store i32 %3936, ptr %3937, align 4, !tbaa !5
  %3938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3939 = load i32, ptr @test_count, align 4, !tbaa !5
  %3940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call ptr @s2n_strerror(i32 noundef %3941, ptr noundef @.str.4)
  %3943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3944 = load i32, ptr %3943, align 4, !tbaa !5
  %3945 = call ptr @s2n_strerror_debug(i32 noundef %3944, ptr noundef @.str.4)
  %3946 = call ptr @__errno_location() #12
  %3947 = load i32, ptr %3946, align 4, !tbaa !5
  %3948 = call ptr @strerror(i32 noundef %3947) #11
  %3949 = call ptr @__errno_location() #12
  %3950 = load i32, ptr %3949, align 4, !tbaa !5
  %3951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3938, ptr noundef @.str.2, i32 noundef %3939, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3942, ptr noundef %3945, ptr noundef %3948, i32 noundef %3950) #11
  br label %3969

3952:                                             ; preds = %3930, %3923
  %3953 = load i32, ptr %77, align 4, !tbaa !5
  %3954 = call ptr @__errno_location() #12
  store i32 %3953, ptr %3954, align 4, !tbaa !5
  %3955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3956 = load i32, ptr @test_count, align 4, !tbaa !5
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @s2n_strerror_debug(i32 noundef %3961, ptr noundef @.str.4)
  %3963 = call ptr @__errno_location() #12
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call ptr @strerror(i32 noundef %3964) #11
  %3966 = call ptr @__errno_location() #12
  %3967 = load i32, ptr %3966, align 4, !tbaa !5
  %3968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3955, ptr noundef @.str.5, i32 noundef %3956, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3959, ptr noundef %3962, ptr noundef %3965, i32 noundef %3967) #11
  br label %3969

3969:                                             ; preds = %3952, %3935
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3970

3970:                                             ; preds = %3969
  br label %3971

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

3972:                                             ; No predecessors!
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973, %3913
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  br label %3977

3977:                                             ; preds = %3976
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = add nsw i32 %3978, 1
  store i32 %3979, ptr @test_count, align 4, !tbaa !5
  %3980 = load ptr, ptr %6, align 8, !tbaa !9
  %3981 = getelementptr inbounds %struct.s2n_connection, ptr %3980, i32 0, i32 20
  %3982 = load i8, ptr %3981, align 1, !tbaa !15
  %3983 = zext i8 %3982 to i32
  %3984 = icmp eq i32 %3983, 33
  br i1 %3984, label %4038, label %3985

3985:                                             ; preds = %3977
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3988 = call ptr @__errno_location() #12
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  store i32 %3989, ptr %78, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @s2n_print_stacktrace(ptr noundef %3990)
  %3992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3993 = trunc i8 %3992 to i1
  br i1 %3993, label %3994, label %4016

3994:                                             ; preds = %3987
  %3995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3996 = call i32 @fileno(ptr noundef %3995) #11
  %3997 = call i32 @isatty(i32 noundef %3996) #11
  %3998 = icmp ne i32 %3997, 0
  br i1 %3998, label %3999, label %4016

3999:                                             ; preds = %3994
  %4000 = load i32, ptr %78, align 4, !tbaa !5
  %4001 = call ptr @__errno_location() #12
  store i32 %4000, ptr %4001, align 4, !tbaa !5
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = load i32, ptr @test_count, align 4, !tbaa !5
  %4004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call ptr @s2n_strerror(i32 noundef %4005, ptr noundef @.str.4)
  %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_debug(i32 noundef %4008, ptr noundef @.str.4)
  %4010 = call ptr @__errno_location() #12
  %4011 = load i32, ptr %4010, align 4, !tbaa !5
  %4012 = call ptr @strerror(i32 noundef %4011) #11
  %4013 = call ptr @__errno_location() #12
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4002, ptr noundef @.str.2, i32 noundef %4003, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 158, ptr noundef %4006, ptr noundef %4009, ptr noundef %4012, i32 noundef %4014) #11
  br label %4033

4016:                                             ; preds = %3994, %3987
  %4017 = load i32, ptr %78, align 4, !tbaa !5
  %4018 = call ptr @__errno_location() #12
  store i32 %4017, ptr %4018, align 4, !tbaa !5
  %4019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4020 = load i32, ptr @test_count, align 4, !tbaa !5
  %4021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call ptr @s2n_strerror(i32 noundef %4022, ptr noundef @.str.4)
  %4024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4025 = load i32, ptr %4024, align 4, !tbaa !5
  %4026 = call ptr @s2n_strerror_debug(i32 noundef %4025, ptr noundef @.str.4)
  %4027 = call ptr @__errno_location() #12
  %4028 = load i32, ptr %4027, align 4, !tbaa !5
  %4029 = call ptr @strerror(i32 noundef %4028) #11
  %4030 = call ptr @__errno_location() #12
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  %4032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4019, ptr noundef @.str.5, i32 noundef %4020, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 158, ptr noundef %4023, ptr noundef %4026, ptr noundef %4029, i32 noundef %4031) #11
  br label %4033

4033:                                             ; preds = %4016, %3999
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %4034

4034:                                             ; preds = %4033
  br label %4035

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

4036:                                             ; No predecessors!
  br label %4037

4037:                                             ; preds = %4036
  br label %4038

4038:                                             ; preds = %4037, %3977
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039
  %4041 = load ptr, ptr %6, align 8, !tbaa !9
  %4042 = call i32 @s2n_connection_free(ptr noundef %4041)
  %4043 = load ptr, ptr %7, align 8, !tbaa !9
  %4044 = call i32 @s2n_connection_free(ptr noundef %4043)
  br label %4045

4045:                                             ; preds = %4040
  %4046 = load i32, ptr @test_count, align 4, !tbaa !5
  %4047 = add nsw i32 %4046, 1
  store i32 %4047, ptr @test_count, align 4, !tbaa !5
  %4048 = call i32 (...) @s2n_disable_tls13_in_test()
  %4049 = icmp eq i32 %4048, -1
  br i1 %4049, label %4050, label %4103

4050:                                             ; preds = %4045
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

4052:                                             ; preds = %4051
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %4053 = call ptr @__errno_location() #12
  %4054 = load i32, ptr %4053, align 4, !tbaa !5
  store i32 %4054, ptr %79, align 4, !tbaa !5
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @s2n_print_stacktrace(ptr noundef %4055)
  %4057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4058 = trunc i8 %4057 to i1
  br i1 %4058, label %4059, label %4081

4059:                                             ; preds = %4052
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = call i32 @fileno(ptr noundef %4060) #11
  %4062 = call i32 @isatty(i32 noundef %4061) #11
  %4063 = icmp ne i32 %4062, 0
  br i1 %4063, label %4064, label %4081

4064:                                             ; preds = %4059
  %4065 = load i32, ptr %79, 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.2, i32 noundef %4068, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4071, ptr noundef %4074, ptr noundef %4077, i32 noundef %4079) #11
  br label %4098

4081:                                             ; preds = %4059, %4052
  %4082 = load i32, ptr %79, align 4, !tbaa !5
  %4083 = call ptr @__errno_location() #12
  store i32 %4082, ptr %4083, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = load i32, ptr @test_count, align 4, !tbaa !5
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror(i32 noundef %4087, ptr noundef @.str.4)
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef @.str.4)
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @strerror(i32 noundef %4093) #11
  %4095 = call ptr @__errno_location() #12
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef @.str.5, i32 noundef %4085, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4088, ptr noundef %4091, ptr noundef %4094, i32 noundef %4096) #11
  br label %4098

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

4099:                                             ; preds = %4098
  br label %4100

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

4101:                                             ; No predecessors!
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

4103:                                             ; preds = %4102, %4045
  br label %4104

4104:                                             ; preds = %4103
  br label %4105

4105:                                             ; preds = %4104
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #11
  store i8 0, ptr %80, align 1, !tbaa !48
  br label %4106

4106:                                             ; preds = %5005, %4105
  %4107 = load i8, ptr %80, align 1, !tbaa !48
  %4108 = zext i8 %4107 to i32
  %4109 = icmp slt i32 %4108, 2
  br i1 %4109, label %4111, label %4110

4110:                                             ; preds = %4106
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #11
  br label %5008

4111:                                             ; preds = %4106
  %4112 = load i8, ptr %80, align 1, !tbaa !48
  %4113 = zext i8 %4112 to i32
  %4114 = icmp eq i32 %4113, 1
  br i1 %4114, label %4115, label %4177

4115:                                             ; preds = %4111
  br label %4116

4116:                                             ; preds = %4115
  %4117 = load i32, ptr @test_count, align 4, !tbaa !5
  %4118 = add nsw i32 %4117, 1
  store i32 %4118, ptr @test_count, align 4, !tbaa !5
  %4119 = call i32 (...) @s2n_enable_tls13_in_test()
  %4120 = icmp eq i32 %4119, -1
  br i1 %4120, label %4121, label %4174

4121:                                             ; preds = %4116
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

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

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

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

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

4169:                                             ; preds = %4152, %4135
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %4170

4170:                                             ; preds = %4169
  br label %4171

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

4172:                                             ; No predecessors!
  br label %4173

4173:                                             ; preds = %4172
  br label %4174

4174:                                             ; preds = %4173, %4116
  br label %4175

4175:                                             ; preds = %4174
  br label %4176

4176:                                             ; preds = %4175
  br label %4177

4177:                                             ; preds = %4176, %4111
  br label %4178

4178:                                             ; preds = %4177
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = add nsw i32 %4179, 1
  store i32 %4180, ptr @test_count, align 4, !tbaa !5
  %4181 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4181, ptr %6, align 8, !tbaa !9
  %4182 = icmp eq ptr %4181, null
  br i1 %4182, label %4183, label %4236

4183:                                             ; preds = %4178
  br label %4184

4184:                                             ; preds = %4183
  br label %4185

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

4192:                                             ; preds = %4185
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @fileno(ptr noundef %4193) #11
  %4195 = call i32 @isatty(i32 noundef %4194) #11
  %4196 = icmp ne i32 %4195, 0
  br i1 %4196, label %4197, label %4214

4197:                                             ; preds = %4192
  %4198 = load i32, ptr %82, align 4, !tbaa !5
  %4199 = call ptr @__errno_location() #12
  store i32 %4198, ptr %4199, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = load i32, ptr @test_count, align 4, !tbaa !5
  %4202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call ptr @s2n_strerror(i32 noundef %4203, ptr noundef @.str.4)
  %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_debug(i32 noundef %4206, ptr noundef @.str.4)
  %4208 = call ptr @__errno_location() #12
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @strerror(i32 noundef %4209) #11
  %4211 = call ptr @__errno_location() #12
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4200, ptr noundef @.str.2, i32 noundef %4201, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4204, ptr noundef %4207, ptr noundef %4210, i32 noundef %4212) #11
  br label %4231

4214:                                             ; preds = %4192, %4185
  %4215 = load i32, ptr %82, align 4, !tbaa !5
  %4216 = call ptr @__errno_location() #12
  store i32 %4215, ptr %4216, align 4, !tbaa !5
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = load i32, ptr @test_count, align 4, !tbaa !5
  %4219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call ptr @s2n_strerror(i32 noundef %4220, ptr noundef @.str.4)
  %4222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call ptr @s2n_strerror_debug(i32 noundef %4223, ptr noundef @.str.4)
  %4225 = call ptr @__errno_location() #12
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @strerror(i32 noundef %4226) #11
  %4228 = call ptr @__errno_location() #12
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4217, ptr noundef @.str.5, i32 noundef %4218, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4221, ptr noundef %4224, ptr noundef %4227, i32 noundef %4229) #11
  br label %4231

4231:                                             ; preds = %4214, %4197
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %4232

4232:                                             ; preds = %4231
  br label %4233

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

4234:                                             ; No predecessors!
  br label %4235

4235:                                             ; preds = %4234
  br label %4236

4236:                                             ; preds = %4235, %4178
  br label %4237

4237:                                             ; preds = %4236
  br label %4238

4238:                                             ; preds = %4237
  br label %4239

4239:                                             ; preds = %4238
  %4240 = load i32, ptr @test_count, align 4, !tbaa !5
  %4241 = add nsw i32 %4240, 1
  store i32 %4241, ptr @test_count, align 4, !tbaa !5
  %4242 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4242, ptr %7, align 8, !tbaa !9
  %4243 = icmp eq ptr %4242, null
  br i1 %4243, label %4244, label %4297

4244:                                             ; preds = %4239
  br label %4245

4245:                                             ; preds = %4244
  br label %4246

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

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

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

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

4292:                                             ; preds = %4275, %4258
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %4293

4293:                                             ; preds = %4292
  br label %4294

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

4295:                                             ; No predecessors!
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296, %4239
  br label %4298

4298:                                             ; preds = %4297
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  %4301 = load i32, ptr @test_count, align 4, !tbaa !5
  %4302 = add nsw i32 %4301, 1
  store i32 %4302, ptr @test_count, align 4, !tbaa !5
  %4303 = load ptr, ptr %6, align 8, !tbaa !9
  %4304 = load ptr, ptr %9, align 8, !tbaa !9
  %4305 = call i32 @s2n_connection_set_config(ptr noundef %4303, ptr noundef %4304)
  %4306 = icmp eq i32 %4305, -1
  br i1 %4306, label %4307, label %4360

4307:                                             ; preds = %4300
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

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

4316:                                             ; preds = %4309
  %4317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4318 = call i32 @fileno(ptr noundef %4317) #11
  %4319 = call i32 @isatty(i32 noundef %4318) #11
  %4320 = icmp ne i32 %4319, 0
  br i1 %4320, label %4321, label %4338

4321:                                             ; preds = %4316
  %4322 = load i32, ptr %84, align 4, !tbaa !5
  %4323 = call ptr @__errno_location() #12
  store i32 %4322, ptr %4323, align 4, !tbaa !5
  %4324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call ptr @s2n_strerror(i32 noundef %4327, ptr noundef @.str.4)
  %4329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @s2n_strerror_debug(i32 noundef %4330, ptr noundef @.str.4)
  %4332 = call ptr @__errno_location() #12
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @strerror(i32 noundef %4333) #11
  %4335 = call ptr @__errno_location() #12
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4324, ptr noundef @.str.2, i32 noundef %4325, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 174, ptr noundef %4328, ptr noundef %4331, ptr noundef %4334, i32 noundef %4336) #11
  br label %4355

4338:                                             ; preds = %4316, %4309
  %4339 = load i32, ptr %84, align 4, !tbaa !5
  %4340 = call ptr @__errno_location() #12
  store i32 %4339, ptr %4340, align 4, !tbaa !5
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = load i32, ptr @test_count, align 4, !tbaa !5
  %4343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror(i32 noundef %4344, ptr noundef @.str.4)
  %4346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4347 = load i32, ptr %4346, align 4, !tbaa !5
  %4348 = call ptr @s2n_strerror_debug(i32 noundef %4347, ptr noundef @.str.4)
  %4349 = call ptr @__errno_location() #12
  %4350 = load i32, ptr %4349, align 4, !tbaa !5
  %4351 = call ptr @strerror(i32 noundef %4350) #11
  %4352 = call ptr @__errno_location() #12
  %4353 = load i32, ptr %4352, align 4, !tbaa !5
  %4354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4341, ptr noundef @.str.5, i32 noundef %4342, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 174, ptr noundef %4345, ptr noundef %4348, ptr noundef %4351, i32 noundef %4353) #11
  br label %4355

4355:                                             ; preds = %4338, %4321
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %4356

4356:                                             ; preds = %4355
  br label %4357

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

4358:                                             ; No predecessors!
  br label %4359

4359:                                             ; preds = %4358
  br label %4360

4360:                                             ; preds = %4359, %4300
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  br label %4363

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

4370:                                             ; preds = %4363
  br label %4371

4371:                                             ; preds = %4370
  br label %4372

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

4379:                                             ; preds = %4372
  %4380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4381 = call i32 @fileno(ptr noundef %4380) #11
  %4382 = call i32 @isatty(i32 noundef %4381) #11
  %4383 = icmp ne i32 %4382, 0
  br i1 %4383, label %4384, label %4401

4384:                                             ; preds = %4379
  %4385 = load i32, ptr %85, align 4, !tbaa !5
  %4386 = call ptr @__errno_location() #12
  store i32 %4385, ptr %4386, align 4, !tbaa !5
  %4387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call ptr @s2n_strerror(i32 noundef %4390, ptr noundef @.str.4)
  %4392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror_debug(i32 noundef %4393, ptr noundef @.str.4)
  %4395 = call ptr @__errno_location() #12
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call ptr @strerror(i32 noundef %4396) #11
  %4398 = call ptr @__errno_location() #12
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4387, ptr noundef @.str.2, i32 noundef %4388, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 175, ptr noundef %4391, ptr noundef %4394, ptr noundef %4397, i32 noundef %4399) #11
  br label %4418

4401:                                             ; preds = %4379, %4372
  %4402 = load i32, ptr %85, align 4, !tbaa !5
  %4403 = call ptr @__errno_location() #12
  store i32 %4402, ptr %4403, align 4, !tbaa !5
  %4404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4405 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror_debug(i32 noundef %4410, ptr noundef @.str.4)
  %4412 = call ptr @__errno_location() #12
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @strerror(i32 noundef %4413) #11
  %4415 = call ptr @__errno_location() #12
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4404, ptr noundef @.str.5, i32 noundef %4405, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 175, ptr noundef %4408, ptr noundef %4411, ptr noundef %4414, i32 noundef %4416) #11
  br label %4418

4418:                                             ; preds = %4401, %4384
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

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

4421:                                             ; No predecessors!
  br label %4422

4422:                                             ; preds = %4421
  br label %4423

4423:                                             ; preds = %4422, %4363
  br label %4424

4424:                                             ; preds = %4423
  br label %4425

4425:                                             ; preds = %4424
  %4426 = load ptr, ptr %7, align 8, !tbaa !9
  %4427 = getelementptr inbounds %struct.s2n_connection, ptr %4426, i32 0, i32 21
  store i8 32, ptr %4427, align 2, !tbaa !42
  br label %4428

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

4434:                                             ; preds = %4428
  br label %4435

4435:                                             ; preds = %4434
  br label %4436

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

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

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

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

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

4483:                                             ; preds = %4482
  br label %4484

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

4485:                                             ; No predecessors!
  br label %4486

4486:                                             ; preds = %4485
  br label %4487

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

4488:                                             ; preds = %4487
  br label %4489

4489:                                             ; preds = %4488
  br label %4490

4490:                                             ; preds = %4489
  %4491 = load i32, ptr @test_count, align 4, !tbaa !5
  %4492 = add nsw i32 %4491, 1
  store i32 %4492, ptr @test_count, align 4, !tbaa !5
  %4493 = load ptr, ptr %7, align 8, !tbaa !9
  %4494 = getelementptr inbounds %struct.s2n_connection, ptr %4493, i32 0, i32 20
  %4495 = load i8, ptr %4494, align 1, !tbaa !15
  %4496 = zext i8 %4495 to i32
  %4497 = icmp eq i32 %4496, 32
  br i1 %4497, label %4551, label %4498

4498:                                             ; preds = %4490
  br label %4499

4499:                                             ; preds = %4498
  br label %4500

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

4507:                                             ; preds = %4500
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = call i32 @fileno(ptr noundef %4508) #11
  %4510 = call i32 @isatty(i32 noundef %4509) #11
  %4511 = icmp ne i32 %4510, 0
  br i1 %4511, label %4512, label %4529

4512:                                             ; preds = %4507
  %4513 = load i32, ptr %87, align 4, !tbaa !5
  %4514 = call ptr @__errno_location() #12
  store i32 %4513, ptr %4514, align 4, !tbaa !5
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = load i32, ptr @test_count, align 4, !tbaa !5
  %4517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call ptr @s2n_strerror(i32 noundef %4518, ptr noundef @.str.4)
  %4520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror_debug(i32 noundef %4521, ptr noundef @.str.4)
  %4523 = call ptr @__errno_location() #12
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  %4525 = call ptr @strerror(i32 noundef %4524) #11
  %4526 = call ptr @__errno_location() #12
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4515, ptr noundef @.str.2, i32 noundef %4516, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 180, ptr noundef %4519, ptr noundef %4522, ptr noundef %4525, i32 noundef %4527) #11
  br label %4546

4529:                                             ; preds = %4507, %4500
  %4530 = load i32, ptr %87, 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.5, i32 noundef %4533, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 180, ptr noundef %4536, ptr noundef %4539, ptr noundef %4542, i32 noundef %4544) #11
  br label %4546

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

4547:                                             ; preds = %4546
  br label %4548

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

4549:                                             ; No predecessors!
  br label %4550

4550:                                             ; preds = %4549
  br label %4551

4551:                                             ; preds = %4550, %4490
  br label %4552

4552:                                             ; preds = %4551
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

4554:                                             ; preds = %4553
  %4555 = load i32, ptr @test_count, align 4, !tbaa !5
  %4556 = add nsw i32 %4555, 1
  store i32 %4556, ptr @test_count, align 4, !tbaa !5
  %4557 = load ptr, ptr %6, align 8, !tbaa !9
  %4558 = getelementptr inbounds %struct.s2n_connection, ptr %4557, i32 0, i32 52
  %4559 = getelementptr inbounds %struct.s2n_handshake, ptr %4558, i32 0, i32 0
  %4560 = load ptr, ptr %7, align 8, !tbaa !9
  %4561 = getelementptr inbounds %struct.s2n_connection, ptr %4560, i32 0, i32 52
  %4562 = getelementptr inbounds %struct.s2n_handshake, ptr %4561, i32 0, i32 0
  %4563 = getelementptr inbounds %struct.s2n_stuffer, ptr %4562, i32 0, i32 0
  %4564 = call i32 @s2n_stuffer_write(ptr noundef %4559, ptr noundef %4563)
  %4565 = icmp eq i32 %4564, -1
  br i1 %4565, label %4566, label %4619

4566:                                             ; preds = %4554
  br label %4567

4567:                                             ; preds = %4566
  br label %4568

4568:                                             ; preds = %4567
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %4569 = call ptr @__errno_location() #12
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  store i32 %4570, ptr %88, align 4, !tbaa !5
  %4571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4572 = call i32 @s2n_print_stacktrace(ptr noundef %4571)
  %4573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4574 = trunc i8 %4573 to i1
  br i1 %4574, label %4575, label %4597

4575:                                             ; preds = %4568
  %4576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4577 = call i32 @fileno(ptr noundef %4576) #11
  %4578 = call i32 @isatty(i32 noundef %4577) #11
  %4579 = icmp ne i32 %4578, 0
  br i1 %4579, label %4580, label %4597

4580:                                             ; preds = %4575
  %4581 = load i32, ptr %88, align 4, !tbaa !5
  %4582 = call ptr @__errno_location() #12
  store i32 %4581, ptr %4582, align 4, !tbaa !5
  %4583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4584 = load i32, ptr @test_count, align 4, !tbaa !5
  %4585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call ptr @s2n_strerror(i32 noundef %4586, ptr noundef @.str.4)
  %4588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @s2n_strerror_debug(i32 noundef %4589, ptr noundef @.str.4)
  %4591 = call ptr @__errno_location() #12
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @strerror(i32 noundef %4592) #11
  %4594 = call ptr @__errno_location() #12
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4583, ptr noundef @.str.2, i32 noundef %4584, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4587, ptr noundef %4590, ptr noundef %4593, i32 noundef %4595) #11
  br label %4614

4597:                                             ; preds = %4575, %4568
  %4598 = load i32, ptr %88, align 4, !tbaa !5
  %4599 = call ptr @__errno_location() #12
  store i32 %4598, ptr %4599, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = load i32, ptr @test_count, align 4, !tbaa !5
  %4602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4603 = load i32, ptr %4602, align 4, !tbaa !5
  %4604 = call ptr @s2n_strerror(i32 noundef %4603, ptr noundef @.str.4)
  %4605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  %4607 = call ptr @s2n_strerror_debug(i32 noundef %4606, ptr noundef @.str.4)
  %4608 = call ptr @__errno_location() #12
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  %4610 = call ptr @strerror(i32 noundef %4609) #11
  %4611 = call ptr @__errno_location() #12
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4600, ptr noundef @.str.5, i32 noundef %4601, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4604, ptr noundef %4607, ptr noundef %4610, i32 noundef %4612) #11
  br label %4614

4614:                                             ; preds = %4597, %4580
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %4615

4615:                                             ; preds = %4614
  br label %4616

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

4617:                                             ; No predecessors!
  br label %4618

4618:                                             ; preds = %4617
  br label %4619

4619:                                             ; preds = %4618, %4554
  br label %4620

4620:                                             ; preds = %4619
  br label %4621

4621:                                             ; preds = %4620
  br label %4622

4622:                                             ; preds = %4621
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = add nsw i32 %4623, 1
  store i32 %4624, ptr @test_count, align 4, !tbaa !5
  %4625 = load ptr, ptr %6, align 8, !tbaa !9
  %4626 = call i32 @s2n_client_hello_recv(ptr noundef %4625)
  %4627 = icmp eq i32 %4626, -1
  br i1 %4627, label %4628, label %4681

4628:                                             ; preds = %4622
  br label %4629

4629:                                             ; preds = %4628
  br label %4630

4630:                                             ; preds = %4629
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4631 = call ptr @__errno_location() #12
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  store i32 %4632, ptr %89, align 4, !tbaa !5
  %4633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4634 = call i32 @s2n_print_stacktrace(ptr noundef %4633)
  %4635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4636 = trunc i8 %4635 to i1
  br i1 %4636, label %4637, label %4659

4637:                                             ; preds = %4630
  %4638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4639 = call i32 @fileno(ptr noundef %4638) #11
  %4640 = call i32 @isatty(i32 noundef %4639) #11
  %4641 = icmp ne i32 %4640, 0
  br i1 %4641, label %4642, label %4659

4642:                                             ; preds = %4637
  %4643 = load i32, ptr %89, align 4, !tbaa !5
  %4644 = call ptr @__errno_location() #12
  store i32 %4643, ptr %4644, align 4, !tbaa !5
  %4645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4646 = load i32, ptr @test_count, align 4, !tbaa !5
  %4647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call ptr @s2n_strerror(i32 noundef %4648, ptr noundef @.str.4)
  %4650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror_debug(i32 noundef %4651, ptr noundef @.str.4)
  %4653 = call ptr @__errno_location() #12
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call ptr @strerror(i32 noundef %4654) #11
  %4656 = call ptr @__errno_location() #12
  %4657 = load i32, ptr %4656, align 4, !tbaa !5
  %4658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4645, ptr noundef @.str.2, i32 noundef %4646, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 183, ptr noundef %4649, ptr noundef %4652, ptr noundef %4655, i32 noundef %4657) #11
  br label %4676

4659:                                             ; preds = %4637, %4630
  %4660 = load i32, ptr %89, align 4, !tbaa !5
  %4661 = call ptr @__errno_location() #12
  store i32 %4660, ptr %4661, align 4, !tbaa !5
  %4662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4663 = load i32, ptr @test_count, align 4, !tbaa !5
  %4664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4665 = load i32, ptr %4664, align 4, !tbaa !5
  %4666 = call ptr @s2n_strerror(i32 noundef %4665, ptr noundef @.str.4)
  %4667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call ptr @s2n_strerror_debug(i32 noundef %4668, ptr noundef @.str.4)
  %4670 = call ptr @__errno_location() #12
  %4671 = load i32, ptr %4670, align 4, !tbaa !5
  %4672 = call ptr @strerror(i32 noundef %4671) #11
  %4673 = call ptr @__errno_location() #12
  %4674 = load i32, ptr %4673, align 4, !tbaa !5
  %4675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4662, ptr noundef @.str.5, i32 noundef %4663, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 183, ptr noundef %4666, ptr noundef %4669, ptr noundef %4672, i32 noundef %4674) #11
  br label %4676

4676:                                             ; preds = %4659, %4642
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4677

4677:                                             ; preds = %4676
  br label %4678

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

4679:                                             ; No predecessors!
  br label %4680

4680:                                             ; preds = %4679
  br label %4681

4681:                                             ; preds = %4680, %4622
  br label %4682

4682:                                             ; preds = %4681
  br label %4683

4683:                                             ; preds = %4682
  br label %4684

4684:                                             ; preds = %4683
  %4685 = load i32, ptr @test_count, align 4, !tbaa !5
  %4686 = add nsw i32 %4685, 1
  store i32 %4686, ptr @test_count, align 4, !tbaa !5
  %4687 = load ptr, ptr %6, align 8, !tbaa !9
  %4688 = getelementptr inbounds %struct.s2n_connection, ptr %4687, i32 0, i32 22
  %4689 = load i8, ptr %4688, align 1, !tbaa !47
  %4690 = zext i8 %4689 to i32
  %4691 = icmp eq i32 %4690, 33
  br i1 %4691, label %4745, label %4692

4692:                                             ; preds = %4684
  br label %4693

4693:                                             ; preds = %4692
  br label %4694

4694:                                             ; preds = %4693
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %4695 = call ptr @__errno_location() #12
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  store i32 %4696, ptr %90, align 4, !tbaa !5
  %4697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4698 = call i32 @s2n_print_stacktrace(ptr noundef %4697)
  %4699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4700 = trunc i8 %4699 to i1
  br i1 %4700, label %4701, label %4723

4701:                                             ; preds = %4694
  %4702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4703 = call i32 @fileno(ptr noundef %4702) #11
  %4704 = call i32 @isatty(i32 noundef %4703) #11
  %4705 = icmp ne i32 %4704, 0
  br i1 %4705, label %4706, label %4723

4706:                                             ; preds = %4701
  %4707 = load i32, ptr %90, align 4, !tbaa !5
  %4708 = call ptr @__errno_location() #12
  store i32 %4707, ptr %4708, align 4, !tbaa !5
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = load i32, ptr @test_count, align 4, !tbaa !5
  %4711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call ptr @s2n_strerror(i32 noundef %4712, ptr noundef @.str.4)
  %4714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror_debug(i32 noundef %4715, ptr noundef @.str.4)
  %4717 = call ptr @__errno_location() #12
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @strerror(i32 noundef %4718) #11
  %4720 = call ptr @__errno_location() #12
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4709, ptr noundef @.str.2, i32 noundef %4710, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 185, ptr noundef %4713, ptr noundef %4716, ptr noundef %4719, i32 noundef %4721) #11
  br label %4740

4723:                                             ; preds = %4701, %4694
  %4724 = load i32, ptr %90, align 4, !tbaa !5
  %4725 = call ptr @__errno_location() #12
  store i32 %4724, ptr %4725, align 4, !tbaa !5
  %4726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4727 = load i32, ptr @test_count, align 4, !tbaa !5
  %4728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call ptr @s2n_strerror(i32 noundef %4729, ptr noundef @.str.4)
  %4731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call ptr @s2n_strerror_debug(i32 noundef %4732, ptr noundef @.str.4)
  %4734 = call ptr @__errno_location() #12
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call ptr @strerror(i32 noundef %4735) #11
  %4737 = call ptr @__errno_location() #12
  %4738 = load i32, ptr %4737, align 4, !tbaa !5
  %4739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4726, ptr noundef @.str.5, i32 noundef %4727, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 185, ptr noundef %4730, ptr noundef %4733, ptr noundef %4736, i32 noundef %4738) #11
  br label %4740

4740:                                             ; preds = %4723, %4706
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

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

4743:                                             ; No predecessors!
  br label %4744

4744:                                             ; preds = %4743
  br label %4745

4745:                                             ; preds = %4744, %4684
  br label %4746

4746:                                             ; preds = %4745
  br label %4747

4747:                                             ; preds = %4746
  br label %4748

4748:                                             ; preds = %4747
  %4749 = load i32, ptr @test_count, align 4, !tbaa !5
  %4750 = add nsw i32 %4749, 1
  store i32 %4750, ptr @test_count, align 4, !tbaa !5
  %4751 = load ptr, ptr %6, align 8, !tbaa !9
  %4752 = getelementptr inbounds %struct.s2n_connection, ptr %4751, i32 0, i32 23
  %4753 = load i8, ptr %4752, align 4, !tbaa !46
  %4754 = zext i8 %4753 to i32
  %4755 = icmp eq i32 %4754, 32
  br i1 %4755, label %4809, label %4756

4756:                                             ; preds = %4748
  br label %4757

4757:                                             ; preds = %4756
  br label %4758

4758:                                             ; preds = %4757
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %4759 = call ptr @__errno_location() #12
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  store i32 %4760, ptr %91, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = call i32 @s2n_print_stacktrace(ptr noundef %4761)
  %4763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4764 = trunc i8 %4763 to i1
  br i1 %4764, label %4765, label %4787

4765:                                             ; preds = %4758
  %4766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4767 = call i32 @fileno(ptr noundef %4766) #11
  %4768 = call i32 @isatty(i32 noundef %4767) #11
  %4769 = icmp ne i32 %4768, 0
  br i1 %4769, label %4770, label %4787

4770:                                             ; preds = %4765
  %4771 = load i32, ptr %91, align 4, !tbaa !5
  %4772 = call ptr @__errno_location() #12
  store i32 %4771, ptr %4772, align 4, !tbaa !5
  %4773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4774 = load i32, ptr @test_count, align 4, !tbaa !5
  %4775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @s2n_strerror(i32 noundef %4776, ptr noundef @.str.4)
  %4778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call ptr @s2n_strerror_debug(i32 noundef %4779, ptr noundef @.str.4)
  %4781 = call ptr @__errno_location() #12
  %4782 = load i32, ptr %4781, align 4, !tbaa !5
  %4783 = call ptr @strerror(i32 noundef %4782) #11
  %4784 = call ptr @__errno_location() #12
  %4785 = load i32, ptr %4784, align 4, !tbaa !5
  %4786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4773, ptr noundef @.str.2, i32 noundef %4774, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4777, ptr noundef %4780, ptr noundef %4783, i32 noundef %4785) #11
  br label %4804

4787:                                             ; preds = %4765, %4758
  %4788 = load i32, ptr %91, align 4, !tbaa !5
  %4789 = call ptr @__errno_location() #12
  store i32 %4788, ptr %4789, align 4, !tbaa !5
  %4790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4791 = load i32, ptr @test_count, align 4, !tbaa !5
  %4792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @s2n_strerror(i32 noundef %4793, ptr noundef @.str.4)
  %4795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call ptr @s2n_strerror_debug(i32 noundef %4796, ptr noundef @.str.4)
  %4798 = call ptr @__errno_location() #12
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @strerror(i32 noundef %4799) #11
  %4801 = call ptr @__errno_location() #12
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4790, ptr noundef @.str.5, i32 noundef %4791, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 186, ptr noundef %4794, ptr noundef %4797, ptr noundef %4800, i32 noundef %4802) #11
  br label %4804

4804:                                             ; preds = %4787, %4770
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4805

4805:                                             ; preds = %4804
  br label %4806

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

4807:                                             ; No predecessors!
  br label %4808

4808:                                             ; preds = %4807
  br label %4809

4809:                                             ; preds = %4808, %4748
  br label %4810

4810:                                             ; preds = %4809
  br label %4811

4811:                                             ; preds = %4810
  br label %4812

4812:                                             ; preds = %4811
  %4813 = load i32, ptr @test_count, align 4, !tbaa !5
  %4814 = add nsw i32 %4813, 1
  store i32 %4814, ptr @test_count, align 4, !tbaa !5
  %4815 = load ptr, ptr %6, align 8, !tbaa !9
  %4816 = getelementptr inbounds %struct.s2n_connection, ptr %4815, i32 0, i32 21
  %4817 = load i8, ptr %4816, align 2, !tbaa !42
  %4818 = zext i8 %4817 to i32
  %4819 = icmp eq i32 %4818, 32
  br i1 %4819, label %4873, label %4820

4820:                                             ; preds = %4812
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %4823 = call ptr @__errno_location() #12
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  store i32 %4824, ptr %92, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = call i32 @s2n_print_stacktrace(ptr noundef %4825)
  %4827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4828 = trunc i8 %4827 to i1
  br i1 %4828, label %4829, label %4851

4829:                                             ; preds = %4822
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = call i32 @fileno(ptr noundef %4830) #11
  %4832 = call i32 @isatty(i32 noundef %4831) #11
  %4833 = icmp ne i32 %4832, 0
  br i1 %4833, label %4834, label %4851

4834:                                             ; preds = %4829
  %4835 = load i32, ptr %92, align 4, !tbaa !5
  %4836 = call ptr @__errno_location() #12
  store i32 %4835, ptr %4836, align 4, !tbaa !5
  %4837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4838 = load i32, ptr @test_count, align 4, !tbaa !5
  %4839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror(i32 noundef %4840, ptr noundef @.str.4)
  %4842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror_debug(i32 noundef %4843, ptr noundef @.str.4)
  %4845 = call ptr @__errno_location() #12
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @strerror(i32 noundef %4846) #11
  %4848 = call ptr @__errno_location() #12
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4837, ptr noundef @.str.2, i32 noundef %4838, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4841, ptr noundef %4844, ptr noundef %4847, i32 noundef %4849) #11
  br label %4868

4851:                                             ; preds = %4829, %4822
  %4852 = load i32, ptr %92, align 4, !tbaa !5
  %4853 = call ptr @__errno_location() #12
  store i32 %4852, ptr %4853, align 4, !tbaa !5
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = load i32, ptr @test_count, align 4, !tbaa !5
  %4856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4857 = load i32, ptr %4856, align 4, !tbaa !5
  %4858 = call ptr @s2n_strerror(i32 noundef %4857, ptr noundef @.str.4)
  %4859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4860 = load i32, ptr %4859, align 4, !tbaa !5
  %4861 = call ptr @s2n_strerror_debug(i32 noundef %4860, ptr noundef @.str.4)
  %4862 = call ptr @__errno_location() #12
  %4863 = load i32, ptr %4862, align 4, !tbaa !5
  %4864 = call ptr @strerror(i32 noundef %4863) #11
  %4865 = call ptr @__errno_location() #12
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4854, ptr noundef @.str.5, i32 noundef %4855, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 187, ptr noundef %4858, ptr noundef %4861, ptr noundef %4864, i32 noundef %4866) #11
  br label %4868

4868:                                             ; preds = %4851, %4834
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4869

4869:                                             ; preds = %4868
  br label %4870

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

4871:                                             ; No predecessors!
  br label %4872

4872:                                             ; preds = %4871
  br label %4873

4873:                                             ; preds = %4872, %4812
  br label %4874

4874:                                             ; preds = %4873
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = add nsw i32 %4877, 1
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = load ptr, ptr %6, align 8, !tbaa !9
  %4880 = getelementptr inbounds %struct.s2n_connection, ptr %4879, i32 0, i32 20
  %4881 = load i8, ptr %4880, align 1, !tbaa !15
  %4882 = zext i8 %4881 to i32
  %4883 = icmp eq i32 %4882, 32
  br i1 %4883, label %4937, label %4884

4884:                                             ; preds = %4876
  br label %4885

4885:                                             ; preds = %4884
  br label %4886

4886:                                             ; preds = %4885
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %4887 = call ptr @__errno_location() #12
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  store i32 %4888, ptr %93, align 4, !tbaa !5
  %4889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4890 = call i32 @s2n_print_stacktrace(ptr noundef %4889)
  %4891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4892 = trunc i8 %4891 to i1
  br i1 %4892, label %4893, label %4915

4893:                                             ; preds = %4886
  %4894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4895 = call i32 @fileno(ptr noundef %4894) #11
  %4896 = call i32 @isatty(i32 noundef %4895) #11
  %4897 = icmp ne i32 %4896, 0
  br i1 %4897, label %4898, label %4915

4898:                                             ; preds = %4893
  %4899 = load i32, ptr %93, align 4, !tbaa !5
  %4900 = call ptr @__errno_location() #12
  store i32 %4899, ptr %4900, align 4, !tbaa !5
  %4901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4902 = load i32, ptr @test_count, align 4, !tbaa !5
  %4903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call ptr @s2n_strerror(i32 noundef %4904, ptr noundef @.str.4)
  %4906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @s2n_strerror_debug(i32 noundef %4907, ptr noundef @.str.4)
  %4909 = call ptr @__errno_location() #12
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @strerror(i32 noundef %4910) #11
  %4912 = call ptr @__errno_location() #12
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4901, ptr noundef @.str.2, i32 noundef %4902, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4905, ptr noundef %4908, ptr noundef %4911, i32 noundef %4913) #11
  br label %4932

4915:                                             ; preds = %4893, %4886
  %4916 = load i32, ptr %93, align 4, !tbaa !5
  %4917 = call ptr @__errno_location() #12
  store i32 %4916, ptr %4917, align 4, !tbaa !5
  %4918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call ptr @s2n_strerror(i32 noundef %4921, ptr noundef @.str.4)
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror_debug(i32 noundef %4924, ptr noundef @.str.4)
  %4926 = call ptr @__errno_location() #12
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @strerror(i32 noundef %4927) #11
  %4929 = call ptr @__errno_location() #12
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4918, ptr noundef @.str.5, i32 noundef %4919, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 188, ptr noundef %4922, ptr noundef %4925, ptr noundef %4928, i32 noundef %4930) #11
  br label %4932

4932:                                             ; preds = %4915, %4898
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4933

4933:                                             ; preds = %4932
  br label %4934

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

4935:                                             ; No predecessors!
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

4937:                                             ; preds = %4936, %4876
  br label %4938

4938:                                             ; preds = %4937
  br label %4939

4939:                                             ; preds = %4938
  %4940 = load ptr, ptr %6, align 8, !tbaa !9
  %4941 = call i32 @s2n_connection_free(ptr noundef %4940)
  %4942 = load ptr, ptr %7, align 8, !tbaa !9
  %4943 = call i32 @s2n_connection_free(ptr noundef %4942)
  br label %4944

4944:                                             ; preds = %4939
  %4945 = load i32, ptr @test_count, align 4, !tbaa !5
  %4946 = add nsw i32 %4945, 1
  store i32 %4946, ptr @test_count, align 4, !tbaa !5
  %4947 = call i32 (...) @s2n_disable_tls13_in_test()
  %4948 = icmp eq i32 %4947, -1
  br i1 %4948, label %4949, label %5002

4949:                                             ; preds = %4944
  br label %4950

4950:                                             ; preds = %4949
  br label %4951

4951:                                             ; preds = %4950
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %4952 = call ptr @__errno_location() #12
  %4953 = load i32, ptr %4952, align 4, !tbaa !5
  store i32 %4953, ptr %94, align 4, !tbaa !5
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = call i32 @s2n_print_stacktrace(ptr noundef %4954)
  %4956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4957 = trunc i8 %4956 to i1
  br i1 %4957, label %4958, label %4980

4958:                                             ; preds = %4951
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = call i32 @fileno(ptr noundef %4959) #11
  %4961 = call i32 @isatty(i32 noundef %4960) #11
  %4962 = icmp ne i32 %4961, 0
  br i1 %4962, label %4963, label %4980

4963:                                             ; preds = %4958
  %4964 = load i32, ptr %94, align 4, !tbaa !5
  %4965 = call ptr @__errno_location() #12
  store i32 %4964, ptr %4965, align 4, !tbaa !5
  %4966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4967 = load i32, ptr @test_count, align 4, !tbaa !5
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @s2n_strerror_debug(i32 noundef %4972, ptr noundef @.str.4)
  %4974 = call ptr @__errno_location() #12
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @strerror(i32 noundef %4975) #11
  %4977 = call ptr @__errno_location() #12
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4966, ptr noundef @.str.2, i32 noundef %4967, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4970, ptr noundef %4973, ptr noundef %4976, i32 noundef %4978) #11
  br label %4997

4980:                                             ; preds = %4958, %4951
  %4981 = load i32, ptr %94, align 4, !tbaa !5
  %4982 = call ptr @__errno_location() #12
  store i32 %4981, ptr %4982, align 4, !tbaa !5
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = load i32, ptr @test_count, align 4, !tbaa !5
  %4985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror(i32 noundef %4986, ptr noundef @.str.4)
  %4988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @s2n_strerror_debug(i32 noundef %4989, ptr noundef @.str.4)
  %4991 = call ptr @__errno_location() #12
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @strerror(i32 noundef %4992) #11
  %4994 = call ptr @__errno_location() #12
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4983, ptr noundef @.str.5, i32 noundef %4984, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4987, ptr noundef %4990, ptr noundef %4993, i32 noundef %4995) #11
  br label %4997

4997:                                             ; preds = %4980, %4963
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

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

5000:                                             ; No predecessors!
  br label %5001

5001:                                             ; preds = %5000
  br label %5002

5002:                                             ; preds = %5001, %4944
  br label %5003

5003:                                             ; preds = %5002
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

5005:                                             ; preds = %5004
  %5006 = load i8, ptr %80, align 1, !tbaa !48
  %5007 = add i8 %5006, 1
  store i8 %5007, ptr %80, align 1, !tbaa !48
  br label %4106, !llvm.loop !49

5008:                                             ; preds = %4110
  br label %5009

5009:                                             ; preds = %5008
  %5010 = load i32, ptr @test_count, align 4, !tbaa !5
  %5011 = add nsw i32 %5010, 1
  store i32 %5011, ptr @test_count, align 4, !tbaa !5
  %5012 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5012, ptr %7, align 8, !tbaa !9
  %5013 = icmp eq ptr %5012, null
  br i1 %5013, label %5014, label %5067

5014:                                             ; preds = %5009
  br label %5015

5015:                                             ; preds = %5014
  br label %5016

5016:                                             ; preds = %5015
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %5017 = call ptr @__errno_location() #12
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  store i32 %5018, ptr %95, align 4, !tbaa !5
  %5019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5020 = call i32 @s2n_print_stacktrace(ptr noundef %5019)
  %5021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5022 = trunc i8 %5021 to i1
  br i1 %5022, label %5023, label %5045

5023:                                             ; preds = %5016
  %5024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5025 = call i32 @fileno(ptr noundef %5024) #11
  %5026 = call i32 @isatty(i32 noundef %5025) #11
  %5027 = icmp ne i32 %5026, 0
  br i1 %5027, label %5028, label %5045

5028:                                             ; preds = %5023
  %5029 = load i32, ptr %95, align 4, !tbaa !5
  %5030 = call ptr @__errno_location() #12
  store i32 %5029, ptr %5030, align 4, !tbaa !5
  %5031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5032 = load i32, ptr @test_count, align 4, !tbaa !5
  %5033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @s2n_strerror(i32 noundef %5034, ptr noundef @.str.4)
  %5036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call ptr @s2n_strerror_debug(i32 noundef %5037, ptr noundef @.str.4)
  %5039 = call ptr @__errno_location() #12
  %5040 = load i32, ptr %5039, align 4, !tbaa !5
  %5041 = call ptr @strerror(i32 noundef %5040) #11
  %5042 = call ptr @__errno_location() #12
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5031, ptr noundef @.str.2, i32 noundef %5032, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 198, ptr noundef %5035, ptr noundef %5038, ptr noundef %5041, i32 noundef %5043) #11
  br label %5062

5045:                                             ; preds = %5023, %5016
  %5046 = load i32, ptr %95, align 4, !tbaa !5
  %5047 = call ptr @__errno_location() #12
  store i32 %5046, ptr %5047, align 4, !tbaa !5
  %5048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5049 = load i32, ptr @test_count, align 4, !tbaa !5
  %5050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror(i32 noundef %5051, ptr noundef @.str.4)
  %5053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = call ptr @s2n_strerror_debug(i32 noundef %5054, ptr noundef @.str.4)
  %5056 = call ptr @__errno_location() #12
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  %5058 = call ptr @strerror(i32 noundef %5057) #11
  %5059 = call ptr @__errno_location() #12
  %5060 = load i32, ptr %5059, align 4, !tbaa !5
  %5061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5048, ptr noundef @.str.5, i32 noundef %5049, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 198, ptr noundef %5052, ptr noundef %5055, ptr noundef %5058, i32 noundef %5060) #11
  br label %5062

5062:                                             ; preds = %5045, %5028
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %5063

5063:                                             ; preds = %5062
  br label %5064

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

5065:                                             ; No predecessors!
  br label %5066

5066:                                             ; preds = %5065
  br label %5067

5067:                                             ; preds = %5066, %5009
  br label %5068

5068:                                             ; preds = %5067
  br label %5069

5069:                                             ; preds = %5068
  br label %5070

5070:                                             ; preds = %5069
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = add nsw i32 %5071, 1
  store i32 %5072, ptr @test_count, align 4, !tbaa !5
  %5073 = load ptr, ptr %7, align 8, !tbaa !9
  %5074 = load ptr, ptr %9, align 8, !tbaa !9
  %5075 = call i32 @s2n_connection_set_config(ptr noundef %5073, ptr noundef %5074)
  %5076 = icmp eq i32 %5075, -1
  br i1 %5076, label %5077, label %5130

5077:                                             ; preds = %5070
  br label %5078

5078:                                             ; preds = %5077
  br label %5079

5079:                                             ; preds = %5078
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %5080 = call ptr @__errno_location() #12
  %5081 = load i32, ptr %5080, align 4, !tbaa !5
  store i32 %5081, ptr %96, align 4, !tbaa !5
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = call i32 @s2n_print_stacktrace(ptr noundef %5082)
  %5084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5085 = trunc i8 %5084 to i1
  br i1 %5085, label %5086, label %5108

5086:                                             ; preds = %5079
  %5087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5088 = call i32 @fileno(ptr noundef %5087) #11
  %5089 = call i32 @isatty(i32 noundef %5088) #11
  %5090 = icmp ne i32 %5089, 0
  br i1 %5090, label %5091, label %5108

5091:                                             ; preds = %5086
  %5092 = load i32, ptr %96, align 4, !tbaa !5
  %5093 = call ptr @__errno_location() #12
  store i32 %5092, ptr %5093, align 4, !tbaa !5
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = load i32, ptr @test_count, align 4, !tbaa !5
  %5096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5097 = load i32, ptr %5096, align 4, !tbaa !5
  %5098 = call ptr @s2n_strerror(i32 noundef %5097, ptr noundef @.str.4)
  %5099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5100 = load i32, ptr %5099, align 4, !tbaa !5
  %5101 = call ptr @s2n_strerror_debug(i32 noundef %5100, ptr noundef @.str.4)
  %5102 = call ptr @__errno_location() #12
  %5103 = load i32, ptr %5102, align 4, !tbaa !5
  %5104 = call ptr @strerror(i32 noundef %5103) #11
  %5105 = call ptr @__errno_location() #12
  %5106 = load i32, ptr %5105, align 4, !tbaa !5
  %5107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5094, ptr noundef @.str.2, i32 noundef %5095, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 199, ptr noundef %5098, ptr noundef %5101, ptr noundef %5104, i32 noundef %5106) #11
  br label %5125

5108:                                             ; preds = %5086, %5079
  %5109 = load i32, ptr %96, align 4, !tbaa !5
  %5110 = call ptr @__errno_location() #12
  store i32 %5109, ptr %5110, align 4, !tbaa !5
  %5111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5112 = load i32, ptr @test_count, align 4, !tbaa !5
  %5113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror(i32 noundef %5114, ptr noundef @.str.4)
  %5116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call ptr @s2n_strerror_debug(i32 noundef %5117, ptr noundef @.str.4)
  %5119 = call ptr @__errno_location() #12
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call ptr @strerror(i32 noundef %5120) #11
  %5122 = call ptr @__errno_location() #12
  %5123 = load i32, ptr %5122, align 4, !tbaa !5
  %5124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5111, ptr noundef @.str.5, i32 noundef %5112, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 199, ptr noundef %5115, ptr noundef %5118, ptr noundef %5121, i32 noundef %5123) #11
  br label %5125

5125:                                             ; preds = %5108, %5091
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

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

5128:                                             ; No predecessors!
  br label %5129

5129:                                             ; preds = %5128
  br label %5130

5130:                                             ; preds = %5129, %5070
  br label %5131

5131:                                             ; preds = %5130
  br label %5132

5132:                                             ; preds = %5131
  br label %5133

5133:                                             ; preds = %5132
  %5134 = load i32, ptr @test_count, align 4, !tbaa !5
  %5135 = add nsw i32 %5134, 1
  store i32 %5135, ptr @test_count, align 4, !tbaa !5
  %5136 = call i32 (...) @s2n_enable_tls13_in_test()
  %5137 = icmp eq i32 %5136, -1
  br i1 %5137, label %5138, label %5191

5138:                                             ; preds = %5133
  br label %5139

5139:                                             ; preds = %5138
  br label %5140

5140:                                             ; preds = %5139
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %5141 = call ptr @__errno_location() #12
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  store i32 %5142, ptr %97, align 4, !tbaa !5
  %5143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5144 = call i32 @s2n_print_stacktrace(ptr noundef %5143)
  %5145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5146 = trunc i8 %5145 to i1
  br i1 %5146, label %5147, label %5169

5147:                                             ; preds = %5140
  %5148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5149 = call i32 @fileno(ptr noundef %5148) #11
  %5150 = call i32 @isatty(i32 noundef %5149) #11
  %5151 = icmp ne i32 %5150, 0
  br i1 %5151, label %5152, label %5169

5152:                                             ; preds = %5147
  %5153 = load i32, ptr %97, align 4, !tbaa !5
  %5154 = call ptr @__errno_location() #12
  store i32 %5153, ptr %5154, align 4, !tbaa !5
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = load i32, ptr @test_count, align 4, !tbaa !5
  %5157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror(i32 noundef %5158, ptr noundef @.str.4)
  %5160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror_debug(i32 noundef %5161, ptr noundef @.str.4)
  %5163 = call ptr @__errno_location() #12
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @strerror(i32 noundef %5164) #11
  %5166 = call ptr @__errno_location() #12
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5155, ptr noundef @.str.2, i32 noundef %5156, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 201, ptr noundef %5159, ptr noundef %5162, ptr noundef %5165, i32 noundef %5167) #11
  br label %5186

5169:                                             ; preds = %5147, %5140
  %5170 = load i32, ptr %97, align 4, !tbaa !5
  %5171 = call ptr @__errno_location() #12
  store i32 %5170, ptr %5171, align 4, !tbaa !5
  %5172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5173 = load i32, ptr @test_count, align 4, !tbaa !5
  %5174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5175 = load i32, ptr %5174, align 4, !tbaa !5
  %5176 = call ptr @s2n_strerror(i32 noundef %5175, ptr noundef @.str.4)
  %5177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5178 = load i32, ptr %5177, align 4, !tbaa !5
  %5179 = call ptr @s2n_strerror_debug(i32 noundef %5178, ptr noundef @.str.4)
  %5180 = call ptr @__errno_location() #12
  %5181 = load i32, ptr %5180, align 4, !tbaa !5
  %5182 = call ptr @strerror(i32 noundef %5181) #11
  %5183 = call ptr @__errno_location() #12
  %5184 = load i32, ptr %5183, align 4, !tbaa !5
  %5185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5172, ptr noundef @.str.5, i32 noundef %5173, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 201, ptr noundef %5176, ptr noundef %5179, ptr noundef %5182, i32 noundef %5184) #11
  br label %5186

5186:                                             ; preds = %5169, %5152
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %5187

5187:                                             ; preds = %5186
  br label %5188

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

5189:                                             ; No predecessors!
  br label %5190

5190:                                             ; preds = %5189
  br label %5191

5191:                                             ; preds = %5190, %5133
  br label %5192

5192:                                             ; preds = %5191
  br label %5193

5193:                                             ; preds = %5192
  br label %5194

5194:                                             ; preds = %5193
  %5195 = load i32, ptr @test_count, align 4, !tbaa !5
  %5196 = add nsw i32 %5195, 1
  store i32 %5196, ptr @test_count, align 4, !tbaa !5
  %5197 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5197, ptr %6, align 8, !tbaa !9
  %5198 = icmp eq ptr %5197, null
  br i1 %5198, label %5199, label %5252

5199:                                             ; preds = %5194
  br label %5200

5200:                                             ; preds = %5199
  br label %5201

5201:                                             ; preds = %5200
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %5202 = call ptr @__errno_location() #12
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  store i32 %5203, ptr %98, align 4, !tbaa !5
  %5204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5205 = call i32 @s2n_print_stacktrace(ptr noundef %5204)
  %5206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5207 = trunc i8 %5206 to i1
  br i1 %5207, label %5208, label %5230

5208:                                             ; preds = %5201
  %5209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5210 = call i32 @fileno(ptr noundef %5209) #11
  %5211 = call i32 @isatty(i32 noundef %5210) #11
  %5212 = icmp ne i32 %5211, 0
  br i1 %5212, label %5213, label %5230

5213:                                             ; preds = %5208
  %5214 = load i32, ptr %98, align 4, !tbaa !5
  %5215 = call ptr @__errno_location() #12
  store i32 %5214, ptr %5215, align 4, !tbaa !5
  %5216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5217 = load i32, ptr @test_count, align 4, !tbaa !5
  %5218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5219 = load i32, ptr %5218, align 4, !tbaa !5
  %5220 = call ptr @s2n_strerror(i32 noundef %5219, ptr noundef @.str.4)
  %5221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5222 = load i32, ptr %5221, align 4, !tbaa !5
  %5223 = call ptr @s2n_strerror_debug(i32 noundef %5222, ptr noundef @.str.4)
  %5224 = call ptr @__errno_location() #12
  %5225 = load i32, ptr %5224, align 4, !tbaa !5
  %5226 = call ptr @strerror(i32 noundef %5225) #11
  %5227 = call ptr @__errno_location() #12
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5216, ptr noundef @.str.2, i32 noundef %5217, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 203, ptr noundef %5220, ptr noundef %5223, ptr noundef %5226, i32 noundef %5228) #11
  br label %5247

5230:                                             ; preds = %5208, %5201
  %5231 = load i32, ptr %98, align 4, !tbaa !5
  %5232 = call ptr @__errno_location() #12
  store i32 %5231, ptr %5232, align 4, !tbaa !5
  %5233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5234 = load i32, ptr @test_count, align 4, !tbaa !5
  %5235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5236 = load i32, ptr %5235, align 4, !tbaa !5
  %5237 = call ptr @s2n_strerror(i32 noundef %5236, ptr noundef @.str.4)
  %5238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5239 = load i32, ptr %5238, align 4, !tbaa !5
  %5240 = call ptr @s2n_strerror_debug(i32 noundef %5239, ptr noundef @.str.4)
  %5241 = call ptr @__errno_location() #12
  %5242 = load i32, ptr %5241, align 4, !tbaa !5
  %5243 = call ptr @strerror(i32 noundef %5242) #11
  %5244 = call ptr @__errno_location() #12
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  %5246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5233, ptr noundef @.str.5, i32 noundef %5234, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 203, ptr noundef %5237, ptr noundef %5240, ptr noundef %5243, i32 noundef %5245) #11
  br label %5247

5247:                                             ; preds = %5230, %5213
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %5248

5248:                                             ; preds = %5247
  br label %5249

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

5250:                                             ; No predecessors!
  br label %5251

5251:                                             ; preds = %5250
  br label %5252

5252:                                             ; preds = %5251, %5194
  br label %5253

5253:                                             ; preds = %5252
  br label %5254

5254:                                             ; preds = %5253
  br label %5255

5255:                                             ; preds = %5254
  %5256 = load i32, ptr @test_count, align 4, !tbaa !5
  %5257 = add nsw i32 %5256, 1
  store i32 %5257, ptr @test_count, align 4, !tbaa !5
  %5258 = load ptr, ptr %6, align 8, !tbaa !9
  %5259 = load ptr, ptr %10, align 8, !tbaa !9
  %5260 = call i32 @s2n_connection_set_config(ptr noundef %5258, ptr noundef %5259)
  %5261 = icmp eq i32 %5260, -1
  br i1 %5261, label %5262, label %5315

5262:                                             ; preds = %5255
  br label %5263

5263:                                             ; preds = %5262
  br label %5264

5264:                                             ; preds = %5263
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %5265 = call ptr @__errno_location() #12
  %5266 = load i32, ptr %5265, align 4, !tbaa !5
  store i32 %5266, ptr %99, align 4, !tbaa !5
  %5267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5268 = call i32 @s2n_print_stacktrace(ptr noundef %5267)
  %5269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5270 = trunc i8 %5269 to i1
  br i1 %5270, label %5271, label %5293

5271:                                             ; preds = %5264
  %5272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5273 = call i32 @fileno(ptr noundef %5272) #11
  %5274 = call i32 @isatty(i32 noundef %5273) #11
  %5275 = icmp ne i32 %5274, 0
  br i1 %5275, label %5276, label %5293

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

5293:                                             ; preds = %5271, %5264
  %5294 = load i32, ptr %99, align 4, !tbaa !5
  %5295 = call ptr @__errno_location() #12
  store i32 %5294, ptr %5295, align 4, !tbaa !5
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = load i32, ptr @test_count, align 4, !tbaa !5
  %5298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5299 = load i32, ptr %5298, align 4, !tbaa !5
  %5300 = call ptr @s2n_strerror(i32 noundef %5299, ptr noundef @.str.4)
  %5301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5302 = load i32, ptr %5301, align 4, !tbaa !5
  %5303 = call ptr @s2n_strerror_debug(i32 noundef %5302, ptr noundef @.str.4)
  %5304 = call ptr @__errno_location() #12
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call ptr @strerror(i32 noundef %5305) #11
  %5307 = call ptr @__errno_location() #12
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5296, ptr noundef @.str.5, i32 noundef %5297, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 204, ptr noundef %5300, ptr noundef %5303, ptr noundef %5306, i32 noundef %5308) #11
  br label %5310

5310:                                             ; preds = %5293, %5276
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

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

5313:                                             ; No predecessors!
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

5315:                                             ; preds = %5314, %5255
  br label %5316

5316:                                             ; preds = %5315
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

5318:                                             ; preds = %5317
  %5319 = load i32, ptr @test_count, align 4, !tbaa !5
  %5320 = add nsw i32 %5319, 1
  store i32 %5320, ptr @test_count, align 4, !tbaa !5
  %5321 = load ptr, ptr %7, align 8, !tbaa !9
  %5322 = call i32 @s2n_client_hello_send(ptr noundef %5321)
  %5323 = icmp eq i32 %5322, -1
  br i1 %5323, label %5324, label %5377

5324:                                             ; preds = %5318
  br label %5325

5325:                                             ; preds = %5324
  br label %5326

5326:                                             ; preds = %5325
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %5327 = call ptr @__errno_location() #12
  %5328 = load i32, ptr %5327, align 4, !tbaa !5
  store i32 %5328, ptr %100, align 4, !tbaa !5
  %5329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5330 = call i32 @s2n_print_stacktrace(ptr noundef %5329)
  %5331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5332 = trunc i8 %5331 to i1
  br i1 %5332, label %5333, label %5355

5333:                                             ; preds = %5326
  %5334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5335 = call i32 @fileno(ptr noundef %5334) #11
  %5336 = call i32 @isatty(i32 noundef %5335) #11
  %5337 = icmp ne i32 %5336, 0
  br i1 %5337, label %5338, label %5355

5338:                                             ; preds = %5333
  %5339 = load i32, ptr %100, align 4, !tbaa !5
  %5340 = call ptr @__errno_location() #12
  store i32 %5339, ptr %5340, align 4, !tbaa !5
  %5341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5342 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5344, ptr noundef @.str.4)
  %5346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @s2n_strerror_debug(i32 noundef %5347, ptr noundef @.str.4)
  %5349 = call ptr @__errno_location() #12
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call ptr @strerror(i32 noundef %5350) #11
  %5352 = call ptr @__errno_location() #12
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5341, ptr noundef @.str.2, i32 noundef %5342, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5345, ptr noundef %5348, ptr noundef %5351, i32 noundef %5353) #11
  br label %5372

5355:                                             ; preds = %5333, %5326
  %5356 = load i32, ptr %100, align 4, !tbaa !5
  %5357 = call ptr @__errno_location() #12
  store i32 %5356, ptr %5357, align 4, !tbaa !5
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5361 = load i32, ptr %5360, align 4, !tbaa !5
  %5362 = call ptr @s2n_strerror(i32 noundef %5361, ptr noundef @.str.4)
  %5363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call ptr @s2n_strerror_debug(i32 noundef %5364, ptr noundef @.str.4)
  %5366 = call ptr @__errno_location() #12
  %5367 = load i32, ptr %5366, align 4, !tbaa !5
  %5368 = call ptr @strerror(i32 noundef %5367) #11
  %5369 = call ptr @__errno_location() #12
  %5370 = load i32, ptr %5369, align 4, !tbaa !5
  %5371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5358, ptr noundef @.str.5, i32 noundef %5359, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5362, ptr noundef %5365, ptr noundef %5368, i32 noundef %5370) #11
  br label %5372

5372:                                             ; preds = %5355, %5338
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %5373

5373:                                             ; preds = %5372
  br label %5374

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

5375:                                             ; No predecessors!
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376, %5318
  br label %5378

5378:                                             ; preds = %5377
  br label %5379

5379:                                             ; preds = %5378
  br label %5380

5380:                                             ; preds = %5379
  %5381 = load i32, ptr @test_count, align 4, !tbaa !5
  %5382 = add nsw i32 %5381, 1
  store i32 %5382, ptr @test_count, align 4, !tbaa !5
  %5383 = load ptr, ptr %7, align 8, !tbaa !9
  %5384 = getelementptr inbounds %struct.s2n_connection, ptr %5383, i32 0, i32 21
  %5385 = load i8, ptr %5384, align 2, !tbaa !42
  %5386 = zext i8 %5385 to i32
  %5387 = icmp eq i32 %5386, 33
  br i1 %5387, label %5441, label %5388

5388:                                             ; preds = %5380
  br label %5389

5389:                                             ; preds = %5388
  br label %5390

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

5397:                                             ; preds = %5390
  %5398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5399 = call i32 @fileno(ptr noundef %5398) #11
  %5400 = call i32 @isatty(i32 noundef %5399) #11
  %5401 = icmp ne i32 %5400, 0
  br i1 %5401, label %5402, label %5419

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

5419:                                             ; preds = %5397, %5390
  %5420 = load i32, ptr %101, align 4, !tbaa !5
  %5421 = call ptr @__errno_location() #12
  store i32 %5420, ptr %5421, align 4, !tbaa !5
  %5422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  %5426 = call ptr @s2n_strerror(i32 noundef %5425, ptr noundef @.str.4)
  %5427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @s2n_strerror_debug(i32 noundef %5428, ptr noundef @.str.4)
  %5430 = call ptr @__errno_location() #12
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @strerror(i32 noundef %5431) #11
  %5433 = call ptr @__errno_location() #12
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5422, ptr noundef @.str.5, i32 noundef %5423, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 207, ptr noundef %5426, ptr noundef %5429, ptr noundef %5432, i32 noundef %5434) #11
  br label %5436

5436:                                             ; preds = %5419, %5402
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %5437

5437:                                             ; preds = %5436
  br label %5438

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

5439:                                             ; No predecessors!
  br label %5440

5440:                                             ; preds = %5439
  br label %5441

5441:                                             ; preds = %5440, %5380
  br label %5442

5442:                                             ; preds = %5441
  br label %5443

5443:                                             ; preds = %5442
  br label %5444

5444:                                             ; preds = %5443
  %5445 = load i32, ptr @test_count, align 4, !tbaa !5
  %5446 = add nsw i32 %5445, 1
  store i32 %5446, ptr @test_count, align 4, !tbaa !5
  %5447 = load ptr, ptr %7, align 8, !tbaa !9
  %5448 = getelementptr inbounds %struct.s2n_connection, ptr %5447, i32 0, i32 20
  %5449 = load i8, ptr %5448, align 1, !tbaa !15
  %5450 = zext i8 %5449 to i32
  %5451 = icmp eq i32 %5450, 33
  br i1 %5451, label %5505, label %5452

5452:                                             ; preds = %5444
  br label %5453

5453:                                             ; preds = %5452
  br label %5454

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

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

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

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

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

5501:                                             ; preds = %5500
  br label %5502

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

5503:                                             ; No predecessors!
  br label %5504

5504:                                             ; preds = %5503
  br label %5505

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

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506
  br label %5508

5508:                                             ; preds = %5507
  %5509 = load i32, ptr @test_count, align 4, !tbaa !5
  %5510 = add nsw i32 %5509, 1
  store i32 %5510, ptr @test_count, align 4, !tbaa !5
  %5511 = load ptr, ptr %6, align 8, !tbaa !9
  %5512 = getelementptr inbounds %struct.s2n_connection, ptr %5511, i32 0, i32 52
  %5513 = getelementptr inbounds %struct.s2n_handshake, ptr %5512, i32 0, i32 0
  %5514 = load ptr, ptr %7, align 8, !tbaa !9
  %5515 = getelementptr inbounds %struct.s2n_connection, ptr %5514, i32 0, i32 52
  %5516 = getelementptr inbounds %struct.s2n_handshake, ptr %5515, i32 0, i32 0
  %5517 = getelementptr inbounds %struct.s2n_stuffer, ptr %5516, i32 0, i32 0
  %5518 = call i32 @s2n_stuffer_write(ptr noundef %5513, ptr noundef %5517)
  %5519 = icmp eq i32 %5518, -1
  br i1 %5519, label %5520, label %5573

5520:                                             ; preds = %5508
  br label %5521

5521:                                             ; preds = %5520
  br label %5522

5522:                                             ; preds = %5521
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %5523 = call ptr @__errno_location() #12
  %5524 = load i32, ptr %5523, align 4, !tbaa !5
  store i32 %5524, ptr %103, align 4, !tbaa !5
  %5525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5526 = call i32 @s2n_print_stacktrace(ptr noundef %5525)
  %5527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5528 = trunc i8 %5527 to i1
  br i1 %5528, label %5529, label %5551

5529:                                             ; preds = %5522
  %5530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5531 = call i32 @fileno(ptr noundef %5530) #11
  %5532 = call i32 @isatty(i32 noundef %5531) #11
  %5533 = icmp ne i32 %5532, 0
  br i1 %5533, label %5534, label %5551

5534:                                             ; preds = %5529
  %5535 = load i32, ptr %103, align 4, !tbaa !5
  %5536 = call ptr @__errno_location() #12
  store i32 %5535, ptr %5536, align 4, !tbaa !5
  %5537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5538 = load i32, ptr @test_count, align 4, !tbaa !5
  %5539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5540 = load i32, ptr %5539, align 4, !tbaa !5
  %5541 = call ptr @s2n_strerror(i32 noundef %5540, ptr noundef @.str.4)
  %5542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  %5544 = call ptr @s2n_strerror_debug(i32 noundef %5543, ptr noundef @.str.4)
  %5545 = call ptr @__errno_location() #12
  %5546 = load i32, ptr %5545, align 4, !tbaa !5
  %5547 = call ptr @strerror(i32 noundef %5546) #11
  %5548 = call ptr @__errno_location() #12
  %5549 = load i32, ptr %5548, align 4, !tbaa !5
  %5550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5537, ptr noundef @.str.2, i32 noundef %5538, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 210, ptr noundef %5541, ptr noundef %5544, ptr noundef %5547, i32 noundef %5549) #11
  br label %5568

5551:                                             ; preds = %5529, %5522
  %5552 = load i32, ptr %103, align 4, !tbaa !5
  %5553 = call ptr @__errno_location() #12
  store i32 %5552, ptr %5553, align 4, !tbaa !5
  %5554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5555 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %5557, ptr noundef @.str.4)
  %5559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call ptr @s2n_strerror_debug(i32 noundef %5560, ptr noundef @.str.4)
  %5562 = call ptr @__errno_location() #12
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  %5564 = call ptr @strerror(i32 noundef %5563) #11
  %5565 = call ptr @__errno_location() #12
  %5566 = load i32, ptr %5565, align 4, !tbaa !5
  %5567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5554, ptr noundef @.str.5, i32 noundef %5555, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 210, ptr noundef %5558, ptr noundef %5561, ptr noundef %5564, i32 noundef %5566) #11
  br label %5568

5568:                                             ; preds = %5551, %5534
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

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

5571:                                             ; No predecessors!
  br label %5572

5572:                                             ; preds = %5571
  br label %5573

5573:                                             ; preds = %5572, %5508
  br label %5574

5574:                                             ; preds = %5573
  br label %5575

5575:                                             ; preds = %5574
  br label %5576

5576:                                             ; preds = %5575
  %5577 = load i32, ptr @test_count, align 4, !tbaa !5
  %5578 = add nsw i32 %5577, 1
  store i32 %5578, ptr @test_count, align 4, !tbaa !5
  %5579 = load ptr, ptr %6, align 8, !tbaa !9
  %5580 = call i32 @s2n_client_hello_recv(ptr noundef %5579)
  %5581 = icmp eq i32 %5580, -1
  br i1 %5581, label %5582, label %5635

5582:                                             ; preds = %5576
  br label %5583

5583:                                             ; preds = %5582
  br label %5584

5584:                                             ; preds = %5583
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %5585 = call ptr @__errno_location() #12
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  store i32 %5586, ptr %104, align 4, !tbaa !5
  %5587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5588 = call i32 @s2n_print_stacktrace(ptr noundef %5587)
  %5589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5590 = trunc i8 %5589 to i1
  br i1 %5590, label %5591, label %5613

5591:                                             ; preds = %5584
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = call i32 @fileno(ptr noundef %5592) #11
  %5594 = call i32 @isatty(i32 noundef %5593) #11
  %5595 = icmp ne i32 %5594, 0
  br i1 %5595, label %5596, label %5613

5596:                                             ; preds = %5591
  %5597 = load i32, ptr %104, align 4, !tbaa !5
  %5598 = call ptr @__errno_location() #12
  store i32 %5597, ptr %5598, align 4, !tbaa !5
  %5599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5600 = load i32, ptr @test_count, align 4, !tbaa !5
  %5601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  %5603 = call ptr @s2n_strerror(i32 noundef %5602, ptr noundef @.str.4)
  %5604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5605 = load i32, ptr %5604, align 4, !tbaa !5
  %5606 = call ptr @s2n_strerror_debug(i32 noundef %5605, ptr noundef @.str.4)
  %5607 = call ptr @__errno_location() #12
  %5608 = load i32, ptr %5607, align 4, !tbaa !5
  %5609 = call ptr @strerror(i32 noundef %5608) #11
  %5610 = call ptr @__errno_location() #12
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  %5612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5599, ptr noundef @.str.2, i32 noundef %5600, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 211, ptr noundef %5603, ptr noundef %5606, ptr noundef %5609, i32 noundef %5611) #11
  br label %5630

5613:                                             ; preds = %5591, %5584
  %5614 = load i32, ptr %104, align 4, !tbaa !5
  %5615 = call ptr @__errno_location() #12
  store i32 %5614, ptr %5615, align 4, !tbaa !5
  %5616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5617 = load i32, 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(i32 noundef %5619, ptr noundef @.str.4)
  %5621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5622 = load i32, ptr %5621, align 4, !tbaa !5
  %5623 = call ptr @s2n_strerror_debug(i32 noundef %5622, ptr noundef @.str.4)
  %5624 = call ptr @__errno_location() #12
  %5625 = load i32, ptr %5624, align 4, !tbaa !5
  %5626 = call ptr @strerror(i32 noundef %5625) #11
  %5627 = call ptr @__errno_location() #12
  %5628 = load i32, ptr %5627, align 4, !tbaa !5
  %5629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5616, ptr noundef @.str.5, i32 noundef %5617, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 211, ptr noundef %5620, ptr noundef %5623, ptr noundef %5626, i32 noundef %5628) #11
  br label %5630

5630:                                             ; preds = %5613, %5596
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %5631

5631:                                             ; preds = %5630
  br label %5632

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

5633:                                             ; No predecessors!
  br label %5634

5634:                                             ; preds = %5633
  br label %5635

5635:                                             ; preds = %5634, %5576
  br label %5636

5636:                                             ; preds = %5635
  br label %5637

5637:                                             ; preds = %5636
  br label %5638

5638:                                             ; preds = %5637
  %5639 = load i32, ptr @test_count, align 4, !tbaa !5
  %5640 = add nsw i32 %5639, 1
  store i32 %5640, ptr @test_count, align 4, !tbaa !5
  %5641 = load ptr, ptr %6, align 8, !tbaa !9
  %5642 = getelementptr inbounds %struct.s2n_connection, ptr %5641, i32 0, i32 22
  %5643 = load i8, ptr %5642, align 1, !tbaa !47
  %5644 = zext i8 %5643 to i32
  %5645 = icmp eq i32 %5644, 34
  br i1 %5645, label %5699, label %5646

5646:                                             ; preds = %5638
  br label %5647

5647:                                             ; preds = %5646
  br label %5648

5648:                                             ; preds = %5647
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %5649 = call ptr @__errno_location() #12
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  store i32 %5650, ptr %105, align 4, !tbaa !5
  %5651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5652 = call i32 @s2n_print_stacktrace(ptr noundef %5651)
  %5653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5654 = trunc i8 %5653 to i1
  br i1 %5654, label %5655, label %5677

5655:                                             ; preds = %5648
  %5656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5657 = call i32 @fileno(ptr noundef %5656) #11
  %5658 = call i32 @isatty(i32 noundef %5657) #11
  %5659 = icmp ne i32 %5658, 0
  br i1 %5659, label %5660, label %5677

5660:                                             ; preds = %5655
  %5661 = load i32, ptr %105, align 4, !tbaa !5
  %5662 = call ptr @__errno_location() #12
  store i32 %5661, ptr %5662, align 4, !tbaa !5
  %5663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5664 = load i32, ptr @test_count, align 4, !tbaa !5
  %5665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5666 = load i32, ptr %5665, align 4, !tbaa !5
  %5667 = call ptr @s2n_strerror(i32 noundef %5666, ptr noundef @.str.4)
  %5668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5669 = load i32, ptr %5668, align 4, !tbaa !5
  %5670 = call ptr @s2n_strerror_debug(i32 noundef %5669, ptr noundef @.str.4)
  %5671 = call ptr @__errno_location() #12
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call ptr @strerror(i32 noundef %5672) #11
  %5674 = call ptr @__errno_location() #12
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5663, ptr noundef @.str.2, i32 noundef %5664, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 213, ptr noundef %5667, ptr noundef %5670, ptr noundef %5673, i32 noundef %5675) #11
  br label %5694

5677:                                             ; preds = %5655, %5648
  %5678 = load i32, ptr %105, align 4, !tbaa !5
  %5679 = call ptr @__errno_location() #12
  store i32 %5678, ptr %5679, align 4, !tbaa !5
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = load i32, ptr @test_count, align 4, !tbaa !5
  %5682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5683 = load i32, ptr %5682, align 4, !tbaa !5
  %5684 = call ptr @s2n_strerror(i32 noundef %5683, ptr noundef @.str.4)
  %5685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5686 = load i32, ptr %5685, align 4, !tbaa !5
  %5687 = call ptr @s2n_strerror_debug(i32 noundef %5686, ptr noundef @.str.4)
  %5688 = call ptr @__errno_location() #12
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  %5690 = call ptr @strerror(i32 noundef %5689) #11
  %5691 = call ptr @__errno_location() #12
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5680, ptr noundef @.str.5, i32 noundef %5681, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 213, ptr noundef %5684, ptr noundef %5687, ptr noundef %5690, i32 noundef %5692) #11
  br label %5694

5694:                                             ; preds = %5677, %5660
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

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

5697:                                             ; No predecessors!
  br label %5698

5698:                                             ; preds = %5697
  br label %5699

5699:                                             ; preds = %5698, %5638
  br label %5700

5700:                                             ; preds = %5699
  br label %5701

5701:                                             ; preds = %5700
  br label %5702

5702:                                             ; preds = %5701
  %5703 = load i32, ptr @test_count, align 4, !tbaa !5
  %5704 = add nsw i32 %5703, 1
  store i32 %5704, ptr @test_count, align 4, !tbaa !5
  %5705 = load ptr, ptr %6, align 8, !tbaa !9
  %5706 = getelementptr inbounds %struct.s2n_connection, ptr %5705, i32 0, i32 23
  %5707 = load i8, ptr %5706, align 4, !tbaa !46
  %5708 = zext i8 %5707 to i32
  %5709 = icmp eq i32 %5708, 33
  br i1 %5709, label %5763, label %5710

5710:                                             ; preds = %5702
  br label %5711

5711:                                             ; preds = %5710
  br label %5712

5712:                                             ; preds = %5711
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %5713 = call ptr @__errno_location() #12
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  store i32 %5714, ptr %106, align 4, !tbaa !5
  %5715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5716 = call i32 @s2n_print_stacktrace(ptr noundef %5715)
  %5717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5718 = trunc i8 %5717 to i1
  br i1 %5718, label %5719, label %5741

5719:                                             ; preds = %5712
  %5720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5721 = call i32 @fileno(ptr noundef %5720) #11
  %5722 = call i32 @isatty(i32 noundef %5721) #11
  %5723 = icmp ne i32 %5722, 0
  br i1 %5723, label %5724, label %5741

5724:                                             ; preds = %5719
  %5725 = load i32, ptr %106, align 4, !tbaa !5
  %5726 = call ptr @__errno_location() #12
  store i32 %5725, ptr %5726, align 4, !tbaa !5
  %5727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5728 = load i32, ptr @test_count, align 4, !tbaa !5
  %5729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5730 = load i32, ptr %5729, align 4, !tbaa !5
  %5731 = call ptr @s2n_strerror(i32 noundef %5730, ptr noundef @.str.4)
  %5732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5733 = load i32, ptr %5732, align 4, !tbaa !5
  %5734 = call ptr @s2n_strerror_debug(i32 noundef %5733, ptr noundef @.str.4)
  %5735 = call ptr @__errno_location() #12
  %5736 = load i32, ptr %5735, align 4, !tbaa !5
  %5737 = call ptr @strerror(i32 noundef %5736) #11
  %5738 = call ptr @__errno_location() #12
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5727, ptr noundef @.str.2, i32 noundef %5728, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5731, ptr noundef %5734, ptr noundef %5737, i32 noundef %5739) #11
  br label %5758

5741:                                             ; preds = %5719, %5712
  %5742 = load i32, ptr %106, align 4, !tbaa !5
  %5743 = call ptr @__errno_location() #12
  store i32 %5742, ptr %5743, align 4, !tbaa !5
  %5744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5745 = load i32, ptr @test_count, align 4, !tbaa !5
  %5746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  %5748 = call ptr @s2n_strerror(i32 noundef %5747, ptr noundef @.str.4)
  %5749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5750 = load i32, ptr %5749, align 4, !tbaa !5
  %5751 = call ptr @s2n_strerror_debug(i32 noundef %5750, ptr noundef @.str.4)
  %5752 = call ptr @__errno_location() #12
  %5753 = load i32, ptr %5752, align 4, !tbaa !5
  %5754 = call ptr @strerror(i32 noundef %5753) #11
  %5755 = call ptr @__errno_location() #12
  %5756 = load i32, ptr %5755, align 4, !tbaa !5
  %5757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5744, ptr noundef @.str.5, i32 noundef %5745, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 214, ptr noundef %5748, ptr noundef %5751, ptr noundef %5754, i32 noundef %5756) #11
  br label %5758

5758:                                             ; preds = %5741, %5724
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %5759

5759:                                             ; preds = %5758
  br label %5760

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

5761:                                             ; No predecessors!
  br label %5762

5762:                                             ; preds = %5761
  br label %5763

5763:                                             ; preds = %5762, %5702
  br label %5764

5764:                                             ; preds = %5763
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

5766:                                             ; preds = %5765
  %5767 = load i32, ptr @test_count, align 4, !tbaa !5
  %5768 = add nsw i32 %5767, 1
  store i32 %5768, ptr @test_count, align 4, !tbaa !5
  %5769 = load ptr, ptr %6, align 8, !tbaa !9
  %5770 = getelementptr inbounds %struct.s2n_connection, ptr %5769, i32 0, i32 21
  %5771 = load i8, ptr %5770, align 2, !tbaa !42
  %5772 = zext i8 %5771 to i32
  %5773 = icmp eq i32 %5772, 33
  br i1 %5773, label %5827, label %5774

5774:                                             ; preds = %5766
  br label %5775

5775:                                             ; preds = %5774
  br label %5776

5776:                                             ; preds = %5775
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %5777 = call ptr @__errno_location() #12
  %5778 = load i32, ptr %5777, align 4, !tbaa !5
  store i32 %5778, ptr %107, align 4, !tbaa !5
  %5779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5780 = call i32 @s2n_print_stacktrace(ptr noundef %5779)
  %5781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5782 = trunc i8 %5781 to i1
  br i1 %5782, label %5783, label %5805

5783:                                             ; preds = %5776
  %5784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5785 = call i32 @fileno(ptr noundef %5784) #11
  %5786 = call i32 @isatty(i32 noundef %5785) #11
  %5787 = icmp ne i32 %5786, 0
  br i1 %5787, label %5788, label %5805

5788:                                             ; preds = %5783
  %5789 = load i32, ptr %107, align 4, !tbaa !5
  %5790 = call ptr @__errno_location() #12
  store i32 %5789, ptr %5790, align 4, !tbaa !5
  %5791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5792 = load i32, ptr @test_count, align 4, !tbaa !5
  %5793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5794 = load i32, ptr %5793, align 4, !tbaa !5
  %5795 = call ptr @s2n_strerror(i32 noundef %5794, ptr noundef @.str.4)
  %5796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5797 = load i32, ptr %5796, align 4, !tbaa !5
  %5798 = call ptr @s2n_strerror_debug(i32 noundef %5797, ptr noundef @.str.4)
  %5799 = call ptr @__errno_location() #12
  %5800 = load i32, ptr %5799, align 4, !tbaa !5
  %5801 = call ptr @strerror(i32 noundef %5800) #11
  %5802 = call ptr @__errno_location() #12
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5791, ptr noundef @.str.2, i32 noundef %5792, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 215, ptr noundef %5795, ptr noundef %5798, ptr noundef %5801, i32 noundef %5803) #11
  br label %5822

5805:                                             ; preds = %5783, %5776
  %5806 = load i32, ptr %107, align 4, !tbaa !5
  %5807 = call ptr @__errno_location() #12
  store i32 %5806, ptr %5807, align 4, !tbaa !5
  %5808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5809 = load i32, ptr @test_count, align 4, !tbaa !5
  %5810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call ptr @s2n_strerror(i32 noundef %5811, ptr noundef @.str.4)
  %5813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5814 = load i32, ptr %5813, align 4, !tbaa !5
  %5815 = call ptr @s2n_strerror_debug(i32 noundef %5814, ptr noundef @.str.4)
  %5816 = call ptr @__errno_location() #12
  %5817 = load i32, ptr %5816, align 4, !tbaa !5
  %5818 = call ptr @strerror(i32 noundef %5817) #11
  %5819 = call ptr @__errno_location() #12
  %5820 = load i32, ptr %5819, align 4, !tbaa !5
  %5821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5808, ptr noundef @.str.5, i32 noundef %5809, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 215, ptr noundef %5812, ptr noundef %5815, ptr noundef %5818, i32 noundef %5820) #11
  br label %5822

5822:                                             ; preds = %5805, %5788
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %5823

5823:                                             ; preds = %5822
  br label %5824

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

5825:                                             ; No predecessors!
  br label %5826

5826:                                             ; preds = %5825
  br label %5827

5827:                                             ; preds = %5826, %5766
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828
  br label %5830

5830:                                             ; preds = %5829
  %5831 = load i32, ptr @test_count, align 4, !tbaa !5
  %5832 = add nsw i32 %5831, 1
  store i32 %5832, ptr @test_count, align 4, !tbaa !5
  %5833 = load ptr, ptr %6, align 8, !tbaa !9
  %5834 = getelementptr inbounds %struct.s2n_connection, ptr %5833, i32 0, i32 20
  %5835 = load i8, ptr %5834, align 1, !tbaa !15
  %5836 = zext i8 %5835 to i32
  %5837 = icmp eq i32 %5836, 33
  br i1 %5837, label %5891, label %5838

5838:                                             ; preds = %5830
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %5841 = call ptr @__errno_location() #12
  %5842 = load i32, ptr %5841, align 4, !tbaa !5
  store i32 %5842, ptr %108, align 4, !tbaa !5
  %5843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5844 = call i32 @s2n_print_stacktrace(ptr noundef %5843)
  %5845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5846 = trunc i8 %5845 to i1
  br i1 %5846, label %5847, label %5869

5847:                                             ; preds = %5840
  %5848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5849 = call i32 @fileno(ptr noundef %5848) #11
  %5850 = call i32 @isatty(i32 noundef %5849) #11
  %5851 = icmp ne i32 %5850, 0
  br i1 %5851, label %5852, label %5869

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

5869:                                             ; preds = %5847, %5840
  %5870 = load i32, ptr %108, align 4, !tbaa !5
  %5871 = call ptr @__errno_location() #12
  store i32 %5870, ptr %5871, align 4, !tbaa !5
  %5872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5873 = load i32, ptr @test_count, align 4, !tbaa !5
  %5874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5875 = load i32, ptr %5874, align 4, !tbaa !5
  %5876 = call ptr @s2n_strerror(i32 noundef %5875, ptr noundef @.str.4)
  %5877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5878 = load i32, ptr %5877, align 4, !tbaa !5
  %5879 = call ptr @s2n_strerror_debug(i32 noundef %5878, ptr noundef @.str.4)
  %5880 = call ptr @__errno_location() #12
  %5881 = load i32, ptr %5880, align 4, !tbaa !5
  %5882 = call ptr @strerror(i32 noundef %5881) #11
  %5883 = call ptr @__errno_location() #12
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  %5885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5872, ptr noundef @.str.5, i32 noundef %5873, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 216, ptr noundef %5876, ptr noundef %5879, ptr noundef %5882, i32 noundef %5884) #11
  br label %5886

5886:                                             ; preds = %5869, %5852
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %5887

5887:                                             ; preds = %5886
  br label %5888

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

5889:                                             ; No predecessors!
  br label %5890

5890:                                             ; preds = %5889
  br label %5891

5891:                                             ; preds = %5890, %5830
  br label %5892

5892:                                             ; preds = %5891
  br label %5893

5893:                                             ; preds = %5892
  %5894 = load ptr, ptr %6, align 8, !tbaa !9
  %5895 = call i32 @s2n_connection_free(ptr noundef %5894)
  %5896 = load ptr, ptr %7, align 8, !tbaa !9
  %5897 = call i32 @s2n_connection_free(ptr noundef %5896)
  br label %5898

5898:                                             ; preds = %5893
  %5899 = load i32, ptr @test_count, align 4, !tbaa !5
  %5900 = add nsw i32 %5899, 1
  store i32 %5900, ptr @test_count, align 4, !tbaa !5
  %5901 = call i32 (...) @s2n_disable_tls13_in_test()
  %5902 = icmp eq i32 %5901, -1
  br i1 %5902, label %5903, label %5956

5903:                                             ; preds = %5898
  br label %5904

5904:                                             ; preds = %5903
  br label %5905

5905:                                             ; preds = %5904
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %5906 = call ptr @__errno_location() #12
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  store i32 %5907, ptr %109, align 4, !tbaa !5
  %5908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5909 = call i32 @s2n_print_stacktrace(ptr noundef %5908)
  %5910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5911 = trunc i8 %5910 to i1
  br i1 %5911, label %5912, label %5934

5912:                                             ; preds = %5905
  %5913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5914 = call i32 @fileno(ptr noundef %5913) #11
  %5915 = call i32 @isatty(i32 noundef %5914) #11
  %5916 = icmp ne i32 %5915, 0
  br i1 %5916, label %5917, label %5934

5917:                                             ; preds = %5912
  %5918 = load i32, ptr %109, align 4, !tbaa !5
  %5919 = call ptr @__errno_location() #12
  store i32 %5918, ptr %5919, align 4, !tbaa !5
  %5920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5921 = load i32, ptr @test_count, align 4, !tbaa !5
  %5922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5923 = load i32, ptr %5922, align 4, !tbaa !5
  %5924 = call ptr @s2n_strerror(i32 noundef %5923, ptr noundef @.str.4)
  %5925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call ptr @s2n_strerror_debug(i32 noundef %5926, ptr noundef @.str.4)
  %5928 = call ptr @__errno_location() #12
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @strerror(i32 noundef %5929) #11
  %5931 = call ptr @__errno_location() #12
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5920, ptr noundef @.str.2, i32 noundef %5921, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5924, ptr noundef %5927, ptr noundef %5930, i32 noundef %5932) #11
  br label %5951

5934:                                             ; preds = %5912, %5905
  %5935 = load i32, ptr %109, align 4, !tbaa !5
  %5936 = call ptr @__errno_location() #12
  store i32 %5935, ptr %5936, align 4, !tbaa !5
  %5937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5938 = load i32, ptr @test_count, align 4, !tbaa !5
  %5939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @s2n_strerror(i32 noundef %5940, ptr noundef @.str.4)
  %5942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call ptr @s2n_strerror_debug(i32 noundef %5943, ptr noundef @.str.4)
  %5945 = call ptr @__errno_location() #12
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call ptr @strerror(i32 noundef %5946) #11
  %5948 = call ptr @__errno_location() #12
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5937, ptr noundef @.str.5, i32 noundef %5938, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 220, ptr noundef %5941, ptr noundef %5944, ptr noundef %5947, i32 noundef %5949) #11
  br label %5951

5951:                                             ; preds = %5934, %5917
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %5952

5952:                                             ; preds = %5951
  br label %5953

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

5954:                                             ; No predecessors!
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955, %5898
  br label %5957

5957:                                             ; preds = %5956
  br label %5958

5958:                                             ; preds = %5957
  br label %5959

5959:                                             ; preds = %5958
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = add nsw i32 %5960, 1
  store i32 %5961, ptr @test_count, align 4, !tbaa !5
  %5962 = call i32 (...) @s2n_enable_tls13_in_test()
  %5963 = icmp eq i32 %5962, -1
  br i1 %5963, label %5964, label %6017

5964:                                             ; preds = %5959
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %5967 = call ptr @__errno_location() #12
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  store i32 %5968, ptr %110, 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 %110, 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.51, ptr noundef @.str.1, i32 noundef 225, ptr noundef %5985, ptr noundef %5988, ptr noundef %5991, i32 noundef %5993) #11
  br label %6012

5995:                                             ; preds = %5973, %5966
  %5996 = load i32, ptr %110, 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.51, ptr noundef @.str.1, i32 noundef 225, 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 %110) #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, %5959
  br label %6018

6018:                                             ; preds = %6017
  br label %6019

6019:                                             ; preds = %6018
  br label %6020

6020:                                             ; preds = %6019
  %6021 = load i32, ptr @test_count, align 4, !tbaa !5
  %6022 = add nsw i32 %6021, 1
  store i32 %6022, ptr @test_count, align 4, !tbaa !5
  %6023 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6023, ptr %6, align 8, !tbaa !9
  %6024 = icmp eq ptr %6023, null
  br i1 %6024, label %6025, label %6078

6025:                                             ; preds = %6020
  br label %6026

6026:                                             ; preds = %6025
  br label %6027

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

6034:                                             ; preds = %6027
  %6035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6036 = call i32 @fileno(ptr noundef %6035) #11
  %6037 = call i32 @isatty(i32 noundef %6036) #11
  %6038 = icmp ne i32 %6037, 0
  br i1 %6038, label %6039, label %6056

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

6056:                                             ; preds = %6034, %6027
  %6057 = load i32, ptr %111, align 4, !tbaa !5
  %6058 = call ptr @__errno_location() #12
  store i32 %6057, ptr %6058, align 4, !tbaa !5
  %6059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6060 = load i32, ptr @test_count, align 4, !tbaa !5
  %6061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6062 = load i32, ptr %6061, align 4, !tbaa !5
  %6063 = call ptr @s2n_strerror(i32 noundef %6062, ptr noundef @.str.4)
  %6064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6065 = load i32, ptr %6064, align 4, !tbaa !5
  %6066 = call ptr @s2n_strerror_debug(i32 noundef %6065, ptr noundef @.str.4)
  %6067 = call ptr @__errno_location() #12
  %6068 = load i32, ptr %6067, align 4, !tbaa !5
  %6069 = call ptr @strerror(i32 noundef %6068) #11
  %6070 = call ptr @__errno_location() #12
  %6071 = load i32, ptr %6070, align 4, !tbaa !5
  %6072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6059, ptr noundef @.str.5, i32 noundef %6060, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 226, ptr noundef %6063, ptr noundef %6066, ptr noundef %6069, i32 noundef %6071) #11
  br label %6073

6073:                                             ; preds = %6056, %6039
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %6074

6074:                                             ; preds = %6073
  br label %6075

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

6076:                                             ; No predecessors!
  br label %6077

6077:                                             ; preds = %6076
  br label %6078

6078:                                             ; preds = %6077, %6020
  br label %6079

6079:                                             ; preds = %6078
  br label %6080

6080:                                             ; preds = %6079
  br label %6081

6081:                                             ; preds = %6080
  %6082 = load i32, ptr @test_count, align 4, !tbaa !5
  %6083 = add nsw i32 %6082, 1
  store i32 %6083, ptr @test_count, align 4, !tbaa !5
  %6084 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6084, ptr %7, align 8, !tbaa !9
  %6085 = icmp eq ptr %6084, null
  br i1 %6085, label %6086, label %6139

6086:                                             ; preds = %6081
  br label %6087

6087:                                             ; preds = %6086
  br label %6088

6088:                                             ; preds = %6087
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %6089 = call ptr @__errno_location() #12
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  store i32 %6090, ptr %112, align 4, !tbaa !5
  %6091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6092 = call i32 @s2n_print_stacktrace(ptr noundef %6091)
  %6093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6094 = trunc i8 %6093 to i1
  br i1 %6094, label %6095, label %6117

6095:                                             ; preds = %6088
  %6096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6097 = call i32 @fileno(ptr noundef %6096) #11
  %6098 = call i32 @isatty(i32 noundef %6097) #11
  %6099 = icmp ne i32 %6098, 0
  br i1 %6099, label %6100, label %6117

6100:                                             ; preds = %6095
  %6101 = load i32, ptr %112, align 4, !tbaa !5
  %6102 = call ptr @__errno_location() #12
  store i32 %6101, ptr %6102, align 4, !tbaa !5
  %6103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6104 = load i32, ptr @test_count, align 4, !tbaa !5
  %6105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6106 = load i32, ptr %6105, align 4, !tbaa !5
  %6107 = call ptr @s2n_strerror(i32 noundef %6106, ptr noundef @.str.4)
  %6108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @s2n_strerror_debug(i32 noundef %6109, ptr noundef @.str.4)
  %6111 = call ptr @__errno_location() #12
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call ptr @strerror(i32 noundef %6112) #11
  %6114 = call ptr @__errno_location() #12
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6103, ptr noundef @.str.2, i32 noundef %6104, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 227, ptr noundef %6107, ptr noundef %6110, ptr noundef %6113, i32 noundef %6115) #11
  br label %6134

6117:                                             ; preds = %6095, %6088
  %6118 = load i32, ptr %112, align 4, !tbaa !5
  %6119 = call ptr @__errno_location() #12
  store i32 %6118, ptr %6119, align 4, !tbaa !5
  %6120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6121 = load i32, ptr @test_count, align 4, !tbaa !5
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @s2n_strerror_debug(i32 noundef %6126, ptr noundef @.str.4)
  %6128 = call ptr @__errno_location() #12
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call ptr @strerror(i32 noundef %6129) #11
  %6131 = call ptr @__errno_location() #12
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  %6133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6120, ptr noundef @.str.5, i32 noundef %6121, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 227, ptr noundef %6124, ptr noundef %6127, ptr noundef %6130, i32 noundef %6132) #11
  br label %6134

6134:                                             ; preds = %6117, %6100
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

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

6137:                                             ; No predecessors!
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

6139:                                             ; preds = %6138, %6081
  br label %6140

6140:                                             ; preds = %6139
  br label %6141

6141:                                             ; preds = %6140
  br label %6142

6142:                                             ; preds = %6141
  %6143 = load i32, ptr @test_count, align 4, !tbaa !5
  %6144 = add nsw i32 %6143, 1
  store i32 %6144, ptr @test_count, align 4, !tbaa !5
  %6145 = load ptr, ptr %6, align 8, !tbaa !9
  %6146 = load ptr, ptr %10, align 8, !tbaa !9
  %6147 = call i32 @s2n_connection_set_config(ptr noundef %6145, ptr noundef %6146)
  %6148 = icmp eq i32 %6147, -1
  br i1 %6148, label %6149, label %6202

6149:                                             ; preds = %6142
  br label %6150

6150:                                             ; preds = %6149
  br label %6151

6151:                                             ; preds = %6150
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %6152 = call ptr @__errno_location() #12
  %6153 = load i32, ptr %6152, align 4, !tbaa !5
  store i32 %6153, ptr %113, align 4, !tbaa !5
  %6154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6155 = call i32 @s2n_print_stacktrace(ptr noundef %6154)
  %6156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6157 = trunc i8 %6156 to i1
  br i1 %6157, label %6158, label %6180

6158:                                             ; preds = %6151
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = call i32 @fileno(ptr noundef %6159) #11
  %6161 = call i32 @isatty(i32 noundef %6160) #11
  %6162 = icmp ne i32 %6161, 0
  br i1 %6162, label %6163, label %6180

6163:                                             ; preds = %6158
  %6164 = load i32, ptr %113, align 4, !tbaa !5
  %6165 = call ptr @__errno_location() #12
  store i32 %6164, ptr %6165, align 4, !tbaa !5
  %6166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6167 = load i32, ptr @test_count, align 4, !tbaa !5
  %6168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6169 = load i32, ptr %6168, align 4, !tbaa !5
  %6170 = call ptr @s2n_strerror(i32 noundef %6169, ptr noundef @.str.4)
  %6171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  %6173 = call ptr @s2n_strerror_debug(i32 noundef %6172, ptr noundef @.str.4)
  %6174 = call ptr @__errno_location() #12
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call ptr @strerror(i32 noundef %6175) #11
  %6177 = call ptr @__errno_location() #12
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6166, ptr noundef @.str.2, i32 noundef %6167, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 228, ptr noundef %6170, ptr noundef %6173, ptr noundef %6176, i32 noundef %6178) #11
  br label %6197

6180:                                             ; preds = %6158, %6151
  %6181 = load i32, ptr %113, align 4, !tbaa !5
  %6182 = call ptr @__errno_location() #12
  store i32 %6181, ptr %6182, align 4, !tbaa !5
  %6183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @s2n_strerror(i32 noundef %6186, ptr noundef @.str.4)
  %6188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call ptr @s2n_strerror_debug(i32 noundef %6189, ptr noundef @.str.4)
  %6191 = call ptr @__errno_location() #12
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call ptr @strerror(i32 noundef %6192) #11
  %6194 = call ptr @__errno_location() #12
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  %6196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6183, ptr noundef @.str.5, i32 noundef %6184, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 228, ptr noundef %6187, ptr noundef %6190, ptr noundef %6193, i32 noundef %6195) #11
  br label %6197

6197:                                             ; preds = %6180, %6163
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %6198

6198:                                             ; preds = %6197
  br label %6199

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

6200:                                             ; No predecessors!
  br label %6201

6201:                                             ; preds = %6200
  br label %6202

6202:                                             ; preds = %6201, %6142
  br label %6203

6203:                                             ; preds = %6202
  br label %6204

6204:                                             ; preds = %6203
  br label %6205

6205:                                             ; preds = %6204
  %6206 = load i32, ptr @test_count, align 4, !tbaa !5
  %6207 = add nsw i32 %6206, 1
  store i32 %6207, ptr @test_count, align 4, !tbaa !5
  %6208 = load ptr, ptr %7, align 8, !tbaa !9
  %6209 = load ptr, ptr %9, align 8, !tbaa !9
  %6210 = call i32 @s2n_connection_set_config(ptr noundef %6208, ptr noundef %6209)
  %6211 = icmp eq i32 %6210, -1
  br i1 %6211, label %6212, label %6265

6212:                                             ; preds = %6205
  br label %6213

6213:                                             ; preds = %6212
  br label %6214

6214:                                             ; preds = %6213
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %6215 = call ptr @__errno_location() #12
  %6216 = load i32, ptr %6215, align 4, !tbaa !5
  store i32 %6216, ptr %114, align 4, !tbaa !5
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = call i32 @s2n_print_stacktrace(ptr noundef %6217)
  %6219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6220 = trunc i8 %6219 to i1
  br i1 %6220, label %6221, label %6243

6221:                                             ; preds = %6214
  %6222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6223 = call i32 @fileno(ptr noundef %6222) #11
  %6224 = call i32 @isatty(i32 noundef %6223) #11
  %6225 = icmp ne i32 %6224, 0
  br i1 %6225, label %6226, label %6243

6226:                                             ; preds = %6221
  %6227 = load i32, ptr %114, align 4, !tbaa !5
  %6228 = call ptr @__errno_location() #12
  store i32 %6227, ptr %6228, align 4, !tbaa !5
  %6229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6230 = load i32, ptr @test_count, align 4, !tbaa !5
  %6231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call ptr @s2n_strerror(i32 noundef %6232, ptr noundef @.str.4)
  %6234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6235 = load i32, ptr %6234, align 4, !tbaa !5
  %6236 = call ptr @s2n_strerror_debug(i32 noundef %6235, ptr noundef @.str.4)
  %6237 = call ptr @__errno_location() #12
  %6238 = load i32, ptr %6237, align 4, !tbaa !5
  %6239 = call ptr @strerror(i32 noundef %6238) #11
  %6240 = call ptr @__errno_location() #12
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6229, ptr noundef @.str.2, i32 noundef %6230, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 229, ptr noundef %6233, ptr noundef %6236, ptr noundef %6239, i32 noundef %6241) #11
  br label %6260

6243:                                             ; preds = %6221, %6214
  %6244 = load i32, ptr %114, align 4, !tbaa !5
  %6245 = call ptr @__errno_location() #12
  store i32 %6244, ptr %6245, align 4, !tbaa !5
  %6246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6247 = load i32, ptr @test_count, align 4, !tbaa !5
  %6248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @s2n_strerror(i32 noundef %6249, ptr noundef @.str.4)
  %6251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call ptr @s2n_strerror_debug(i32 noundef %6252, ptr noundef @.str.4)
  %6254 = call ptr @__errno_location() #12
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call ptr @strerror(i32 noundef %6255) #11
  %6257 = call ptr @__errno_location() #12
  %6258 = load i32, ptr %6257, align 4, !tbaa !5
  %6259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6246, ptr noundef @.str.5, i32 noundef %6247, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 229, ptr noundef %6250, ptr noundef %6253, ptr noundef %6256, i32 noundef %6258) #11
  br label %6260

6260:                                             ; preds = %6243, %6226
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %6261

6261:                                             ; preds = %6260
  br label %6262

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

6263:                                             ; No predecessors!
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

6265:                                             ; preds = %6264, %6205
  br label %6266

6266:                                             ; preds = %6265
  br label %6267

6267:                                             ; preds = %6266
  br label %6268

6268:                                             ; preds = %6267
  %6269 = load i32, ptr @test_count, align 4, !tbaa !5
  %6270 = add nsw i32 %6269, 1
  store i32 %6270, ptr @test_count, align 4, !tbaa !5
  %6271 = load ptr, ptr %7, align 8, !tbaa !9
  %6272 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6271, ptr noundef @.str.58)
  %6273 = icmp eq i32 %6272, -1
  br i1 %6273, label %6274, label %6327

6274:                                             ; preds = %6268
  br label %6275

6275:                                             ; preds = %6274
  br label %6276

6276:                                             ; preds = %6275
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %6277 = call ptr @__errno_location() #12
  %6278 = load i32, ptr %6277, align 4, !tbaa !5
  store i32 %6278, ptr %115, align 4, !tbaa !5
  %6279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6280 = call i32 @s2n_print_stacktrace(ptr noundef %6279)
  %6281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6282 = trunc i8 %6281 to i1
  br i1 %6282, label %6283, label %6305

6283:                                             ; preds = %6276
  %6284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6285 = call i32 @fileno(ptr noundef %6284) #11
  %6286 = call i32 @isatty(i32 noundef %6285) #11
  %6287 = icmp ne i32 %6286, 0
  br i1 %6287, label %6288, label %6305

6288:                                             ; preds = %6283
  %6289 = load i32, ptr %115, align 4, !tbaa !5
  %6290 = call ptr @__errno_location() #12
  store i32 %6289, ptr %6290, align 4, !tbaa !5
  %6291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6292 = load i32, ptr @test_count, align 4, !tbaa !5
  %6293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call ptr @s2n_strerror(i32 noundef %6294, ptr noundef @.str.4)
  %6296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6297 = load i32, ptr %6296, align 4, !tbaa !5
  %6298 = call ptr @s2n_strerror_debug(i32 noundef %6297, ptr noundef @.str.4)
  %6299 = call ptr @__errno_location() #12
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = call ptr @strerror(i32 noundef %6300) #11
  %6302 = call ptr @__errno_location() #12
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6291, ptr noundef @.str.2, i32 noundef %6292, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 231, ptr noundef %6295, ptr noundef %6298, ptr noundef %6301, i32 noundef %6303) #11
  br label %6322

6305:                                             ; preds = %6283, %6276
  %6306 = load i32, ptr %115, align 4, !tbaa !5
  %6307 = call ptr @__errno_location() #12
  store i32 %6306, ptr %6307, align 4, !tbaa !5
  %6308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6309 = load i32, ptr @test_count, align 4, !tbaa !5
  %6310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call ptr @s2n_strerror(i32 noundef %6311, ptr noundef @.str.4)
  %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_debug(i32 noundef %6314, ptr noundef @.str.4)
  %6316 = call ptr @__errno_location() #12
  %6317 = load i32, ptr %6316, align 4, !tbaa !5
  %6318 = call ptr @strerror(i32 noundef %6317) #11
  %6319 = call ptr @__errno_location() #12
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  %6321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6308, ptr noundef @.str.5, i32 noundef %6309, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 231, ptr noundef %6312, ptr noundef %6315, ptr noundef %6318, i32 noundef %6320) #11
  br label %6322

6322:                                             ; preds = %6305, %6288
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %6323

6323:                                             ; preds = %6322
  br label %6324

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

6325:                                             ; No predecessors!
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326, %6268
  br label %6328

6328:                                             ; preds = %6327
  br label %6329

6329:                                             ; preds = %6328
  br label %6330

6330:                                             ; preds = %6329
  %6331 = load i32, ptr @test_count, align 4, !tbaa !5
  %6332 = add nsw i32 %6331, 1
  store i32 %6332, ptr @test_count, align 4, !tbaa !5
  %6333 = load ptr, ptr %6, align 8, !tbaa !9
  %6334 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %6333, ptr noundef @.str.58)
  %6335 = icmp eq i32 %6334, -1
  br i1 %6335, label %6336, label %6389

6336:                                             ; preds = %6330
  br label %6337

6337:                                             ; preds = %6336
  br label %6338

6338:                                             ; preds = %6337
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %6339 = call ptr @__errno_location() #12
  %6340 = load i32, ptr %6339, align 4, !tbaa !5
  store i32 %6340, ptr %116, align 4, !tbaa !5
  %6341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6342 = call i32 @s2n_print_stacktrace(ptr noundef %6341)
  %6343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6344 = trunc i8 %6343 to i1
  br i1 %6344, label %6345, label %6367

6345:                                             ; preds = %6338
  %6346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6347 = call i32 @fileno(ptr noundef %6346) #11
  %6348 = call i32 @isatty(i32 noundef %6347) #11
  %6349 = icmp ne i32 %6348, 0
  br i1 %6349, label %6350, label %6367

6350:                                             ; preds = %6345
  %6351 = load i32, ptr %116, align 4, !tbaa !5
  %6352 = call ptr @__errno_location() #12
  store i32 %6351, ptr %6352, align 4, !tbaa !5
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = load i32, ptr @test_count, align 4, !tbaa !5
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror(i32 noundef %6356, ptr noundef @.str.4)
  %6358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @s2n_strerror_debug(i32 noundef %6359, ptr noundef @.str.4)
  %6361 = call ptr @__errno_location() #12
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call ptr @strerror(i32 noundef %6362) #11
  %6364 = call ptr @__errno_location() #12
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6353, ptr noundef @.str.2, i32 noundef %6354, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 232, ptr noundef %6357, ptr noundef %6360, ptr noundef %6363, i32 noundef %6365) #11
  br label %6384

6367:                                             ; preds = %6345, %6338
  %6368 = load i32, ptr %116, align 4, !tbaa !5
  %6369 = call ptr @__errno_location() #12
  store i32 %6368, ptr %6369, align 4, !tbaa !5
  %6370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6371 = load i32, ptr @test_count, align 4, !tbaa !5
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror(i32 noundef %6373, ptr noundef @.str.4)
  %6375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @s2n_strerror_debug(i32 noundef %6376, ptr noundef @.str.4)
  %6378 = call ptr @__errno_location() #12
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call ptr @strerror(i32 noundef %6379) #11
  %6381 = call ptr @__errno_location() #12
  %6382 = load i32, ptr %6381, align 4, !tbaa !5
  %6383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6370, ptr noundef @.str.5, i32 noundef %6371, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 232, ptr noundef %6374, ptr noundef %6377, ptr noundef %6380, i32 noundef %6382) #11
  br label %6384

6384:                                             ; preds = %6367, %6350
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

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

6387:                                             ; No predecessors!
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388, %6330
  br label %6390

6390:                                             ; preds = %6389
  br label %6391

6391:                                             ; preds = %6390
  %6392 = load ptr, ptr %7, align 8, !tbaa !9
  %6393 = getelementptr inbounds %struct.s2n_connection, ptr %6392, i32 0, i32 52
  %6394 = getelementptr inbounds %struct.s2n_handshake, ptr %6393, i32 0, i32 0
  store ptr %6394, ptr %8, align 8, !tbaa !9
  br label %6395

6395:                                             ; preds = %6391
  %6396 = load i32, ptr @test_count, align 4, !tbaa !5
  %6397 = add nsw i32 %6396, 1
  store i32 %6397, ptr @test_count, align 4, !tbaa !5
  %6398 = load ptr, ptr %7, align 8, !tbaa !9
  %6399 = call i32 @s2n_client_hello_send(ptr noundef %6398)
  %6400 = icmp eq i32 %6399, -1
  br i1 %6400, label %6401, label %6454

6401:                                             ; preds = %6395
  br label %6402

6402:                                             ; preds = %6401
  br label %6403

6403:                                             ; preds = %6402
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %6404 = call ptr @__errno_location() #12
  %6405 = load i32, ptr %6404, align 4, !tbaa !5
  store i32 %6405, ptr %117, align 4, !tbaa !5
  %6406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6407 = call i32 @s2n_print_stacktrace(ptr noundef %6406)
  %6408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6409 = trunc i8 %6408 to i1
  br i1 %6409, label %6410, label %6432

6410:                                             ; preds = %6403
  %6411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6412 = call i32 @fileno(ptr noundef %6411) #11
  %6413 = call i32 @isatty(i32 noundef %6412) #11
  %6414 = icmp ne i32 %6413, 0
  br i1 %6414, label %6415, label %6432

6415:                                             ; preds = %6410
  %6416 = load i32, ptr %117, align 4, !tbaa !5
  %6417 = call ptr @__errno_location() #12
  store i32 %6416, ptr %6417, align 4, !tbaa !5
  %6418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6419 = load i32, ptr @test_count, align 4, !tbaa !5
  %6420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6421 = load i32, ptr %6420, align 4, !tbaa !5
  %6422 = call ptr @s2n_strerror(i32 noundef %6421, ptr noundef @.str.4)
  %6423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  %6425 = call ptr @s2n_strerror_debug(i32 noundef %6424, ptr noundef @.str.4)
  %6426 = call ptr @__errno_location() #12
  %6427 = load i32, ptr %6426, align 4, !tbaa !5
  %6428 = call ptr @strerror(i32 noundef %6427) #11
  %6429 = call ptr @__errno_location() #12
  %6430 = load i32, ptr %6429, align 4, !tbaa !5
  %6431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6418, ptr noundef @.str.2, i32 noundef %6419, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 236, ptr noundef %6422, ptr noundef %6425, ptr noundef %6428, i32 noundef %6430) #11
  br label %6449

6432:                                             ; preds = %6410, %6403
  %6433 = load i32, ptr %117, align 4, !tbaa !5
  %6434 = call ptr @__errno_location() #12
  store i32 %6433, ptr %6434, align 4, !tbaa !5
  %6435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6436 = load i32, ptr @test_count, align 4, !tbaa !5
  %6437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6438 = load i32, ptr %6437, align 4, !tbaa !5
  %6439 = call ptr @s2n_strerror(i32 noundef %6438, ptr noundef @.str.4)
  %6440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6441 = load i32, ptr %6440, align 4, !tbaa !5
  %6442 = call ptr @s2n_strerror_debug(i32 noundef %6441, ptr noundef @.str.4)
  %6443 = call ptr @__errno_location() #12
  %6444 = load i32, ptr %6443, align 4, !tbaa !5
  %6445 = call ptr @strerror(i32 noundef %6444) #11
  %6446 = call ptr @__errno_location() #12
  %6447 = load i32, ptr %6446, align 4, !tbaa !5
  %6448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6435, ptr noundef @.str.5, i32 noundef %6436, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 236, ptr noundef %6439, ptr noundef %6442, ptr noundef %6445, i32 noundef %6447) #11
  br label %6449

6449:                                             ; preds = %6432, %6415
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %6450

6450:                                             ; preds = %6449
  br label %6451

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

6452:                                             ; No predecessors!
  br label %6453

6453:                                             ; preds = %6452
  br label %6454

6454:                                             ; preds = %6453, %6395
  br label %6455

6455:                                             ; preds = %6454
  br label %6456

6456:                                             ; preds = %6455
  call void @llvm.lifetime.start.p0(i64 2, ptr %118) #11
  %6457 = getelementptr inbounds [2 x i8], ptr %118, i64 0, i64 0
  store i8 3, ptr %6457, align 1, !tbaa !48
  %6458 = getelementptr inbounds [2 x i8], ptr %118, i64 0, i64 1
  store i8 4, ptr %6458, align 1, !tbaa !48
  br label %6459

6459:                                             ; preds = %6456
  %6460 = load i32, ptr @test_count, align 4, !tbaa !5
  %6461 = add nsw i32 %6460, 1
  store i32 %6461, ptr @test_count, align 4, !tbaa !5
  %6462 = load ptr, ptr %8, align 8, !tbaa !9
  %6463 = call i32 @s2n_stuffer_rewrite(ptr noundef %6462)
  %6464 = icmp eq i32 %6463, -1
  br i1 %6464, label %6465, label %6518

6465:                                             ; preds = %6459
  br label %6466

6466:                                             ; preds = %6465
  br label %6467

6467:                                             ; preds = %6466
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %6468 = call ptr @__errno_location() #12
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  store i32 %6469, ptr %119, align 4, !tbaa !5
  %6470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6471 = call i32 @s2n_print_stacktrace(ptr noundef %6470)
  %6472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6473 = trunc i8 %6472 to i1
  br i1 %6473, label %6474, label %6496

6474:                                             ; preds = %6467
  %6475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6476 = call i32 @fileno(ptr noundef %6475) #11
  %6477 = call i32 @isatty(i32 noundef %6476) #11
  %6478 = icmp ne i32 %6477, 0
  br i1 %6478, label %6479, label %6496

6479:                                             ; preds = %6474
  %6480 = load i32, ptr %119, align 4, !tbaa !5
  %6481 = call ptr @__errno_location() #12
  store i32 %6480, ptr %6481, align 4, !tbaa !5
  %6482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6483 = load i32, ptr @test_count, align 4, !tbaa !5
  %6484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6485 = load i32, ptr %6484, align 4, !tbaa !5
  %6486 = call ptr @s2n_strerror(i32 noundef %6485, ptr noundef @.str.4)
  %6487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call ptr @s2n_strerror_debug(i32 noundef %6488, ptr noundef @.str.4)
  %6490 = call ptr @__errno_location() #12
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @strerror(i32 noundef %6491) #11
  %6493 = call ptr @__errno_location() #12
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6482, ptr noundef @.str.2, i32 noundef %6483, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 242, ptr noundef %6486, ptr noundef %6489, ptr noundef %6492, i32 noundef %6494) #11
  br label %6513

6496:                                             ; preds = %6474, %6467
  %6497 = load i32, ptr %119, align 4, !tbaa !5
  %6498 = call ptr @__errno_location() #12
  store i32 %6497, ptr %6498, align 4, !tbaa !5
  %6499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6500 = load i32, ptr @test_count, align 4, !tbaa !5
  %6501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6502 = load i32, ptr %6501, align 4, !tbaa !5
  %6503 = call ptr @s2n_strerror(i32 noundef %6502, ptr noundef @.str.4)
  %6504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  %6506 = call ptr @s2n_strerror_debug(i32 noundef %6505, ptr noundef @.str.4)
  %6507 = call ptr @__errno_location() #12
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @strerror(i32 noundef %6508) #11
  %6510 = call ptr @__errno_location() #12
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6499, ptr noundef @.str.5, i32 noundef %6500, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 242, ptr noundef %6503, ptr noundef %6506, ptr noundef %6509, i32 noundef %6511) #11
  br label %6513

6513:                                             ; preds = %6496, %6479
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %6514

6514:                                             ; preds = %6513
  br label %6515

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

6516:                                             ; No predecessors!
  br label %6517

6517:                                             ; preds = %6516
  br label %6518

6518:                                             ; preds = %6517, %6459
  br label %6519

6519:                                             ; preds = %6518
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

6521:                                             ; preds = %6520
  %6522 = load i32, ptr @test_count, align 4, !tbaa !5
  %6523 = add nsw i32 %6522, 1
  store i32 %6523, ptr @test_count, align 4, !tbaa !5
  %6524 = load ptr, ptr %8, align 8, !tbaa !9
  %6525 = getelementptr inbounds [2 x i8], ptr %118, i64 0, i64 0
  %6526 = call i32 @s2n_stuffer_write_bytes(ptr noundef %6524, ptr noundef %6525, i32 noundef 2)
  %6527 = icmp eq i32 %6526, -1
  br i1 %6527, label %6528, label %6581

6528:                                             ; preds = %6521
  br label %6529

6529:                                             ; preds = %6528
  br label %6530

6530:                                             ; preds = %6529
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %6531 = call ptr @__errno_location() #12
  %6532 = load i32, ptr %6531, align 4, !tbaa !5
  store i32 %6532, ptr %120, align 4, !tbaa !5
  %6533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6534 = call i32 @s2n_print_stacktrace(ptr noundef %6533)
  %6535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6536 = trunc i8 %6535 to i1
  br i1 %6536, label %6537, label %6559

6537:                                             ; preds = %6530
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = call i32 @fileno(ptr noundef %6538) #11
  %6540 = call i32 @isatty(i32 noundef %6539) #11
  %6541 = icmp ne i32 %6540, 0
  br i1 %6541, label %6542, label %6559

6542:                                             ; preds = %6537
  %6543 = load i32, ptr %120, align 4, !tbaa !5
  %6544 = call ptr @__errno_location() #12
  store i32 %6543, ptr %6544, align 4, !tbaa !5
  %6545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6546 = load i32, ptr @test_count, align 4, !tbaa !5
  %6547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6548 = load i32, ptr %6547, align 4, !tbaa !5
  %6549 = call ptr @s2n_strerror(i32 noundef %6548, ptr noundef @.str.4)
  %6550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6551 = load i32, ptr %6550, align 4, !tbaa !5
  %6552 = call ptr @s2n_strerror_debug(i32 noundef %6551, ptr noundef @.str.4)
  %6553 = call ptr @__errno_location() #12
  %6554 = load i32, ptr %6553, align 4, !tbaa !5
  %6555 = call ptr @strerror(i32 noundef %6554) #11
  %6556 = call ptr @__errno_location() #12
  %6557 = load i32, ptr %6556, align 4, !tbaa !5
  %6558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6545, ptr noundef @.str.2, i32 noundef %6546, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 243, ptr noundef %6549, ptr noundef %6552, ptr noundef %6555, i32 noundef %6557) #11
  br label %6576

6559:                                             ; preds = %6537, %6530
  %6560 = load i32, ptr %120, align 4, !tbaa !5
  %6561 = call ptr @__errno_location() #12
  store i32 %6560, ptr %6561, align 4, !tbaa !5
  %6562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6563 = load i32, ptr @test_count, align 4, !tbaa !5
  %6564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6565 = load i32, ptr %6564, align 4, !tbaa !5
  %6566 = call ptr @s2n_strerror(i32 noundef %6565, ptr noundef @.str.4)
  %6567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6568 = load i32, ptr %6567, align 4, !tbaa !5
  %6569 = call ptr @s2n_strerror_debug(i32 noundef %6568, ptr noundef @.str.4)
  %6570 = call ptr @__errno_location() #12
  %6571 = load i32, ptr %6570, align 4, !tbaa !5
  %6572 = call ptr @strerror(i32 noundef %6571) #11
  %6573 = call ptr @__errno_location() #12
  %6574 = load i32, ptr %6573, align 4, !tbaa !5
  %6575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6562, ptr noundef @.str.5, i32 noundef %6563, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 243, ptr noundef %6566, ptr noundef %6569, ptr noundef %6572, i32 noundef %6574) #11
  br label %6576

6576:                                             ; preds = %6559, %6542
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %6577

6577:                                             ; preds = %6576
  br label %6578

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

6579:                                             ; No predecessors!
  br label %6580

6580:                                             ; preds = %6579
  br label %6581

6581:                                             ; preds = %6580, %6521
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582
  br label %6584

6584:                                             ; preds = %6583
  %6585 = load i32, ptr @test_count, align 4, !tbaa !5
  %6586 = add nsw i32 %6585, 1
  store i32 %6586, ptr @test_count, align 4, !tbaa !5
  %6587 = load ptr, ptr %6, align 8, !tbaa !9
  %6588 = getelementptr inbounds %struct.s2n_connection, ptr %6587, i32 0, i32 52
  %6589 = getelementptr inbounds %struct.s2n_handshake, ptr %6588, i32 0, i32 0
  %6590 = load ptr, ptr %8, align 8, !tbaa !9
  %6591 = getelementptr inbounds %struct.s2n_stuffer, ptr %6590, i32 0, i32 0
  %6592 = call i32 @s2n_stuffer_write(ptr noundef %6589, ptr noundef %6591)
  %6593 = icmp eq i32 %6592, -1
  br i1 %6593, label %6594, label %6647

6594:                                             ; preds = %6584
  br label %6595

6595:                                             ; preds = %6594
  br label %6596

6596:                                             ; preds = %6595
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #11
  %6597 = call ptr @__errno_location() #12
  %6598 = load i32, ptr %6597, align 4, !tbaa !5
  store i32 %6598, ptr %121, align 4, !tbaa !5
  %6599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6600 = call i32 @s2n_print_stacktrace(ptr noundef %6599)
  %6601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6602 = trunc i8 %6601 to i1
  br i1 %6602, label %6603, label %6625

6603:                                             ; preds = %6596
  %6604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6605 = call i32 @fileno(ptr noundef %6604) #11
  %6606 = call i32 @isatty(i32 noundef %6605) #11
  %6607 = icmp ne i32 %6606, 0
  br i1 %6607, label %6608, label %6625

6608:                                             ; preds = %6603
  %6609 = load i32, ptr %121, align 4, !tbaa !5
  %6610 = call ptr @__errno_location() #12
  store i32 %6609, ptr %6610, align 4, !tbaa !5
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = load i32, ptr @test_count, align 4, !tbaa !5
  %6613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6614 = load i32, ptr %6613, align 4, !tbaa !5
  %6615 = call ptr @s2n_strerror(i32 noundef %6614, ptr noundef @.str.4)
  %6616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6617 = load i32, ptr %6616, align 4, !tbaa !5
  %6618 = call ptr @s2n_strerror_debug(i32 noundef %6617, ptr noundef @.str.4)
  %6619 = call ptr @__errno_location() #12
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  %6621 = call ptr @strerror(i32 noundef %6620) #11
  %6622 = call ptr @__errno_location() #12
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6611, ptr noundef @.str.2, i32 noundef %6612, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 245, ptr noundef %6615, ptr noundef %6618, ptr noundef %6621, i32 noundef %6623) #11
  br label %6642

6625:                                             ; preds = %6603, %6596
  %6626 = load i32, ptr %121, align 4, !tbaa !5
  %6627 = call ptr @__errno_location() #12
  store i32 %6626, ptr %6627, align 4, !tbaa !5
  %6628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6629 = load i32, ptr @test_count, align 4, !tbaa !5
  %6630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call ptr @s2n_strerror(i32 noundef %6631, ptr noundef @.str.4)
  %6633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call ptr @s2n_strerror_debug(i32 noundef %6634, ptr noundef @.str.4)
  %6636 = call ptr @__errno_location() #12
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call ptr @strerror(i32 noundef %6637) #11
  %6639 = call ptr @__errno_location() #12
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6628, ptr noundef @.str.5, i32 noundef %6629, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 245, ptr noundef %6632, ptr noundef %6635, ptr noundef %6638, i32 noundef %6640) #11
  br label %6642

6642:                                             ; preds = %6625, %6608
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %6643

6643:                                             ; preds = %6642
  br label %6644

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

6645:                                             ; No predecessors!
  br label %6646

6646:                                             ; preds = %6645
  br label %6647

6647:                                             ; preds = %6646, %6584
  br label %6648

6648:                                             ; preds = %6647
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649
  %6651 = load i32, ptr @test_count, align 4, !tbaa !5
  %6652 = add nsw i32 %6651, 1
  store i32 %6652, ptr @test_count, align 4, !tbaa !5
  %6653 = load ptr, ptr %6, align 8, !tbaa !9
  %6654 = call i32 @s2n_client_hello_recv(ptr noundef %6653)
  %6655 = icmp eq i32 %6654, -1
  br i1 %6655, label %6656, label %6709

6656:                                             ; preds = %6650
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %6659 = call ptr @__errno_location() #12
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  store i32 %6660, ptr %122, align 4, !tbaa !5
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = call i32 @s2n_print_stacktrace(ptr noundef %6661)
  %6663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6664 = trunc i8 %6663 to i1
  br i1 %6664, label %6665, label %6687

6665:                                             ; preds = %6658
  %6666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6667 = call i32 @fileno(ptr noundef %6666) #11
  %6668 = call i32 @isatty(i32 noundef %6667) #11
  %6669 = icmp ne i32 %6668, 0
  br i1 %6669, label %6670, label %6687

6670:                                             ; preds = %6665
  %6671 = load i32, ptr %122, align 4, !tbaa !5
  %6672 = call ptr @__errno_location() #12
  store i32 %6671, ptr %6672, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = load i32, ptr @test_count, align 4, !tbaa !5
  %6675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror(i32 noundef %6676, ptr noundef @.str.4)
  %6678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @s2n_strerror_debug(i32 noundef %6679, ptr noundef @.str.4)
  %6681 = call ptr @__errno_location() #12
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @strerror(i32 noundef %6682) #11
  %6684 = call ptr @__errno_location() #12
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6673, ptr noundef @.str.2, i32 noundef %6674, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6677, ptr noundef %6680, ptr noundef %6683, i32 noundef %6685) #11
  br label %6704

6687:                                             ; preds = %6665, %6658
  %6688 = load i32, ptr %122, align 4, !tbaa !5
  %6689 = call ptr @__errno_location() #12
  store i32 %6688, ptr %6689, align 4, !tbaa !5
  %6690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6691 = load i32, ptr @test_count, align 4, !tbaa !5
  %6692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @s2n_strerror(i32 noundef %6693, ptr noundef @.str.4)
  %6695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @s2n_strerror_debug(i32 noundef %6696, ptr noundef @.str.4)
  %6698 = call ptr @__errno_location() #12
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @strerror(i32 noundef %6699) #11
  %6701 = call ptr @__errno_location() #12
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6690, ptr noundef @.str.5, i32 noundef %6691, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 246, ptr noundef %6694, ptr noundef %6697, ptr noundef %6700, i32 noundef %6702) #11
  br label %6704

6704:                                             ; preds = %6687, %6670
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

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

6707:                                             ; No predecessors!
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708, %6650
  br label %6710

6710:                                             ; preds = %6709
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

6712:                                             ; preds = %6711
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = add nsw i32 %6713, 1
  store i32 %6714, ptr @test_count, align 4, !tbaa !5
  %6715 = load ptr, ptr %7, align 8, !tbaa !9
  %6716 = getelementptr inbounds %struct.s2n_connection, ptr %6715, i32 0, i32 23
  %6717 = load i8, ptr %6716, align 4, !tbaa !46
  %6718 = zext i8 %6717 to i32
  %6719 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %6720 = icmp eq i32 %6718, %6719
  br i1 %6720, label %6774, label %6721

6721:                                             ; preds = %6712
  br label %6722

6722:                                             ; preds = %6721
  br label %6723

6723:                                             ; preds = %6722
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %6724 = call ptr @__errno_location() #12
  %6725 = load i32, ptr %6724, align 4, !tbaa !5
  store i32 %6725, ptr %123, align 4, !tbaa !5
  %6726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6727 = call i32 @s2n_print_stacktrace(ptr noundef %6726)
  %6728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6729 = trunc i8 %6728 to i1
  br i1 %6729, label %6730, label %6752

6730:                                             ; preds = %6723
  %6731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6732 = call i32 @fileno(ptr noundef %6731) #11
  %6733 = call i32 @isatty(i32 noundef %6732) #11
  %6734 = icmp ne i32 %6733, 0
  br i1 %6734, label %6735, label %6752

6735:                                             ; preds = %6730
  %6736 = load i32, ptr %123, align 4, !tbaa !5
  %6737 = call ptr @__errno_location() #12
  store i32 %6736, ptr %6737, align 4, !tbaa !5
  %6738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6739 = load i32, ptr @test_count, align 4, !tbaa !5
  %6740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6741 = load i32, ptr %6740, align 4, !tbaa !5
  %6742 = call ptr @s2n_strerror(i32 noundef %6741, ptr noundef @.str.4)
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror_debug(i32 noundef %6744, ptr noundef @.str.4)
  %6746 = call ptr @__errno_location() #12
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @strerror(i32 noundef %6747) #11
  %6749 = call ptr @__errno_location() #12
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6738, ptr noundef @.str.2, i32 noundef %6739, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 248, ptr noundef %6742, ptr noundef %6745, ptr noundef %6748, i32 noundef %6750) #11
  br label %6769

6752:                                             ; preds = %6730, %6723
  %6753 = load i32, ptr %123, align 4, !tbaa !5
  %6754 = call ptr @__errno_location() #12
  store i32 %6753, ptr %6754, align 4, !tbaa !5
  %6755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6756 = load i32, ptr @test_count, align 4, !tbaa !5
  %6757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call ptr @s2n_strerror(i32 noundef %6758, ptr noundef @.str.4)
  %6760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror_debug(i32 noundef %6761, ptr noundef @.str.4)
  %6763 = call ptr @__errno_location() #12
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call ptr @strerror(i32 noundef %6764) #11
  %6766 = call ptr @__errno_location() #12
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6755, ptr noundef @.str.5, i32 noundef %6756, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 248, ptr noundef %6759, ptr noundef %6762, ptr noundef %6765, i32 noundef %6767) #11
  br label %6769

6769:                                             ; preds = %6752, %6735
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %6770

6770:                                             ; preds = %6769
  br label %6771

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

6772:                                             ; No predecessors!
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

6774:                                             ; preds = %6773, %6712
  br label %6775

6775:                                             ; preds = %6774
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776
  %6778 = load i32, ptr @test_count, align 4, !tbaa !5
  %6779 = add nsw i32 %6778, 1
  store i32 %6779, ptr @test_count, align 4, !tbaa !5
  %6780 = load ptr, ptr %7, align 8, !tbaa !9
  %6781 = getelementptr inbounds %struct.s2n_connection, ptr %6780, i32 0, i32 21
  %6782 = load i8, ptr %6781, align 2, !tbaa !42
  %6783 = zext i8 %6782 to i32
  %6784 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %6785 = icmp eq i32 %6783, %6784
  br i1 %6785, label %6839, label %6786

6786:                                             ; preds = %6777
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %6789 = call ptr @__errno_location() #12
  %6790 = load i32, ptr %6789, align 4, !tbaa !5
  store i32 %6790, ptr %124, align 4, !tbaa !5
  %6791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6792 = call i32 @s2n_print_stacktrace(ptr noundef %6791)
  %6793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6794 = trunc i8 %6793 to i1
  br i1 %6794, label %6795, label %6817

6795:                                             ; preds = %6788
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = call i32 @fileno(ptr noundef %6796) #11
  %6798 = call i32 @isatty(i32 noundef %6797) #11
  %6799 = icmp ne i32 %6798, 0
  br i1 %6799, label %6800, label %6817

6800:                                             ; preds = %6795
  %6801 = load i32, ptr %124, align 4, !tbaa !5
  %6802 = call ptr @__errno_location() #12
  store i32 %6801, ptr %6802, align 4, !tbaa !5
  %6803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6804 = load i32, ptr @test_count, align 4, !tbaa !5
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror(i32 noundef %6806, ptr noundef @.str.4)
  %6808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @s2n_strerror_debug(i32 noundef %6809, ptr noundef @.str.4)
  %6811 = call ptr @__errno_location() #12
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call ptr @strerror(i32 noundef %6812) #11
  %6814 = call ptr @__errno_location() #12
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6803, ptr noundef @.str.2, i32 noundef %6804, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 249, ptr noundef %6807, ptr noundef %6810, ptr noundef %6813, i32 noundef %6815) #11
  br label %6834

6817:                                             ; preds = %6795, %6788
  %6818 = load i32, ptr %124, align 4, !tbaa !5
  %6819 = call ptr @__errno_location() #12
  store i32 %6818, ptr %6819, align 4, !tbaa !5
  %6820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6821 = load i32, ptr @test_count, align 4, !tbaa !5
  %6822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call ptr @s2n_strerror(i32 noundef %6823, ptr noundef @.str.4)
  %6825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6826 = load i32, ptr %6825, align 4, !tbaa !5
  %6827 = call ptr @s2n_strerror_debug(i32 noundef %6826, ptr noundef @.str.4)
  %6828 = call ptr @__errno_location() #12
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call ptr @strerror(i32 noundef %6829) #11
  %6831 = call ptr @__errno_location() #12
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6820, ptr noundef @.str.5, i32 noundef %6821, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 249, ptr noundef %6824, ptr noundef %6827, ptr noundef %6830, i32 noundef %6832) #11
  br label %6834

6834:                                             ; preds = %6817, %6800
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

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

6837:                                             ; No predecessors!
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838, %6777
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  %6843 = load i32, ptr @test_count, align 4, !tbaa !5
  %6844 = add nsw i32 %6843, 1
  store i32 %6844, ptr @test_count, align 4, !tbaa !5
  %6845 = load ptr, ptr %7, align 8, !tbaa !9
  %6846 = getelementptr inbounds %struct.s2n_connection, ptr %6845, i32 0, i32 20
  %6847 = load i8, ptr %6846, align 1, !tbaa !15
  %6848 = zext i8 %6847 to i32
  %6849 = icmp eq i32 %6848, 33
  br i1 %6849, label %6903, label %6850

6850:                                             ; preds = %6842
  br label %6851

6851:                                             ; preds = %6850
  br label %6852

6852:                                             ; preds = %6851
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %6853 = call ptr @__errno_location() #12
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  store i32 %6854, ptr %125, align 4, !tbaa !5
  %6855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6856 = call i32 @s2n_print_stacktrace(ptr noundef %6855)
  %6857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6858 = trunc i8 %6857 to i1
  br i1 %6858, label %6859, label %6881

6859:                                             ; preds = %6852
  %6860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6861 = call i32 @fileno(ptr noundef %6860) #11
  %6862 = call i32 @isatty(i32 noundef %6861) #11
  %6863 = icmp ne i32 %6862, 0
  br i1 %6863, label %6864, label %6881

6864:                                             ; preds = %6859
  %6865 = load i32, ptr %125, align 4, !tbaa !5
  %6866 = call ptr @__errno_location() #12
  store i32 %6865, ptr %6866, align 4, !tbaa !5
  %6867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6868 = load i32, ptr @test_count, align 4, !tbaa !5
  %6869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  %6871 = call ptr @s2n_strerror(i32 noundef %6870, ptr noundef @.str.4)
  %6872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  %6874 = call ptr @s2n_strerror_debug(i32 noundef %6873, ptr noundef @.str.4)
  %6875 = call ptr @__errno_location() #12
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @strerror(i32 noundef %6876) #11
  %6878 = call ptr @__errno_location() #12
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6867, ptr noundef @.str.2, i32 noundef %6868, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 250, ptr noundef %6871, ptr noundef %6874, ptr noundef %6877, i32 noundef %6879) #11
  br label %6898

6881:                                             ; preds = %6859, %6852
  %6882 = load i32, ptr %125, align 4, !tbaa !5
  %6883 = call ptr @__errno_location() #12
  store i32 %6882, ptr %6883, align 4, !tbaa !5
  %6884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6885 = load i32, ptr @test_count, align 4, !tbaa !5
  %6886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6887 = load i32, ptr %6886, align 4, !tbaa !5
  %6888 = call ptr @s2n_strerror(i32 noundef %6887, ptr noundef @.str.4)
  %6889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6890 = load i32, ptr %6889, align 4, !tbaa !5
  %6891 = call ptr @s2n_strerror_debug(i32 noundef %6890, ptr noundef @.str.4)
  %6892 = call ptr @__errno_location() #12
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @strerror(i32 noundef %6893) #11
  %6895 = call ptr @__errno_location() #12
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6884, ptr noundef @.str.5, i32 noundef %6885, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 250, ptr noundef %6888, ptr noundef %6891, ptr noundef %6894, i32 noundef %6896) #11
  br label %6898

6898:                                             ; preds = %6881, %6864
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %6899

6899:                                             ; preds = %6898
  br label %6900

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

6901:                                             ; No predecessors!
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

6903:                                             ; preds = %6902, %6842
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

6906:                                             ; preds = %6905
  %6907 = load i32, ptr @test_count, align 4, !tbaa !5
  %6908 = add nsw i32 %6907, 1
  store i32 %6908, ptr @test_count, align 4, !tbaa !5
  %6909 = load ptr, ptr %6, align 8, !tbaa !9
  %6910 = getelementptr inbounds %struct.s2n_connection, ptr %6909, i32 0, i32 22
  %6911 = load i8, ptr %6910, align 1, !tbaa !47
  %6912 = zext i8 %6911 to i32
  %6913 = icmp eq i32 %6912, 34
  br i1 %6913, label %6967, label %6914

6914:                                             ; preds = %6906
  br label %6915

6915:                                             ; preds = %6914
  br label %6916

6916:                                             ; preds = %6915
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %6917 = call ptr @__errno_location() #12
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  store i32 %6918, ptr %126, align 4, !tbaa !5
  %6919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6920 = call i32 @s2n_print_stacktrace(ptr noundef %6919)
  %6921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6922 = trunc i8 %6921 to i1
  br i1 %6922, label %6923, label %6945

6923:                                             ; preds = %6916
  %6924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6925 = call i32 @fileno(ptr noundef %6924) #11
  %6926 = call i32 @isatty(i32 noundef %6925) #11
  %6927 = icmp ne i32 %6926, 0
  br i1 %6927, label %6928, label %6945

6928:                                             ; preds = %6923
  %6929 = load i32, ptr %126, align 4, !tbaa !5
  %6930 = call ptr @__errno_location() #12
  store i32 %6929, ptr %6930, align 4, !tbaa !5
  %6931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6932 = load i32, ptr @test_count, align 4, !tbaa !5
  %6933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @s2n_strerror(i32 noundef %6934, ptr noundef @.str.4)
  %6936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @s2n_strerror_debug(i32 noundef %6937, ptr noundef @.str.4)
  %6939 = call ptr @__errno_location() #12
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @strerror(i32 noundef %6940) #11
  %6942 = call ptr @__errno_location() #12
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6931, ptr noundef @.str.2, i32 noundef %6932, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 252, ptr noundef %6935, ptr noundef %6938, ptr noundef %6941, i32 noundef %6943) #11
  br label %6962

6945:                                             ; preds = %6923, %6916
  %6946 = load i32, ptr %126, align 4, !tbaa !5
  %6947 = call ptr @__errno_location() #12
  store i32 %6946, ptr %6947, align 4, !tbaa !5
  %6948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6949 = load i32, ptr @test_count, align 4, !tbaa !5
  %6950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call ptr @s2n_strerror(i32 noundef %6951, ptr noundef @.str.4)
  %6953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @s2n_strerror_debug(i32 noundef %6954, ptr noundef @.str.4)
  %6956 = call ptr @__errno_location() #12
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @strerror(i32 noundef %6957) #11
  %6959 = call ptr @__errno_location() #12
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6948, ptr noundef @.str.5, i32 noundef %6949, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 252, ptr noundef %6952, ptr noundef %6955, ptr noundef %6958, i32 noundef %6960) #11
  br label %6962

6962:                                             ; preds = %6945, %6928
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

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

6965:                                             ; No predecessors!
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

6967:                                             ; preds = %6966, %6906
  br label %6968

6968:                                             ; preds = %6967
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969
  %6971 = load i32, ptr @test_count, align 4, !tbaa !5
  %6972 = add nsw i32 %6971, 1
  store i32 %6972, ptr @test_count, align 4, !tbaa !5
  %6973 = load ptr, ptr %6, align 8, !tbaa !9
  %6974 = getelementptr inbounds %struct.s2n_connection, ptr %6973, i32 0, i32 23
  %6975 = load i8, ptr %6974, align 4, !tbaa !46
  %6976 = zext i8 %6975 to i32
  %6977 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %6978 = icmp eq i32 %6976, %6977
  br i1 %6978, label %7032, label %6979

6979:                                             ; preds = %6970
  br label %6980

6980:                                             ; preds = %6979
  br label %6981

6981:                                             ; preds = %6980
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %6982 = call ptr @__errno_location() #12
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  store i32 %6983, ptr %127, align 4, !tbaa !5
  %6984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6985 = call i32 @s2n_print_stacktrace(ptr noundef %6984)
  %6986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6987 = trunc i8 %6986 to i1
  br i1 %6987, label %6988, label %7010

6988:                                             ; preds = %6981
  %6989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6990 = call i32 @fileno(ptr noundef %6989) #11
  %6991 = call i32 @isatty(i32 noundef %6990) #11
  %6992 = icmp ne i32 %6991, 0
  br i1 %6992, label %6993, label %7010

6993:                                             ; preds = %6988
  %6994 = load i32, ptr %127, align 4, !tbaa !5
  %6995 = call ptr @__errno_location() #12
  store i32 %6994, ptr %6995, align 4, !tbaa !5
  %6996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6997 = load i32, ptr @test_count, align 4, !tbaa !5
  %6998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @s2n_strerror(i32 noundef %6999, ptr noundef @.str.4)
  %7001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @s2n_strerror_debug(i32 noundef %7002, ptr noundef @.str.4)
  %7004 = call ptr @__errno_location() #12
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @strerror(i32 noundef %7005) #11
  %7007 = call ptr @__errno_location() #12
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6996, ptr noundef @.str.2, i32 noundef %6997, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 253, ptr noundef %7000, ptr noundef %7003, ptr noundef %7006, i32 noundef %7008) #11
  br label %7027

7010:                                             ; preds = %6988, %6981
  %7011 = load i32, ptr %127, align 4, !tbaa !5
  %7012 = call ptr @__errno_location() #12
  store i32 %7011, ptr %7012, align 4, !tbaa !5
  %7013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7014 = load i32, ptr @test_count, align 4, !tbaa !5
  %7015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7016 = load i32, ptr %7015, align 4, !tbaa !5
  %7017 = call ptr @s2n_strerror(i32 noundef %7016, ptr noundef @.str.4)
  %7018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call ptr @s2n_strerror_debug(i32 noundef %7019, ptr noundef @.str.4)
  %7021 = call ptr @__errno_location() #12
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call ptr @strerror(i32 noundef %7022) #11
  %7024 = call ptr @__errno_location() #12
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7013, ptr noundef @.str.5, i32 noundef %7014, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 253, ptr noundef %7017, ptr noundef %7020, ptr noundef %7023, i32 noundef %7025) #11
  br label %7027

7027:                                             ; preds = %7010, %6993
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %7028

7028:                                             ; preds = %7027
  br label %7029

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

7030:                                             ; No predecessors!
  br label %7031

7031:                                             ; preds = %7030
  br label %7032

7032:                                             ; preds = %7031, %6970
  br label %7033

7033:                                             ; preds = %7032
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  %7036 = load i32, ptr @test_count, align 4, !tbaa !5
  %7037 = add nsw i32 %7036, 1
  store i32 %7037, ptr @test_count, align 4, !tbaa !5
  %7038 = load ptr, ptr %6, align 8, !tbaa !9
  %7039 = getelementptr inbounds %struct.s2n_connection, ptr %7038, i32 0, i32 21
  %7040 = load i8, ptr %7039, align 2, !tbaa !42
  %7041 = zext i8 %7040 to i32
  %7042 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %7043 = icmp eq i32 %7041, %7042
  br i1 %7043, label %7097, label %7044

7044:                                             ; preds = %7035
  br label %7045

7045:                                             ; preds = %7044
  br label %7046

7046:                                             ; preds = %7045
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %7047 = call ptr @__errno_location() #12
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  store i32 %7048, ptr %128, align 4, !tbaa !5
  %7049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7050 = call i32 @s2n_print_stacktrace(ptr noundef %7049)
  %7051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7052 = trunc i8 %7051 to i1
  br i1 %7052, label %7053, label %7075

7053:                                             ; preds = %7046
  %7054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7055 = call i32 @fileno(ptr noundef %7054) #11
  %7056 = call i32 @isatty(i32 noundef %7055) #11
  %7057 = icmp ne i32 %7056, 0
  br i1 %7057, label %7058, label %7075

7058:                                             ; preds = %7053
  %7059 = load i32, ptr %128, align 4, !tbaa !5
  %7060 = call ptr @__errno_location() #12
  store i32 %7059, ptr %7060, align 4, !tbaa !5
  %7061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7062 = load i32, ptr @test_count, align 4, !tbaa !5
  %7063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  %7065 = call ptr @s2n_strerror(i32 noundef %7064, ptr noundef @.str.4)
  %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_debug(i32 noundef %7067, ptr noundef @.str.4)
  %7069 = call ptr @__errno_location() #12
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call ptr @strerror(i32 noundef %7070) #11
  %7072 = call ptr @__errno_location() #12
  %7073 = load i32, ptr %7072, align 4, !tbaa !5
  %7074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7061, ptr noundef @.str.2, i32 noundef %7062, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 254, ptr noundef %7065, ptr noundef %7068, ptr noundef %7071, i32 noundef %7073) #11
  br label %7092

7075:                                             ; preds = %7053, %7046
  %7076 = load i32, ptr %128, align 4, !tbaa !5
  %7077 = call ptr @__errno_location() #12
  store i32 %7076, ptr %7077, align 4, !tbaa !5
  %7078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7079 = load i32, ptr @test_count, align 4, !tbaa !5
  %7080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7081 = load i32, ptr %7080, align 4, !tbaa !5
  %7082 = call ptr @s2n_strerror(i32 noundef %7081, ptr noundef @.str.4)
  %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_debug(i32 noundef %7084, ptr noundef @.str.4)
  %7086 = call ptr @__errno_location() #12
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call ptr @strerror(i32 noundef %7087) #11
  %7089 = call ptr @__errno_location() #12
  %7090 = load i32, ptr %7089, align 4, !tbaa !5
  %7091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7078, ptr noundef @.str.5, i32 noundef %7079, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 254, ptr noundef %7082, ptr noundef %7085, ptr noundef %7088, i32 noundef %7090) #11
  br label %7092

7092:                                             ; preds = %7075, %7058
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %7093

7093:                                             ; preds = %7092
  br label %7094

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

7095:                                             ; No predecessors!
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096, %7035
  br label %7098

7098:                                             ; preds = %7097
  br label %7099

7099:                                             ; preds = %7098
  br label %7100

7100:                                             ; preds = %7099
  %7101 = load i32, ptr @test_count, align 4, !tbaa !5
  %7102 = add nsw i32 %7101, 1
  store i32 %7102, ptr @test_count, align 4, !tbaa !5
  %7103 = load ptr, ptr %6, align 8, !tbaa !9
  %7104 = getelementptr inbounds %struct.s2n_connection, ptr %7103, i32 0, i32 20
  %7105 = load i8, ptr %7104, align 1, !tbaa !15
  %7106 = zext i8 %7105 to i32
  %7107 = icmp eq i32 %7106, 33
  br i1 %7107, label %7161, label %7108

7108:                                             ; preds = %7100
  br label %7109

7109:                                             ; preds = %7108
  br label %7110

7110:                                             ; preds = %7109
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %7111 = call ptr @__errno_location() #12
  %7112 = load i32, ptr %7111, align 4, !tbaa !5
  store i32 %7112, ptr %129, align 4, !tbaa !5
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @s2n_print_stacktrace(ptr noundef %7113)
  %7115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7116 = trunc i8 %7115 to i1
  br i1 %7116, label %7117, label %7139

7117:                                             ; preds = %7110
  %7118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7119 = call i32 @fileno(ptr noundef %7118) #11
  %7120 = call i32 @isatty(i32 noundef %7119) #11
  %7121 = icmp ne i32 %7120, 0
  br i1 %7121, label %7122, label %7139

7122:                                             ; preds = %7117
  %7123 = load i32, ptr %129, align 4, !tbaa !5
  %7124 = call ptr @__errno_location() #12
  store i32 %7123, ptr %7124, align 4, !tbaa !5
  %7125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7126 = load i32, ptr @test_count, align 4, !tbaa !5
  %7127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call ptr @s2n_strerror(i32 noundef %7128, ptr noundef @.str.4)
  %7130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7131 = load i32, ptr %7130, align 4, !tbaa !5
  %7132 = call ptr @s2n_strerror_debug(i32 noundef %7131, ptr noundef @.str.4)
  %7133 = call ptr @__errno_location() #12
  %7134 = load i32, ptr %7133, align 4, !tbaa !5
  %7135 = call ptr @strerror(i32 noundef %7134) #11
  %7136 = call ptr @__errno_location() #12
  %7137 = load i32, ptr %7136, align 4, !tbaa !5
  %7138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7125, ptr noundef @.str.2, i32 noundef %7126, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 255, ptr noundef %7129, ptr noundef %7132, ptr noundef %7135, i32 noundef %7137) #11
  br label %7156

7139:                                             ; preds = %7117, %7110
  %7140 = load i32, ptr %129, align 4, !tbaa !5
  %7141 = call ptr @__errno_location() #12
  store i32 %7140, ptr %7141, align 4, !tbaa !5
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = load i32, ptr @test_count, align 4, !tbaa !5
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror(i32 noundef %7145, ptr noundef @.str.4)
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror_debug(i32 noundef %7148, ptr noundef @.str.4)
  %7150 = call ptr @__errno_location() #12
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @strerror(i32 noundef %7151) #11
  %7153 = call ptr @__errno_location() #12
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7142, ptr noundef @.str.5, i32 noundef %7143, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 255, ptr noundef %7146, ptr noundef %7149, ptr noundef %7152, i32 noundef %7154) #11
  br label %7156

7156:                                             ; preds = %7139, %7122
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

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

7159:                                             ; No predecessors!
  br label %7160

7160:                                             ; preds = %7159
  br label %7161

7161:                                             ; preds = %7160, %7100
  br label %7162

7162:                                             ; preds = %7161
  br label %7163

7163:                                             ; preds = %7162
  %7164 = load ptr, ptr %6, align 8, !tbaa !9
  %7165 = call i32 @s2n_connection_free(ptr noundef %7164)
  %7166 = load ptr, ptr %7, align 8, !tbaa !9
  %7167 = call i32 @s2n_connection_free(ptr noundef %7166)
  br label %7168

7168:                                             ; preds = %7163
  %7169 = load i32, ptr @test_count, align 4, !tbaa !5
  %7170 = add nsw i32 %7169, 1
  store i32 %7170, ptr @test_count, align 4, !tbaa !5
  %7171 = call i32 (...) @s2n_disable_tls13_in_test()
  %7172 = icmp eq i32 %7171, -1
  br i1 %7172, label %7173, label %7226

7173:                                             ; preds = %7168
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

7175:                                             ; preds = %7174
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %7176 = call ptr @__errno_location() #12
  %7177 = load i32, ptr %7176, align 4, !tbaa !5
  store i32 %7177, ptr %130, align 4, !tbaa !5
  %7178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7179 = call i32 @s2n_print_stacktrace(ptr noundef %7178)
  %7180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7181 = trunc i8 %7180 to i1
  br i1 %7181, label %7182, label %7204

7182:                                             ; preds = %7175
  %7183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7184 = call i32 @fileno(ptr noundef %7183) #11
  %7185 = call i32 @isatty(i32 noundef %7184) #11
  %7186 = icmp ne i32 %7185, 0
  br i1 %7186, label %7187, label %7204

7187:                                             ; preds = %7182
  %7188 = load i32, ptr %130, align 4, !tbaa !5
  %7189 = call ptr @__errno_location() #12
  store i32 %7188, ptr %7189, align 4, !tbaa !5
  %7190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7191 = load i32, ptr @test_count, align 4, !tbaa !5
  %7192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call ptr @s2n_strerror(i32 noundef %7193, ptr noundef @.str.4)
  %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_debug(i32 noundef %7196, ptr noundef @.str.4)
  %7198 = call ptr @__errno_location() #12
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = call ptr @strerror(i32 noundef %7199) #11
  %7201 = call ptr @__errno_location() #12
  %7202 = load i32, ptr %7201, align 4, !tbaa !5
  %7203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7190, ptr noundef @.str.2, i32 noundef %7191, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 259, ptr noundef %7194, ptr noundef %7197, ptr noundef %7200, i32 noundef %7202) #11
  br label %7221

7204:                                             ; preds = %7182, %7175
  %7205 = load i32, ptr %130, align 4, !tbaa !5
  %7206 = call ptr @__errno_location() #12
  store i32 %7205, ptr %7206, align 4, !tbaa !5
  %7207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7208 = load i32, ptr @test_count, align 4, !tbaa !5
  %7209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call ptr @s2n_strerror(i32 noundef %7210, ptr noundef @.str.4)
  %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_debug(i32 noundef %7213, ptr noundef @.str.4)
  %7215 = call ptr @__errno_location() #12
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call ptr @strerror(i32 noundef %7216) #11
  %7218 = call ptr @__errno_location() #12
  %7219 = load i32, ptr %7218, align 4, !tbaa !5
  %7220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7207, ptr noundef @.str.5, i32 noundef %7208, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 259, ptr noundef %7211, ptr noundef %7214, ptr noundef %7217, i32 noundef %7219) #11
  br label %7221

7221:                                             ; preds = %7204, %7187
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

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

7224:                                             ; No predecessors!
  br label %7225

7225:                                             ; preds = %7224
  br label %7226

7226:                                             ; preds = %7225, %7168
  br label %7227

7227:                                             ; preds = %7226
  br label %7228

7228:                                             ; preds = %7227
  call void @llvm.lifetime.end.p0(i64 2, ptr %118) #11
  br label %7229

7229:                                             ; preds = %7228
  %7230 = load i32, ptr @test_count, align 4, !tbaa !5
  %7231 = add nsw i32 %7230, 1
  store i32 %7231, ptr @test_count, align 4, !tbaa !5
  %7232 = call i32 (...) @s2n_enable_tls13_in_test()
  %7233 = icmp eq i32 %7232, -1
  br i1 %7233, label %7234, label %7287

7234:                                             ; preds = %7229
  br label %7235

7235:                                             ; preds = %7234
  br label %7236

7236:                                             ; preds = %7235
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %7237 = call ptr @__errno_location() #12
  %7238 = load i32, ptr %7237, align 4, !tbaa !5
  store i32 %7238, ptr %131, align 4, !tbaa !5
  %7239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7240 = call i32 @s2n_print_stacktrace(ptr noundef %7239)
  %7241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7242 = trunc i8 %7241 to i1
  br i1 %7242, label %7243, label %7265

7243:                                             ; preds = %7236
  %7244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7245 = call i32 @fileno(ptr noundef %7244) #11
  %7246 = call i32 @isatty(i32 noundef %7245) #11
  %7247 = icmp ne i32 %7246, 0
  br i1 %7247, label %7248, label %7265

7248:                                             ; preds = %7243
  %7249 = load i32, ptr %131, align 4, !tbaa !5
  %7250 = call ptr @__errno_location() #12
  store i32 %7249, ptr %7250, align 4, !tbaa !5
  %7251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7252 = load i32, ptr @test_count, align 4, !tbaa !5
  %7253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call ptr @s2n_strerror(i32 noundef %7254, ptr noundef @.str.4)
  %7256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7257 = load i32, ptr %7256, align 4, !tbaa !5
  %7258 = call ptr @s2n_strerror_debug(i32 noundef %7257, ptr noundef @.str.4)
  %7259 = call ptr @__errno_location() #12
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call ptr @strerror(i32 noundef %7260) #11
  %7262 = call ptr @__errno_location() #12
  %7263 = load i32, ptr %7262, align 4, !tbaa !5
  %7264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7251, ptr noundef @.str.2, i32 noundef %7252, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 265, ptr noundef %7255, ptr noundef %7258, ptr noundef %7261, i32 noundef %7263) #11
  br label %7282

7265:                                             ; preds = %7243, %7236
  %7266 = load i32, ptr %131, align 4, !tbaa !5
  %7267 = call ptr @__errno_location() #12
  store i32 %7266, ptr %7267, align 4, !tbaa !5
  %7268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7269 = load i32, ptr @test_count, align 4, !tbaa !5
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror(i32 noundef %7271, ptr noundef @.str.4)
  %7273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @s2n_strerror_debug(i32 noundef %7274, ptr noundef @.str.4)
  %7276 = call ptr @__errno_location() #12
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call ptr @strerror(i32 noundef %7277) #11
  %7279 = call ptr @__errno_location() #12
  %7280 = load i32, ptr %7279, align 4, !tbaa !5
  %7281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7268, ptr noundef @.str.5, i32 noundef %7269, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 265, ptr noundef %7272, ptr noundef %7275, ptr noundef %7278, i32 noundef %7280) #11
  br label %7282

7282:                                             ; preds = %7265, %7248
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

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

7285:                                             ; No predecessors!
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286, %7229
  br label %7288

7288:                                             ; preds = %7287
  br label %7289

7289:                                             ; preds = %7288
  br label %7290

7290:                                             ; preds = %7289
  %7291 = load i32, ptr @test_count, align 4, !tbaa !5
  %7292 = add nsw i32 %7291, 1
  store i32 %7292, ptr @test_count, align 4, !tbaa !5
  %7293 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7293, ptr %6, align 8, !tbaa !9
  %7294 = icmp eq ptr %7293, null
  br i1 %7294, label %7295, label %7348

7295:                                             ; preds = %7290
  br label %7296

7296:                                             ; preds = %7295
  br label %7297

7297:                                             ; preds = %7296
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %7298 = call ptr @__errno_location() #12
  %7299 = load i32, ptr %7298, align 4, !tbaa !5
  store i32 %7299, ptr %132, align 4, !tbaa !5
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = call i32 @s2n_print_stacktrace(ptr noundef %7300)
  %7302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7303 = trunc i8 %7302 to i1
  br i1 %7303, label %7304, label %7326

7304:                                             ; preds = %7297
  %7305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7306 = call i32 @fileno(ptr noundef %7305) #11
  %7307 = call i32 @isatty(i32 noundef %7306) #11
  %7308 = icmp ne i32 %7307, 0
  br i1 %7308, label %7309, label %7326

7309:                                             ; preds = %7304
  %7310 = load i32, ptr %132, align 4, !tbaa !5
  %7311 = call ptr @__errno_location() #12
  store i32 %7310, ptr %7311, align 4, !tbaa !5
  %7312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7313 = load i32, ptr @test_count, align 4, !tbaa !5
  %7314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  %7316 = call ptr @s2n_strerror(i32 noundef %7315, ptr noundef @.str.4)
  %7317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7318 = load i32, ptr %7317, align 4, !tbaa !5
  %7319 = call ptr @s2n_strerror_debug(i32 noundef %7318, ptr noundef @.str.4)
  %7320 = call ptr @__errno_location() #12
  %7321 = load i32, ptr %7320, align 4, !tbaa !5
  %7322 = call ptr @strerror(i32 noundef %7321) #11
  %7323 = call ptr @__errno_location() #12
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7312, ptr noundef @.str.2, i32 noundef %7313, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 266, ptr noundef %7316, ptr noundef %7319, ptr noundef %7322, i32 noundef %7324) #11
  br label %7343

7326:                                             ; preds = %7304, %7297
  %7327 = load i32, ptr %132, align 4, !tbaa !5
  %7328 = call ptr @__errno_location() #12
  store i32 %7327, ptr %7328, align 4, !tbaa !5
  %7329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7330 = load i32, ptr @test_count, align 4, !tbaa !5
  %7331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7332 = load i32, ptr %7331, align 4, !tbaa !5
  %7333 = call ptr @s2n_strerror(i32 noundef %7332, ptr noundef @.str.4)
  %7334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  %7336 = call ptr @s2n_strerror_debug(i32 noundef %7335, ptr noundef @.str.4)
  %7337 = call ptr @__errno_location() #12
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call ptr @strerror(i32 noundef %7338) #11
  %7340 = call ptr @__errno_location() #12
  %7341 = load i32, ptr %7340, align 4, !tbaa !5
  %7342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7329, ptr noundef @.str.5, i32 noundef %7330, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 266, ptr noundef %7333, ptr noundef %7336, ptr noundef %7339, i32 noundef %7341) #11
  br label %7343

7343:                                             ; preds = %7326, %7309
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %7344

7344:                                             ; preds = %7343
  br label %7345

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

7346:                                             ; No predecessors!
  br label %7347

7347:                                             ; preds = %7346
  br label %7348

7348:                                             ; preds = %7347, %7290
  br label %7349

7349:                                             ; preds = %7348
  br label %7350

7350:                                             ; preds = %7349
  br label %7351

7351:                                             ; preds = %7350
  %7352 = load i32, ptr @test_count, align 4, !tbaa !5
  %7353 = add nsw i32 %7352, 1
  store i32 %7353, ptr @test_count, align 4, !tbaa !5
  %7354 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7354, ptr %7, align 8, !tbaa !9
  %7355 = icmp eq ptr %7354, null
  br i1 %7355, label %7356, label %7409

7356:                                             ; preds = %7351
  br label %7357

7357:                                             ; preds = %7356
  br label %7358

7358:                                             ; preds = %7357
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %7359 = call ptr @__errno_location() #12
  %7360 = load i32, ptr %7359, align 4, !tbaa !5
  store i32 %7360, ptr %133, align 4, !tbaa !5
  %7361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7362 = call i32 @s2n_print_stacktrace(ptr noundef %7361)
  %7363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7364 = trunc i8 %7363 to i1
  br i1 %7364, label %7365, label %7387

7365:                                             ; preds = %7358
  %7366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7367 = call i32 @fileno(ptr noundef %7366) #11
  %7368 = call i32 @isatty(i32 noundef %7367) #11
  %7369 = icmp ne i32 %7368, 0
  br i1 %7369, label %7370, label %7387

7370:                                             ; preds = %7365
  %7371 = load i32, ptr %133, align 4, !tbaa !5
  %7372 = call ptr @__errno_location() #12
  store i32 %7371, ptr %7372, align 4, !tbaa !5
  %7373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7374 = load i32, ptr @test_count, align 4, !tbaa !5
  %7375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @s2n_strerror(i32 noundef %7376, ptr noundef @.str.4)
  %7378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call ptr @s2n_strerror_debug(i32 noundef %7379, ptr noundef @.str.4)
  %7381 = call ptr @__errno_location() #12
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  %7383 = call ptr @strerror(i32 noundef %7382) #11
  %7384 = call ptr @__errno_location() #12
  %7385 = load i32, ptr %7384, align 4, !tbaa !5
  %7386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7373, ptr noundef @.str.2, i32 noundef %7374, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 267, ptr noundef %7377, ptr noundef %7380, ptr noundef %7383, i32 noundef %7385) #11
  br label %7404

7387:                                             ; preds = %7365, %7358
  %7388 = load i32, ptr %133, align 4, !tbaa !5
  %7389 = call ptr @__errno_location() #12
  store i32 %7388, ptr %7389, align 4, !tbaa !5
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = load i32, ptr @test_count, align 4, !tbaa !5
  %7392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call ptr @s2n_strerror(i32 noundef %7393, ptr noundef @.str.4)
  %7395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call ptr @s2n_strerror_debug(i32 noundef %7396, ptr noundef @.str.4)
  %7398 = call ptr @__errno_location() #12
  %7399 = load i32, ptr %7398, align 4, !tbaa !5
  %7400 = call ptr @strerror(i32 noundef %7399) #11
  %7401 = call ptr @__errno_location() #12
  %7402 = load i32, ptr %7401, align 4, !tbaa !5
  %7403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7390, ptr noundef @.str.5, i32 noundef %7391, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 267, ptr noundef %7394, ptr noundef %7397, ptr noundef %7400, i32 noundef %7402) #11
  br label %7404

7404:                                             ; preds = %7387, %7370
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

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

7407:                                             ; No predecessors!
  br label %7408

7408:                                             ; preds = %7407
  br label %7409

7409:                                             ; preds = %7408, %7351
  br label %7410

7410:                                             ; preds = %7409
  br label %7411

7411:                                             ; preds = %7410
  br label %7412

7412:                                             ; preds = %7411
  %7413 = load i32, ptr @test_count, align 4, !tbaa !5
  %7414 = add nsw i32 %7413, 1
  store i32 %7414, ptr @test_count, align 4, !tbaa !5
  %7415 = load ptr, ptr %6, align 8, !tbaa !9
  %7416 = load ptr, ptr %10, align 8, !tbaa !9
  %7417 = call i32 @s2n_connection_set_config(ptr noundef %7415, ptr noundef %7416)
  %7418 = icmp eq i32 %7417, -1
  br i1 %7418, label %7419, label %7472

7419:                                             ; preds = %7412
  br label %7420

7420:                                             ; preds = %7419
  br label %7421

7421:                                             ; preds = %7420
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %7422 = call ptr @__errno_location() #12
  %7423 = load i32, ptr %7422, align 4, !tbaa !5
  store i32 %7423, ptr %134, align 4, !tbaa !5
  %7424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7425 = call i32 @s2n_print_stacktrace(ptr noundef %7424)
  %7426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7427 = trunc i8 %7426 to i1
  br i1 %7427, label %7428, label %7450

7428:                                             ; preds = %7421
  %7429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7430 = call i32 @fileno(ptr noundef %7429) #11
  %7431 = call i32 @isatty(i32 noundef %7430) #11
  %7432 = icmp ne i32 %7431, 0
  br i1 %7432, label %7433, label %7450

7433:                                             ; preds = %7428
  %7434 = load i32, ptr %134, align 4, !tbaa !5
  %7435 = call ptr @__errno_location() #12
  store i32 %7434, ptr %7435, align 4, !tbaa !5
  %7436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7437 = load i32, ptr @test_count, align 4, !tbaa !5
  %7438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call ptr @s2n_strerror(i32 noundef %7439, ptr noundef @.str.4)
  %7441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror_debug(i32 noundef %7442, ptr noundef @.str.4)
  %7444 = call ptr @__errno_location() #12
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call ptr @strerror(i32 noundef %7445) #11
  %7447 = call ptr @__errno_location() #12
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  %7449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7436, ptr noundef @.str.2, i32 noundef %7437, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 268, ptr noundef %7440, ptr noundef %7443, ptr noundef %7446, i32 noundef %7448) #11
  br label %7467

7450:                                             ; preds = %7428, %7421
  %7451 = load i32, ptr %134, align 4, !tbaa !5
  %7452 = call ptr @__errno_location() #12
  store i32 %7451, ptr %7452, align 4, !tbaa !5
  %7453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7454 = load i32, ptr @test_count, align 4, !tbaa !5
  %7455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7456 = load i32, ptr %7455, align 4, !tbaa !5
  %7457 = call ptr @s2n_strerror(i32 noundef %7456, ptr noundef @.str.4)
  %7458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = call ptr @s2n_strerror_debug(i32 noundef %7459, ptr noundef @.str.4)
  %7461 = call ptr @__errno_location() #12
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @strerror(i32 noundef %7462) #11
  %7464 = call ptr @__errno_location() #12
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7453, ptr noundef @.str.5, i32 noundef %7454, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 268, ptr noundef %7457, ptr noundef %7460, ptr noundef %7463, i32 noundef %7465) #11
  br label %7467

7467:                                             ; preds = %7450, %7433
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %7468

7468:                                             ; preds = %7467
  br label %7469

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

7470:                                             ; No predecessors!
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

7472:                                             ; preds = %7471, %7412
  br label %7473

7473:                                             ; preds = %7472
  br label %7474

7474:                                             ; preds = %7473
  br label %7475

7475:                                             ; preds = %7474
  %7476 = load i32, ptr @test_count, align 4, !tbaa !5
  %7477 = add nsw i32 %7476, 1
  store i32 %7477, ptr @test_count, align 4, !tbaa !5
  %7478 = load ptr, ptr %7, align 8, !tbaa !9
  %7479 = load ptr, ptr %9, align 8, !tbaa !9
  %7480 = call i32 @s2n_connection_set_config(ptr noundef %7478, ptr noundef %7479)
  %7481 = icmp eq i32 %7480, -1
  br i1 %7481, label %7482, label %7535

7482:                                             ; preds = %7475
  br label %7483

7483:                                             ; preds = %7482
  br label %7484

7484:                                             ; preds = %7483
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %7485 = call ptr @__errno_location() #12
  %7486 = load i32, ptr %7485, align 4, !tbaa !5
  store i32 %7486, ptr %135, align 4, !tbaa !5
  %7487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7488 = call i32 @s2n_print_stacktrace(ptr noundef %7487)
  %7489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7490 = trunc i8 %7489 to i1
  br i1 %7490, label %7491, label %7513

7491:                                             ; preds = %7484
  %7492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7493 = call i32 @fileno(ptr noundef %7492) #11
  %7494 = call i32 @isatty(i32 noundef %7493) #11
  %7495 = icmp ne i32 %7494, 0
  br i1 %7495, label %7496, label %7513

7496:                                             ; preds = %7491
  %7497 = load i32, ptr %135, align 4, !tbaa !5
  %7498 = call ptr @__errno_location() #12
  store i32 %7497, ptr %7498, align 4, !tbaa !5
  %7499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7500 = load i32, ptr @test_count, align 4, !tbaa !5
  %7501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror(i32 noundef %7502, ptr noundef @.str.4)
  %7504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7505 = load i32, ptr %7504, align 4, !tbaa !5
  %7506 = call ptr @s2n_strerror_debug(i32 noundef %7505, ptr noundef @.str.4)
  %7507 = call ptr @__errno_location() #12
  %7508 = load i32, ptr %7507, align 4, !tbaa !5
  %7509 = call ptr @strerror(i32 noundef %7508) #11
  %7510 = call ptr @__errno_location() #12
  %7511 = load i32, ptr %7510, align 4, !tbaa !5
  %7512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7499, ptr noundef @.str.2, i32 noundef %7500, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 269, ptr noundef %7503, ptr noundef %7506, ptr noundef %7509, i32 noundef %7511) #11
  br label %7530

7513:                                             ; preds = %7491, %7484
  %7514 = load i32, ptr %135, align 4, !tbaa !5
  %7515 = call ptr @__errno_location() #12
  store i32 %7514, ptr %7515, align 4, !tbaa !5
  %7516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7517 = load i32, ptr @test_count, align 4, !tbaa !5
  %7518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7519 = load i32, ptr %7518, align 4, !tbaa !5
  %7520 = call ptr @s2n_strerror(i32 noundef %7519, ptr noundef @.str.4)
  %7521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7522 = load i32, ptr %7521, align 4, !tbaa !5
  %7523 = call ptr @s2n_strerror_debug(i32 noundef %7522, ptr noundef @.str.4)
  %7524 = call ptr @__errno_location() #12
  %7525 = load i32, ptr %7524, align 4, !tbaa !5
  %7526 = call ptr @strerror(i32 noundef %7525) #11
  %7527 = call ptr @__errno_location() #12
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  %7529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7516, ptr noundef @.str.5, i32 noundef %7517, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 269, ptr noundef %7520, ptr noundef %7523, ptr noundef %7526, i32 noundef %7528) #11
  br label %7530

7530:                                             ; preds = %7513, %7496
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %7531

7531:                                             ; preds = %7530
  br label %7532

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

7533:                                             ; No predecessors!
  br label %7534

7534:                                             ; preds = %7533
  br label %7535

7535:                                             ; preds = %7534, %7475
  br label %7536

7536:                                             ; preds = %7535
  br label %7537

7537:                                             ; preds = %7536
  br label %7538

7538:                                             ; preds = %7537
  %7539 = load i32, ptr @test_count, align 4, !tbaa !5
  %7540 = add nsw i32 %7539, 1
  store i32 %7540, ptr @test_count, align 4, !tbaa !5
  %7541 = load ptr, ptr %7, align 8, !tbaa !9
  %7542 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %7541, ptr noundef @.str.58)
  %7543 = icmp eq i32 %7542, -1
  br i1 %7543, label %7544, label %7597

7544:                                             ; preds = %7538
  br label %7545

7545:                                             ; preds = %7544
  br label %7546

7546:                                             ; preds = %7545
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %7547 = call ptr @__errno_location() #12
  %7548 = load i32, ptr %7547, align 4, !tbaa !5
  store i32 %7548, ptr %136, align 4, !tbaa !5
  %7549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7550 = call i32 @s2n_print_stacktrace(ptr noundef %7549)
  %7551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7552 = trunc i8 %7551 to i1
  br i1 %7552, label %7553, label %7575

7553:                                             ; preds = %7546
  %7554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7555 = call i32 @fileno(ptr noundef %7554) #11
  %7556 = call i32 @isatty(i32 noundef %7555) #11
  %7557 = icmp ne i32 %7556, 0
  br i1 %7557, label %7558, label %7575

7558:                                             ; preds = %7553
  %7559 = load i32, ptr %136, align 4, !tbaa !5
  %7560 = call ptr @__errno_location() #12
  store i32 %7559, ptr %7560, align 4, !tbaa !5
  %7561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7562 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7564, ptr noundef @.str.4)
  %7566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @s2n_strerror_debug(i32 noundef %7567, ptr noundef @.str.4)
  %7569 = call ptr @__errno_location() #12
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call ptr @strerror(i32 noundef %7570) #11
  %7572 = call ptr @__errno_location() #12
  %7573 = load i32, ptr %7572, align 4, !tbaa !5
  %7574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7561, ptr noundef @.str.2, i32 noundef %7562, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 271, ptr noundef %7565, ptr noundef %7568, ptr noundef %7571, i32 noundef %7573) #11
  br label %7592

7575:                                             ; preds = %7553, %7546
  %7576 = load i32, ptr %136, align 4, !tbaa !5
  %7577 = call ptr @__errno_location() #12
  store i32 %7576, ptr %7577, align 4, !tbaa !5
  %7578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7579 = load i32, ptr @test_count, align 4, !tbaa !5
  %7580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7581 = load i32, ptr %7580, align 4, !tbaa !5
  %7582 = call ptr @s2n_strerror(i32 noundef %7581, ptr noundef @.str.4)
  %7583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @s2n_strerror_debug(i32 noundef %7584, ptr noundef @.str.4)
  %7586 = call ptr @__errno_location() #12
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call ptr @strerror(i32 noundef %7587) #11
  %7589 = call ptr @__errno_location() #12
  %7590 = load i32, ptr %7589, align 4, !tbaa !5
  %7591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7578, ptr noundef @.str.5, i32 noundef %7579, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 271, ptr noundef %7582, ptr noundef %7585, ptr noundef %7588, i32 noundef %7590) #11
  br label %7592

7592:                                             ; preds = %7575, %7558
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %7593

7593:                                             ; preds = %7592
  br label %7594

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

7595:                                             ; No predecessors!
  br label %7596

7596:                                             ; preds = %7595
  br label %7597

7597:                                             ; preds = %7596, %7538
  br label %7598

7598:                                             ; preds = %7597
  br label %7599

7599:                                             ; preds = %7598
  br label %7600

7600:                                             ; preds = %7599
  %7601 = load i32, ptr @test_count, align 4, !tbaa !5
  %7602 = add nsw i32 %7601, 1
  store i32 %7602, ptr @test_count, align 4, !tbaa !5
  %7603 = load ptr, ptr %6, align 8, !tbaa !9
  %7604 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %7603, ptr noundef @.str.58)
  %7605 = icmp eq i32 %7604, -1
  br i1 %7605, label %7606, label %7659

7606:                                             ; preds = %7600
  br label %7607

7607:                                             ; preds = %7606
  br label %7608

7608:                                             ; preds = %7607
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %7609 = call ptr @__errno_location() #12
  %7610 = load i32, ptr %7609, align 4, !tbaa !5
  store i32 %7610, ptr %137, align 4, !tbaa !5
  %7611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7612 = call i32 @s2n_print_stacktrace(ptr noundef %7611)
  %7613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7614 = trunc i8 %7613 to i1
  br i1 %7614, label %7615, label %7637

7615:                                             ; preds = %7608
  %7616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7617 = call i32 @fileno(ptr noundef %7616) #11
  %7618 = call i32 @isatty(i32 noundef %7617) #11
  %7619 = icmp ne i32 %7618, 0
  br i1 %7619, label %7620, label %7637

7620:                                             ; preds = %7615
  %7621 = load i32, ptr %137, align 4, !tbaa !5
  %7622 = call ptr @__errno_location() #12
  store i32 %7621, ptr %7622, align 4, !tbaa !5
  %7623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7624 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7626, ptr noundef @.str.4)
  %7628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call ptr @s2n_strerror_debug(i32 noundef %7629, ptr noundef @.str.4)
  %7631 = call ptr @__errno_location() #12
  %7632 = load i32, ptr %7631, align 4, !tbaa !5
  %7633 = call ptr @strerror(i32 noundef %7632) #11
  %7634 = call ptr @__errno_location() #12
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7623, ptr noundef @.str.2, i32 noundef %7624, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 272, ptr noundef %7627, ptr noundef %7630, ptr noundef %7633, i32 noundef %7635) #11
  br label %7654

7637:                                             ; preds = %7615, %7608
  %7638 = load i32, ptr %137, align 4, !tbaa !5
  %7639 = call ptr @__errno_location() #12
  store i32 %7638, ptr %7639, align 4, !tbaa !5
  %7640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7641 = load i32, ptr @test_count, align 4, !tbaa !5
  %7642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7643 = load i32, ptr %7642, align 4, !tbaa !5
  %7644 = call ptr @s2n_strerror(i32 noundef %7643, ptr noundef @.str.4)
  %7645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7646 = load i32, ptr %7645, align 4, !tbaa !5
  %7647 = call ptr @s2n_strerror_debug(i32 noundef %7646, ptr noundef @.str.4)
  %7648 = call ptr @__errno_location() #12
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  %7650 = call ptr @strerror(i32 noundef %7649) #11
  %7651 = call ptr @__errno_location() #12
  %7652 = load i32, ptr %7651, align 4, !tbaa !5
  %7653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7640, ptr noundef @.str.5, i32 noundef %7641, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 272, ptr noundef %7644, ptr noundef %7647, ptr noundef %7650, i32 noundef %7652) #11
  br label %7654

7654:                                             ; preds = %7637, %7620
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %7655

7655:                                             ; preds = %7654
  br label %7656

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

7657:                                             ; No predecessors!
  br label %7658

7658:                                             ; preds = %7657
  br label %7659

7659:                                             ; preds = %7658, %7600
  br label %7660

7660:                                             ; preds = %7659
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

7662:                                             ; preds = %7661
  %7663 = load i32, ptr @test_count, align 4, !tbaa !5
  %7664 = add nsw i32 %7663, 1
  store i32 %7664, ptr @test_count, align 4, !tbaa !5
  %7665 = load ptr, ptr %7, align 8, !tbaa !9
  %7666 = call i32 @s2n_client_hello_send(ptr noundef %7665)
  %7667 = icmp eq i32 %7666, -1
  br i1 %7667, label %7668, label %7721

7668:                                             ; preds = %7662
  br label %7669

7669:                                             ; preds = %7668
  br label %7670

7670:                                             ; preds = %7669
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %7671 = call ptr @__errno_location() #12
  %7672 = load i32, ptr %7671, align 4, !tbaa !5
  store i32 %7672, ptr %138, align 4, !tbaa !5
  %7673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7674 = call i32 @s2n_print_stacktrace(ptr noundef %7673)
  %7675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7676 = trunc i8 %7675 to i1
  br i1 %7676, label %7677, label %7699

7677:                                             ; preds = %7670
  %7678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7679 = call i32 @fileno(ptr noundef %7678) #11
  %7680 = call i32 @isatty(i32 noundef %7679) #11
  %7681 = icmp ne i32 %7680, 0
  br i1 %7681, label %7682, label %7699

7682:                                             ; preds = %7677
  %7683 = load i32, ptr %138, align 4, !tbaa !5
  %7684 = call ptr @__errno_location() #12
  store i32 %7683, ptr %7684, align 4, !tbaa !5
  %7685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7686 = load i32, ptr @test_count, align 4, !tbaa !5
  %7687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @s2n_strerror(i32 noundef %7688, ptr noundef @.str.4)
  %7690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call ptr @s2n_strerror_debug(i32 noundef %7691, ptr noundef @.str.4)
  %7693 = call ptr @__errno_location() #12
  %7694 = load i32, ptr %7693, align 4, !tbaa !5
  %7695 = call ptr @strerror(i32 noundef %7694) #11
  %7696 = call ptr @__errno_location() #12
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7685, ptr noundef @.str.2, i32 noundef %7686, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 274, ptr noundef %7689, ptr noundef %7692, ptr noundef %7695, i32 noundef %7697) #11
  br label %7716

7699:                                             ; preds = %7677, %7670
  %7700 = load i32, ptr %138, align 4, !tbaa !5
  %7701 = call ptr @__errno_location() #12
  store i32 %7700, ptr %7701, align 4, !tbaa !5
  %7702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7703 = load i32, ptr @test_count, align 4, !tbaa !5
  %7704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7705 = load i32, ptr %7704, align 4, !tbaa !5
  %7706 = call ptr @s2n_strerror(i32 noundef %7705, ptr noundef @.str.4)
  %7707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7708 = load i32, ptr %7707, align 4, !tbaa !5
  %7709 = call ptr @s2n_strerror_debug(i32 noundef %7708, ptr noundef @.str.4)
  %7710 = call ptr @__errno_location() #12
  %7711 = load i32, ptr %7710, align 4, !tbaa !5
  %7712 = call ptr @strerror(i32 noundef %7711) #11
  %7713 = call ptr @__errno_location() #12
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7702, ptr noundef @.str.5, i32 noundef %7703, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 274, ptr noundef %7706, ptr noundef %7709, ptr noundef %7712, i32 noundef %7714) #11
  br label %7716

7716:                                             ; preds = %7699, %7682
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %7717

7717:                                             ; preds = %7716
  br label %7718

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

7719:                                             ; No predecessors!
  br label %7720

7720:                                             ; preds = %7719
  br label %7721

7721:                                             ; preds = %7720, %7662
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722
  br label %7724

7724:                                             ; preds = %7723
  %7725 = load i32, ptr @test_count, align 4, !tbaa !5
  %7726 = add nsw i32 %7725, 1
  store i32 %7726, ptr @test_count, align 4, !tbaa !5
  %7727 = load ptr, ptr %6, align 8, !tbaa !9
  %7728 = getelementptr inbounds %struct.s2n_connection, ptr %7727, i32 0, i32 52
  %7729 = getelementptr inbounds %struct.s2n_handshake, ptr %7728, i32 0, i32 0
  %7730 = load ptr, ptr %7, align 8, !tbaa !9
  %7731 = getelementptr inbounds %struct.s2n_connection, ptr %7730, i32 0, i32 52
  %7732 = getelementptr inbounds %struct.s2n_handshake, ptr %7731, i32 0, i32 0
  %7733 = getelementptr inbounds %struct.s2n_stuffer, ptr %7732, i32 0, i32 0
  %7734 = call i32 @s2n_stuffer_write(ptr noundef %7729, ptr noundef %7733)
  %7735 = icmp eq i32 %7734, -1
  br i1 %7735, label %7736, label %7789

7736:                                             ; preds = %7724
  br label %7737

7737:                                             ; preds = %7736
  br label %7738

7738:                                             ; preds = %7737
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %7739 = call ptr @__errno_location() #12
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  store i32 %7740, ptr %139, align 4, !tbaa !5
  %7741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7742 = call i32 @s2n_print_stacktrace(ptr noundef %7741)
  %7743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7744 = trunc i8 %7743 to i1
  br i1 %7744, label %7745, label %7767

7745:                                             ; preds = %7738
  %7746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7747 = call i32 @fileno(ptr noundef %7746) #11
  %7748 = call i32 @isatty(i32 noundef %7747) #11
  %7749 = icmp ne i32 %7748, 0
  br i1 %7749, label %7750, label %7767

7750:                                             ; preds = %7745
  %7751 = load i32, ptr %139, align 4, !tbaa !5
  %7752 = call ptr @__errno_location() #12
  store i32 %7751, ptr %7752, align 4, !tbaa !5
  %7753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7754 = load i32, ptr @test_count, align 4, !tbaa !5
  %7755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7756 = load i32, ptr %7755, align 4, !tbaa !5
  %7757 = call ptr @s2n_strerror(i32 noundef %7756, ptr noundef @.str.4)
  %7758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call ptr @s2n_strerror_debug(i32 noundef %7759, ptr noundef @.str.4)
  %7761 = call ptr @__errno_location() #12
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @strerror(i32 noundef %7762) #11
  %7764 = call ptr @__errno_location() #12
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7753, ptr noundef @.str.2, i32 noundef %7754, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 276, ptr noundef %7757, ptr noundef %7760, ptr noundef %7763, i32 noundef %7765) #11
  br label %7784

7767:                                             ; preds = %7745, %7738
  %7768 = load i32, ptr %139, align 4, !tbaa !5
  %7769 = call ptr @__errno_location() #12
  store i32 %7768, ptr %7769, align 4, !tbaa !5
  %7770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7771 = load i32, ptr @test_count, align 4, !tbaa !5
  %7772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7773 = load i32, ptr %7772, align 4, !tbaa !5
  %7774 = call ptr @s2n_strerror(i32 noundef %7773, ptr noundef @.str.4)
  %7775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call ptr @s2n_strerror_debug(i32 noundef %7776, ptr noundef @.str.4)
  %7778 = call ptr @__errno_location() #12
  %7779 = load i32, ptr %7778, align 4, !tbaa !5
  %7780 = call ptr @strerror(i32 noundef %7779) #11
  %7781 = call ptr @__errno_location() #12
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7770, ptr noundef @.str.5, i32 noundef %7771, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 276, ptr noundef %7774, ptr noundef %7777, ptr noundef %7780, i32 noundef %7782) #11
  br label %7784

7784:                                             ; preds = %7767, %7750
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %7785

7785:                                             ; preds = %7784
  br label %7786

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

7787:                                             ; No predecessors!
  br label %7788

7788:                                             ; preds = %7787
  br label %7789

7789:                                             ; preds = %7788, %7724
  br label %7790

7790:                                             ; preds = %7789
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791
  %7793 = load i32, ptr @test_count, align 4, !tbaa !5
  %7794 = add nsw i32 %7793, 1
  store i32 %7794, ptr @test_count, align 4, !tbaa !5
  %7795 = load ptr, ptr %6, align 8, !tbaa !9
  %7796 = call i32 @s2n_client_hello_recv(ptr noundef %7795)
  %7797 = icmp eq i32 %7796, -1
  br i1 %7797, label %7798, label %7851

7798:                                             ; preds = %7792
  br label %7799

7799:                                             ; preds = %7798
  br label %7800

7800:                                             ; preds = %7799
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %7801 = call ptr @__errno_location() #12
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  store i32 %7802, ptr %140, align 4, !tbaa !5
  %7803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7804 = call i32 @s2n_print_stacktrace(ptr noundef %7803)
  %7805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7806 = trunc i8 %7805 to i1
  br i1 %7806, label %7807, label %7829

7807:                                             ; preds = %7800
  %7808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7809 = call i32 @fileno(ptr noundef %7808) #11
  %7810 = call i32 @isatty(i32 noundef %7809) #11
  %7811 = icmp ne i32 %7810, 0
  br i1 %7811, label %7812, label %7829

7812:                                             ; preds = %7807
  %7813 = load i32, ptr %140, align 4, !tbaa !5
  %7814 = call ptr @__errno_location() #12
  store i32 %7813, ptr %7814, align 4, !tbaa !5
  %7815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7816 = load i32, ptr @test_count, align 4, !tbaa !5
  %7817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7818 = load i32, ptr %7817, align 4, !tbaa !5
  %7819 = call ptr @s2n_strerror(i32 noundef %7818, ptr noundef @.str.4)
  %7820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7821 = load i32, ptr %7820, align 4, !tbaa !5
  %7822 = call ptr @s2n_strerror_debug(i32 noundef %7821, ptr noundef @.str.4)
  %7823 = call ptr @__errno_location() #12
  %7824 = load i32, ptr %7823, align 4, !tbaa !5
  %7825 = call ptr @strerror(i32 noundef %7824) #11
  %7826 = call ptr @__errno_location() #12
  %7827 = load i32, ptr %7826, align 4, !tbaa !5
  %7828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7815, ptr noundef @.str.2, i32 noundef %7816, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 277, ptr noundef %7819, ptr noundef %7822, ptr noundef %7825, i32 noundef %7827) #11
  br label %7846

7829:                                             ; preds = %7807, %7800
  %7830 = load i32, ptr %140, align 4, !tbaa !5
  %7831 = call ptr @__errno_location() #12
  store i32 %7830, ptr %7831, align 4, !tbaa !5
  %7832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7833 = load i32, ptr @test_count, align 4, !tbaa !5
  %7834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7835 = load i32, ptr %7834, align 4, !tbaa !5
  %7836 = call ptr @s2n_strerror(i32 noundef %7835, ptr noundef @.str.4)
  %7837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7838 = load i32, ptr %7837, align 4, !tbaa !5
  %7839 = call ptr @s2n_strerror_debug(i32 noundef %7838, ptr noundef @.str.4)
  %7840 = call ptr @__errno_location() #12
  %7841 = load i32, ptr %7840, align 4, !tbaa !5
  %7842 = call ptr @strerror(i32 noundef %7841) #11
  %7843 = call ptr @__errno_location() #12
  %7844 = load i32, ptr %7843, align 4, !tbaa !5
  %7845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7832, ptr noundef @.str.5, i32 noundef %7833, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 277, ptr noundef %7836, ptr noundef %7839, ptr noundef %7842, i32 noundef %7844) #11
  br label %7846

7846:                                             ; preds = %7829, %7812
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %7847

7847:                                             ; preds = %7846
  br label %7848

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

7849:                                             ; No predecessors!
  br label %7850

7850:                                             ; preds = %7849
  br label %7851

7851:                                             ; preds = %7850, %7792
  br label %7852

7852:                                             ; preds = %7851
  br label %7853

7853:                                             ; preds = %7852
  br label %7854

7854:                                             ; preds = %7853
  %7855 = load i32, ptr @test_count, align 4, !tbaa !5
  %7856 = add nsw i32 %7855, 1
  store i32 %7856, ptr @test_count, align 4, !tbaa !5
  %7857 = load ptr, ptr %6, align 8, !tbaa !9
  %7858 = getelementptr inbounds %struct.s2n_connection, ptr %7857, i32 0, i32 22
  %7859 = load i8, ptr %7858, align 1, !tbaa !47
  %7860 = zext i8 %7859 to i32
  %7861 = icmp eq i32 %7860, 34
  br i1 %7861, label %7915, label %7862

7862:                                             ; preds = %7854
  br label %7863

7863:                                             ; preds = %7862
  br label %7864

7864:                                             ; preds = %7863
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %7865 = call ptr @__errno_location() #12
  %7866 = load i32, ptr %7865, align 4, !tbaa !5
  store i32 %7866, ptr %141, align 4, !tbaa !5
  %7867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7868 = call i32 @s2n_print_stacktrace(ptr noundef %7867)
  %7869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7870 = trunc i8 %7869 to i1
  br i1 %7870, label %7871, label %7893

7871:                                             ; preds = %7864
  %7872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7873 = call i32 @fileno(ptr noundef %7872) #11
  %7874 = call i32 @isatty(i32 noundef %7873) #11
  %7875 = icmp ne i32 %7874, 0
  br i1 %7875, label %7876, label %7893

7876:                                             ; preds = %7871
  %7877 = load i32, ptr %141, align 4, !tbaa !5
  %7878 = call ptr @__errno_location() #12
  store i32 %7877, ptr %7878, align 4, !tbaa !5
  %7879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7880 = load i32, ptr @test_count, align 4, !tbaa !5
  %7881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @s2n_strerror(i32 noundef %7882, ptr noundef @.str.4)
  %7884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @s2n_strerror_debug(i32 noundef %7885, ptr noundef @.str.4)
  %7887 = call ptr @__errno_location() #12
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call ptr @strerror(i32 noundef %7888) #11
  %7890 = call ptr @__errno_location() #12
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7879, ptr noundef @.str.2, i32 noundef %7880, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 279, ptr noundef %7883, ptr noundef %7886, ptr noundef %7889, i32 noundef %7891) #11
  br label %7910

7893:                                             ; preds = %7871, %7864
  %7894 = load i32, ptr %141, align 4, !tbaa !5
  %7895 = call ptr @__errno_location() #12
  store i32 %7894, ptr %7895, align 4, !tbaa !5
  %7896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7897 = load i32, ptr @test_count, align 4, !tbaa !5
  %7898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call ptr @s2n_strerror(i32 noundef %7899, ptr noundef @.str.4)
  %7901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call ptr @s2n_strerror_debug(i32 noundef %7902, ptr noundef @.str.4)
  %7904 = call ptr @__errno_location() #12
  %7905 = load i32, ptr %7904, align 4, !tbaa !5
  %7906 = call ptr @strerror(i32 noundef %7905) #11
  %7907 = call ptr @__errno_location() #12
  %7908 = load i32, ptr %7907, align 4, !tbaa !5
  %7909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7896, ptr noundef @.str.5, i32 noundef %7897, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 279, ptr noundef %7900, ptr noundef %7903, ptr noundef %7906, i32 noundef %7908) #11
  br label %7910

7910:                                             ; preds = %7893, %7876
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

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

7913:                                             ; No predecessors!
  br label %7914

7914:                                             ; preds = %7913
  br label %7915

7915:                                             ; preds = %7914, %7854
  br label %7916

7916:                                             ; preds = %7915
  br label %7917

7917:                                             ; preds = %7916
  br label %7918

7918:                                             ; preds = %7917
  %7919 = load i32, ptr @test_count, align 4, !tbaa !5
  %7920 = add nsw i32 %7919, 1
  store i32 %7920, ptr @test_count, align 4, !tbaa !5
  %7921 = load ptr, ptr %6, align 8, !tbaa !9
  %7922 = getelementptr inbounds %struct.s2n_connection, ptr %7921, i32 0, i32 23
  %7923 = load i8, ptr %7922, align 4, !tbaa !46
  %7924 = zext i8 %7923 to i32
  %7925 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %7926 = icmp eq i32 %7924, %7925
  br i1 %7926, label %7980, label %7927

7927:                                             ; preds = %7918
  br label %7928

7928:                                             ; preds = %7927
  br label %7929

7929:                                             ; preds = %7928
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %7930 = call ptr @__errno_location() #12
  %7931 = load i32, ptr %7930, align 4, !tbaa !5
  store i32 %7931, ptr %142, align 4, !tbaa !5
  %7932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7933 = call i32 @s2n_print_stacktrace(ptr noundef %7932)
  %7934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7935 = trunc i8 %7934 to i1
  br i1 %7935, label %7936, label %7958

7936:                                             ; preds = %7929
  %7937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7938 = call i32 @fileno(ptr noundef %7937) #11
  %7939 = call i32 @isatty(i32 noundef %7938) #11
  %7940 = icmp ne i32 %7939, 0
  br i1 %7940, label %7941, label %7958

7941:                                             ; preds = %7936
  %7942 = load i32, ptr %142, align 4, !tbaa !5
  %7943 = call ptr @__errno_location() #12
  store i32 %7942, ptr %7943, align 4, !tbaa !5
  %7944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7945 = load i32, ptr @test_count, align 4, !tbaa !5
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror(i32 noundef %7947, ptr noundef @.str.4)
  %7949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror_debug(i32 noundef %7950, ptr noundef @.str.4)
  %7952 = call ptr @__errno_location() #12
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call ptr @strerror(i32 noundef %7953) #11
  %7955 = call ptr @__errno_location() #12
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7944, ptr noundef @.str.2, i32 noundef %7945, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 280, ptr noundef %7948, ptr noundef %7951, ptr noundef %7954, i32 noundef %7956) #11
  br label %7975

7958:                                             ; preds = %7936, %7929
  %7959 = load i32, ptr %142, align 4, !tbaa !5
  %7960 = call ptr @__errno_location() #12
  store i32 %7959, ptr %7960, align 4, !tbaa !5
  %7961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7962 = load i32, ptr @test_count, align 4, !tbaa !5
  %7963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7964 = load i32, ptr %7963, align 4, !tbaa !5
  %7965 = call ptr @s2n_strerror(i32 noundef %7964, ptr noundef @.str.4)
  %7966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call ptr @s2n_strerror_debug(i32 noundef %7967, ptr noundef @.str.4)
  %7969 = call ptr @__errno_location() #12
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call ptr @strerror(i32 noundef %7970) #11
  %7972 = call ptr @__errno_location() #12
  %7973 = load i32, ptr %7972, align 4, !tbaa !5
  %7974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7961, ptr noundef @.str.5, i32 noundef %7962, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 280, ptr noundef %7965, ptr noundef %7968, ptr noundef %7971, i32 noundef %7973) #11
  br label %7975

7975:                                             ; preds = %7958, %7941
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %7976

7976:                                             ; preds = %7975
  br label %7977

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

7978:                                             ; No predecessors!
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

7980:                                             ; preds = %7979, %7918
  br label %7981

7981:                                             ; preds = %7980
  br label %7982

7982:                                             ; preds = %7981
  br label %7983

7983:                                             ; preds = %7982
  %7984 = load i32, ptr @test_count, align 4, !tbaa !5
  %7985 = add nsw i32 %7984, 1
  store i32 %7985, ptr @test_count, align 4, !tbaa !5
  %7986 = load ptr, ptr %6, align 8, !tbaa !9
  %7987 = getelementptr inbounds %struct.s2n_connection, ptr %7986, i32 0, i32 21
  %7988 = load i8, ptr %7987, align 2, !tbaa !42
  %7989 = zext i8 %7988 to i32
  %7990 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %7991 = icmp eq i32 %7989, %7990
  br i1 %7991, label %8045, label %7992

7992:                                             ; preds = %7983
  br label %7993

7993:                                             ; preds = %7992
  br label %7994

7994:                                             ; preds = %7993
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %7995 = call ptr @__errno_location() #12
  %7996 = load i32, ptr %7995, align 4, !tbaa !5
  store i32 %7996, ptr %143, align 4, !tbaa !5
  %7997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7998 = call i32 @s2n_print_stacktrace(ptr noundef %7997)
  %7999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8000 = trunc i8 %7999 to i1
  br i1 %8000, label %8001, label %8023

8001:                                             ; preds = %7994
  %8002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8003 = call i32 @fileno(ptr noundef %8002) #11
  %8004 = call i32 @isatty(i32 noundef %8003) #11
  %8005 = icmp ne i32 %8004, 0
  br i1 %8005, label %8006, label %8023

8006:                                             ; preds = %8001
  %8007 = load i32, ptr %143, align 4, !tbaa !5
  %8008 = call ptr @__errno_location() #12
  store i32 %8007, ptr %8008, align 4, !tbaa !5
  %8009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8010 = load i32, ptr @test_count, align 4, !tbaa !5
  %8011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8012 = load i32, ptr %8011, align 4, !tbaa !5
  %8013 = call ptr @s2n_strerror(i32 noundef %8012, ptr noundef @.str.4)
  %8014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8015 = load i32, ptr %8014, align 4, !tbaa !5
  %8016 = call ptr @s2n_strerror_debug(i32 noundef %8015, ptr noundef @.str.4)
  %8017 = call ptr @__errno_location() #12
  %8018 = load i32, ptr %8017, align 4, !tbaa !5
  %8019 = call ptr @strerror(i32 noundef %8018) #11
  %8020 = call ptr @__errno_location() #12
  %8021 = load i32, ptr %8020, align 4, !tbaa !5
  %8022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8009, ptr noundef @.str.2, i32 noundef %8010, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 281, ptr noundef %8013, ptr noundef %8016, ptr noundef %8019, i32 noundef %8021) #11
  br label %8040

8023:                                             ; preds = %8001, %7994
  %8024 = load i32, ptr %143, align 4, !tbaa !5
  %8025 = call ptr @__errno_location() #12
  store i32 %8024, ptr %8025, align 4, !tbaa !5
  %8026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8027 = load i32, ptr @test_count, align 4, !tbaa !5
  %8028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8029 = load i32, ptr %8028, align 4, !tbaa !5
  %8030 = call ptr @s2n_strerror(i32 noundef %8029, ptr noundef @.str.4)
  %8031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call ptr @s2n_strerror_debug(i32 noundef %8032, ptr noundef @.str.4)
  %8034 = call ptr @__errno_location() #12
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call ptr @strerror(i32 noundef %8035) #11
  %8037 = call ptr @__errno_location() #12
  %8038 = load i32, ptr %8037, align 4, !tbaa !5
  %8039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8026, ptr noundef @.str.5, i32 noundef %8027, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 281, ptr noundef %8030, ptr noundef %8033, ptr noundef %8036, i32 noundef %8038) #11
  br label %8040

8040:                                             ; preds = %8023, %8006
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %8041

8041:                                             ; preds = %8040
  br label %8042

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

8043:                                             ; No predecessors!
  br label %8044

8044:                                             ; preds = %8043
  br label %8045

8045:                                             ; preds = %8044, %7983
  br label %8046

8046:                                             ; preds = %8045
  br label %8047

8047:                                             ; preds = %8046
  br label %8048

8048:                                             ; preds = %8047
  %8049 = load i32, ptr @test_count, align 4, !tbaa !5
  %8050 = add nsw i32 %8049, 1
  store i32 %8050, ptr @test_count, align 4, !tbaa !5
  %8051 = load ptr, ptr %6, align 8, !tbaa !9
  %8052 = getelementptr inbounds %struct.s2n_connection, ptr %8051, i32 0, i32 20
  %8053 = load i8, ptr %8052, align 1, !tbaa !15
  %8054 = zext i8 %8053 to i32
  %8055 = icmp eq i32 %8054, 33
  br i1 %8055, label %8109, label %8056

8056:                                             ; preds = %8048
  br label %8057

8057:                                             ; preds = %8056
  br label %8058

8058:                                             ; preds = %8057
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %8059 = call ptr @__errno_location() #12
  %8060 = load i32, ptr %8059, align 4, !tbaa !5
  store i32 %8060, ptr %144, align 4, !tbaa !5
  %8061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8062 = call i32 @s2n_print_stacktrace(ptr noundef %8061)
  %8063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8064 = trunc i8 %8063 to i1
  br i1 %8064, label %8065, label %8087

8065:                                             ; preds = %8058
  %8066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8067 = call i32 @fileno(ptr noundef %8066) #11
  %8068 = call i32 @isatty(i32 noundef %8067) #11
  %8069 = icmp ne i32 %8068, 0
  br i1 %8069, label %8070, label %8087

8070:                                             ; preds = %8065
  %8071 = load i32, ptr %144, align 4, !tbaa !5
  %8072 = call ptr @__errno_location() #12
  store i32 %8071, ptr %8072, align 4, !tbaa !5
  %8073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8074 = load i32, ptr @test_count, align 4, !tbaa !5
  %8075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8076 = load i32, ptr %8075, align 4, !tbaa !5
  %8077 = call ptr @s2n_strerror(i32 noundef %8076, ptr noundef @.str.4)
  %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_debug(i32 noundef %8079, ptr noundef @.str.4)
  %8081 = call ptr @__errno_location() #12
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @strerror(i32 noundef %8082) #11
  %8084 = call ptr @__errno_location() #12
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8073, ptr noundef @.str.2, i32 noundef %8074, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 282, ptr noundef %8077, ptr noundef %8080, ptr noundef %8083, i32 noundef %8085) #11
  br label %8104

8087:                                             ; preds = %8065, %8058
  %8088 = load i32, ptr %144, align 4, !tbaa !5
  %8089 = call ptr @__errno_location() #12
  store i32 %8088, ptr %8089, align 4, !tbaa !5
  %8090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8091 = load i32, ptr @test_count, align 4, !tbaa !5
  %8092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8093 = load i32, ptr %8092, align 4, !tbaa !5
  %8094 = call ptr @s2n_strerror(i32 noundef %8093, ptr noundef @.str.4)
  %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_debug(i32 noundef %8096, ptr noundef @.str.4)
  %8098 = call ptr @__errno_location() #12
  %8099 = load i32, ptr %8098, align 4, !tbaa !5
  %8100 = call ptr @strerror(i32 noundef %8099) #11
  %8101 = call ptr @__errno_location() #12
  %8102 = load i32, ptr %8101, align 4, !tbaa !5
  %8103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8090, ptr noundef @.str.5, i32 noundef %8091, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 282, ptr noundef %8094, ptr noundef %8097, ptr noundef %8100, i32 noundef %8102) #11
  br label %8104

8104:                                             ; preds = %8087, %8070
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %8105

8105:                                             ; preds = %8104
  br label %8106

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

8107:                                             ; No predecessors!
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

8109:                                             ; preds = %8108, %8048
  br label %8110

8110:                                             ; preds = %8109
  br label %8111

8111:                                             ; preds = %8110
  %8112 = load ptr, ptr %6, align 8, !tbaa !9
  %8113 = call i32 @s2n_connection_free(ptr noundef %8112)
  %8114 = load ptr, ptr %7, align 8, !tbaa !9
  %8115 = call i32 @s2n_connection_free(ptr noundef %8114)
  br label %8116

8116:                                             ; preds = %8111
  %8117 = load i32, ptr @test_count, align 4, !tbaa !5
  %8118 = add nsw i32 %8117, 1
  store i32 %8118, ptr @test_count, align 4, !tbaa !5
  %8119 = call i32 (...) @s2n_disable_tls13_in_test()
  %8120 = icmp eq i32 %8119, -1
  br i1 %8120, label %8121, label %8174

8121:                                             ; preds = %8116
  br label %8122

8122:                                             ; preds = %8121
  br label %8123

8123:                                             ; preds = %8122
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %8124 = call ptr @__errno_location() #12
  %8125 = load i32, ptr %8124, align 4, !tbaa !5
  store i32 %8125, ptr %145, 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 %145, 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.8, ptr noundef @.str.1, i32 noundef 286, ptr noundef %8142, ptr noundef %8145, ptr noundef %8148, i32 noundef %8150) #11
  br label %8169

8152:                                             ; preds = %8130, %8123
  %8153 = load i32, ptr %145, 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.8, ptr noundef @.str.1, i32 noundef 286, 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 %145) #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, %8116
  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 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8180, ptr %7, align 8, !tbaa !9
  %8181 = icmp eq ptr %8180, null
  br i1 %8181, label %8182, label %8235

8182:                                             ; preds = %8177
  br label %8183

8183:                                             ; preds = %8182
  br label %8184

8184:                                             ; preds = %8183
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %8185 = call ptr @__errno_location() #12
  %8186 = load i32, ptr %8185, align 4, !tbaa !5
  store i32 %8186, ptr %146, align 4, !tbaa !5
  %8187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8188 = call i32 @s2n_print_stacktrace(ptr noundef %8187)
  %8189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8190 = trunc i8 %8189 to i1
  br i1 %8190, label %8191, label %8213

8191:                                             ; preds = %8184
  %8192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8193 = call i32 @fileno(ptr noundef %8192) #11
  %8194 = call i32 @isatty(i32 noundef %8193) #11
  %8195 = icmp ne i32 %8194, 0
  br i1 %8195, label %8196, label %8213

8196:                                             ; preds = %8191
  %8197 = load i32, ptr %146, align 4, !tbaa !5
  %8198 = call ptr @__errno_location() #12
  store i32 %8197, ptr %8198, align 4, !tbaa !5
  %8199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8200 = load i32, ptr @test_count, align 4, !tbaa !5
  %8201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8202 = load i32, ptr %8201, align 4, !tbaa !5
  %8203 = call ptr @s2n_strerror(i32 noundef %8202, ptr noundef @.str.4)
  %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_debug(i32 noundef %8205, ptr noundef @.str.4)
  %8207 = call ptr @__errno_location() #12
  %8208 = load i32, ptr %8207, align 4, !tbaa !5
  %8209 = call ptr @strerror(i32 noundef %8208) #11
  %8210 = call ptr @__errno_location() #12
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8199, ptr noundef @.str.2, i32 noundef %8200, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 291, ptr noundef %8203, ptr noundef %8206, ptr noundef %8209, i32 noundef %8211) #11
  br label %8230

8213:                                             ; preds = %8191, %8184
  %8214 = load i32, ptr %146, align 4, !tbaa !5
  %8215 = call ptr @__errno_location() #12
  store i32 %8214, ptr %8215, align 4, !tbaa !5
  %8216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8217 = load i32, ptr @test_count, align 4, !tbaa !5
  %8218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call ptr @s2n_strerror(i32 noundef %8219, ptr noundef @.str.4)
  %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_debug(i32 noundef %8222, ptr noundef @.str.4)
  %8224 = call ptr @__errno_location() #12
  %8225 = load i32, ptr %8224, align 4, !tbaa !5
  %8226 = call ptr @strerror(i32 noundef %8225) #11
  %8227 = call ptr @__errno_location() #12
  %8228 = load i32, ptr %8227, align 4, !tbaa !5
  %8229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8216, ptr noundef @.str.5, i32 noundef %8217, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 291, ptr noundef %8220, ptr noundef %8223, ptr noundef %8226, i32 noundef %8228) #11
  br label %8230

8230:                                             ; preds = %8213, %8196
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %8231

8231:                                             ; preds = %8230
  br label %8232

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

8233:                                             ; No predecessors!
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

8235:                                             ; preds = %8234, %8177
  br label %8236

8236:                                             ; preds = %8235
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

8238:                                             ; preds = %8237
  %8239 = load i32, ptr @test_count, align 4, !tbaa !5
  %8240 = add nsw i32 %8239, 1
  store i32 %8240, ptr @test_count, align 4, !tbaa !5
  %8241 = load ptr, ptr %7, align 8, !tbaa !9
  %8242 = load ptr, ptr %9, align 8, !tbaa !9
  %8243 = call i32 @s2n_connection_set_config(ptr noundef %8241, ptr noundef %8242)
  %8244 = icmp eq i32 %8243, -1
  br i1 %8244, label %8245, label %8298

8245:                                             ; preds = %8238
  br label %8246

8246:                                             ; preds = %8245
  br label %8247

8247:                                             ; preds = %8246
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %8248 = call ptr @__errno_location() #12
  %8249 = load i32, ptr %8248, align 4, !tbaa !5
  store i32 %8249, ptr %147, align 4, !tbaa !5
  %8250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8251 = call i32 @s2n_print_stacktrace(ptr noundef %8250)
  %8252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8253 = trunc i8 %8252 to i1
  br i1 %8253, label %8254, label %8276

8254:                                             ; preds = %8247
  %8255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8256 = call i32 @fileno(ptr noundef %8255) #11
  %8257 = call i32 @isatty(i32 noundef %8256) #11
  %8258 = icmp ne i32 %8257, 0
  br i1 %8258, label %8259, label %8276

8259:                                             ; preds = %8254
  %8260 = load i32, ptr %147, align 4, !tbaa !5
  %8261 = call ptr @__errno_location() #12
  store i32 %8260, ptr %8261, align 4, !tbaa !5
  %8262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8263 = load i32, ptr @test_count, align 4, !tbaa !5
  %8264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8265 = load i32, ptr %8264, align 4, !tbaa !5
  %8266 = call ptr @s2n_strerror(i32 noundef %8265, ptr noundef @.str.4)
  %8267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8268 = load i32, ptr %8267, align 4, !tbaa !5
  %8269 = call ptr @s2n_strerror_debug(i32 noundef %8268, ptr noundef @.str.4)
  %8270 = call ptr @__errno_location() #12
  %8271 = load i32, ptr %8270, align 4, !tbaa !5
  %8272 = call ptr @strerror(i32 noundef %8271) #11
  %8273 = call ptr @__errno_location() #12
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  %8275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8262, ptr noundef @.str.2, i32 noundef %8263, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 292, ptr noundef %8266, ptr noundef %8269, ptr noundef %8272, i32 noundef %8274) #11
  br label %8293

8276:                                             ; preds = %8254, %8247
  %8277 = load i32, ptr %147, align 4, !tbaa !5
  %8278 = call ptr @__errno_location() #12
  store i32 %8277, ptr %8278, align 4, !tbaa !5
  %8279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8280 = load i32, ptr @test_count, align 4, !tbaa !5
  %8281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call ptr @s2n_strerror(i32 noundef %8282, ptr noundef @.str.4)
  %8284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8285 = load i32, ptr %8284, align 4, !tbaa !5
  %8286 = call ptr @s2n_strerror_debug(i32 noundef %8285, ptr noundef @.str.4)
  %8287 = call ptr @__errno_location() #12
  %8288 = load i32, ptr %8287, align 4, !tbaa !5
  %8289 = call ptr @strerror(i32 noundef %8288) #11
  %8290 = call ptr @__errno_location() #12
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8279, ptr noundef @.str.5, i32 noundef %8280, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 292, ptr noundef %8283, ptr noundef %8286, ptr noundef %8289, i32 noundef %8291) #11
  br label %8293

8293:                                             ; preds = %8276, %8259
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %8294

8294:                                             ; preds = %8293
  br label %8295

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

8296:                                             ; No predecessors!
  br label %8297

8297:                                             ; preds = %8296
  br label %8298

8298:                                             ; preds = %8297, %8238
  br label %8299

8299:                                             ; preds = %8298
  br label %8300

8300:                                             ; preds = %8299
  br label %8301

8301:                                             ; preds = %8300
  %8302 = load i32, ptr @test_count, align 4, !tbaa !5
  %8303 = add nsw i32 %8302, 1
  store i32 %8303, ptr @test_count, align 4, !tbaa !5
  %8304 = call i32 (...) @s2n_enable_tls13_in_test()
  %8305 = icmp eq i32 %8304, -1
  br i1 %8305, label %8306, label %8359

8306:                                             ; preds = %8301
  br label %8307

8307:                                             ; preds = %8306
  br label %8308

8308:                                             ; preds = %8307
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %8309 = call ptr @__errno_location() #12
  %8310 = load i32, ptr %8309, align 4, !tbaa !5
  store i32 %8310, ptr %148, align 4, !tbaa !5
  %8311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8312 = call i32 @s2n_print_stacktrace(ptr noundef %8311)
  %8313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8314 = trunc i8 %8313 to i1
  br i1 %8314, label %8315, label %8337

8315:                                             ; preds = %8308
  %8316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8317 = call i32 @fileno(ptr noundef %8316) #11
  %8318 = call i32 @isatty(i32 noundef %8317) #11
  %8319 = icmp ne i32 %8318, 0
  br i1 %8319, label %8320, label %8337

8320:                                             ; preds = %8315
  %8321 = load i32, ptr %148, align 4, !tbaa !5
  %8322 = call ptr @__errno_location() #12
  store i32 %8321, ptr %8322, align 4, !tbaa !5
  %8323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8324 = load i32, ptr @test_count, align 4, !tbaa !5
  %8325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8326 = load i32, ptr %8325, align 4, !tbaa !5
  %8327 = call ptr @s2n_strerror(i32 noundef %8326, ptr noundef @.str.4)
  %8328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8329 = load i32, ptr %8328, align 4, !tbaa !5
  %8330 = call ptr @s2n_strerror_debug(i32 noundef %8329, ptr noundef @.str.4)
  %8331 = call ptr @__errno_location() #12
  %8332 = load i32, ptr %8331, align 4, !tbaa !5
  %8333 = call ptr @strerror(i32 noundef %8332) #11
  %8334 = call ptr @__errno_location() #12
  %8335 = load i32, ptr %8334, align 4, !tbaa !5
  %8336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8323, ptr noundef @.str.2, i32 noundef %8324, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 293, ptr noundef %8327, ptr noundef %8330, ptr noundef %8333, i32 noundef %8335) #11
  br label %8354

8337:                                             ; preds = %8315, %8308
  %8338 = load i32, ptr %148, align 4, !tbaa !5
  %8339 = call ptr @__errno_location() #12
  store i32 %8338, ptr %8339, align 4, !tbaa !5
  %8340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8341 = load i32, ptr @test_count, align 4, !tbaa !5
  %8342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @s2n_strerror(i32 noundef %8343, ptr noundef @.str.4)
  %8345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call ptr @s2n_strerror_debug(i32 noundef %8346, ptr noundef @.str.4)
  %8348 = call ptr @__errno_location() #12
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call ptr @strerror(i32 noundef %8349) #11
  %8351 = call ptr @__errno_location() #12
  %8352 = load i32, ptr %8351, align 4, !tbaa !5
  %8353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8340, ptr noundef @.str.5, i32 noundef %8341, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 293, ptr noundef %8344, ptr noundef %8347, ptr noundef %8350, i32 noundef %8352) #11
  br label %8354

8354:                                             ; preds = %8337, %8320
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %8355

8355:                                             ; preds = %8354
  br label %8356

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

8357:                                             ; No predecessors!
  br label %8358

8358:                                             ; preds = %8357
  br label %8359

8359:                                             ; preds = %8358, %8301
  br label %8360

8360:                                             ; preds = %8359
  br label %8361

8361:                                             ; preds = %8360
  br label %8362

8362:                                             ; preds = %8361
  %8363 = load i32, ptr @test_count, align 4, !tbaa !5
  %8364 = add nsw i32 %8363, 1
  store i32 %8364, ptr @test_count, align 4, !tbaa !5
  %8365 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8365, ptr %6, align 8, !tbaa !9
  %8366 = icmp eq ptr %8365, null
  br i1 %8366, label %8367, label %8420

8367:                                             ; preds = %8362
  br label %8368

8368:                                             ; preds = %8367
  br label %8369

8369:                                             ; preds = %8368
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %8370 = call ptr @__errno_location() #12
  %8371 = load i32, ptr %8370, align 4, !tbaa !5
  store i32 %8371, ptr %149, align 4, !tbaa !5
  %8372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8373 = call i32 @s2n_print_stacktrace(ptr noundef %8372)
  %8374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8375 = trunc i8 %8374 to i1
  br i1 %8375, label %8376, label %8398

8376:                                             ; preds = %8369
  %8377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8378 = call i32 @fileno(ptr noundef %8377) #11
  %8379 = call i32 @isatty(i32 noundef %8378) #11
  %8380 = icmp ne i32 %8379, 0
  br i1 %8380, label %8381, label %8398

8381:                                             ; preds = %8376
  %8382 = load i32, ptr %149, align 4, !tbaa !5
  %8383 = call ptr @__errno_location() #12
  store i32 %8382, ptr %8383, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = load i32, ptr @test_count, align 4, !tbaa !5
  %8386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8387 = load i32, ptr %8386, align 4, !tbaa !5
  %8388 = call ptr @s2n_strerror(i32 noundef %8387, ptr noundef @.str.4)
  %8389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  %8391 = call ptr @s2n_strerror_debug(i32 noundef %8390, ptr noundef @.str.4)
  %8392 = call ptr @__errno_location() #12
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call ptr @strerror(i32 noundef %8393) #11
  %8395 = call ptr @__errno_location() #12
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8384, ptr noundef @.str.2, i32 noundef %8385, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 294, ptr noundef %8388, ptr noundef %8391, ptr noundef %8394, i32 noundef %8396) #11
  br label %8415

8398:                                             ; preds = %8376, %8369
  %8399 = load i32, ptr %149, align 4, !tbaa !5
  %8400 = call ptr @__errno_location() #12
  store i32 %8399, ptr %8400, align 4, !tbaa !5
  %8401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8402 = load i32, ptr @test_count, align 4, !tbaa !5
  %8403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8404 = load i32, ptr %8403, align 4, !tbaa !5
  %8405 = call ptr @s2n_strerror(i32 noundef %8404, ptr noundef @.str.4)
  %8406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8407 = load i32, ptr %8406, align 4, !tbaa !5
  %8408 = call ptr @s2n_strerror_debug(i32 noundef %8407, ptr noundef @.str.4)
  %8409 = call ptr @__errno_location() #12
  %8410 = load i32, ptr %8409, align 4, !tbaa !5
  %8411 = call ptr @strerror(i32 noundef %8410) #11
  %8412 = call ptr @__errno_location() #12
  %8413 = load i32, ptr %8412, align 4, !tbaa !5
  %8414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8401, ptr noundef @.str.5, i32 noundef %8402, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 294, ptr noundef %8405, ptr noundef %8408, ptr noundef %8411, i32 noundef %8413) #11
  br label %8415

8415:                                             ; preds = %8398, %8381
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %8416

8416:                                             ; preds = %8415
  br label %8417

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

8418:                                             ; No predecessors!
  br label %8419

8419:                                             ; preds = %8418
  br label %8420

8420:                                             ; preds = %8419, %8362
  br label %8421

8421:                                             ; preds = %8420
  br label %8422

8422:                                             ; preds = %8421
  br label %8423

8423:                                             ; preds = %8422
  %8424 = load i32, ptr @test_count, align 4, !tbaa !5
  %8425 = add nsw i32 %8424, 1
  store i32 %8425, ptr @test_count, align 4, !tbaa !5
  %8426 = load ptr, ptr %6, align 8, !tbaa !9
  %8427 = load ptr, ptr %9, align 8, !tbaa !9
  %8428 = call i32 @s2n_connection_set_config(ptr noundef %8426, ptr noundef %8427)
  %8429 = icmp eq i32 %8428, -1
  br i1 %8429, label %8430, label %8483

8430:                                             ; preds = %8423
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %8433 = call ptr @__errno_location() #12
  %8434 = load i32, ptr %8433, align 4, !tbaa !5
  store i32 %8434, ptr %150, align 4, !tbaa !5
  %8435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8436 = call i32 @s2n_print_stacktrace(ptr noundef %8435)
  %8437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8438 = trunc i8 %8437 to i1
  br i1 %8438, label %8439, label %8461

8439:                                             ; preds = %8432
  %8440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8441 = call i32 @fileno(ptr noundef %8440) #11
  %8442 = call i32 @isatty(i32 noundef %8441) #11
  %8443 = icmp ne i32 %8442, 0
  br i1 %8443, label %8444, label %8461

8444:                                             ; preds = %8439
  %8445 = load i32, ptr %150, align 4, !tbaa !5
  %8446 = call ptr @__errno_location() #12
  store i32 %8445, ptr %8446, align 4, !tbaa !5
  %8447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8448 = load i32, ptr @test_count, align 4, !tbaa !5
  %8449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call ptr @s2n_strerror(i32 noundef %8450, ptr noundef @.str.4)
  %8452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8453 = load i32, ptr %8452, align 4, !tbaa !5
  %8454 = call ptr @s2n_strerror_debug(i32 noundef %8453, ptr noundef @.str.4)
  %8455 = call ptr @__errno_location() #12
  %8456 = load i32, ptr %8455, align 4, !tbaa !5
  %8457 = call ptr @strerror(i32 noundef %8456) #11
  %8458 = call ptr @__errno_location() #12
  %8459 = load i32, ptr %8458, align 4, !tbaa !5
  %8460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8447, ptr noundef @.str.2, i32 noundef %8448, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 295, ptr noundef %8451, ptr noundef %8454, ptr noundef %8457, i32 noundef %8459) #11
  br label %8478

8461:                                             ; preds = %8439, %8432
  %8462 = load i32, ptr %150, align 4, !tbaa !5
  %8463 = call ptr @__errno_location() #12
  store i32 %8462, ptr %8463, align 4, !tbaa !5
  %8464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8465 = load i32, ptr @test_count, align 4, !tbaa !5
  %8466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8467 = load i32, ptr %8466, align 4, !tbaa !5
  %8468 = call ptr @s2n_strerror(i32 noundef %8467, ptr noundef @.str.4)
  %8469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8470 = load i32, ptr %8469, align 4, !tbaa !5
  %8471 = call ptr @s2n_strerror_debug(i32 noundef %8470, ptr noundef @.str.4)
  %8472 = call ptr @__errno_location() #12
  %8473 = load i32, ptr %8472, align 4, !tbaa !5
  %8474 = call ptr @strerror(i32 noundef %8473) #11
  %8475 = call ptr @__errno_location() #12
  %8476 = load i32, ptr %8475, align 4, !tbaa !5
  %8477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8464, ptr noundef @.str.5, i32 noundef %8465, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 295, ptr noundef %8468, ptr noundef %8471, ptr noundef %8474, i32 noundef %8476) #11
  br label %8478

8478:                                             ; preds = %8461, %8444
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %8479

8479:                                             ; preds = %8478
  br label %8480

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

8481:                                             ; No predecessors!
  br label %8482

8482:                                             ; preds = %8481
  br label %8483

8483:                                             ; preds = %8482, %8423
  br label %8484

8484:                                             ; preds = %8483
  br label %8485

8485:                                             ; preds = %8484
  br label %8486

8486:                                             ; preds = %8485
  %8487 = load i32, ptr @test_count, align 4, !tbaa !5
  %8488 = add nsw i32 %8487, 1
  store i32 %8488, ptr @test_count, align 4, !tbaa !5
  %8489 = load ptr, ptr %6, align 8, !tbaa !9
  %8490 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %8489, ptr noundef @.str.58)
  %8491 = icmp eq i32 %8490, -1
  br i1 %8491, label %8492, label %8545

8492:                                             ; preds = %8486
  br label %8493

8493:                                             ; preds = %8492
  br label %8494

8494:                                             ; preds = %8493
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %8495 = call ptr @__errno_location() #12
  %8496 = load i32, ptr %8495, align 4, !tbaa !5
  store i32 %8496, ptr %151, align 4, !tbaa !5
  %8497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8498 = call i32 @s2n_print_stacktrace(ptr noundef %8497)
  %8499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8500 = trunc i8 %8499 to i1
  br i1 %8500, label %8501, label %8523

8501:                                             ; preds = %8494
  %8502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8503 = call i32 @fileno(ptr noundef %8502) #11
  %8504 = call i32 @isatty(i32 noundef %8503) #11
  %8505 = icmp ne i32 %8504, 0
  br i1 %8505, label %8506, label %8523

8506:                                             ; preds = %8501
  %8507 = load i32, ptr %151, align 4, !tbaa !5
  %8508 = call ptr @__errno_location() #12
  store i32 %8507, ptr %8508, align 4, !tbaa !5
  %8509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8510 = load i32, ptr @test_count, align 4, !tbaa !5
  %8511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8512 = load i32, ptr %8511, align 4, !tbaa !5
  %8513 = call ptr @s2n_strerror(i32 noundef %8512, ptr noundef @.str.4)
  %8514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  %8516 = call ptr @s2n_strerror_debug(i32 noundef %8515, ptr noundef @.str.4)
  %8517 = call ptr @__errno_location() #12
  %8518 = load i32, ptr %8517, align 4, !tbaa !5
  %8519 = call ptr @strerror(i32 noundef %8518) #11
  %8520 = call ptr @__errno_location() #12
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  %8522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8509, ptr noundef @.str.2, i32 noundef %8510, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 297, ptr noundef %8513, ptr noundef %8516, ptr noundef %8519, i32 noundef %8521) #11
  br label %8540

8523:                                             ; preds = %8501, %8494
  %8524 = load i32, ptr %151, align 4, !tbaa !5
  %8525 = call ptr @__errno_location() #12
  store i32 %8524, ptr %8525, align 4, !tbaa !5
  %8526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8527 = load i32, ptr @test_count, align 4, !tbaa !5
  %8528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8529 = load i32, ptr %8528, align 4, !tbaa !5
  %8530 = call ptr @s2n_strerror(i32 noundef %8529, ptr noundef @.str.4)
  %8531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8532 = load i32, ptr %8531, align 4, !tbaa !5
  %8533 = call ptr @s2n_strerror_debug(i32 noundef %8532, ptr noundef @.str.4)
  %8534 = call ptr @__errno_location() #12
  %8535 = load i32, ptr %8534, align 4, !tbaa !5
  %8536 = call ptr @strerror(i32 noundef %8535) #11
  %8537 = call ptr @__errno_location() #12
  %8538 = load i32, ptr %8537, align 4, !tbaa !5
  %8539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8526, ptr noundef @.str.5, i32 noundef %8527, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 297, ptr noundef %8530, ptr noundef %8533, ptr noundef %8536, i32 noundef %8538) #11
  br label %8540

8540:                                             ; preds = %8523, %8506
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %8541

8541:                                             ; preds = %8540
  br label %8542

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

8543:                                             ; No predecessors!
  br label %8544

8544:                                             ; preds = %8543
  br label %8545

8545:                                             ; preds = %8544, %8486
  br label %8546

8546:                                             ; preds = %8545
  br label %8547

8547:                                             ; preds = %8546
  %8548 = load ptr, ptr %7, align 8, !tbaa !9
  %8549 = getelementptr inbounds %struct.s2n_connection, ptr %8548, i32 0, i32 52
  %8550 = getelementptr inbounds %struct.s2n_handshake, ptr %8549, i32 0, i32 0
  store ptr %8550, ptr %8, align 8, !tbaa !9
  br label %8551

8551:                                             ; preds = %8547
  %8552 = load i32, ptr @test_count, align 4, !tbaa !5
  %8553 = add nsw i32 %8552, 1
  store i32 %8553, ptr @test_count, align 4, !tbaa !5
  %8554 = load ptr, ptr %7, align 8, !tbaa !9
  %8555 = call i32 @s2n_client_hello_send(ptr noundef %8554)
  %8556 = icmp eq i32 %8555, -1
  br i1 %8556, label %8557, label %8610

8557:                                             ; preds = %8551
  br label %8558

8558:                                             ; preds = %8557
  br label %8559

8559:                                             ; preds = %8558
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %8560 = call ptr @__errno_location() #12
  %8561 = load i32, ptr %8560, align 4, !tbaa !5
  store i32 %8561, ptr %152, align 4, !tbaa !5
  %8562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8563 = call i32 @s2n_print_stacktrace(ptr noundef %8562)
  %8564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8565 = trunc i8 %8564 to i1
  br i1 %8565, label %8566, label %8588

8566:                                             ; preds = %8559
  %8567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8568 = call i32 @fileno(ptr noundef %8567) #11
  %8569 = call i32 @isatty(i32 noundef %8568) #11
  %8570 = icmp ne i32 %8569, 0
  br i1 %8570, label %8571, label %8588

8571:                                             ; preds = %8566
  %8572 = load i32, ptr %152, align 4, !tbaa !5
  %8573 = call ptr @__errno_location() #12
  store i32 %8572, ptr %8573, align 4, !tbaa !5
  %8574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8575 = load i32, ptr @test_count, align 4, !tbaa !5
  %8576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8577 = load i32, ptr %8576, align 4, !tbaa !5
  %8578 = call ptr @s2n_strerror(i32 noundef %8577, ptr noundef @.str.4)
  %8579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8580 = load i32, ptr %8579, align 4, !tbaa !5
  %8581 = call ptr @s2n_strerror_debug(i32 noundef %8580, ptr noundef @.str.4)
  %8582 = call ptr @__errno_location() #12
  %8583 = load i32, ptr %8582, align 4, !tbaa !5
  %8584 = call ptr @strerror(i32 noundef %8583) #11
  %8585 = call ptr @__errno_location() #12
  %8586 = load i32, ptr %8585, align 4, !tbaa !5
  %8587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8574, ptr noundef @.str.2, i32 noundef %8575, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 301, ptr noundef %8578, ptr noundef %8581, ptr noundef %8584, i32 noundef %8586) #11
  br label %8605

8588:                                             ; preds = %8566, %8559
  %8589 = load i32, ptr %152, align 4, !tbaa !5
  %8590 = call ptr @__errno_location() #12
  store i32 %8589, ptr %8590, align 4, !tbaa !5
  %8591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8592 = load i32, ptr @test_count, align 4, !tbaa !5
  %8593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8594 = load i32, ptr %8593, align 4, !tbaa !5
  %8595 = call ptr @s2n_strerror(i32 noundef %8594, ptr noundef @.str.4)
  %8596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8597 = load i32, ptr %8596, align 4, !tbaa !5
  %8598 = call ptr @s2n_strerror_debug(i32 noundef %8597, ptr noundef @.str.4)
  %8599 = call ptr @__errno_location() #12
  %8600 = load i32, ptr %8599, align 4, !tbaa !5
  %8601 = call ptr @strerror(i32 noundef %8600) #11
  %8602 = call ptr @__errno_location() #12
  %8603 = load i32, ptr %8602, align 4, !tbaa !5
  %8604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8591, ptr noundef @.str.5, i32 noundef %8592, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 301, ptr noundef %8595, ptr noundef %8598, ptr noundef %8601, i32 noundef %8603) #11
  br label %8605

8605:                                             ; preds = %8588, %8571
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %8606

8606:                                             ; preds = %8605
  br label %8607

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

8608:                                             ; No predecessors!
  br label %8609

8609:                                             ; preds = %8608
  br label %8610

8610:                                             ; preds = %8609, %8551
  br label %8611

8611:                                             ; preds = %8610
  br label %8612

8612:                                             ; preds = %8611
  call void @llvm.lifetime.start.p0(i64 2, ptr %153) #11
  %8613 = getelementptr inbounds [2 x i8], ptr %153, i64 0, i64 0
  store i8 3, ptr %8613, align 1, !tbaa !48
  %8614 = getelementptr inbounds [2 x i8], ptr %153, i64 0, i64 1
  store i8 4, ptr %8614, align 1, !tbaa !48
  br label %8615

8615:                                             ; preds = %8612
  %8616 = load i32, ptr @test_count, align 4, !tbaa !5
  %8617 = add nsw i32 %8616, 1
  store i32 %8617, ptr @test_count, align 4, !tbaa !5
  %8618 = load ptr, ptr %8, align 8, !tbaa !9
  %8619 = call i32 @s2n_stuffer_rewrite(ptr noundef %8618)
  %8620 = icmp eq i32 %8619, -1
  br i1 %8620, label %8621, label %8674

8621:                                             ; preds = %8615
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

8623:                                             ; preds = %8622
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %8624 = call ptr @__errno_location() #12
  %8625 = load i32, ptr %8624, align 4, !tbaa !5
  store i32 %8625, ptr %154, align 4, !tbaa !5
  %8626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8627 = call i32 @s2n_print_stacktrace(ptr noundef %8626)
  %8628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8629 = trunc i8 %8628 to i1
  br i1 %8629, label %8630, label %8652

8630:                                             ; preds = %8623
  %8631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8632 = call i32 @fileno(ptr noundef %8631) #11
  %8633 = call i32 @isatty(i32 noundef %8632) #11
  %8634 = icmp ne i32 %8633, 0
  br i1 %8634, label %8635, label %8652

8635:                                             ; preds = %8630
  %8636 = load i32, ptr %154, align 4, !tbaa !5
  %8637 = call ptr @__errno_location() #12
  store i32 %8636, ptr %8637, align 4, !tbaa !5
  %8638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8639 = load i32, ptr @test_count, align 4, !tbaa !5
  %8640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8641 = load i32, ptr %8640, align 4, !tbaa !5
  %8642 = call ptr @s2n_strerror(i32 noundef %8641, ptr noundef @.str.4)
  %8643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8644 = load i32, ptr %8643, align 4, !tbaa !5
  %8645 = call ptr @s2n_strerror_debug(i32 noundef %8644, ptr noundef @.str.4)
  %8646 = call ptr @__errno_location() #12
  %8647 = load i32, ptr %8646, align 4, !tbaa !5
  %8648 = call ptr @strerror(i32 noundef %8647) #11
  %8649 = call ptr @__errno_location() #12
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  %8651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8638, ptr noundef @.str.2, i32 noundef %8639, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 307, ptr noundef %8642, ptr noundef %8645, ptr noundef %8648, i32 noundef %8650) #11
  br label %8669

8652:                                             ; preds = %8630, %8623
  %8653 = load i32, ptr %154, align 4, !tbaa !5
  %8654 = call ptr @__errno_location() #12
  store i32 %8653, ptr %8654, align 4, !tbaa !5
  %8655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8656 = load i32, ptr @test_count, align 4, !tbaa !5
  %8657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8658 = load i32, ptr %8657, align 4, !tbaa !5
  %8659 = call ptr @s2n_strerror(i32 noundef %8658, ptr noundef @.str.4)
  %8660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8661 = load i32, ptr %8660, align 4, !tbaa !5
  %8662 = call ptr @s2n_strerror_debug(i32 noundef %8661, ptr noundef @.str.4)
  %8663 = call ptr @__errno_location() #12
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call ptr @strerror(i32 noundef %8664) #11
  %8666 = call ptr @__errno_location() #12
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8655, ptr noundef @.str.5, i32 noundef %8656, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 307, ptr noundef %8659, ptr noundef %8662, ptr noundef %8665, i32 noundef %8667) #11
  br label %8669

8669:                                             ; preds = %8652, %8635
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %8670

8670:                                             ; preds = %8669
  br label %8671

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

8672:                                             ; No predecessors!
  br label %8673

8673:                                             ; preds = %8672
  br label %8674

8674:                                             ; preds = %8673, %8615
  br label %8675

8675:                                             ; preds = %8674
  br label %8676

8676:                                             ; preds = %8675
  br label %8677

8677:                                             ; preds = %8676
  %8678 = load i32, ptr @test_count, align 4, !tbaa !5
  %8679 = add nsw i32 %8678, 1
  store i32 %8679, ptr @test_count, align 4, !tbaa !5
  %8680 = load ptr, ptr %8, align 8, !tbaa !9
  %8681 = getelementptr inbounds [2 x i8], ptr %153, i64 0, i64 0
  %8682 = call i32 @s2n_stuffer_write_bytes(ptr noundef %8680, ptr noundef %8681, i32 noundef 2)
  %8683 = icmp eq i32 %8682, -1
  br i1 %8683, label %8684, label %8737

8684:                                             ; preds = %8677
  br label %8685

8685:                                             ; preds = %8684
  br label %8686

8686:                                             ; preds = %8685
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %8687 = call ptr @__errno_location() #12
  %8688 = load i32, ptr %8687, align 4, !tbaa !5
  store i32 %8688, ptr %155, align 4, !tbaa !5
  %8689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8690 = call i32 @s2n_print_stacktrace(ptr noundef %8689)
  %8691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8692 = trunc i8 %8691 to i1
  br i1 %8692, label %8693, label %8715

8693:                                             ; preds = %8686
  %8694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8695 = call i32 @fileno(ptr noundef %8694) #11
  %8696 = call i32 @isatty(i32 noundef %8695) #11
  %8697 = icmp ne i32 %8696, 0
  br i1 %8697, label %8698, label %8715

8698:                                             ; preds = %8693
  %8699 = load i32, ptr %155, align 4, !tbaa !5
  %8700 = call ptr @__errno_location() #12
  store i32 %8699, ptr %8700, align 4, !tbaa !5
  %8701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8702 = load i32, ptr @test_count, align 4, !tbaa !5
  %8703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8704 = load i32, ptr %8703, align 4, !tbaa !5
  %8705 = call ptr @s2n_strerror(i32 noundef %8704, ptr noundef @.str.4)
  %8706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8707 = load i32, ptr %8706, align 4, !tbaa !5
  %8708 = call ptr @s2n_strerror_debug(i32 noundef %8707, ptr noundef @.str.4)
  %8709 = call ptr @__errno_location() #12
  %8710 = load i32, ptr %8709, align 4, !tbaa !5
  %8711 = call ptr @strerror(i32 noundef %8710) #11
  %8712 = call ptr @__errno_location() #12
  %8713 = load i32, ptr %8712, align 4, !tbaa !5
  %8714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8701, ptr noundef @.str.2, i32 noundef %8702, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 308, ptr noundef %8705, ptr noundef %8708, ptr noundef %8711, i32 noundef %8713) #11
  br label %8732

8715:                                             ; preds = %8693, %8686
  %8716 = load i32, ptr %155, align 4, !tbaa !5
  %8717 = call ptr @__errno_location() #12
  store i32 %8716, ptr %8717, align 4, !tbaa !5
  %8718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8719 = load i32, ptr @test_count, align 4, !tbaa !5
  %8720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8721 = load i32, ptr %8720, align 4, !tbaa !5
  %8722 = call ptr @s2n_strerror(i32 noundef %8721, ptr noundef @.str.4)
  %8723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8724 = load i32, ptr %8723, align 4, !tbaa !5
  %8725 = call ptr @s2n_strerror_debug(i32 noundef %8724, ptr noundef @.str.4)
  %8726 = call ptr @__errno_location() #12
  %8727 = load i32, ptr %8726, align 4, !tbaa !5
  %8728 = call ptr @strerror(i32 noundef %8727) #11
  %8729 = call ptr @__errno_location() #12
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8718, ptr noundef @.str.5, i32 noundef %8719, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 308, ptr noundef %8722, ptr noundef %8725, ptr noundef %8728, i32 noundef %8730) #11
  br label %8732

8732:                                             ; preds = %8715, %8698
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %8733

8733:                                             ; preds = %8732
  br label %8734

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

8735:                                             ; No predecessors!
  br label %8736

8736:                                             ; preds = %8735
  br label %8737

8737:                                             ; preds = %8736, %8677
  br label %8738

8738:                                             ; preds = %8737
  br label %8739

8739:                                             ; preds = %8738
  br label %8740

8740:                                             ; preds = %8739
  %8741 = load i32, ptr @test_count, align 4, !tbaa !5
  %8742 = add nsw i32 %8741, 1
  store i32 %8742, ptr @test_count, align 4, !tbaa !5
  %8743 = load ptr, ptr %6, align 8, !tbaa !9
  %8744 = getelementptr inbounds %struct.s2n_connection, ptr %8743, i32 0, i32 52
  %8745 = getelementptr inbounds %struct.s2n_handshake, ptr %8744, i32 0, i32 0
  %8746 = load ptr, ptr %8, align 8, !tbaa !9
  %8747 = getelementptr inbounds %struct.s2n_stuffer, ptr %8746, i32 0, i32 0
  %8748 = call i32 @s2n_stuffer_write(ptr noundef %8745, ptr noundef %8747)
  %8749 = icmp eq i32 %8748, -1
  br i1 %8749, label %8750, label %8803

8750:                                             ; preds = %8740
  br label %8751

8751:                                             ; preds = %8750
  br label %8752

8752:                                             ; preds = %8751
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %8753 = call ptr @__errno_location() #12
  %8754 = load i32, ptr %8753, align 4, !tbaa !5
  store i32 %8754, ptr %156, align 4, !tbaa !5
  %8755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8756 = call i32 @s2n_print_stacktrace(ptr noundef %8755)
  %8757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8758 = trunc i8 %8757 to i1
  br i1 %8758, label %8759, label %8781

8759:                                             ; preds = %8752
  %8760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8761 = call i32 @fileno(ptr noundef %8760) #11
  %8762 = call i32 @isatty(i32 noundef %8761) #11
  %8763 = icmp ne i32 %8762, 0
  br i1 %8763, label %8764, label %8781

8764:                                             ; preds = %8759
  %8765 = load i32, ptr %156, align 4, !tbaa !5
  %8766 = call ptr @__errno_location() #12
  store i32 %8765, ptr %8766, align 4, !tbaa !5
  %8767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8768 = load i32, ptr @test_count, align 4, !tbaa !5
  %8769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8770 = load i32, ptr %8769, align 4, !tbaa !5
  %8771 = call ptr @s2n_strerror(i32 noundef %8770, ptr noundef @.str.4)
  %8772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8773 = load i32, ptr %8772, align 4, !tbaa !5
  %8774 = call ptr @s2n_strerror_debug(i32 noundef %8773, ptr noundef @.str.4)
  %8775 = call ptr @__errno_location() #12
  %8776 = load i32, ptr %8775, align 4, !tbaa !5
  %8777 = call ptr @strerror(i32 noundef %8776) #11
  %8778 = call ptr @__errno_location() #12
  %8779 = load i32, ptr %8778, align 4, !tbaa !5
  %8780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8767, ptr noundef @.str.2, i32 noundef %8768, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 310, ptr noundef %8771, ptr noundef %8774, ptr noundef %8777, i32 noundef %8779) #11
  br label %8798

8781:                                             ; preds = %8759, %8752
  %8782 = load i32, ptr %156, align 4, !tbaa !5
  %8783 = call ptr @__errno_location() #12
  store i32 %8782, ptr %8783, align 4, !tbaa !5
  %8784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8785 = load i32, ptr @test_count, align 4, !tbaa !5
  %8786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8787 = load i32, ptr %8786, align 4, !tbaa !5
  %8788 = call ptr @s2n_strerror(i32 noundef %8787, ptr noundef @.str.4)
  %8789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8790 = load i32, ptr %8789, align 4, !tbaa !5
  %8791 = call ptr @s2n_strerror_debug(i32 noundef %8790, ptr noundef @.str.4)
  %8792 = call ptr @__errno_location() #12
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @strerror(i32 noundef %8793) #11
  %8795 = call ptr @__errno_location() #12
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8784, ptr noundef @.str.5, i32 noundef %8785, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 310, ptr noundef %8788, ptr noundef %8791, ptr noundef %8794, i32 noundef %8796) #11
  br label %8798

8798:                                             ; preds = %8781, %8764
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %8799

8799:                                             ; preds = %8798
  br label %8800

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

8801:                                             ; No predecessors!
  br label %8802

8802:                                             ; preds = %8801
  br label %8803

8803:                                             ; preds = %8802, %8740
  br label %8804

8804:                                             ; preds = %8803
  br label %8805

8805:                                             ; preds = %8804
  br label %8806

8806:                                             ; preds = %8805
  %8807 = load i32, ptr @test_count, align 4, !tbaa !5
  %8808 = add nsw i32 %8807, 1
  store i32 %8808, ptr @test_count, align 4, !tbaa !5
  %8809 = load ptr, ptr %6, align 8, !tbaa !9
  %8810 = call i32 @s2n_client_hello_recv(ptr noundef %8809)
  %8811 = icmp eq i32 %8810, -1
  br i1 %8811, label %8812, label %8865

8812:                                             ; preds = %8806
  br label %8813

8813:                                             ; preds = %8812
  br label %8814

8814:                                             ; preds = %8813
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %8815 = call ptr @__errno_location() #12
  %8816 = load i32, ptr %8815, align 4, !tbaa !5
  store i32 %8816, ptr %157, align 4, !tbaa !5
  %8817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8818 = call i32 @s2n_print_stacktrace(ptr noundef %8817)
  %8819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8820 = trunc i8 %8819 to i1
  br i1 %8820, label %8821, label %8843

8821:                                             ; preds = %8814
  %8822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8823 = call i32 @fileno(ptr noundef %8822) #11
  %8824 = call i32 @isatty(i32 noundef %8823) #11
  %8825 = icmp ne i32 %8824, 0
  br i1 %8825, label %8826, label %8843

8826:                                             ; preds = %8821
  %8827 = load i32, ptr %157, align 4, !tbaa !5
  %8828 = call ptr @__errno_location() #12
  store i32 %8827, ptr %8828, align 4, !tbaa !5
  %8829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8830 = load i32, ptr @test_count, align 4, !tbaa !5
  %8831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8832 = load i32, ptr %8831, align 4, !tbaa !5
  %8833 = call ptr @s2n_strerror(i32 noundef %8832, ptr noundef @.str.4)
  %8834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8835 = load i32, ptr %8834, align 4, !tbaa !5
  %8836 = call ptr @s2n_strerror_debug(i32 noundef %8835, ptr noundef @.str.4)
  %8837 = call ptr @__errno_location() #12
  %8838 = load i32, ptr %8837, align 4, !tbaa !5
  %8839 = call ptr @strerror(i32 noundef %8838) #11
  %8840 = call ptr @__errno_location() #12
  %8841 = load i32, ptr %8840, align 4, !tbaa !5
  %8842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8829, ptr noundef @.str.2, i32 noundef %8830, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 311, ptr noundef %8833, ptr noundef %8836, ptr noundef %8839, i32 noundef %8841) #11
  br label %8860

8843:                                             ; preds = %8821, %8814
  %8844 = load i32, ptr %157, align 4, !tbaa !5
  %8845 = call ptr @__errno_location() #12
  store i32 %8844, ptr %8845, align 4, !tbaa !5
  %8846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8847 = load i32, ptr @test_count, align 4, !tbaa !5
  %8848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8849 = load i32, ptr %8848, align 4, !tbaa !5
  %8850 = call ptr @s2n_strerror(i32 noundef %8849, ptr noundef @.str.4)
  %8851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8852 = load i32, ptr %8851, align 4, !tbaa !5
  %8853 = call ptr @s2n_strerror_debug(i32 noundef %8852, ptr noundef @.str.4)
  %8854 = call ptr @__errno_location() #12
  %8855 = load i32, ptr %8854, align 4, !tbaa !5
  %8856 = call ptr @strerror(i32 noundef %8855) #11
  %8857 = call ptr @__errno_location() #12
  %8858 = load i32, ptr %8857, align 4, !tbaa !5
  %8859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8846, ptr noundef @.str.5, i32 noundef %8847, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 311, ptr noundef %8850, ptr noundef %8853, ptr noundef %8856, i32 noundef %8858) #11
  br label %8860

8860:                                             ; preds = %8843, %8826
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %8861

8861:                                             ; preds = %8860
  br label %8862

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

8863:                                             ; No predecessors!
  br label %8864

8864:                                             ; preds = %8863
  br label %8865

8865:                                             ; preds = %8864, %8806
  br label %8866

8866:                                             ; preds = %8865
  br label %8867

8867:                                             ; preds = %8866
  br label %8868

8868:                                             ; preds = %8867
  %8869 = load i32, ptr @test_count, align 4, !tbaa !5
  %8870 = add nsw i32 %8869, 1
  store i32 %8870, ptr @test_count, align 4, !tbaa !5
  %8871 = load ptr, ptr %6, align 8, !tbaa !9
  %8872 = getelementptr inbounds %struct.s2n_connection, ptr %8871, i32 0, i32 22
  %8873 = load i8, ptr %8872, align 1, !tbaa !47
  %8874 = zext i8 %8873 to i32
  %8875 = call i32 (...) @s2n_get_highest_fully_supported_tls_version()
  %8876 = icmp eq i32 %8874, %8875
  br i1 %8876, label %8930, label %8877

8877:                                             ; preds = %8868
  br label %8878

8878:                                             ; preds = %8877
  br label %8879

8879:                                             ; preds = %8878
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %8880 = call ptr @__errno_location() #12
  %8881 = load i32, ptr %8880, align 4, !tbaa !5
  store i32 %8881, ptr %158, align 4, !tbaa !5
  %8882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8883 = call i32 @s2n_print_stacktrace(ptr noundef %8882)
  %8884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8885 = trunc i8 %8884 to i1
  br i1 %8885, label %8886, label %8908

8886:                                             ; preds = %8879
  %8887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8888 = call i32 @fileno(ptr noundef %8887) #11
  %8889 = call i32 @isatty(i32 noundef %8888) #11
  %8890 = icmp ne i32 %8889, 0
  br i1 %8890, label %8891, label %8908

8891:                                             ; preds = %8886
  %8892 = load i32, ptr %158, align 4, !tbaa !5
  %8893 = call ptr @__errno_location() #12
  store i32 %8892, ptr %8893, align 4, !tbaa !5
  %8894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8895 = load i32, ptr @test_count, align 4, !tbaa !5
  %8896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8897 = load i32, ptr %8896, align 4, !tbaa !5
  %8898 = call ptr @s2n_strerror(i32 noundef %8897, ptr noundef @.str.4)
  %8899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8900 = load i32, ptr %8899, align 4, !tbaa !5
  %8901 = call ptr @s2n_strerror_debug(i32 noundef %8900, ptr noundef @.str.4)
  %8902 = call ptr @__errno_location() #12
  %8903 = load i32, ptr %8902, align 4, !tbaa !5
  %8904 = call ptr @strerror(i32 noundef %8903) #11
  %8905 = call ptr @__errno_location() #12
  %8906 = load i32, ptr %8905, align 4, !tbaa !5
  %8907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8894, ptr noundef @.str.2, i32 noundef %8895, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 313, ptr noundef %8898, ptr noundef %8901, ptr noundef %8904, i32 noundef %8906) #11
  br label %8925

8908:                                             ; preds = %8886, %8879
  %8909 = load i32, ptr %158, align 4, !tbaa !5
  %8910 = call ptr @__errno_location() #12
  store i32 %8909, ptr %8910, align 4, !tbaa !5
  %8911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8912 = load i32, ptr @test_count, align 4, !tbaa !5
  %8913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8914 = load i32, ptr %8913, align 4, !tbaa !5
  %8915 = call ptr @s2n_strerror(i32 noundef %8914, ptr noundef @.str.4)
  %8916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @s2n_strerror_debug(i32 noundef %8917, ptr noundef @.str.4)
  %8919 = call ptr @__errno_location() #12
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call ptr @strerror(i32 noundef %8920) #11
  %8922 = call ptr @__errno_location() #12
  %8923 = load i32, ptr %8922, align 4, !tbaa !5
  %8924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8911, ptr noundef @.str.5, i32 noundef %8912, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 313, ptr noundef %8915, ptr noundef %8918, ptr noundef %8921, i32 noundef %8923) #11
  br label %8925

8925:                                             ; preds = %8908, %8891
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %8926

8926:                                             ; preds = %8925
  br label %8927

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

8928:                                             ; No predecessors!
  br label %8929

8929:                                             ; preds = %8928
  br label %8930

8930:                                             ; preds = %8929, %8868
  br label %8931

8931:                                             ; preds = %8930
  br label %8932

8932:                                             ; preds = %8931
  br label %8933

8933:                                             ; preds = %8932
  %8934 = load i32, ptr @test_count, align 4, !tbaa !5
  %8935 = add nsw i32 %8934, 1
  store i32 %8935, ptr @test_count, align 4, !tbaa !5
  %8936 = load ptr, ptr %6, align 8, !tbaa !9
  %8937 = getelementptr inbounds %struct.s2n_connection, ptr %8936, i32 0, i32 23
  %8938 = load i8, ptr %8937, align 4, !tbaa !46
  %8939 = zext i8 %8938 to i32
  %8940 = icmp eq i32 %8939, 33
  br i1 %8940, label %8994, label %8941

8941:                                             ; preds = %8933
  br label %8942

8942:                                             ; preds = %8941
  br label %8943

8943:                                             ; preds = %8942
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %8944 = call ptr @__errno_location() #12
  %8945 = load i32, ptr %8944, align 4, !tbaa !5
  store i32 %8945, ptr %159, align 4, !tbaa !5
  %8946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8947 = call i32 @s2n_print_stacktrace(ptr noundef %8946)
  %8948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8949 = trunc i8 %8948 to i1
  br i1 %8949, label %8950, label %8972

8950:                                             ; preds = %8943
  %8951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8952 = call i32 @fileno(ptr noundef %8951) #11
  %8953 = call i32 @isatty(i32 noundef %8952) #11
  %8954 = icmp ne i32 %8953, 0
  br i1 %8954, label %8955, label %8972

8955:                                             ; preds = %8950
  %8956 = load i32, ptr %159, align 4, !tbaa !5
  %8957 = call ptr @__errno_location() #12
  store i32 %8956, ptr %8957, align 4, !tbaa !5
  %8958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8959 = load i32, ptr @test_count, align 4, !tbaa !5
  %8960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8961 = load i32, ptr %8960, align 4, !tbaa !5
  %8962 = call ptr @s2n_strerror(i32 noundef %8961, ptr noundef @.str.4)
  %8963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8964 = load i32, ptr %8963, align 4, !tbaa !5
  %8965 = call ptr @s2n_strerror_debug(i32 noundef %8964, ptr noundef @.str.4)
  %8966 = call ptr @__errno_location() #12
  %8967 = load i32, ptr %8966, align 4, !tbaa !5
  %8968 = call ptr @strerror(i32 noundef %8967) #11
  %8969 = call ptr @__errno_location() #12
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  %8971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8958, ptr noundef @.str.2, i32 noundef %8959, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 314, ptr noundef %8962, ptr noundef %8965, ptr noundef %8968, i32 noundef %8970) #11
  br label %8989

8972:                                             ; preds = %8950, %8943
  %8973 = load i32, ptr %159, align 4, !tbaa !5
  %8974 = call ptr @__errno_location() #12
  store i32 %8973, ptr %8974, align 4, !tbaa !5
  %8975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8976 = load i32, ptr @test_count, align 4, !tbaa !5
  %8977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8978 = load i32, ptr %8977, align 4, !tbaa !5
  %8979 = call ptr @s2n_strerror(i32 noundef %8978, ptr noundef @.str.4)
  %8980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  %8982 = call ptr @s2n_strerror_debug(i32 noundef %8981, ptr noundef @.str.4)
  %8983 = call ptr @__errno_location() #12
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call ptr @strerror(i32 noundef %8984) #11
  %8986 = call ptr @__errno_location() #12
  %8987 = load i32, ptr %8986, align 4, !tbaa !5
  %8988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8975, ptr noundef @.str.5, i32 noundef %8976, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 314, ptr noundef %8979, ptr noundef %8982, ptr noundef %8985, i32 noundef %8987) #11
  br label %8989

8989:                                             ; preds = %8972, %8955
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %8990

8990:                                             ; preds = %8989
  br label %8991

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

8992:                                             ; No predecessors!
  br label %8993

8993:                                             ; preds = %8992
  br label %8994

8994:                                             ; preds = %8993, %8933
  br label %8995

8995:                                             ; preds = %8994
  br label %8996

8996:                                             ; preds = %8995
  br label %8997

8997:                                             ; preds = %8996
  %8998 = load i32, ptr @test_count, align 4, !tbaa !5
  %8999 = add nsw i32 %8998, 1
  store i32 %8999, ptr @test_count, align 4, !tbaa !5
  %9000 = load ptr, ptr %6, align 8, !tbaa !9
  %9001 = getelementptr inbounds %struct.s2n_connection, ptr %9000, i32 0, i32 21
  %9002 = load i8, ptr %9001, align 2, !tbaa !42
  %9003 = zext i8 %9002 to i32
  %9004 = icmp eq i32 %9003, 33
  br i1 %9004, label %9058, label %9005

9005:                                             ; preds = %8997
  br label %9006

9006:                                             ; preds = %9005
  br label %9007

9007:                                             ; preds = %9006
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %9008 = call ptr @__errno_location() #12
  %9009 = load i32, ptr %9008, align 4, !tbaa !5
  store i32 %9009, ptr %160, align 4, !tbaa !5
  %9010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9011 = call i32 @s2n_print_stacktrace(ptr noundef %9010)
  %9012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9013 = trunc i8 %9012 to i1
  br i1 %9013, label %9014, label %9036

9014:                                             ; preds = %9007
  %9015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9016 = call i32 @fileno(ptr noundef %9015) #11
  %9017 = call i32 @isatty(i32 noundef %9016) #11
  %9018 = icmp ne i32 %9017, 0
  br i1 %9018, label %9019, label %9036

9019:                                             ; preds = %9014
  %9020 = load i32, ptr %160, align 4, !tbaa !5
  %9021 = call ptr @__errno_location() #12
  store i32 %9020, ptr %9021, align 4, !tbaa !5
  %9022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9023 = load i32, ptr @test_count, align 4, !tbaa !5
  %9024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9025 = load i32, ptr %9024, align 4, !tbaa !5
  %9026 = call ptr @s2n_strerror(i32 noundef %9025, ptr noundef @.str.4)
  %9027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9028 = load i32, ptr %9027, align 4, !tbaa !5
  %9029 = call ptr @s2n_strerror_debug(i32 noundef %9028, ptr noundef @.str.4)
  %9030 = call ptr @__errno_location() #12
  %9031 = load i32, ptr %9030, align 4, !tbaa !5
  %9032 = call ptr @strerror(i32 noundef %9031) #11
  %9033 = call ptr @__errno_location() #12
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  %9035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9022, ptr noundef @.str.2, i32 noundef %9023, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 315, ptr noundef %9026, ptr noundef %9029, ptr noundef %9032, i32 noundef %9034) #11
  br label %9053

9036:                                             ; preds = %9014, %9007
  %9037 = load i32, ptr %160, align 4, !tbaa !5
  %9038 = call ptr @__errno_location() #12
  store i32 %9037, ptr %9038, align 4, !tbaa !5
  %9039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9040 = load i32, ptr @test_count, align 4, !tbaa !5
  %9041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9042 = load i32, ptr %9041, align 4, !tbaa !5
  %9043 = call ptr @s2n_strerror(i32 noundef %9042, ptr noundef @.str.4)
  %9044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9045 = load i32, ptr %9044, align 4, !tbaa !5
  %9046 = call ptr @s2n_strerror_debug(i32 noundef %9045, ptr noundef @.str.4)
  %9047 = call ptr @__errno_location() #12
  %9048 = load i32, ptr %9047, align 4, !tbaa !5
  %9049 = call ptr @strerror(i32 noundef %9048) #11
  %9050 = call ptr @__errno_location() #12
  %9051 = load i32, ptr %9050, align 4, !tbaa !5
  %9052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9039, ptr noundef @.str.5, i32 noundef %9040, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 315, ptr noundef %9043, ptr noundef %9046, ptr noundef %9049, i32 noundef %9051) #11
  br label %9053

9053:                                             ; preds = %9036, %9019
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %9054

9054:                                             ; preds = %9053
  br label %9055

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

9056:                                             ; No predecessors!
  br label %9057

9057:                                             ; preds = %9056
  br label %9058

9058:                                             ; preds = %9057, %8997
  br label %9059

9059:                                             ; preds = %9058
  br label %9060

9060:                                             ; preds = %9059
  br label %9061

9061:                                             ; preds = %9060
  %9062 = load i32, ptr @test_count, align 4, !tbaa !5
  %9063 = add nsw i32 %9062, 1
  store i32 %9063, ptr @test_count, align 4, !tbaa !5
  %9064 = load ptr, ptr %6, align 8, !tbaa !9
  %9065 = getelementptr inbounds %struct.s2n_connection, ptr %9064, i32 0, i32 20
  %9066 = load i8, ptr %9065, align 1, !tbaa !15
  %9067 = zext i8 %9066 to i32
  %9068 = icmp eq i32 %9067, 33
  br i1 %9068, label %9122, label %9069

9069:                                             ; preds = %9061
  br label %9070

9070:                                             ; preds = %9069
  br label %9071

9071:                                             ; preds = %9070
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %9072 = call ptr @__errno_location() #12
  %9073 = load i32, ptr %9072, align 4, !tbaa !5
  store i32 %9073, ptr %161, align 4, !tbaa !5
  %9074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9075 = call i32 @s2n_print_stacktrace(ptr noundef %9074)
  %9076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9077 = trunc i8 %9076 to i1
  br i1 %9077, label %9078, label %9100

9078:                                             ; preds = %9071
  %9079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9080 = call i32 @fileno(ptr noundef %9079) #11
  %9081 = call i32 @isatty(i32 noundef %9080) #11
  %9082 = icmp ne i32 %9081, 0
  br i1 %9082, label %9083, label %9100

9083:                                             ; preds = %9078
  %9084 = load i32, ptr %161, align 4, !tbaa !5
  %9085 = call ptr @__errno_location() #12
  store i32 %9084, ptr %9085, align 4, !tbaa !5
  %9086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9087 = load i32, ptr @test_count, align 4, !tbaa !5
  %9088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9089 = load i32, ptr %9088, align 4, !tbaa !5
  %9090 = call ptr @s2n_strerror(i32 noundef %9089, ptr noundef @.str.4)
  %9091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9092 = load i32, ptr %9091, align 4, !tbaa !5
  %9093 = call ptr @s2n_strerror_debug(i32 noundef %9092, ptr noundef @.str.4)
  %9094 = call ptr @__errno_location() #12
  %9095 = load i32, ptr %9094, align 4, !tbaa !5
  %9096 = call ptr @strerror(i32 noundef %9095) #11
  %9097 = call ptr @__errno_location() #12
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  %9099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9086, ptr noundef @.str.2, i32 noundef %9087, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 316, ptr noundef %9090, ptr noundef %9093, ptr noundef %9096, i32 noundef %9098) #11
  br label %9117

9100:                                             ; preds = %9078, %9071
  %9101 = load i32, ptr %161, align 4, !tbaa !5
  %9102 = call ptr @__errno_location() #12
  store i32 %9101, ptr %9102, align 4, !tbaa !5
  %9103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9104 = load i32, ptr @test_count, align 4, !tbaa !5
  %9105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9106 = load i32, ptr %9105, align 4, !tbaa !5
  %9107 = call ptr @s2n_strerror(i32 noundef %9106, ptr noundef @.str.4)
  %9108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9109 = load i32, ptr %9108, align 4, !tbaa !5
  %9110 = call ptr @s2n_strerror_debug(i32 noundef %9109, ptr noundef @.str.4)
  %9111 = call ptr @__errno_location() #12
  %9112 = load i32, ptr %9111, align 4, !tbaa !5
  %9113 = call ptr @strerror(i32 noundef %9112) #11
  %9114 = call ptr @__errno_location() #12
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9103, ptr noundef @.str.5, i32 noundef %9104, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 316, ptr noundef %9107, ptr noundef %9110, ptr noundef %9113, i32 noundef %9115) #11
  br label %9117

9117:                                             ; preds = %9100, %9083
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %9118

9118:                                             ; preds = %9117
  br label %9119

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

9120:                                             ; No predecessors!
  br label %9121

9121:                                             ; preds = %9120
  br label %9122

9122:                                             ; preds = %9121, %9061
  br label %9123

9123:                                             ; preds = %9122
  br label %9124

9124:                                             ; preds = %9123
  %9125 = load ptr, ptr %6, align 8, !tbaa !9
  %9126 = call i32 @s2n_connection_free(ptr noundef %9125)
  %9127 = load ptr, ptr %7, align 8, !tbaa !9
  %9128 = call i32 @s2n_connection_free(ptr noundef %9127)
  br label %9129

9129:                                             ; preds = %9124
  %9130 = load i32, ptr @test_count, align 4, !tbaa !5
  %9131 = add nsw i32 %9130, 1
  store i32 %9131, ptr @test_count, align 4, !tbaa !5
  %9132 = call i32 (...) @s2n_disable_tls13_in_test()
  %9133 = icmp eq i32 %9132, -1
  br i1 %9133, label %9134, label %9187

9134:                                             ; preds = %9129
  br label %9135

9135:                                             ; preds = %9134
  br label %9136

9136:                                             ; preds = %9135
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %9137 = call ptr @__errno_location() #12
  %9138 = load i32, ptr %9137, align 4, !tbaa !5
  store i32 %9138, ptr %162, align 4, !tbaa !5
  %9139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9140 = call i32 @s2n_print_stacktrace(ptr noundef %9139)
  %9141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9142 = trunc i8 %9141 to i1
  br i1 %9142, label %9143, label %9165

9143:                                             ; preds = %9136
  %9144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9145 = call i32 @fileno(ptr noundef %9144) #11
  %9146 = call i32 @isatty(i32 noundef %9145) #11
  %9147 = icmp ne i32 %9146, 0
  br i1 %9147, label %9148, label %9165

9148:                                             ; preds = %9143
  %9149 = load i32, ptr %162, align 4, !tbaa !5
  %9150 = call ptr @__errno_location() #12
  store i32 %9149, ptr %9150, align 4, !tbaa !5
  %9151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9152 = load i32, ptr @test_count, align 4, !tbaa !5
  %9153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9154 = load i32, ptr %9153, align 4, !tbaa !5
  %9155 = call ptr @s2n_strerror(i32 noundef %9154, ptr noundef @.str.4)
  %9156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9157 = load i32, ptr %9156, align 4, !tbaa !5
  %9158 = call ptr @s2n_strerror_debug(i32 noundef %9157, ptr noundef @.str.4)
  %9159 = call ptr @__errno_location() #12
  %9160 = load i32, ptr %9159, align 4, !tbaa !5
  %9161 = call ptr @strerror(i32 noundef %9160) #11
  %9162 = call ptr @__errno_location() #12
  %9163 = load i32, ptr %9162, align 4, !tbaa !5
  %9164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9151, ptr noundef @.str.2, i32 noundef %9152, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 320, ptr noundef %9155, ptr noundef %9158, ptr noundef %9161, i32 noundef %9163) #11
  br label %9182

9165:                                             ; preds = %9143, %9136
  %9166 = load i32, ptr %162, align 4, !tbaa !5
  %9167 = call ptr @__errno_location() #12
  store i32 %9166, ptr %9167, align 4, !tbaa !5
  %9168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9169 = load i32, ptr @test_count, align 4, !tbaa !5
  %9170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9171 = load i32, ptr %9170, align 4, !tbaa !5
  %9172 = call ptr @s2n_strerror(i32 noundef %9171, ptr noundef @.str.4)
  %9173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  %9175 = call ptr @s2n_strerror_debug(i32 noundef %9174, ptr noundef @.str.4)
  %9176 = call ptr @__errno_location() #12
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call ptr @strerror(i32 noundef %9177) #11
  %9179 = call ptr @__errno_location() #12
  %9180 = load i32, ptr %9179, align 4, !tbaa !5
  %9181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9168, ptr noundef @.str.5, i32 noundef %9169, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 320, ptr noundef %9172, ptr noundef %9175, ptr noundef %9178, i32 noundef %9180) #11
  br label %9182

9182:                                             ; preds = %9165, %9148
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %9183

9183:                                             ; preds = %9182
  br label %9184

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

9185:                                             ; No predecessors!
  br label %9186

9186:                                             ; preds = %9185
  br label %9187

9187:                                             ; preds = %9186, %9129
  br label %9188

9188:                                             ; preds = %9187
  br label %9189

9189:                                             ; preds = %9188
  call void @llvm.lifetime.end.p0(i64 2, ptr %153) #11
  br label %9190

9190:                                             ; preds = %9189
  %9191 = load i32, ptr @test_count, align 4, !tbaa !5
  %9192 = add nsw i32 %9191, 1
  store i32 %9192, ptr @test_count, align 4, !tbaa !5
  %9193 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9193, ptr %7, align 8, !tbaa !9
  %9194 = icmp eq ptr %9193, null
  br i1 %9194, label %9195, label %9248

9195:                                             ; preds = %9190
  br label %9196

9196:                                             ; preds = %9195
  br label %9197

9197:                                             ; preds = %9196
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %9198 = call ptr @__errno_location() #12
  %9199 = load i32, ptr %9198, align 4, !tbaa !5
  store i32 %9199, ptr %163, align 4, !tbaa !5
  %9200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9201 = call i32 @s2n_print_stacktrace(ptr noundef %9200)
  %9202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9203 = trunc i8 %9202 to i1
  br i1 %9203, label %9204, label %9226

9204:                                             ; preds = %9197
  %9205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9206 = call i32 @fileno(ptr noundef %9205) #11
  %9207 = call i32 @isatty(i32 noundef %9206) #11
  %9208 = icmp ne i32 %9207, 0
  br i1 %9208, label %9209, label %9226

9209:                                             ; preds = %9204
  %9210 = load i32, ptr %163, align 4, !tbaa !5
  %9211 = call ptr @__errno_location() #12
  store i32 %9210, ptr %9211, align 4, !tbaa !5
  %9212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9213 = load i32, ptr @test_count, align 4, !tbaa !5
  %9214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9215 = load i32, ptr %9214, align 4, !tbaa !5
  %9216 = call ptr @s2n_strerror(i32 noundef %9215, ptr noundef @.str.4)
  %9217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9218 = load i32, ptr %9217, align 4, !tbaa !5
  %9219 = call ptr @s2n_strerror_debug(i32 noundef %9218, ptr noundef @.str.4)
  %9220 = call ptr @__errno_location() #12
  %9221 = load i32, ptr %9220, align 4, !tbaa !5
  %9222 = call ptr @strerror(i32 noundef %9221) #11
  %9223 = call ptr @__errno_location() #12
  %9224 = load i32, ptr %9223, align 4, !tbaa !5
  %9225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9212, ptr noundef @.str.2, i32 noundef %9213, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 325, ptr noundef %9216, ptr noundef %9219, ptr noundef %9222, i32 noundef %9224) #11
  br label %9243

9226:                                             ; preds = %9204, %9197
  %9227 = load i32, ptr %163, align 4, !tbaa !5
  %9228 = call ptr @__errno_location() #12
  store i32 %9227, ptr %9228, align 4, !tbaa !5
  %9229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9230 = load i32, ptr @test_count, align 4, !tbaa !5
  %9231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9232 = load i32, ptr %9231, align 4, !tbaa !5
  %9233 = call ptr @s2n_strerror(i32 noundef %9232, ptr noundef @.str.4)
  %9234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9235 = load i32, ptr %9234, align 4, !tbaa !5
  %9236 = call ptr @s2n_strerror_debug(i32 noundef %9235, ptr noundef @.str.4)
  %9237 = call ptr @__errno_location() #12
  %9238 = load i32, ptr %9237, align 4, !tbaa !5
  %9239 = call ptr @strerror(i32 noundef %9238) #11
  %9240 = call ptr @__errno_location() #12
  %9241 = load i32, ptr %9240, align 4, !tbaa !5
  %9242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9229, ptr noundef @.str.5, i32 noundef %9230, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 325, ptr noundef %9233, ptr noundef %9236, ptr noundef %9239, i32 noundef %9241) #11
  br label %9243

9243:                                             ; preds = %9226, %9209
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %9244

9244:                                             ; preds = %9243
  br label %9245

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

9246:                                             ; No predecessors!
  br label %9247

9247:                                             ; preds = %9246
  br label %9248

9248:                                             ; preds = %9247, %9190
  br label %9249

9249:                                             ; preds = %9248
  br label %9250

9250:                                             ; preds = %9249
  br label %9251

9251:                                             ; preds = %9250
  %9252 = load i32, ptr @test_count, align 4, !tbaa !5
  %9253 = add nsw i32 %9252, 1
  store i32 %9253, ptr @test_count, align 4, !tbaa !5
  %9254 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9254, ptr %6, align 8, !tbaa !9
  %9255 = icmp eq ptr %9254, null
  br i1 %9255, label %9256, label %9309

9256:                                             ; preds = %9251
  br label %9257

9257:                                             ; preds = %9256
  br label %9258

9258:                                             ; preds = %9257
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %9259 = call ptr @__errno_location() #12
  %9260 = load i32, ptr %9259, align 4, !tbaa !5
  store i32 %9260, ptr %164, align 4, !tbaa !5
  %9261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9262 = call i32 @s2n_print_stacktrace(ptr noundef %9261)
  %9263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9264 = trunc i8 %9263 to i1
  br i1 %9264, label %9265, label %9287

9265:                                             ; preds = %9258
  %9266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9267 = call i32 @fileno(ptr noundef %9266) #11
  %9268 = call i32 @isatty(i32 noundef %9267) #11
  %9269 = icmp ne i32 %9268, 0
  br i1 %9269, label %9270, label %9287

9270:                                             ; preds = %9265
  %9271 = load i32, ptr %164, align 4, !tbaa !5
  %9272 = call ptr @__errno_location() #12
  store i32 %9271, ptr %9272, align 4, !tbaa !5
  %9273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9274 = load i32, ptr @test_count, align 4, !tbaa !5
  %9275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9276 = load i32, ptr %9275, align 4, !tbaa !5
  %9277 = call ptr @s2n_strerror(i32 noundef %9276, ptr noundef @.str.4)
  %9278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @s2n_strerror_debug(i32 noundef %9279, ptr noundef @.str.4)
  %9281 = call ptr @__errno_location() #12
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call ptr @strerror(i32 noundef %9282) #11
  %9284 = call ptr @__errno_location() #12
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9273, ptr noundef @.str.2, i32 noundef %9274, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 326, ptr noundef %9277, ptr noundef %9280, ptr noundef %9283, i32 noundef %9285) #11
  br label %9304

9287:                                             ; preds = %9265, %9258
  %9288 = load i32, ptr %164, align 4, !tbaa !5
  %9289 = call ptr @__errno_location() #12
  store i32 %9288, ptr %9289, align 4, !tbaa !5
  %9290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9291 = load i32, ptr @test_count, align 4, !tbaa !5
  %9292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9293 = load i32, ptr %9292, align 4, !tbaa !5
  %9294 = call ptr @s2n_strerror(i32 noundef %9293, ptr noundef @.str.4)
  %9295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9296 = load i32, ptr %9295, align 4, !tbaa !5
  %9297 = call ptr @s2n_strerror_debug(i32 noundef %9296, ptr noundef @.str.4)
  %9298 = call ptr @__errno_location() #12
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  %9300 = call ptr @strerror(i32 noundef %9299) #11
  %9301 = call ptr @__errno_location() #12
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9290, ptr noundef @.str.5, i32 noundef %9291, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 326, ptr noundef %9294, ptr noundef %9297, ptr noundef %9300, i32 noundef %9302) #11
  br label %9304

9304:                                             ; preds = %9287, %9270
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %9305

9305:                                             ; preds = %9304
  br label %9306

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

9307:                                             ; No predecessors!
  br label %9308

9308:                                             ; preds = %9307
  br label %9309

9309:                                             ; preds = %9308, %9251
  br label %9310

9310:                                             ; preds = %9309
  br label %9311

9311:                                             ; preds = %9310
  br label %9312

9312:                                             ; preds = %9311
  %9313 = load i32, ptr @test_count, align 4, !tbaa !5
  %9314 = add nsw i32 %9313, 1
  store i32 %9314, ptr @test_count, align 4, !tbaa !5
  %9315 = load ptr, ptr %7, align 8, !tbaa !9
  %9316 = load ptr, ptr %10, align 8, !tbaa !9
  %9317 = call i32 @s2n_connection_set_config(ptr noundef %9315, ptr noundef %9316)
  %9318 = icmp eq i32 %9317, -1
  br i1 %9318, label %9319, label %9372

9319:                                             ; preds = %9312
  br label %9320

9320:                                             ; preds = %9319
  br label %9321

9321:                                             ; preds = %9320
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %9322 = call ptr @__errno_location() #12
  %9323 = load i32, ptr %9322, align 4, !tbaa !5
  store i32 %9323, ptr %165, align 4, !tbaa !5
  %9324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9325 = call i32 @s2n_print_stacktrace(ptr noundef %9324)
  %9326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9327 = trunc i8 %9326 to i1
  br i1 %9327, label %9328, label %9350

9328:                                             ; preds = %9321
  %9329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9330 = call i32 @fileno(ptr noundef %9329) #11
  %9331 = call i32 @isatty(i32 noundef %9330) #11
  %9332 = icmp ne i32 %9331, 0
  br i1 %9332, label %9333, label %9350

9333:                                             ; preds = %9328
  %9334 = load i32, ptr %165, align 4, !tbaa !5
  %9335 = call ptr @__errno_location() #12
  store i32 %9334, ptr %9335, align 4, !tbaa !5
  %9336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9337 = load i32, ptr @test_count, align 4, !tbaa !5
  %9338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9339 = load i32, ptr %9338, align 4, !tbaa !5
  %9340 = call ptr @s2n_strerror(i32 noundef %9339, ptr noundef @.str.4)
  %9341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9342 = load i32, ptr %9341, align 4, !tbaa !5
  %9343 = call ptr @s2n_strerror_debug(i32 noundef %9342, ptr noundef @.str.4)
  %9344 = call ptr @__errno_location() #12
  %9345 = load i32, ptr %9344, align 4, !tbaa !5
  %9346 = call ptr @strerror(i32 noundef %9345) #11
  %9347 = call ptr @__errno_location() #12
  %9348 = load i32, ptr %9347, align 4, !tbaa !5
  %9349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9336, ptr noundef @.str.2, i32 noundef %9337, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 328, ptr noundef %9340, ptr noundef %9343, ptr noundef %9346, i32 noundef %9348) #11
  br label %9367

9350:                                             ; preds = %9328, %9321
  %9351 = load i32, ptr %165, align 4, !tbaa !5
  %9352 = call ptr @__errno_location() #12
  store i32 %9351, ptr %9352, align 4, !tbaa !5
  %9353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9354 = load i32, ptr @test_count, align 4, !tbaa !5
  %9355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9356 = load i32, ptr %9355, align 4, !tbaa !5
  %9357 = call ptr @s2n_strerror(i32 noundef %9356, ptr noundef @.str.4)
  %9358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9359 = load i32, ptr %9358, align 4, !tbaa !5
  %9360 = call ptr @s2n_strerror_debug(i32 noundef %9359, ptr noundef @.str.4)
  %9361 = call ptr @__errno_location() #12
  %9362 = load i32, ptr %9361, align 4, !tbaa !5
  %9363 = call ptr @strerror(i32 noundef %9362) #11
  %9364 = call ptr @__errno_location() #12
  %9365 = load i32, ptr %9364, align 4, !tbaa !5
  %9366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9353, ptr noundef @.str.5, i32 noundef %9354, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 328, ptr noundef %9357, ptr noundef %9360, ptr noundef %9363, i32 noundef %9365) #11
  br label %9367

9367:                                             ; preds = %9350, %9333
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %9368

9368:                                             ; preds = %9367
  br label %9369

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

9370:                                             ; No predecessors!
  br label %9371

9371:                                             ; preds = %9370
  br label %9372

9372:                                             ; preds = %9371, %9312
  br label %9373

9373:                                             ; preds = %9372
  br label %9374

9374:                                             ; preds = %9373
  br label %9375

9375:                                             ; preds = %9374
  %9376 = load i32, ptr @test_count, align 4, !tbaa !5
  %9377 = add nsw i32 %9376, 1
  store i32 %9377, ptr @test_count, align 4, !tbaa !5
  %9378 = load ptr, ptr %7, align 8, !tbaa !9
  %9379 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %9378, ptr noundef @.str.58)
  %9380 = icmp eq i32 %9379, -1
  br i1 %9380, label %9381, label %9434

9381:                                             ; preds = %9375
  br label %9382

9382:                                             ; preds = %9381
  br label %9383

9383:                                             ; preds = %9382
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %9384 = call ptr @__errno_location() #12
  %9385 = load i32, ptr %9384, align 4, !tbaa !5
  store i32 %9385, ptr %166, align 4, !tbaa !5
  %9386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9387 = call i32 @s2n_print_stacktrace(ptr noundef %9386)
  %9388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9389 = trunc i8 %9388 to i1
  br i1 %9389, label %9390, label %9412

9390:                                             ; preds = %9383
  %9391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9392 = call i32 @fileno(ptr noundef %9391) #11
  %9393 = call i32 @isatty(i32 noundef %9392) #11
  %9394 = icmp ne i32 %9393, 0
  br i1 %9394, label %9395, label %9412

9395:                                             ; preds = %9390
  %9396 = load i32, ptr %166, align 4, !tbaa !5
  %9397 = call ptr @__errno_location() #12
  store i32 %9396, ptr %9397, align 4, !tbaa !5
  %9398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9399 = load i32, ptr @test_count, align 4, !tbaa !5
  %9400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9401 = load i32, ptr %9400, align 4, !tbaa !5
  %9402 = call ptr @s2n_strerror(i32 noundef %9401, ptr noundef @.str.4)
  %9403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9404 = load i32, ptr %9403, align 4, !tbaa !5
  %9405 = call ptr @s2n_strerror_debug(i32 noundef %9404, ptr noundef @.str.4)
  %9406 = call ptr @__errno_location() #12
  %9407 = load i32, ptr %9406, align 4, !tbaa !5
  %9408 = call ptr @strerror(i32 noundef %9407) #11
  %9409 = call ptr @__errno_location() #12
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  %9411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9398, ptr noundef @.str.2, i32 noundef %9399, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 329, ptr noundef %9402, ptr noundef %9405, ptr noundef %9408, i32 noundef %9410) #11
  br label %9429

9412:                                             ; preds = %9390, %9383
  %9413 = load i32, ptr %166, align 4, !tbaa !5
  %9414 = call ptr @__errno_location() #12
  store i32 %9413, ptr %9414, align 4, !tbaa !5
  %9415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9416 = load i32, ptr @test_count, align 4, !tbaa !5
  %9417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9418 = load i32, ptr %9417, align 4, !tbaa !5
  %9419 = call ptr @s2n_strerror(i32 noundef %9418, ptr noundef @.str.4)
  %9420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9421 = load i32, ptr %9420, align 4, !tbaa !5
  %9422 = call ptr @s2n_strerror_debug(i32 noundef %9421, ptr noundef @.str.4)
  %9423 = call ptr @__errno_location() #12
  %9424 = load i32, ptr %9423, align 4, !tbaa !5
  %9425 = call ptr @strerror(i32 noundef %9424) #11
  %9426 = call ptr @__errno_location() #12
  %9427 = load i32, ptr %9426, align 4, !tbaa !5
  %9428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9415, ptr noundef @.str.5, i32 noundef %9416, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 329, ptr noundef %9419, ptr noundef %9422, ptr noundef %9425, i32 noundef %9427) #11
  br label %9429

9429:                                             ; preds = %9412, %9395
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %9430

9430:                                             ; preds = %9429
  br label %9431

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

9432:                                             ; No predecessors!
  br label %9433

9433:                                             ; preds = %9432
  br label %9434

9434:                                             ; preds = %9433, %9375
  br label %9435

9435:                                             ; preds = %9434
  br label %9436

9436:                                             ; preds = %9435
  %9437 = load ptr, ptr %7, align 8, !tbaa !9
  %9438 = getelementptr inbounds %struct.s2n_connection, ptr %9437, i32 0, i32 52
  %9439 = getelementptr inbounds %struct.s2n_handshake, ptr %9438, i32 0, i32 0
  store ptr %9439, ptr %8, align 8, !tbaa !9
  br label %9440

9440:                                             ; preds = %9436
  %9441 = load i32, ptr @test_count, align 4, !tbaa !5
  %9442 = add nsw i32 %9441, 1
  store i32 %9442, ptr @test_count, align 4, !tbaa !5
  %9443 = load ptr, ptr %7, align 8, !tbaa !9
  %9444 = call i32 @s2n_client_hello_send(ptr noundef %9443)
  %9445 = icmp eq i32 %9444, -1
  br i1 %9445, label %9446, label %9499

9446:                                             ; preds = %9440
  br label %9447

9447:                                             ; preds = %9446
  br label %9448

9448:                                             ; preds = %9447
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %9449 = call ptr @__errno_location() #12
  %9450 = load i32, ptr %9449, align 4, !tbaa !5
  store i32 %9450, ptr %167, align 4, !tbaa !5
  %9451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9452 = call i32 @s2n_print_stacktrace(ptr noundef %9451)
  %9453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9454 = trunc i8 %9453 to i1
  br i1 %9454, label %9455, label %9477

9455:                                             ; preds = %9448
  %9456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9457 = call i32 @fileno(ptr noundef %9456) #11
  %9458 = call i32 @isatty(i32 noundef %9457) #11
  %9459 = icmp ne i32 %9458, 0
  br i1 %9459, label %9460, label %9477

9460:                                             ; preds = %9455
  %9461 = load i32, ptr %167, align 4, !tbaa !5
  %9462 = call ptr @__errno_location() #12
  store i32 %9461, ptr %9462, align 4, !tbaa !5
  %9463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9464 = load i32, ptr @test_count, align 4, !tbaa !5
  %9465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9466 = load i32, ptr %9465, align 4, !tbaa !5
  %9467 = call ptr @s2n_strerror(i32 noundef %9466, ptr noundef @.str.4)
  %9468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9469 = load i32, ptr %9468, align 4, !tbaa !5
  %9470 = call ptr @s2n_strerror_debug(i32 noundef %9469, ptr noundef @.str.4)
  %9471 = call ptr @__errno_location() #12
  %9472 = load i32, ptr %9471, align 4, !tbaa !5
  %9473 = call ptr @strerror(i32 noundef %9472) #11
  %9474 = call ptr @__errno_location() #12
  %9475 = load i32, ptr %9474, align 4, !tbaa !5
  %9476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9463, ptr noundef @.str.2, i32 noundef %9464, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 333, ptr noundef %9467, ptr noundef %9470, ptr noundef %9473, i32 noundef %9475) #11
  br label %9494

9477:                                             ; preds = %9455, %9448
  %9478 = load i32, ptr %167, align 4, !tbaa !5
  %9479 = call ptr @__errno_location() #12
  store i32 %9478, ptr %9479, align 4, !tbaa !5
  %9480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9481 = load i32, ptr @test_count, align 4, !tbaa !5
  %9482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9483 = load i32, ptr %9482, align 4, !tbaa !5
  %9484 = call ptr @s2n_strerror(i32 noundef %9483, ptr noundef @.str.4)
  %9485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9486 = load i32, ptr %9485, align 4, !tbaa !5
  %9487 = call ptr @s2n_strerror_debug(i32 noundef %9486, ptr noundef @.str.4)
  %9488 = call ptr @__errno_location() #12
  %9489 = load i32, ptr %9488, align 4, !tbaa !5
  %9490 = call ptr @strerror(i32 noundef %9489) #11
  %9491 = call ptr @__errno_location() #12
  %9492 = load i32, ptr %9491, align 4, !tbaa !5
  %9493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9480, ptr noundef @.str.5, i32 noundef %9481, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 333, ptr noundef %9484, ptr noundef %9487, ptr noundef %9490, i32 noundef %9492) #11
  br label %9494

9494:                                             ; preds = %9477, %9460
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %9495

9495:                                             ; preds = %9494
  br label %9496

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

9497:                                             ; No predecessors!
  br label %9498

9498:                                             ; preds = %9497
  br label %9499

9499:                                             ; preds = %9498, %9440
  br label %9500

9500:                                             ; preds = %9499
  br label %9501

9501:                                             ; preds = %9500
  call void @llvm.lifetime.start.p0(i64 2, ptr %168) #11
  call void @llvm.memset.p0.i64(ptr align 1 %168, i8 0, i64 2, i1 false)
  br label %9502

9502:                                             ; preds = %9501
  %9503 = load i32, ptr @test_count, align 4, !tbaa !5
  %9504 = add nsw i32 %9503, 1
  store i32 %9504, ptr @test_count, align 4, !tbaa !5
  %9505 = load ptr, ptr %8, align 8, !tbaa !9
  %9506 = call i32 @s2n_stuffer_rewrite(ptr noundef %9505)
  %9507 = icmp eq i32 %9506, -1
  br i1 %9507, label %9508, label %9561

9508:                                             ; preds = %9502
  br label %9509

9509:                                             ; preds = %9508
  br label %9510

9510:                                             ; preds = %9509
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %9511 = call ptr @__errno_location() #12
  %9512 = load i32, ptr %9511, align 4, !tbaa !5
  store i32 %9512, ptr %169, align 4, !tbaa !5
  %9513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9514 = call i32 @s2n_print_stacktrace(ptr noundef %9513)
  %9515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9516 = trunc i8 %9515 to i1
  br i1 %9516, label %9517, label %9539

9517:                                             ; preds = %9510
  %9518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9519 = call i32 @fileno(ptr noundef %9518) #11
  %9520 = call i32 @isatty(i32 noundef %9519) #11
  %9521 = icmp ne i32 %9520, 0
  br i1 %9521, label %9522, label %9539

9522:                                             ; preds = %9517
  %9523 = load i32, ptr %169, align 4, !tbaa !5
  %9524 = call ptr @__errno_location() #12
  store i32 %9523, ptr %9524, align 4, !tbaa !5
  %9525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9526 = load i32, ptr @test_count, align 4, !tbaa !5
  %9527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9528 = load i32, ptr %9527, align 4, !tbaa !5
  %9529 = call ptr @s2n_strerror(i32 noundef %9528, ptr noundef @.str.4)
  %9530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9531 = load i32, ptr %9530, align 4, !tbaa !5
  %9532 = call ptr @s2n_strerror_debug(i32 noundef %9531, ptr noundef @.str.4)
  %9533 = call ptr @__errno_location() #12
  %9534 = load i32, ptr %9533, align 4, !tbaa !5
  %9535 = call ptr @strerror(i32 noundef %9534) #11
  %9536 = call ptr @__errno_location() #12
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9525, ptr noundef @.str.2, i32 noundef %9526, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 338, ptr noundef %9529, ptr noundef %9532, ptr noundef %9535, i32 noundef %9537) #11
  br label %9556

9539:                                             ; preds = %9517, %9510
  %9540 = load i32, ptr %169, align 4, !tbaa !5
  %9541 = call ptr @__errno_location() #12
  store i32 %9540, ptr %9541, align 4, !tbaa !5
  %9542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9543 = load i32, ptr @test_count, align 4, !tbaa !5
  %9544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9545 = load i32, ptr %9544, align 4, !tbaa !5
  %9546 = call ptr @s2n_strerror(i32 noundef %9545, ptr noundef @.str.4)
  %9547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9548 = load i32, ptr %9547, align 4, !tbaa !5
  %9549 = call ptr @s2n_strerror_debug(i32 noundef %9548, ptr noundef @.str.4)
  %9550 = call ptr @__errno_location() #12
  %9551 = load i32, ptr %9550, align 4, !tbaa !5
  %9552 = call ptr @strerror(i32 noundef %9551) #11
  %9553 = call ptr @__errno_location() #12
  %9554 = load i32, ptr %9553, align 4, !tbaa !5
  %9555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9542, ptr noundef @.str.5, i32 noundef %9543, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 338, ptr noundef %9546, ptr noundef %9549, ptr noundef %9552, i32 noundef %9554) #11
  br label %9556

9556:                                             ; preds = %9539, %9522
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %9557

9557:                                             ; preds = %9556
  br label %9558

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

9559:                                             ; No predecessors!
  br label %9560

9560:                                             ; preds = %9559
  br label %9561

9561:                                             ; preds = %9560, %9502
  br label %9562

9562:                                             ; preds = %9561
  br label %9563

9563:                                             ; preds = %9562
  br label %9564

9564:                                             ; preds = %9563
  %9565 = load i32, ptr @test_count, align 4, !tbaa !5
  %9566 = add nsw i32 %9565, 1
  store i32 %9566, ptr @test_count, align 4, !tbaa !5
  %9567 = load ptr, ptr %8, align 8, !tbaa !9
  %9568 = call i32 @s2n_stuffer_skip_write(ptr noundef %9567, i32 noundef 35)
  %9569 = icmp eq i32 %9568, -1
  br i1 %9569, label %9570, label %9623

9570:                                             ; preds = %9564
  br label %9571

9571:                                             ; preds = %9570
  br label %9572

9572:                                             ; preds = %9571
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %9573 = call ptr @__errno_location() #12
  %9574 = load i32, ptr %9573, align 4, !tbaa !5
  store i32 %9574, ptr %170, align 4, !tbaa !5
  %9575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9576 = call i32 @s2n_print_stacktrace(ptr noundef %9575)
  %9577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9578 = trunc i8 %9577 to i1
  br i1 %9578, label %9579, label %9601

9579:                                             ; preds = %9572
  %9580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9581 = call i32 @fileno(ptr noundef %9580) #11
  %9582 = call i32 @isatty(i32 noundef %9581) #11
  %9583 = icmp ne i32 %9582, 0
  br i1 %9583, label %9584, label %9601

9584:                                             ; preds = %9579
  %9585 = load i32, ptr %170, align 4, !tbaa !5
  %9586 = call ptr @__errno_location() #12
  store i32 %9585, ptr %9586, align 4, !tbaa !5
  %9587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9588 = load i32, ptr @test_count, align 4, !tbaa !5
  %9589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9590 = load i32, ptr %9589, align 4, !tbaa !5
  %9591 = call ptr @s2n_strerror(i32 noundef %9590, ptr noundef @.str.4)
  %9592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9593 = load i32, ptr %9592, align 4, !tbaa !5
  %9594 = call ptr @s2n_strerror_debug(i32 noundef %9593, ptr noundef @.str.4)
  %9595 = call ptr @__errno_location() #12
  %9596 = load i32, ptr %9595, align 4, !tbaa !5
  %9597 = call ptr @strerror(i32 noundef %9596) #11
  %9598 = call ptr @__errno_location() #12
  %9599 = load i32, ptr %9598, align 4, !tbaa !5
  %9600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9587, ptr noundef @.str.2, i32 noundef %9588, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 339, ptr noundef %9591, ptr noundef %9594, ptr noundef %9597, i32 noundef %9599) #11
  br label %9618

9601:                                             ; preds = %9579, %9572
  %9602 = load i32, ptr %170, align 4, !tbaa !5
  %9603 = call ptr @__errno_location() #12
  store i32 %9602, ptr %9603, align 4, !tbaa !5
  %9604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9605 = load i32, ptr @test_count, align 4, !tbaa !5
  %9606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9607 = load i32, ptr %9606, align 4, !tbaa !5
  %9608 = call ptr @s2n_strerror(i32 noundef %9607, ptr noundef @.str.4)
  %9609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9610 = load i32, ptr %9609, align 4, !tbaa !5
  %9611 = call ptr @s2n_strerror_debug(i32 noundef %9610, ptr noundef @.str.4)
  %9612 = call ptr @__errno_location() #12
  %9613 = load i32, ptr %9612, align 4, !tbaa !5
  %9614 = call ptr @strerror(i32 noundef %9613) #11
  %9615 = call ptr @__errno_location() #12
  %9616 = load i32, ptr %9615, align 4, !tbaa !5
  %9617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9604, ptr noundef @.str.5, i32 noundef %9605, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 339, ptr noundef %9608, ptr noundef %9611, ptr noundef %9614, i32 noundef %9616) #11
  br label %9618

9618:                                             ; preds = %9601, %9584
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %9619

9619:                                             ; preds = %9618
  br label %9620

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

9621:                                             ; No predecessors!
  br label %9622

9622:                                             ; preds = %9621
  br label %9623

9623:                                             ; preds = %9622, %9564
  br label %9624

9624:                                             ; preds = %9623
  br label %9625

9625:                                             ; preds = %9624
  br label %9626

9626:                                             ; preds = %9625
  %9627 = load i32, ptr @test_count, align 4, !tbaa !5
  %9628 = add nsw i32 %9627, 1
  store i32 %9628, ptr @test_count, align 4, !tbaa !5
  %9629 = load ptr, ptr %8, align 8, !tbaa !9
  %9630 = getelementptr inbounds [2 x i8], ptr %168, i64 0, i64 0
  %9631 = call i32 @s2n_stuffer_write_bytes(ptr noundef %9629, ptr noundef %9630, i32 noundef 2)
  %9632 = icmp eq i32 %9631, -1
  br i1 %9632, label %9633, label %9686

9633:                                             ; preds = %9626
  br label %9634

9634:                                             ; preds = %9633
  br label %9635

9635:                                             ; preds = %9634
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %9636 = call ptr @__errno_location() #12
  %9637 = load i32, ptr %9636, align 4, !tbaa !5
  store i32 %9637, ptr %171, align 4, !tbaa !5
  %9638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9639 = call i32 @s2n_print_stacktrace(ptr noundef %9638)
  %9640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9641 = trunc i8 %9640 to i1
  br i1 %9641, label %9642, label %9664

9642:                                             ; preds = %9635
  %9643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9644 = call i32 @fileno(ptr noundef %9643) #11
  %9645 = call i32 @isatty(i32 noundef %9644) #11
  %9646 = icmp ne i32 %9645, 0
  br i1 %9646, label %9647, label %9664

9647:                                             ; preds = %9642
  %9648 = load i32, ptr %171, align 4, !tbaa !5
  %9649 = call ptr @__errno_location() #12
  store i32 %9648, ptr %9649, align 4, !tbaa !5
  %9650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9651 = load i32, ptr @test_count, align 4, !tbaa !5
  %9652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9653 = load i32, ptr %9652, align 4, !tbaa !5
  %9654 = call ptr @s2n_strerror(i32 noundef %9653, ptr noundef @.str.4)
  %9655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9656 = load i32, ptr %9655, align 4, !tbaa !5
  %9657 = call ptr @s2n_strerror_debug(i32 noundef %9656, ptr noundef @.str.4)
  %9658 = call ptr @__errno_location() #12
  %9659 = load i32, ptr %9658, align 4, !tbaa !5
  %9660 = call ptr @strerror(i32 noundef %9659) #11
  %9661 = call ptr @__errno_location() #12
  %9662 = load i32, ptr %9661, align 4, !tbaa !5
  %9663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9650, ptr noundef @.str.2, i32 noundef %9651, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 340, ptr noundef %9654, ptr noundef %9657, ptr noundef %9660, i32 noundef %9662) #11
  br label %9681

9664:                                             ; preds = %9642, %9635
  %9665 = load i32, ptr %171, align 4, !tbaa !5
  %9666 = call ptr @__errno_location() #12
  store i32 %9665, ptr %9666, align 4, !tbaa !5
  %9667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9668 = load i32, ptr @test_count, align 4, !tbaa !5
  %9669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9670 = load i32, ptr %9669, align 4, !tbaa !5
  %9671 = call ptr @s2n_strerror(i32 noundef %9670, ptr noundef @.str.4)
  %9672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9673 = load i32, ptr %9672, align 4, !tbaa !5
  %9674 = call ptr @s2n_strerror_debug(i32 noundef %9673, ptr noundef @.str.4)
  %9675 = call ptr @__errno_location() #12
  %9676 = load i32, ptr %9675, align 4, !tbaa !5
  %9677 = call ptr @strerror(i32 noundef %9676) #11
  %9678 = call ptr @__errno_location() #12
  %9679 = load i32, ptr %9678, align 4, !tbaa !5
  %9680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9667, ptr noundef @.str.5, i32 noundef %9668, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 340, ptr noundef %9671, ptr noundef %9674, ptr noundef %9677, i32 noundef %9679) #11
  br label %9681

9681:                                             ; preds = %9664, %9647
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %9682

9682:                                             ; preds = %9681
  br label %9683

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

9684:                                             ; No predecessors!
  br label %9685

9685:                                             ; preds = %9684
  br label %9686

9686:                                             ; preds = %9685, %9626
  br label %9687

9687:                                             ; preds = %9686
  br label %9688

9688:                                             ; preds = %9687
  br label %9689

9689:                                             ; preds = %9688
  %9690 = load i32, ptr @test_count, align 4, !tbaa !5
  %9691 = add nsw i32 %9690, 1
  store i32 %9691, ptr @test_count, align 4, !tbaa !5
  %9692 = load ptr, ptr %6, align 8, !tbaa !9
  %9693 = getelementptr inbounds %struct.s2n_connection, ptr %9692, i32 0, i32 52
  %9694 = getelementptr inbounds %struct.s2n_handshake, ptr %9693, i32 0, i32 0
  %9695 = load ptr, ptr %8, align 8, !tbaa !9
  %9696 = getelementptr inbounds %struct.s2n_stuffer, ptr %9695, i32 0, i32 0
  %9697 = call i32 @s2n_stuffer_write(ptr noundef %9694, ptr noundef %9696)
  %9698 = icmp eq i32 %9697, -1
  br i1 %9698, label %9699, label %9752

9699:                                             ; preds = %9689
  br label %9700

9700:                                             ; preds = %9699
  br label %9701

9701:                                             ; preds = %9700
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %9702 = call ptr @__errno_location() #12
  %9703 = load i32, ptr %9702, align 4, !tbaa !5
  store i32 %9703, ptr %172, align 4, !tbaa !5
  %9704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9705 = call i32 @s2n_print_stacktrace(ptr noundef %9704)
  %9706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9707 = trunc i8 %9706 to i1
  br i1 %9707, label %9708, label %9730

9708:                                             ; preds = %9701
  %9709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9710 = call i32 @fileno(ptr noundef %9709) #11
  %9711 = call i32 @isatty(i32 noundef %9710) #11
  %9712 = icmp ne i32 %9711, 0
  br i1 %9712, label %9713, label %9730

9713:                                             ; preds = %9708
  %9714 = load i32, ptr %172, align 4, !tbaa !5
  %9715 = call ptr @__errno_location() #12
  store i32 %9714, ptr %9715, align 4, !tbaa !5
  %9716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9717 = load i32, ptr @test_count, align 4, !tbaa !5
  %9718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9719 = load i32, ptr %9718, align 4, !tbaa !5
  %9720 = call ptr @s2n_strerror(i32 noundef %9719, ptr noundef @.str.4)
  %9721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9722 = load i32, ptr %9721, align 4, !tbaa !5
  %9723 = call ptr @s2n_strerror_debug(i32 noundef %9722, ptr noundef @.str.4)
  %9724 = call ptr @__errno_location() #12
  %9725 = load i32, ptr %9724, align 4, !tbaa !5
  %9726 = call ptr @strerror(i32 noundef %9725) #11
  %9727 = call ptr @__errno_location() #12
  %9728 = load i32, ptr %9727, align 4, !tbaa !5
  %9729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9716, ptr noundef @.str.2, i32 noundef %9717, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 342, ptr noundef %9720, ptr noundef %9723, ptr noundef %9726, i32 noundef %9728) #11
  br label %9747

9730:                                             ; preds = %9708, %9701
  %9731 = load i32, ptr %172, align 4, !tbaa !5
  %9732 = call ptr @__errno_location() #12
  store i32 %9731, ptr %9732, align 4, !tbaa !5
  %9733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9734 = load i32, ptr @test_count, align 4, !tbaa !5
  %9735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9736 = load i32, ptr %9735, align 4, !tbaa !5
  %9737 = call ptr @s2n_strerror(i32 noundef %9736, ptr noundef @.str.4)
  %9738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9739 = load i32, ptr %9738, align 4, !tbaa !5
  %9740 = call ptr @s2n_strerror_debug(i32 noundef %9739, ptr noundef @.str.4)
  %9741 = call ptr @__errno_location() #12
  %9742 = load i32, ptr %9741, align 4, !tbaa !5
  %9743 = call ptr @strerror(i32 noundef %9742) #11
  %9744 = call ptr @__errno_location() #12
  %9745 = load i32, ptr %9744, align 4, !tbaa !5
  %9746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9733, ptr noundef @.str.5, i32 noundef %9734, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 342, ptr noundef %9737, ptr noundef %9740, ptr noundef %9743, i32 noundef %9745) #11
  br label %9747

9747:                                             ; preds = %9730, %9713
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %9748

9748:                                             ; preds = %9747
  br label %9749

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

9750:                                             ; No predecessors!
  br label %9751

9751:                                             ; preds = %9750
  br label %9752

9752:                                             ; preds = %9751, %9689
  br label %9753

9753:                                             ; preds = %9752
  br label %9754

9754:                                             ; preds = %9753
  br label %9755

9755:                                             ; preds = %9754
  br label %9756

9756:                                             ; preds = %9755
  br label %9757

9757:                                             ; preds = %9756
  %9758 = load i32, ptr @test_count, align 4, !tbaa !5
  %9759 = add nsw i32 %9758, 1
  store i32 %9759, ptr @test_count, align 4, !tbaa !5
  %9760 = load ptr, ptr %6, align 8, !tbaa !9
  %9761 = call i32 @s2n_client_hello_recv(ptr noundef %9760)
  %9762 = icmp eq i32 %9761, -1
  br i1 %9762, label %9816, label %9763

9763:                                             ; preds = %9757
  br label %9764

9764:                                             ; preds = %9763
  br label %9765

9765:                                             ; preds = %9764
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %9766 = call ptr @__errno_location() #12
  %9767 = load i32, ptr %9766, align 4, !tbaa !5
  store i32 %9767, ptr %173, align 4, !tbaa !5
  %9768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9769 = call i32 @s2n_print_stacktrace(ptr noundef %9768)
  %9770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9771 = trunc i8 %9770 to i1
  br i1 %9771, label %9772, label %9794

9772:                                             ; preds = %9765
  %9773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9774 = call i32 @fileno(ptr noundef %9773) #11
  %9775 = call i32 @isatty(i32 noundef %9774) #11
  %9776 = icmp ne i32 %9775, 0
  br i1 %9776, label %9777, label %9794

9777:                                             ; preds = %9772
  %9778 = load i32, ptr %173, align 4, !tbaa !5
  %9779 = call ptr @__errno_location() #12
  store i32 %9778, ptr %9779, align 4, !tbaa !5
  %9780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9781 = load i32, ptr @test_count, align 4, !tbaa !5
  %9782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9783 = load i32, ptr %9782, align 4, !tbaa !5
  %9784 = call ptr @s2n_strerror(i32 noundef %9783, ptr noundef @.str.4)
  %9785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9786 = load i32, ptr %9785, align 4, !tbaa !5
  %9787 = call ptr @s2n_strerror_debug(i32 noundef %9786, ptr noundef @.str.4)
  %9788 = call ptr @__errno_location() #12
  %9789 = load i32, ptr %9788, align 4, !tbaa !5
  %9790 = call ptr @strerror(i32 noundef %9789) #11
  %9791 = call ptr @__errno_location() #12
  %9792 = load i32, ptr %9791, align 4, !tbaa !5
  %9793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9780, ptr noundef @.str.2, i32 noundef %9781, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9784, ptr noundef %9787, ptr noundef %9790, i32 noundef %9792) #11
  br label %9811

9794:                                             ; preds = %9772, %9765
  %9795 = load i32, ptr %173, align 4, !tbaa !5
  %9796 = call ptr @__errno_location() #12
  store i32 %9795, ptr %9796, align 4, !tbaa !5
  %9797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9798 = load i32, ptr @test_count, align 4, !tbaa !5
  %9799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9800 = load i32, ptr %9799, align 4, !tbaa !5
  %9801 = call ptr @s2n_strerror(i32 noundef %9800, ptr noundef @.str.4)
  %9802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9803 = load i32, ptr %9802, align 4, !tbaa !5
  %9804 = call ptr @s2n_strerror_debug(i32 noundef %9803, ptr noundef @.str.4)
  %9805 = call ptr @__errno_location() #12
  %9806 = load i32, ptr %9805, align 4, !tbaa !5
  %9807 = call ptr @strerror(i32 noundef %9806) #11
  %9808 = call ptr @__errno_location() #12
  %9809 = load i32, ptr %9808, align 4, !tbaa !5
  %9810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9797, ptr noundef @.str.5, i32 noundef %9798, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9801, ptr noundef %9804, ptr noundef %9807, i32 noundef %9809) #11
  br label %9811

9811:                                             ; preds = %9794, %9777
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %9812

9812:                                             ; preds = %9811
  br label %9813

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

9814:                                             ; No predecessors!
  br label %9815

9815:                                             ; preds = %9814
  br label %9816

9816:                                             ; preds = %9815, %9757
  br label %9817

9817:                                             ; preds = %9816
  br label %9818

9818:                                             ; preds = %9817
  br label %9819

9819:                                             ; preds = %9818
  %9820 = load i32, ptr @test_count, align 4, !tbaa !5
  %9821 = add nsw i32 %9820, 1
  store i32 %9821, ptr @test_count, align 4, !tbaa !5
  %9822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9823 = load i32, ptr %9822, align 4, !tbaa !5
  %9824 = icmp eq i32 %9823, 335544322
  br i1 %9824, label %9878, label %9825

9825:                                             ; preds = %9819
  br label %9826

9826:                                             ; preds = %9825
  br label %9827

9827:                                             ; preds = %9826
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %9828 = call ptr @__errno_location() #12
  %9829 = load i32, ptr %9828, align 4, !tbaa !5
  store i32 %9829, ptr %174, align 4, !tbaa !5
  %9830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9831 = call i32 @s2n_print_stacktrace(ptr noundef %9830)
  %9832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9833 = trunc i8 %9832 to i1
  br i1 %9833, label %9834, label %9856

9834:                                             ; preds = %9827
  %9835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9836 = call i32 @fileno(ptr noundef %9835) #11
  %9837 = call i32 @isatty(i32 noundef %9836) #11
  %9838 = icmp ne i32 %9837, 0
  br i1 %9838, label %9839, label %9856

9839:                                             ; preds = %9834
  %9840 = load i32, ptr %174, align 4, !tbaa !5
  %9841 = call ptr @__errno_location() #12
  store i32 %9840, ptr %9841, align 4, !tbaa !5
  %9842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9843 = load i32, ptr @test_count, align 4, !tbaa !5
  %9844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9845 = load i32, ptr %9844, align 4, !tbaa !5
  %9846 = call ptr @s2n_strerror(i32 noundef %9845, ptr noundef @.str.4)
  %9847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9848 = load i32, ptr %9847, align 4, !tbaa !5
  %9849 = call ptr @s2n_strerror_debug(i32 noundef %9848, ptr noundef @.str.4)
  %9850 = call ptr @__errno_location() #12
  %9851 = load i32, ptr %9850, align 4, !tbaa !5
  %9852 = call ptr @strerror(i32 noundef %9851) #11
  %9853 = call ptr @__errno_location() #12
  %9854 = load i32, ptr %9853, align 4, !tbaa !5
  %9855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9842, ptr noundef @.str.2, i32 noundef %9843, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9846, ptr noundef %9849, ptr noundef %9852, i32 noundef %9854) #11
  br label %9873

9856:                                             ; preds = %9834, %9827
  %9857 = load i32, ptr %174, align 4, !tbaa !5
  %9858 = call ptr @__errno_location() #12
  store i32 %9857, ptr %9858, align 4, !tbaa !5
  %9859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9860 = load i32, ptr @test_count, align 4, !tbaa !5
  %9861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9862 = load i32, ptr %9861, align 4, !tbaa !5
  %9863 = call ptr @s2n_strerror(i32 noundef %9862, ptr noundef @.str.4)
  %9864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9865 = load i32, ptr %9864, align 4, !tbaa !5
  %9866 = call ptr @s2n_strerror_debug(i32 noundef %9865, ptr noundef @.str.4)
  %9867 = call ptr @__errno_location() #12
  %9868 = load i32, ptr %9867, align 4, !tbaa !5
  %9869 = call ptr @strerror(i32 noundef %9868) #11
  %9870 = call ptr @__errno_location() #12
  %9871 = load i32, ptr %9870, align 4, !tbaa !5
  %9872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9859, ptr noundef @.str.5, i32 noundef %9860, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9863, ptr noundef %9866, ptr noundef %9869, i32 noundef %9871) #11
  br label %9873

9873:                                             ; preds = %9856, %9839
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %9874

9874:                                             ; preds = %9873
  br label %9875

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

9876:                                             ; No predecessors!
  br label %9877

9877:                                             ; preds = %9876
  br label %9878

9878:                                             ; preds = %9877, %9819
  br label %9879

9879:                                             ; preds = %9878
  br label %9880

9880:                                             ; preds = %9879
  br label %9881

9881:                                             ; preds = %9880
  %9882 = load i32, ptr @test_count, align 4, !tbaa !5
  %9883 = add nsw i32 %9882, 1
  store i32 %9883, ptr @test_count, align 4, !tbaa !5
  %9884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9885 = load i32, ptr %9884, align 4, !tbaa !5
  %9886 = call ptr @s2n_strerror_debug(i32 noundef %9885, ptr noundef @.str.4)
  %9887 = icmp eq ptr %9886, null
  br i1 %9887, label %9888, label %9941

9888:                                             ; preds = %9881
  br label %9889

9889:                                             ; preds = %9888
  br label %9890

9890:                                             ; preds = %9889
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %9891 = call ptr @__errno_location() #12
  %9892 = load i32, ptr %9891, align 4, !tbaa !5
  store i32 %9892, ptr %175, align 4, !tbaa !5
  %9893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9894 = call i32 @s2n_print_stacktrace(ptr noundef %9893)
  %9895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9896 = trunc i8 %9895 to i1
  br i1 %9896, label %9897, label %9919

9897:                                             ; preds = %9890
  %9898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9899 = call i32 @fileno(ptr noundef %9898) #11
  %9900 = call i32 @isatty(i32 noundef %9899) #11
  %9901 = icmp ne i32 %9900, 0
  br i1 %9901, label %9902, label %9919

9902:                                             ; preds = %9897
  %9903 = load i32, ptr %175, align 4, !tbaa !5
  %9904 = call ptr @__errno_location() #12
  store i32 %9903, ptr %9904, align 4, !tbaa !5
  %9905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9906 = load i32, ptr @test_count, align 4, !tbaa !5
  %9907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9908 = load i32, ptr %9907, align 4, !tbaa !5
  %9909 = call ptr @s2n_strerror(i32 noundef %9908, ptr noundef @.str.4)
  %9910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9911 = load i32, ptr %9910, align 4, !tbaa !5
  %9912 = call ptr @s2n_strerror_debug(i32 noundef %9911, ptr noundef @.str.4)
  %9913 = call ptr @__errno_location() #12
  %9914 = load i32, ptr %9913, align 4, !tbaa !5
  %9915 = call ptr @strerror(i32 noundef %9914) #11
  %9916 = call ptr @__errno_location() #12
  %9917 = load i32, ptr %9916, align 4, !tbaa !5
  %9918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9905, ptr noundef @.str.2, i32 noundef %9906, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9909, ptr noundef %9912, ptr noundef %9915, i32 noundef %9917) #11
  br label %9936

9919:                                             ; preds = %9897, %9890
  %9920 = load i32, ptr %175, align 4, !tbaa !5
  %9921 = call ptr @__errno_location() #12
  store i32 %9920, ptr %9921, align 4, !tbaa !5
  %9922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9923 = load i32, ptr @test_count, align 4, !tbaa !5
  %9924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9925 = load i32, ptr %9924, align 4, !tbaa !5
  %9926 = call ptr @s2n_strerror(i32 noundef %9925, ptr noundef @.str.4)
  %9927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9928 = load i32, ptr %9927, align 4, !tbaa !5
  %9929 = call ptr @s2n_strerror_debug(i32 noundef %9928, ptr noundef @.str.4)
  %9930 = call ptr @__errno_location() #12
  %9931 = load i32, ptr %9930, align 4, !tbaa !5
  %9932 = call ptr @strerror(i32 noundef %9931) #11
  %9933 = call ptr @__errno_location() #12
  %9934 = load i32, ptr %9933, align 4, !tbaa !5
  %9935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9922, ptr noundef @.str.5, i32 noundef %9923, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 343, ptr noundef %9926, ptr noundef %9929, ptr noundef %9932, i32 noundef %9934) #11
  br label %9936

9936:                                             ; preds = %9919, %9902
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %9937

9937:                                             ; preds = %9936
  br label %9938

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

9939:                                             ; No predecessors!
  br label %9940

9940:                                             ; preds = %9939
  br label %9941

9941:                                             ; preds = %9940, %9881
  br label %9942

9942:                                             ; preds = %9941
  br label %9943

9943:                                             ; preds = %9942
  br label %9944

9944:                                             ; preds = %9943
  br label %9945

9945:                                             ; preds = %9944
  br label %9946

9946:                                             ; preds = %9945
  %9947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9947, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9948 = call ptr @__errno_location() #12
  store i32 0, ptr %9948, align 4, !tbaa !5
  br label %9949

9949:                                             ; preds = %9946
  br label %9950

9950:                                             ; preds = %9949
  br label %9951

9951:                                             ; preds = %9950
  br label %9952

9952:                                             ; preds = %9951
  %9953 = load ptr, ptr %6, align 8, !tbaa !9
  %9954 = call i32 @s2n_connection_free(ptr noundef %9953)
  %9955 = load ptr, ptr %7, align 8, !tbaa !9
  %9956 = call i32 @s2n_connection_free(ptr noundef %9955)
  call void @llvm.lifetime.end.p0(i64 2, ptr %168) #11
  br label %9957

9957:                                             ; preds = %9952
  %9958 = load i32, ptr @test_count, align 4, !tbaa !5
  %9959 = add nsw i32 %9958, 1
  store i32 %9959, ptr @test_count, align 4, !tbaa !5
  %9960 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9960, ptr %6, align 8, !tbaa !9
  %9961 = icmp eq ptr %9960, null
  br i1 %9961, label %9962, label %10015

9962:                                             ; preds = %9957
  br label %9963

9963:                                             ; preds = %9962
  br label %9964

9964:                                             ; preds = %9963
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %9965 = call ptr @__errno_location() #12
  %9966 = load i32, ptr %9965, align 4, !tbaa !5
  store i32 %9966, ptr %176, align 4, !tbaa !5
  %9967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9968 = call i32 @s2n_print_stacktrace(ptr noundef %9967)
  %9969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9970 = trunc i8 %9969 to i1
  br i1 %9970, label %9971, label %9993

9971:                                             ; preds = %9964
  %9972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9973 = call i32 @fileno(ptr noundef %9972) #11
  %9974 = call i32 @isatty(i32 noundef %9973) #11
  %9975 = icmp ne i32 %9974, 0
  br i1 %9975, label %9976, label %9993

9976:                                             ; preds = %9971
  %9977 = load i32, ptr %176, align 4, !tbaa !5
  %9978 = call ptr @__errno_location() #12
  store i32 %9977, ptr %9978, align 4, !tbaa !5
  %9979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9980 = load i32, ptr @test_count, align 4, !tbaa !5
  %9981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9982 = load i32, ptr %9981, align 4, !tbaa !5
  %9983 = call ptr @s2n_strerror(i32 noundef %9982, ptr noundef @.str.4)
  %9984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9985 = load i32, ptr %9984, align 4, !tbaa !5
  %9986 = call ptr @s2n_strerror_debug(i32 noundef %9985, ptr noundef @.str.4)
  %9987 = call ptr @__errno_location() #12
  %9988 = load i32, ptr %9987, align 4, !tbaa !5
  %9989 = call ptr @strerror(i32 noundef %9988) #11
  %9990 = call ptr @__errno_location() #12
  %9991 = load i32, ptr %9990, align 4, !tbaa !5
  %9992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9979, ptr noundef @.str.2, i32 noundef %9980, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 351, ptr noundef %9983, ptr noundef %9986, ptr noundef %9989, i32 noundef %9991) #11
  br label %10010

9993:                                             ; preds = %9971, %9964
  %9994 = load i32, ptr %176, align 4, !tbaa !5
  %9995 = call ptr @__errno_location() #12
  store i32 %9994, ptr %9995, align 4, !tbaa !5
  %9996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9997 = load i32, ptr @test_count, align 4, !tbaa !5
  %9998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9999 = load i32, ptr %9998, align 4, !tbaa !5
  %10000 = call ptr @s2n_strerror(i32 noundef %9999, ptr noundef @.str.4)
  %10001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10002 = load i32, ptr %10001, align 4, !tbaa !5
  %10003 = call ptr @s2n_strerror_debug(i32 noundef %10002, ptr noundef @.str.4)
  %10004 = call ptr @__errno_location() #12
  %10005 = load i32, ptr %10004, align 4, !tbaa !5
  %10006 = call ptr @strerror(i32 noundef %10005) #11
  %10007 = call ptr @__errno_location() #12
  %10008 = load i32, ptr %10007, align 4, !tbaa !5
  %10009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9996, ptr noundef @.str.5, i32 noundef %9997, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 351, ptr noundef %10000, ptr noundef %10003, ptr noundef %10006, i32 noundef %10008) #11
  br label %10010

10010:                                            ; preds = %9993, %9976
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %10011

10011:                                            ; preds = %10010
  br label %10012

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

10013:                                            ; No predecessors!
  br label %10014

10014:                                            ; preds = %10013
  br label %10015

10015:                                            ; preds = %10014, %9957
  br label %10016

10016:                                            ; preds = %10015
  br label %10017

10017:                                            ; preds = %10016
  br label %10018

10018:                                            ; preds = %10017
  %10019 = load i32, ptr @test_count, align 4, !tbaa !5
  %10020 = add nsw i32 %10019, 1
  store i32 %10020, ptr @test_count, align 4, !tbaa !5
  %10021 = load ptr, ptr %6, align 8, !tbaa !9
  %10022 = load ptr, ptr %9, align 8, !tbaa !9
  %10023 = call i32 @s2n_connection_set_config(ptr noundef %10021, ptr noundef %10022)
  %10024 = icmp eq i32 %10023, -1
  br i1 %10024, label %10025, label %10078

10025:                                            ; preds = %10018
  br label %10026

10026:                                            ; preds = %10025
  br label %10027

10027:                                            ; preds = %10026
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %10028 = call ptr @__errno_location() #12
  %10029 = load i32, ptr %10028, align 4, !tbaa !5
  store i32 %10029, ptr %177, align 4, !tbaa !5
  %10030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10031 = call i32 @s2n_print_stacktrace(ptr noundef %10030)
  %10032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10033 = trunc i8 %10032 to i1
  br i1 %10033, label %10034, label %10056

10034:                                            ; preds = %10027
  %10035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10036 = call i32 @fileno(ptr noundef %10035) #11
  %10037 = call i32 @isatty(i32 noundef %10036) #11
  %10038 = icmp ne i32 %10037, 0
  br i1 %10038, label %10039, label %10056

10039:                                            ; preds = %10034
  %10040 = load i32, ptr %177, align 4, !tbaa !5
  %10041 = call ptr @__errno_location() #12
  store i32 %10040, ptr %10041, align 4, !tbaa !5
  %10042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10043 = load i32, ptr @test_count, align 4, !tbaa !5
  %10044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10045 = load i32, ptr %10044, align 4, !tbaa !5
  %10046 = call ptr @s2n_strerror(i32 noundef %10045, ptr noundef @.str.4)
  %10047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10048 = load i32, ptr %10047, align 4, !tbaa !5
  %10049 = call ptr @s2n_strerror_debug(i32 noundef %10048, ptr noundef @.str.4)
  %10050 = call ptr @__errno_location() #12
  %10051 = load i32, ptr %10050, align 4, !tbaa !5
  %10052 = call ptr @strerror(i32 noundef %10051) #11
  %10053 = call ptr @__errno_location() #12
  %10054 = load i32, ptr %10053, align 4, !tbaa !5
  %10055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10042, ptr noundef @.str.2, i32 noundef %10043, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 352, ptr noundef %10046, ptr noundef %10049, ptr noundef %10052, i32 noundef %10054) #11
  br label %10073

10056:                                            ; preds = %10034, %10027
  %10057 = load i32, ptr %177, align 4, !tbaa !5
  %10058 = call ptr @__errno_location() #12
  store i32 %10057, ptr %10058, align 4, !tbaa !5
  %10059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10060 = load i32, ptr @test_count, align 4, !tbaa !5
  %10061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10062 = load i32, ptr %10061, align 4, !tbaa !5
  %10063 = call ptr @s2n_strerror(i32 noundef %10062, ptr noundef @.str.4)
  %10064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10065 = load i32, ptr %10064, align 4, !tbaa !5
  %10066 = call ptr @s2n_strerror_debug(i32 noundef %10065, ptr noundef @.str.4)
  %10067 = call ptr @__errno_location() #12
  %10068 = load i32, ptr %10067, align 4, !tbaa !5
  %10069 = call ptr @strerror(i32 noundef %10068) #11
  %10070 = call ptr @__errno_location() #12
  %10071 = load i32, ptr %10070, align 4, !tbaa !5
  %10072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10059, ptr noundef @.str.5, i32 noundef %10060, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 352, ptr noundef %10063, ptr noundef %10066, ptr noundef %10069, i32 noundef %10071) #11
  br label %10073

10073:                                            ; preds = %10056, %10039
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %10074

10074:                                            ; preds = %10073
  br label %10075

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

10076:                                            ; No predecessors!
  br label %10077

10077:                                            ; preds = %10076
  br label %10078

10078:                                            ; preds = %10077, %10018
  br label %10079

10079:                                            ; preds = %10078
  br label %10080

10080:                                            ; preds = %10079
  %10081 = load ptr, ptr %6, align 8, !tbaa !9
  %10082 = getelementptr inbounds %struct.s2n_connection, ptr %10081, i32 0, i32 20
  store i8 20, ptr %10082, align 1, !tbaa !15
  %10083 = load ptr, ptr %6, align 8, !tbaa !9
  %10084 = getelementptr inbounds %struct.s2n_connection, ptr %10083, i32 0, i32 21
  store i8 33, ptr %10084, align 2, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 176, ptr %178) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %178, ptr align 16 @__const.main.sslv2_client_hello.75, i64 176, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %179) #11
  %10085 = getelementptr inbounds %struct.s2n_blob, ptr %179, i32 0, i32 0
  %10086 = getelementptr inbounds [176 x i8], ptr %178, i64 0, i64 0
  store ptr %10086, ptr %10085, align 8, !tbaa !43
  %10087 = getelementptr inbounds %struct.s2n_blob, ptr %179, i32 0, i32 1
  store i32 176, ptr %10087, align 8, !tbaa !44
  %10088 = getelementptr inbounds %struct.s2n_blob, ptr %179, i32 0, i32 2
  store i32 0, ptr %10088, align 4, !tbaa !45
  %10089 = getelementptr inbounds %struct.s2n_blob, ptr %179, i32 0, i32 3
  %10090 = load i8, ptr %10089, align 8
  %10091 = and i8 %10090, -2
  %10092 = or i8 %10091, 0
  store i8 %10092, ptr %10089, align 8
  br label %10093

10093:                                            ; preds = %10080
  %10094 = load i32, ptr @test_count, align 4, !tbaa !5
  %10095 = add nsw i32 %10094, 1
  store i32 %10095, ptr @test_count, align 4, !tbaa !5
  %10096 = load ptr, ptr %6, align 8, !tbaa !9
  %10097 = getelementptr inbounds %struct.s2n_connection, ptr %10096, i32 0, i32 52
  %10098 = getelementptr inbounds %struct.s2n_handshake, ptr %10097, i32 0, i32 0
  %10099 = call i32 @s2n_stuffer_write(ptr noundef %10098, ptr noundef %179)
  %10100 = icmp eq i32 %10099, -1
  br i1 %10100, label %10101, label %10154

10101:                                            ; preds = %10093
  br label %10102

10102:                                            ; preds = %10101
  br label %10103

10103:                                            ; preds = %10102
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %10104 = call ptr @__errno_location() #12
  %10105 = load i32, ptr %10104, align 4, !tbaa !5
  store i32 %10105, ptr %180, align 4, !tbaa !5
  %10106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10107 = call i32 @s2n_print_stacktrace(ptr noundef %10106)
  %10108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10109 = trunc i8 %10108 to i1
  br i1 %10109, label %10110, label %10132

10110:                                            ; preds = %10103
  %10111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10112 = call i32 @fileno(ptr noundef %10111) #11
  %10113 = call i32 @isatty(i32 noundef %10112) #11
  %10114 = icmp ne i32 %10113, 0
  br i1 %10114, label %10115, label %10132

10115:                                            ; preds = %10110
  %10116 = load i32, ptr %180, align 4, !tbaa !5
  %10117 = call ptr @__errno_location() #12
  store i32 %10116, ptr %10117, align 4, !tbaa !5
  %10118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10119 = load i32, ptr @test_count, align 4, !tbaa !5
  %10120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call ptr @s2n_strerror(i32 noundef %10121, ptr noundef @.str.4)
  %10123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = call ptr @s2n_strerror_debug(i32 noundef %10124, ptr noundef @.str.4)
  %10126 = call ptr @__errno_location() #12
  %10127 = load i32, ptr %10126, align 4, !tbaa !5
  %10128 = call ptr @strerror(i32 noundef %10127) #11
  %10129 = call ptr @__errno_location() #12
  %10130 = load i32, ptr %10129, align 4, !tbaa !5
  %10131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10118, ptr noundef @.str.2, i32 noundef %10119, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 376, ptr noundef %10122, ptr noundef %10125, ptr noundef %10128, i32 noundef %10130) #11
  br label %10149

10132:                                            ; preds = %10110, %10103
  %10133 = load i32, ptr %180, align 4, !tbaa !5
  %10134 = call ptr @__errno_location() #12
  store i32 %10133, ptr %10134, align 4, !tbaa !5
  %10135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10136 = load i32, ptr @test_count, align 4, !tbaa !5
  %10137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10138 = load i32, ptr %10137, align 4, !tbaa !5
  %10139 = call ptr @s2n_strerror(i32 noundef %10138, ptr noundef @.str.4)
  %10140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10141 = load i32, ptr %10140, align 4, !tbaa !5
  %10142 = call ptr @s2n_strerror_debug(i32 noundef %10141, ptr noundef @.str.4)
  %10143 = call ptr @__errno_location() #12
  %10144 = load i32, ptr %10143, align 4, !tbaa !5
  %10145 = call ptr @strerror(i32 noundef %10144) #11
  %10146 = call ptr @__errno_location() #12
  %10147 = load i32, ptr %10146, align 4, !tbaa !5
  %10148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10135, ptr noundef @.str.5, i32 noundef %10136, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 376, ptr noundef %10139, ptr noundef %10142, ptr noundef %10145, i32 noundef %10147) #11
  br label %10149

10149:                                            ; preds = %10132, %10115
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %10150

10150:                                            ; preds = %10149
  br label %10151

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

10152:                                            ; No predecessors!
  br label %10153

10153:                                            ; preds = %10152
  br label %10154

10154:                                            ; preds = %10153, %10093
  br label %10155

10155:                                            ; preds = %10154
  br label %10156

10156:                                            ; preds = %10155
  br label %10157

10157:                                            ; preds = %10156
  br label %10158

10158:                                            ; preds = %10157
  br label %10159

10159:                                            ; preds = %10158
  %10160 = load i32, ptr @test_count, align 4, !tbaa !5
  %10161 = add nsw i32 %10160, 1
  store i32 %10161, ptr @test_count, align 4, !tbaa !5
  %10162 = load ptr, ptr %6, align 8, !tbaa !9
  %10163 = call i32 @s2n_client_hello_recv(ptr noundef %10162)
  %10164 = icmp eq i32 %10163, -1
  br i1 %10164, label %10218, label %10165

10165:                                            ; preds = %10159
  br label %10166

10166:                                            ; preds = %10165
  br label %10167

10167:                                            ; preds = %10166
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %10168 = call ptr @__errno_location() #12
  %10169 = load i32, ptr %10168, align 4, !tbaa !5
  store i32 %10169, ptr %181, align 4, !tbaa !5
  %10170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10171 = call i32 @s2n_print_stacktrace(ptr noundef %10170)
  %10172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10173 = trunc i8 %10172 to i1
  br i1 %10173, label %10174, label %10196

10174:                                            ; preds = %10167
  %10175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10176 = call i32 @fileno(ptr noundef %10175) #11
  %10177 = call i32 @isatty(i32 noundef %10176) #11
  %10178 = icmp ne i32 %10177, 0
  br i1 %10178, label %10179, label %10196

10179:                                            ; preds = %10174
  %10180 = load i32, ptr %181, align 4, !tbaa !5
  %10181 = call ptr @__errno_location() #12
  store i32 %10180, ptr %10181, align 4, !tbaa !5
  %10182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10183 = load i32, ptr @test_count, align 4, !tbaa !5
  %10184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10185 = load i32, ptr %10184, align 4, !tbaa !5
  %10186 = call ptr @s2n_strerror(i32 noundef %10185, ptr noundef @.str.4)
  %10187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10188 = load i32, ptr %10187, align 4, !tbaa !5
  %10189 = call ptr @s2n_strerror_debug(i32 noundef %10188, ptr noundef @.str.4)
  %10190 = call ptr @__errno_location() #12
  %10191 = load i32, ptr %10190, align 4, !tbaa !5
  %10192 = call ptr @strerror(i32 noundef %10191) #11
  %10193 = call ptr @__errno_location() #12
  %10194 = load i32, ptr %10193, align 4, !tbaa !5
  %10195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10182, ptr noundef @.str.2, i32 noundef %10183, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10186, ptr noundef %10189, ptr noundef %10192, i32 noundef %10194) #11
  br label %10213

10196:                                            ; preds = %10174, %10167
  %10197 = load i32, ptr %181, align 4, !tbaa !5
  %10198 = call ptr @__errno_location() #12
  store i32 %10197, ptr %10198, align 4, !tbaa !5
  %10199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10200 = load i32, ptr @test_count, align 4, !tbaa !5
  %10201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10202 = load i32, ptr %10201, align 4, !tbaa !5
  %10203 = call ptr @s2n_strerror(i32 noundef %10202, ptr noundef @.str.4)
  %10204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10205 = load i32, ptr %10204, align 4, !tbaa !5
  %10206 = call ptr @s2n_strerror_debug(i32 noundef %10205, ptr noundef @.str.4)
  %10207 = call ptr @__errno_location() #12
  %10208 = load i32, ptr %10207, align 4, !tbaa !5
  %10209 = call ptr @strerror(i32 noundef %10208) #11
  %10210 = call ptr @__errno_location() #12
  %10211 = load i32, ptr %10210, align 4, !tbaa !5
  %10212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10199, ptr noundef @.str.5, i32 noundef %10200, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10203, ptr noundef %10206, ptr noundef %10209, i32 noundef %10211) #11
  br label %10213

10213:                                            ; preds = %10196, %10179
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %10214

10214:                                            ; preds = %10213
  br label %10215

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

10216:                                            ; No predecessors!
  br label %10217

10217:                                            ; preds = %10216
  br label %10218

10218:                                            ; preds = %10217, %10159
  br label %10219

10219:                                            ; preds = %10218
  br label %10220

10220:                                            ; preds = %10219
  br label %10221

10221:                                            ; preds = %10220
  %10222 = load i32, ptr @test_count, align 4, !tbaa !5
  %10223 = add nsw i32 %10222, 1
  store i32 %10223, ptr @test_count, align 4, !tbaa !5
  %10224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10225 = load i32, ptr %10224, align 4, !tbaa !5
  %10226 = icmp eq i32 %10225, 335544322
  br i1 %10226, label %10280, label %10227

10227:                                            ; preds = %10221
  br label %10228

10228:                                            ; preds = %10227
  br label %10229

10229:                                            ; preds = %10228
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %10230 = call ptr @__errno_location() #12
  %10231 = load i32, ptr %10230, align 4, !tbaa !5
  store i32 %10231, ptr %182, align 4, !tbaa !5
  %10232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10233 = call i32 @s2n_print_stacktrace(ptr noundef %10232)
  %10234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10235 = trunc i8 %10234 to i1
  br i1 %10235, label %10236, label %10258

10236:                                            ; preds = %10229
  %10237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10238 = call i32 @fileno(ptr noundef %10237) #11
  %10239 = call i32 @isatty(i32 noundef %10238) #11
  %10240 = icmp ne i32 %10239, 0
  br i1 %10240, label %10241, label %10258

10241:                                            ; preds = %10236
  %10242 = load i32, ptr %182, align 4, !tbaa !5
  %10243 = call ptr @__errno_location() #12
  store i32 %10242, ptr %10243, align 4, !tbaa !5
  %10244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10245 = load i32, ptr @test_count, align 4, !tbaa !5
  %10246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10247 = load i32, ptr %10246, align 4, !tbaa !5
  %10248 = call ptr @s2n_strerror(i32 noundef %10247, ptr noundef @.str.4)
  %10249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10250 = load i32, ptr %10249, align 4, !tbaa !5
  %10251 = call ptr @s2n_strerror_debug(i32 noundef %10250, ptr noundef @.str.4)
  %10252 = call ptr @__errno_location() #12
  %10253 = load i32, ptr %10252, align 4, !tbaa !5
  %10254 = call ptr @strerror(i32 noundef %10253) #11
  %10255 = call ptr @__errno_location() #12
  %10256 = load i32, ptr %10255, align 4, !tbaa !5
  %10257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10244, ptr noundef @.str.2, i32 noundef %10245, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10248, ptr noundef %10251, ptr noundef %10254, i32 noundef %10256) #11
  br label %10275

10258:                                            ; preds = %10236, %10229
  %10259 = load i32, ptr %182, align 4, !tbaa !5
  %10260 = call ptr @__errno_location() #12
  store i32 %10259, ptr %10260, align 4, !tbaa !5
  %10261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10262 = load i32, ptr @test_count, align 4, !tbaa !5
  %10263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10264 = load i32, ptr %10263, align 4, !tbaa !5
  %10265 = call ptr @s2n_strerror(i32 noundef %10264, ptr noundef @.str.4)
  %10266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10267 = load i32, ptr %10266, align 4, !tbaa !5
  %10268 = call ptr @s2n_strerror_debug(i32 noundef %10267, ptr noundef @.str.4)
  %10269 = call ptr @__errno_location() #12
  %10270 = load i32, ptr %10269, align 4, !tbaa !5
  %10271 = call ptr @strerror(i32 noundef %10270) #11
  %10272 = call ptr @__errno_location() #12
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10261, ptr noundef @.str.5, i32 noundef %10262, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10265, ptr noundef %10268, ptr noundef %10271, i32 noundef %10273) #11
  br label %10275

10275:                                            ; preds = %10258, %10241
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %10276

10276:                                            ; preds = %10275
  br label %10277

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

10278:                                            ; No predecessors!
  br label %10279

10279:                                            ; preds = %10278
  br label %10280

10280:                                            ; preds = %10279, %10221
  br label %10281

10281:                                            ; preds = %10280
  br label %10282

10282:                                            ; preds = %10281
  br label %10283

10283:                                            ; preds = %10282
  %10284 = load i32, ptr @test_count, align 4, !tbaa !5
  %10285 = add nsw i32 %10284, 1
  store i32 %10285, ptr @test_count, align 4, !tbaa !5
  %10286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10287 = load i32, ptr %10286, align 4, !tbaa !5
  %10288 = call ptr @s2n_strerror_debug(i32 noundef %10287, ptr noundef @.str.4)
  %10289 = icmp eq ptr %10288, null
  br i1 %10289, label %10290, label %10343

10290:                                            ; preds = %10283
  br label %10291

10291:                                            ; preds = %10290
  br label %10292

10292:                                            ; preds = %10291
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %10293 = call ptr @__errno_location() #12
  %10294 = load i32, ptr %10293, align 4, !tbaa !5
  store i32 %10294, ptr %183, align 4, !tbaa !5
  %10295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10296 = call i32 @s2n_print_stacktrace(ptr noundef %10295)
  %10297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10298 = trunc i8 %10297 to i1
  br i1 %10298, label %10299, label %10321

10299:                                            ; preds = %10292
  %10300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10301 = call i32 @fileno(ptr noundef %10300) #11
  %10302 = call i32 @isatty(i32 noundef %10301) #11
  %10303 = icmp ne i32 %10302, 0
  br i1 %10303, label %10304, label %10321

10304:                                            ; preds = %10299
  %10305 = load i32, ptr %183, align 4, !tbaa !5
  %10306 = call ptr @__errno_location() #12
  store i32 %10305, ptr %10306, align 4, !tbaa !5
  %10307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10308 = load i32, ptr @test_count, align 4, !tbaa !5
  %10309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror(i32 noundef %10310, ptr noundef @.str.4)
  %10312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call ptr @s2n_strerror_debug(i32 noundef %10313, ptr noundef @.str.4)
  %10315 = call ptr @__errno_location() #12
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call ptr @strerror(i32 noundef %10316) #11
  %10318 = call ptr @__errno_location() #12
  %10319 = load i32, ptr %10318, align 4, !tbaa !5
  %10320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10307, ptr noundef @.str.2, i32 noundef %10308, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10311, ptr noundef %10314, ptr noundef %10317, i32 noundef %10319) #11
  br label %10338

10321:                                            ; preds = %10299, %10292
  %10322 = load i32, ptr %183, align 4, !tbaa !5
  %10323 = call ptr @__errno_location() #12
  store i32 %10322, ptr %10323, align 4, !tbaa !5
  %10324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10325 = load i32, ptr @test_count, align 4, !tbaa !5
  %10326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call ptr @s2n_strerror(i32 noundef %10327, ptr noundef @.str.4)
  %10329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  %10331 = call ptr @s2n_strerror_debug(i32 noundef %10330, ptr noundef @.str.4)
  %10332 = call ptr @__errno_location() #12
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call ptr @strerror(i32 noundef %10333) #11
  %10335 = call ptr @__errno_location() #12
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10324, ptr noundef @.str.5, i32 noundef %10325, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 377, ptr noundef %10328, ptr noundef %10331, ptr noundef %10334, i32 noundef %10336) #11
  br label %10338

10338:                                            ; preds = %10321, %10304
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %10339

10339:                                            ; preds = %10338
  br label %10340

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

10341:                                            ; No predecessors!
  br label %10342

10342:                                            ; preds = %10341
  br label %10343

10343:                                            ; preds = %10342, %10283
  br label %10344

10344:                                            ; preds = %10343
  br label %10345

10345:                                            ; preds = %10344
  br label %10346

10346:                                            ; preds = %10345
  br label %10347

10347:                                            ; preds = %10346
  br label %10348

10348:                                            ; preds = %10347
  %10349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10349, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10350 = call ptr @__errno_location() #12
  store i32 0, ptr %10350, align 4, !tbaa !5
  br label %10351

10351:                                            ; preds = %10348
  br label %10352

10352:                                            ; preds = %10351
  br label %10353

10353:                                            ; preds = %10352
  br label %10354

10354:                                            ; preds = %10353
  %10355 = load ptr, ptr %6, align 8, !tbaa !9
  %10356 = call i32 @s2n_connection_free(ptr noundef %10355)
  call void @llvm.lifetime.end.p0(i64 24, ptr %179) #11
  call void @llvm.lifetime.end.p0(i64 176, ptr %178) #11
  %10357 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %10357, label %10358, label %11580

10358:                                            ; preds = %10354
  br label %10359

10359:                                            ; preds = %10358
  %10360 = load i32, ptr @test_count, align 4, !tbaa !5
  %10361 = add nsw i32 %10360, 1
  store i32 %10361, ptr @test_count, align 4, !tbaa !5
  %10362 = call i32 (...) @s2n_reset_tls13_in_test()
  %10363 = icmp eq i32 %10362, -1
  br i1 %10363, label %10364, label %10417

10364:                                            ; preds = %10359
  br label %10365

10365:                                            ; preds = %10364
  br label %10366

10366:                                            ; preds = %10365
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %10367 = call ptr @__errno_location() #12
  %10368 = load i32, ptr %10367, align 4, !tbaa !5
  store i32 %10368, ptr %184, align 4, !tbaa !5
  %10369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10370 = call i32 @s2n_print_stacktrace(ptr noundef %10369)
  %10371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10372 = trunc i8 %10371 to i1
  br i1 %10372, label %10373, label %10395

10373:                                            ; preds = %10366
  %10374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10375 = call i32 @fileno(ptr noundef %10374) #11
  %10376 = call i32 @isatty(i32 noundef %10375) #11
  %10377 = icmp ne i32 %10376, 0
  br i1 %10377, label %10378, label %10395

10378:                                            ; preds = %10373
  %10379 = load i32, ptr %184, align 4, !tbaa !5
  %10380 = call ptr @__errno_location() #12
  store i32 %10379, ptr %10380, align 4, !tbaa !5
  %10381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10382 = load i32, ptr @test_count, align 4, !tbaa !5
  %10383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10384 = load i32, ptr %10383, align 4, !tbaa !5
  %10385 = call ptr @s2n_strerror(i32 noundef %10384, ptr noundef @.str.4)
  %10386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10387 = load i32, ptr %10386, align 4, !tbaa !5
  %10388 = call ptr @s2n_strerror_debug(i32 noundef %10387, ptr noundef @.str.4)
  %10389 = call ptr @__errno_location() #12
  %10390 = load i32, ptr %10389, align 4, !tbaa !5
  %10391 = call ptr @strerror(i32 noundef %10390) #11
  %10392 = call ptr @__errno_location() #12
  %10393 = load i32, ptr %10392, align 4, !tbaa !5
  %10394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10381, ptr noundef @.str.2, i32 noundef %10382, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10385, ptr noundef %10388, ptr noundef %10391, i32 noundef %10393) #11
  br label %10412

10395:                                            ; preds = %10373, %10366
  %10396 = load i32, ptr %184, align 4, !tbaa !5
  %10397 = call ptr @__errno_location() #12
  store i32 %10396, ptr %10397, align 4, !tbaa !5
  %10398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10399 = load i32, ptr @test_count, align 4, !tbaa !5
  %10400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10401 = load i32, ptr %10400, align 4, !tbaa !5
  %10402 = call ptr @s2n_strerror(i32 noundef %10401, ptr noundef @.str.4)
  %10403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10404 = load i32, ptr %10403, align 4, !tbaa !5
  %10405 = call ptr @s2n_strerror_debug(i32 noundef %10404, ptr noundef @.str.4)
  %10406 = call ptr @__errno_location() #12
  %10407 = load i32, ptr %10406, align 4, !tbaa !5
  %10408 = call ptr @strerror(i32 noundef %10407) #11
  %10409 = call ptr @__errno_location() #12
  %10410 = load i32, ptr %10409, align 4, !tbaa !5
  %10411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10398, ptr noundef @.str.5, i32 noundef %10399, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 386, ptr noundef %10402, ptr noundef %10405, ptr noundef %10408, i32 noundef %10410) #11
  br label %10412

10412:                                            ; preds = %10395, %10378
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %10413

10413:                                            ; preds = %10412
  br label %10414

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

10415:                                            ; No predecessors!
  br label %10416

10416:                                            ; preds = %10415
  br label %10417

10417:                                            ; preds = %10416, %10359
  br label %10418

10418:                                            ; preds = %10417
  br label %10419

10419:                                            ; preds = %10418
  call void @llvm.lifetime.start.p0(i64 8, ptr %185) #11
  store i64 10, ptr %185, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %186) #11
  store ptr null, ptr %186, align 8, !tbaa !9
  br label %10420

10420:                                            ; preds = %10419
  %10421 = load i32, ptr @test_count, align 4, !tbaa !5
  %10422 = add nsw i32 %10421, 1
  store i32 %10422, ptr @test_count, align 4, !tbaa !5
  %10423 = call ptr @s2n_config_new()
  store ptr %10423, ptr %186, align 8, !tbaa !9
  %10424 = icmp eq ptr %10423, null
  br i1 %10424, label %10425, label %10478

10425:                                            ; preds = %10420
  br label %10426

10426:                                            ; preds = %10425
  br label %10427

10427:                                            ; preds = %10426
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %10428 = call ptr @__errno_location() #12
  %10429 = load i32, ptr %10428, align 4, !tbaa !5
  store i32 %10429, ptr %187, align 4, !tbaa !5
  %10430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10431 = call i32 @s2n_print_stacktrace(ptr noundef %10430)
  %10432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10433 = trunc i8 %10432 to i1
  br i1 %10433, label %10434, label %10456

10434:                                            ; preds = %10427
  %10435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10436 = call i32 @fileno(ptr noundef %10435) #11
  %10437 = call i32 @isatty(i32 noundef %10436) #11
  %10438 = icmp ne i32 %10437, 0
  br i1 %10438, label %10439, label %10456

10439:                                            ; preds = %10434
  %10440 = load i32, ptr %187, align 4, !tbaa !5
  %10441 = call ptr @__errno_location() #12
  store i32 %10440, ptr %10441, align 4, !tbaa !5
  %10442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10443 = load i32, ptr @test_count, align 4, !tbaa !5
  %10444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10445 = load i32, ptr %10444, align 4, !tbaa !5
  %10446 = call ptr @s2n_strerror(i32 noundef %10445, ptr noundef @.str.4)
  %10447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10448 = load i32, ptr %10447, align 4, !tbaa !5
  %10449 = call ptr @s2n_strerror_debug(i32 noundef %10448, ptr noundef @.str.4)
  %10450 = call ptr @__errno_location() #12
  %10451 = load i32, ptr %10450, align 4, !tbaa !5
  %10452 = call ptr @strerror(i32 noundef %10451) #11
  %10453 = call ptr @__errno_location() #12
  %10454 = load i32, ptr %10453, align 4, !tbaa !5
  %10455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10442, ptr noundef @.str.2, i32 noundef %10443, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 391, ptr noundef %10446, ptr noundef %10449, ptr noundef %10452, i32 noundef %10454) #11
  br label %10473

10456:                                            ; preds = %10434, %10427
  %10457 = load i32, ptr %187, align 4, !tbaa !5
  %10458 = call ptr @__errno_location() #12
  store i32 %10457, ptr %10458, align 4, !tbaa !5
  %10459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10460 = load i32, ptr @test_count, align 4, !tbaa !5
  %10461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10462 = load i32, ptr %10461, align 4, !tbaa !5
  %10463 = call ptr @s2n_strerror(i32 noundef %10462, ptr noundef @.str.4)
  %10464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10465 = load i32, ptr %10464, align 4, !tbaa !5
  %10466 = call ptr @s2n_strerror_debug(i32 noundef %10465, ptr noundef @.str.4)
  %10467 = call ptr @__errno_location() #12
  %10468 = load i32, ptr %10467, align 4, !tbaa !5
  %10469 = call ptr @strerror(i32 noundef %10468) #11
  %10470 = call ptr @__errno_location() #12
  %10471 = load i32, ptr %10470, align 4, !tbaa !5
  %10472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10459, ptr noundef @.str.5, i32 noundef %10460, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 391, ptr noundef %10463, ptr noundef %10466, ptr noundef %10469, i32 noundef %10471) #11
  br label %10473

10473:                                            ; preds = %10456, %10439
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %10474

10474:                                            ; preds = %10473
  br label %10475

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

10476:                                            ; No predecessors!
  br label %10477

10477:                                            ; preds = %10476
  br label %10478

10478:                                            ; preds = %10477, %10420
  br label %10479

10479:                                            ; preds = %10478
  br label %10480

10480:                                            ; preds = %10479
  br label %10481

10481:                                            ; preds = %10480
  %10482 = load i32, ptr @test_count, align 4, !tbaa !5
  %10483 = add nsw i32 %10482, 1
  store i32 %10483, ptr @test_count, align 4, !tbaa !5
  %10484 = load ptr, ptr %186, align 8, !tbaa !9
  %10485 = call i32 @s2n_config_enable_quic(ptr noundef %10484)
  %10486 = icmp eq i32 %10485, -1
  br i1 %10486, label %10487, label %10540

10487:                                            ; preds = %10481
  br label %10488

10488:                                            ; preds = %10487
  br label %10489

10489:                                            ; preds = %10488
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %10490 = call ptr @__errno_location() #12
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  store i32 %10491, ptr %188, align 4, !tbaa !5
  %10492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10493 = call i32 @s2n_print_stacktrace(ptr noundef %10492)
  %10494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10495 = trunc i8 %10494 to i1
  br i1 %10495, label %10496, label %10518

10496:                                            ; preds = %10489
  %10497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10498 = call i32 @fileno(ptr noundef %10497) #11
  %10499 = call i32 @isatty(i32 noundef %10498) #11
  %10500 = icmp ne i32 %10499, 0
  br i1 %10500, label %10501, label %10518

10501:                                            ; preds = %10496
  %10502 = load i32, ptr %188, align 4, !tbaa !5
  %10503 = call ptr @__errno_location() #12
  store i32 %10502, ptr %10503, align 4, !tbaa !5
  %10504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10505 = load i32, ptr @test_count, align 4, !tbaa !5
  %10506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10507 = load i32, ptr %10506, align 4, !tbaa !5
  %10508 = call ptr @s2n_strerror(i32 noundef %10507, ptr noundef @.str.4)
  %10509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10510 = load i32, ptr %10509, align 4, !tbaa !5
  %10511 = call ptr @s2n_strerror_debug(i32 noundef %10510, ptr noundef @.str.4)
  %10512 = call ptr @__errno_location() #12
  %10513 = load i32, ptr %10512, align 4, !tbaa !5
  %10514 = call ptr @strerror(i32 noundef %10513) #11
  %10515 = call ptr @__errno_location() #12
  %10516 = load i32, ptr %10515, align 4, !tbaa !5
  %10517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10504, ptr noundef @.str.2, i32 noundef %10505, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 392, ptr noundef %10508, ptr noundef %10511, ptr noundef %10514, i32 noundef %10516) #11
  br label %10535

10518:                                            ; preds = %10496, %10489
  %10519 = load i32, ptr %188, align 4, !tbaa !5
  %10520 = call ptr @__errno_location() #12
  store i32 %10519, ptr %10520, align 4, !tbaa !5
  %10521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10522 = load i32, ptr @test_count, align 4, !tbaa !5
  %10523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10524 = load i32, ptr %10523, align 4, !tbaa !5
  %10525 = call ptr @s2n_strerror(i32 noundef %10524, ptr noundef @.str.4)
  %10526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10527 = load i32, ptr %10526, align 4, !tbaa !5
  %10528 = call ptr @s2n_strerror_debug(i32 noundef %10527, ptr noundef @.str.4)
  %10529 = call ptr @__errno_location() #12
  %10530 = load i32, ptr %10529, align 4, !tbaa !5
  %10531 = call ptr @strerror(i32 noundef %10530) #11
  %10532 = call ptr @__errno_location() #12
  %10533 = load i32, ptr %10532, align 4, !tbaa !5
  %10534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10521, ptr noundef @.str.5, i32 noundef %10522, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 392, ptr noundef %10525, ptr noundef %10528, ptr noundef %10531, i32 noundef %10533) #11
  br label %10535

10535:                                            ; preds = %10518, %10501
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %10536

10536:                                            ; preds = %10535
  br label %10537

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

10538:                                            ; No predecessors!
  br label %10539

10539:                                            ; preds = %10538
  br label %10540

10540:                                            ; preds = %10539, %10481
  br label %10541

10541:                                            ; preds = %10540
  br label %10542

10542:                                            ; preds = %10541
  br label %10543

10543:                                            ; preds = %10542
  %10544 = load i32, ptr @test_count, align 4, !tbaa !5
  %10545 = add nsw i32 %10544, 1
  store i32 %10545, ptr @test_count, align 4, !tbaa !5
  %10546 = load ptr, ptr %186, align 8, !tbaa !9
  %10547 = load ptr, ptr %12, align 8, !tbaa !9
  %10548 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %10546, ptr noundef %10547)
  %10549 = icmp eq i32 %10548, -1
  br i1 %10549, label %10550, label %10603

10550:                                            ; preds = %10543
  br label %10551

10551:                                            ; preds = %10550
  br label %10552

10552:                                            ; preds = %10551
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %10553 = call ptr @__errno_location() #12
  %10554 = load i32, ptr %10553, align 4, !tbaa !5
  store i32 %10554, ptr %189, align 4, !tbaa !5
  %10555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10556 = call i32 @s2n_print_stacktrace(ptr noundef %10555)
  %10557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10558 = trunc i8 %10557 to i1
  br i1 %10558, label %10559, label %10581

10559:                                            ; preds = %10552
  %10560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10561 = call i32 @fileno(ptr noundef %10560) #11
  %10562 = call i32 @isatty(i32 noundef %10561) #11
  %10563 = icmp ne i32 %10562, 0
  br i1 %10563, label %10564, label %10581

10564:                                            ; preds = %10559
  %10565 = load i32, ptr %189, align 4, !tbaa !5
  %10566 = call ptr @__errno_location() #12
  store i32 %10565, ptr %10566, align 4, !tbaa !5
  %10567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10568 = load i32, ptr @test_count, align 4, !tbaa !5
  %10569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10570 = load i32, ptr %10569, align 4, !tbaa !5
  %10571 = call ptr @s2n_strerror(i32 noundef %10570, ptr noundef @.str.4)
  %10572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10573 = load i32, ptr %10572, align 4, !tbaa !5
  %10574 = call ptr @s2n_strerror_debug(i32 noundef %10573, ptr noundef @.str.4)
  %10575 = call ptr @__errno_location() #12
  %10576 = load i32, ptr %10575, align 4, !tbaa !5
  %10577 = call ptr @strerror(i32 noundef %10576) #11
  %10578 = call ptr @__errno_location() #12
  %10579 = load i32, ptr %10578, align 4, !tbaa !5
  %10580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10567, ptr noundef @.str.2, i32 noundef %10568, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 393, ptr noundef %10571, ptr noundef %10574, ptr noundef %10577, i32 noundef %10579) #11
  br label %10598

10581:                                            ; preds = %10559, %10552
  %10582 = load i32, ptr %189, align 4, !tbaa !5
  %10583 = call ptr @__errno_location() #12
  store i32 %10582, ptr %10583, align 4, !tbaa !5
  %10584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10585 = load i32, ptr @test_count, align 4, !tbaa !5
  %10586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10587 = load i32, ptr %10586, align 4, !tbaa !5
  %10588 = call ptr @s2n_strerror(i32 noundef %10587, ptr noundef @.str.4)
  %10589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10590 = load i32, ptr %10589, align 4, !tbaa !5
  %10591 = call ptr @s2n_strerror_debug(i32 noundef %10590, ptr noundef @.str.4)
  %10592 = call ptr @__errno_location() #12
  %10593 = load i32, ptr %10592, align 4, !tbaa !5
  %10594 = call ptr @strerror(i32 noundef %10593) #11
  %10595 = call ptr @__errno_location() #12
  %10596 = load i32, ptr %10595, align 4, !tbaa !5
  %10597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10584, ptr noundef @.str.5, i32 noundef %10585, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 393, ptr noundef %10588, ptr noundef %10591, ptr noundef %10594, i32 noundef %10596) #11
  br label %10598

10598:                                            ; preds = %10581, %10564
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %10599

10599:                                            ; preds = %10598
  br label %10600

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

10601:                                            ; No predecessors!
  br label %10602

10602:                                            ; preds = %10601
  br label %10603

10603:                                            ; preds = %10602, %10543
  br label %10604

10604:                                            ; preds = %10603
  br label %10605

10605:                                            ; preds = %10604
  br label %10606

10606:                                            ; preds = %10605
  %10607 = load i32, ptr @test_count, align 4, !tbaa !5
  %10608 = add nsw i32 %10607, 1
  store i32 %10608, ptr @test_count, align 4, !tbaa !5
  %10609 = load ptr, ptr %186, align 8, !tbaa !9
  %10610 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %10609, ptr noundef @.str.58)
  %10611 = icmp eq i32 %10610, -1
  br i1 %10611, label %10612, label %10665

10612:                                            ; preds = %10606
  br label %10613

10613:                                            ; preds = %10612
  br label %10614

10614:                                            ; preds = %10613
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %10615 = call ptr @__errno_location() #12
  %10616 = load i32, ptr %10615, align 4, !tbaa !5
  store i32 %10616, ptr %190, align 4, !tbaa !5
  %10617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10618 = call i32 @s2n_print_stacktrace(ptr noundef %10617)
  %10619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10620 = trunc i8 %10619 to i1
  br i1 %10620, label %10621, label %10643

10621:                                            ; preds = %10614
  %10622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10623 = call i32 @fileno(ptr noundef %10622) #11
  %10624 = call i32 @isatty(i32 noundef %10623) #11
  %10625 = icmp ne i32 %10624, 0
  br i1 %10625, label %10626, label %10643

10626:                                            ; preds = %10621
  %10627 = load i32, ptr %190, align 4, !tbaa !5
  %10628 = call ptr @__errno_location() #12
  store i32 %10627, ptr %10628, align 4, !tbaa !5
  %10629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10630 = load i32, ptr @test_count, align 4, !tbaa !5
  %10631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10632 = load i32, ptr %10631, align 4, !tbaa !5
  %10633 = call ptr @s2n_strerror(i32 noundef %10632, ptr noundef @.str.4)
  %10634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10635 = load i32, ptr %10634, align 4, !tbaa !5
  %10636 = call ptr @s2n_strerror_debug(i32 noundef %10635, ptr noundef @.str.4)
  %10637 = call ptr @__errno_location() #12
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  %10639 = call ptr @strerror(i32 noundef %10638) #11
  %10640 = call ptr @__errno_location() #12
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  %10642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10629, ptr noundef @.str.2, i32 noundef %10630, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 394, ptr noundef %10633, ptr noundef %10636, ptr noundef %10639, i32 noundef %10641) #11
  br label %10660

10643:                                            ; preds = %10621, %10614
  %10644 = load i32, ptr %190, align 4, !tbaa !5
  %10645 = call ptr @__errno_location() #12
  store i32 %10644, ptr %10645, align 4, !tbaa !5
  %10646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10647 = load i32, ptr @test_count, align 4, !tbaa !5
  %10648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10649 = load i32, ptr %10648, align 4, !tbaa !5
  %10650 = call ptr @s2n_strerror(i32 noundef %10649, ptr noundef @.str.4)
  %10651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10652 = load i32, ptr %10651, align 4, !tbaa !5
  %10653 = call ptr @s2n_strerror_debug(i32 noundef %10652, ptr noundef @.str.4)
  %10654 = call ptr @__errno_location() #12
  %10655 = load i32, ptr %10654, align 4, !tbaa !5
  %10656 = call ptr @strerror(i32 noundef %10655) #11
  %10657 = call ptr @__errno_location() #12
  %10658 = load i32, ptr %10657, align 4, !tbaa !5
  %10659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10646, ptr noundef @.str.5, i32 noundef %10647, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 394, ptr noundef %10650, ptr noundef %10653, ptr noundef %10656, i32 noundef %10658) #11
  br label %10660

10660:                                            ; preds = %10643, %10626
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %10661

10661:                                            ; preds = %10660
  br label %10662

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

10663:                                            ; No predecessors!
  br label %10664

10664:                                            ; preds = %10663
  br label %10665

10665:                                            ; preds = %10664, %10606
  br label %10666

10666:                                            ; preds = %10665
  br label %10667

10667:                                            ; preds = %10666
  br label %10668

10668:                                            ; preds = %10667
  %10669 = load i32, ptr @test_count, align 4, !tbaa !5
  %10670 = add nsw i32 %10669, 1
  store i32 %10670, ptr @test_count, align 4, !tbaa !5
  %10671 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10671, ptr %6, align 8, !tbaa !9
  %10672 = icmp eq ptr %10671, null
  br i1 %10672, label %10673, label %10726

10673:                                            ; preds = %10668
  br label %10674

10674:                                            ; preds = %10673
  br label %10675

10675:                                            ; preds = %10674
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %10676 = call ptr @__errno_location() #12
  %10677 = load i32, ptr %10676, align 4, !tbaa !5
  store i32 %10677, ptr %191, align 4, !tbaa !5
  %10678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10679 = call i32 @s2n_print_stacktrace(ptr noundef %10678)
  %10680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10681 = trunc i8 %10680 to i1
  br i1 %10681, label %10682, label %10704

10682:                                            ; preds = %10675
  %10683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10684 = call i32 @fileno(ptr noundef %10683) #11
  %10685 = call i32 @isatty(i32 noundef %10684) #11
  %10686 = icmp ne i32 %10685, 0
  br i1 %10686, label %10687, label %10704

10687:                                            ; preds = %10682
  %10688 = load i32, ptr %191, align 4, !tbaa !5
  %10689 = call ptr @__errno_location() #12
  store i32 %10688, ptr %10689, align 4, !tbaa !5
  %10690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10691 = load i32, ptr @test_count, align 4, !tbaa !5
  %10692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10693 = load i32, ptr %10692, align 4, !tbaa !5
  %10694 = call ptr @s2n_strerror(i32 noundef %10693, ptr noundef @.str.4)
  %10695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10696 = load i32, ptr %10695, align 4, !tbaa !5
  %10697 = call ptr @s2n_strerror_debug(i32 noundef %10696, ptr noundef @.str.4)
  %10698 = call ptr @__errno_location() #12
  %10699 = load i32, ptr %10698, align 4, !tbaa !5
  %10700 = call ptr @strerror(i32 noundef %10699) #11
  %10701 = call ptr @__errno_location() #12
  %10702 = load i32, ptr %10701, align 4, !tbaa !5
  %10703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10690, ptr noundef @.str.2, i32 noundef %10691, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 398, ptr noundef %10694, ptr noundef %10697, ptr noundef %10700, i32 noundef %10702) #11
  br label %10721

10704:                                            ; preds = %10682, %10675
  %10705 = load i32, ptr %191, align 4, !tbaa !5
  %10706 = call ptr @__errno_location() #12
  store i32 %10705, ptr %10706, align 4, !tbaa !5
  %10707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10708 = load i32, ptr @test_count, align 4, !tbaa !5
  %10709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  %10711 = call ptr @s2n_strerror(i32 noundef %10710, ptr noundef @.str.4)
  %10712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10713 = load i32, ptr %10712, align 4, !tbaa !5
  %10714 = call ptr @s2n_strerror_debug(i32 noundef %10713, ptr noundef @.str.4)
  %10715 = call ptr @__errno_location() #12
  %10716 = load i32, ptr %10715, align 4, !tbaa !5
  %10717 = call ptr @strerror(i32 noundef %10716) #11
  %10718 = call ptr @__errno_location() #12
  %10719 = load i32, ptr %10718, align 4, !tbaa !5
  %10720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10707, ptr noundef @.str.5, i32 noundef %10708, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 398, ptr noundef %10711, ptr noundef %10714, ptr noundef %10717, i32 noundef %10719) #11
  br label %10721

10721:                                            ; preds = %10704, %10687
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %10722

10722:                                            ; preds = %10721
  br label %10723

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

10724:                                            ; No predecessors!
  br label %10725

10725:                                            ; preds = %10724
  br label %10726

10726:                                            ; preds = %10725, %10668
  br label %10727

10727:                                            ; preds = %10726
  br label %10728

10728:                                            ; preds = %10727
  br label %10729

10729:                                            ; preds = %10728
  %10730 = load i32, ptr @test_count, align 4, !tbaa !5
  %10731 = add nsw i32 %10730, 1
  store i32 %10731, ptr @test_count, align 4, !tbaa !5
  %10732 = load ptr, ptr %6, align 8, !tbaa !9
  %10733 = load ptr, ptr %186, align 8, !tbaa !9
  %10734 = call i32 @s2n_connection_set_config(ptr noundef %10732, ptr noundef %10733)
  %10735 = icmp eq i32 %10734, -1
  br i1 %10735, label %10736, label %10789

10736:                                            ; preds = %10729
  br label %10737

10737:                                            ; preds = %10736
  br label %10738

10738:                                            ; preds = %10737
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %10739 = call ptr @__errno_location() #12
  %10740 = load i32, ptr %10739, align 4, !tbaa !5
  store i32 %10740, ptr %192, align 4, !tbaa !5
  %10741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10742 = call i32 @s2n_print_stacktrace(ptr noundef %10741)
  %10743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10744 = trunc i8 %10743 to i1
  br i1 %10744, label %10745, label %10767

10745:                                            ; preds = %10738
  %10746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10747 = call i32 @fileno(ptr noundef %10746) #11
  %10748 = call i32 @isatty(i32 noundef %10747) #11
  %10749 = icmp ne i32 %10748, 0
  br i1 %10749, label %10750, label %10767

10750:                                            ; preds = %10745
  %10751 = load i32, ptr %192, align 4, !tbaa !5
  %10752 = call ptr @__errno_location() #12
  store i32 %10751, ptr %10752, align 4, !tbaa !5
  %10753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10754 = load i32, ptr @test_count, align 4, !tbaa !5
  %10755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10756 = load i32, ptr %10755, align 4, !tbaa !5
  %10757 = call ptr @s2n_strerror(i32 noundef %10756, ptr noundef @.str.4)
  %10758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10759 = load i32, ptr %10758, align 4, !tbaa !5
  %10760 = call ptr @s2n_strerror_debug(i32 noundef %10759, ptr noundef @.str.4)
  %10761 = call ptr @__errno_location() #12
  %10762 = load i32, ptr %10761, align 4, !tbaa !5
  %10763 = call ptr @strerror(i32 noundef %10762) #11
  %10764 = call ptr @__errno_location() #12
  %10765 = load i32, ptr %10764, align 4, !tbaa !5
  %10766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10753, ptr noundef @.str.2, i32 noundef %10754, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 399, ptr noundef %10757, ptr noundef %10760, ptr noundef %10763, i32 noundef %10765) #11
  br label %10784

10767:                                            ; preds = %10745, %10738
  %10768 = load i32, ptr %192, align 4, !tbaa !5
  %10769 = call ptr @__errno_location() #12
  store i32 %10768, ptr %10769, align 4, !tbaa !5
  %10770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10771 = load i32, ptr @test_count, align 4, !tbaa !5
  %10772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call ptr @s2n_strerror(i32 noundef %10773, ptr noundef @.str.4)
  %10775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  %10777 = call ptr @s2n_strerror_debug(i32 noundef %10776, ptr noundef @.str.4)
  %10778 = call ptr @__errno_location() #12
  %10779 = load i32, ptr %10778, align 4, !tbaa !5
  %10780 = call ptr @strerror(i32 noundef %10779) #11
  %10781 = call ptr @__errno_location() #12
  %10782 = load i32, ptr %10781, align 4, !tbaa !5
  %10783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10770, ptr noundef @.str.5, i32 noundef %10771, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 399, ptr noundef %10774, ptr noundef %10777, ptr noundef %10780, i32 noundef %10782) #11
  br label %10784

10784:                                            ; preds = %10767, %10750
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %10785

10785:                                            ; preds = %10784
  br label %10786

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

10787:                                            ; No predecessors!
  br label %10788

10788:                                            ; preds = %10787
  br label %10789

10789:                                            ; preds = %10788, %10729
  br label %10790

10790:                                            ; preds = %10789
  br label %10791

10791:                                            ; preds = %10790
  br label %10792

10792:                                            ; preds = %10791
  %10793 = load i32, ptr @test_count, align 4, !tbaa !5
  %10794 = add nsw i32 %10793, 1
  store i32 %10794, ptr @test_count, align 4, !tbaa !5
  %10795 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10795, ptr %7, align 8, !tbaa !9
  %10796 = icmp eq ptr %10795, null
  br i1 %10796, label %10797, label %10850

10797:                                            ; preds = %10792
  br label %10798

10798:                                            ; preds = %10797
  br label %10799

10799:                                            ; preds = %10798
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %10800 = call ptr @__errno_location() #12
  %10801 = load i32, ptr %10800, align 4, !tbaa !5
  store i32 %10801, ptr %193, align 4, !tbaa !5
  %10802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10803 = call i32 @s2n_print_stacktrace(ptr noundef %10802)
  %10804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10805 = trunc i8 %10804 to i1
  br i1 %10805, label %10806, label %10828

10806:                                            ; preds = %10799
  %10807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10808 = call i32 @fileno(ptr noundef %10807) #11
  %10809 = call i32 @isatty(i32 noundef %10808) #11
  %10810 = icmp ne i32 %10809, 0
  br i1 %10810, label %10811, label %10828

10811:                                            ; preds = %10806
  %10812 = load i32, ptr %193, align 4, !tbaa !5
  %10813 = call ptr @__errno_location() #12
  store i32 %10812, ptr %10813, align 4, !tbaa !5
  %10814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10815 = load i32, ptr @test_count, align 4, !tbaa !5
  %10816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10817 = load i32, ptr %10816, align 4, !tbaa !5
  %10818 = call ptr @s2n_strerror(i32 noundef %10817, ptr noundef @.str.4)
  %10819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10820 = load i32, ptr %10819, align 4, !tbaa !5
  %10821 = call ptr @s2n_strerror_debug(i32 noundef %10820, ptr noundef @.str.4)
  %10822 = call ptr @__errno_location() #12
  %10823 = load i32, ptr %10822, align 4, !tbaa !5
  %10824 = call ptr @strerror(i32 noundef %10823) #11
  %10825 = call ptr @__errno_location() #12
  %10826 = load i32, ptr %10825, align 4, !tbaa !5
  %10827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10814, ptr noundef @.str.2, i32 noundef %10815, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 401, ptr noundef %10818, ptr noundef %10821, ptr noundef %10824, i32 noundef %10826) #11
  br label %10845

10828:                                            ; preds = %10806, %10799
  %10829 = load i32, ptr %193, align 4, !tbaa !5
  %10830 = call ptr @__errno_location() #12
  store i32 %10829, ptr %10830, align 4, !tbaa !5
  %10831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10832 = load i32, ptr @test_count, align 4, !tbaa !5
  %10833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10834 = load i32, ptr %10833, align 4, !tbaa !5
  %10835 = call ptr @s2n_strerror(i32 noundef %10834, ptr noundef @.str.4)
  %10836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10837 = load i32, ptr %10836, align 4, !tbaa !5
  %10838 = call ptr @s2n_strerror_debug(i32 noundef %10837, ptr noundef @.str.4)
  %10839 = call ptr @__errno_location() #12
  %10840 = load i32, ptr %10839, align 4, !tbaa !5
  %10841 = call ptr @strerror(i32 noundef %10840) #11
  %10842 = call ptr @__errno_location() #12
  %10843 = load i32, ptr %10842, align 4, !tbaa !5
  %10844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10831, ptr noundef @.str.5, i32 noundef %10832, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 401, ptr noundef %10835, ptr noundef %10838, ptr noundef %10841, i32 noundef %10843) #11
  br label %10845

10845:                                            ; preds = %10828, %10811
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %10846

10846:                                            ; preds = %10845
  br label %10847

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

10848:                                            ; No predecessors!
  br label %10849

10849:                                            ; preds = %10848
  br label %10850

10850:                                            ; preds = %10849, %10792
  br label %10851

10851:                                            ; preds = %10850
  br label %10852

10852:                                            ; preds = %10851
  br label %10853

10853:                                            ; preds = %10852
  %10854 = load i32, ptr @test_count, align 4, !tbaa !5
  %10855 = add nsw i32 %10854, 1
  store i32 %10855, ptr @test_count, align 4, !tbaa !5
  %10856 = load ptr, ptr %7, align 8, !tbaa !9
  %10857 = load ptr, ptr %186, align 8, !tbaa !9
  %10858 = call i32 @s2n_connection_set_config(ptr noundef %10856, ptr noundef %10857)
  %10859 = icmp eq i32 %10858, -1
  br i1 %10859, label %10860, label %10913

10860:                                            ; preds = %10853
  br label %10861

10861:                                            ; preds = %10860
  br label %10862

10862:                                            ; preds = %10861
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %10863 = call ptr @__errno_location() #12
  %10864 = load i32, ptr %10863, align 4, !tbaa !5
  store i32 %10864, ptr %194, align 4, !tbaa !5
  %10865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10866 = call i32 @s2n_print_stacktrace(ptr noundef %10865)
  %10867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10868 = trunc i8 %10867 to i1
  br i1 %10868, label %10869, label %10891

10869:                                            ; preds = %10862
  %10870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10871 = call i32 @fileno(ptr noundef %10870) #11
  %10872 = call i32 @isatty(i32 noundef %10871) #11
  %10873 = icmp ne i32 %10872, 0
  br i1 %10873, label %10874, label %10891

10874:                                            ; preds = %10869
  %10875 = load i32, ptr %194, align 4, !tbaa !5
  %10876 = call ptr @__errno_location() #12
  store i32 %10875, ptr %10876, align 4, !tbaa !5
  %10877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10878 = load i32, ptr @test_count, align 4, !tbaa !5
  %10879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10880 = load i32, ptr %10879, align 4, !tbaa !5
  %10881 = call ptr @s2n_strerror(i32 noundef %10880, ptr noundef @.str.4)
  %10882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10883 = load i32, ptr %10882, align 4, !tbaa !5
  %10884 = call ptr @s2n_strerror_debug(i32 noundef %10883, ptr noundef @.str.4)
  %10885 = call ptr @__errno_location() #12
  %10886 = load i32, ptr %10885, align 4, !tbaa !5
  %10887 = call ptr @strerror(i32 noundef %10886) #11
  %10888 = call ptr @__errno_location() #12
  %10889 = load i32, ptr %10888, align 4, !tbaa !5
  %10890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10877, ptr noundef @.str.2, i32 noundef %10878, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 402, ptr noundef %10881, ptr noundef %10884, ptr noundef %10887, i32 noundef %10889) #11
  br label %10908

10891:                                            ; preds = %10869, %10862
  %10892 = load i32, ptr %194, align 4, !tbaa !5
  %10893 = call ptr @__errno_location() #12
  store i32 %10892, ptr %10893, align 4, !tbaa !5
  %10894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10895 = load i32, ptr @test_count, align 4, !tbaa !5
  %10896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10897 = load i32, ptr %10896, align 4, !tbaa !5
  %10898 = call ptr @s2n_strerror(i32 noundef %10897, ptr noundef @.str.4)
  %10899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10900 = load i32, ptr %10899, align 4, !tbaa !5
  %10901 = call ptr @s2n_strerror_debug(i32 noundef %10900, ptr noundef @.str.4)
  %10902 = call ptr @__errno_location() #12
  %10903 = load i32, ptr %10902, align 4, !tbaa !5
  %10904 = call ptr @strerror(i32 noundef %10903) #11
  %10905 = call ptr @__errno_location() #12
  %10906 = load i32, ptr %10905, align 4, !tbaa !5
  %10907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10894, ptr noundef @.str.5, i32 noundef %10895, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 402, ptr noundef %10898, ptr noundef %10901, ptr noundef %10904, i32 noundef %10906) #11
  br label %10908

10908:                                            ; preds = %10891, %10874
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %10909

10909:                                            ; preds = %10908
  br label %10910

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

10911:                                            ; No predecessors!
  br label %10912

10912:                                            ; preds = %10911
  br label %10913

10913:                                            ; preds = %10912, %10853
  br label %10914

10914:                                            ; preds = %10913
  br label %10915

10915:                                            ; preds = %10914
  br label %10916

10916:                                            ; preds = %10915
  %10917 = load i32, ptr @test_count, align 4, !tbaa !5
  %10918 = add nsw i32 %10917, 1
  store i32 %10918, ptr @test_count, align 4, !tbaa !5
  %10919 = load ptr, ptr %7, align 8, !tbaa !9
  %10920 = call i32 @s2n_client_hello_send(ptr noundef %10919)
  %10921 = icmp eq i32 %10920, -1
  br i1 %10921, label %10922, label %10975

10922:                                            ; preds = %10916
  br label %10923

10923:                                            ; preds = %10922
  br label %10924

10924:                                            ; preds = %10923
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %10925 = call ptr @__errno_location() #12
  %10926 = load i32, ptr %10925, align 4, !tbaa !5
  store i32 %10926, ptr %195, align 4, !tbaa !5
  %10927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10928 = call i32 @s2n_print_stacktrace(ptr noundef %10927)
  %10929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10930 = trunc i8 %10929 to i1
  br i1 %10930, label %10931, label %10953

10931:                                            ; preds = %10924
  %10932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10933 = call i32 @fileno(ptr noundef %10932) #11
  %10934 = call i32 @isatty(i32 noundef %10933) #11
  %10935 = icmp ne i32 %10934, 0
  br i1 %10935, label %10936, label %10953

10936:                                            ; preds = %10931
  %10937 = load i32, ptr %195, align 4, !tbaa !5
  %10938 = call ptr @__errno_location() #12
  store i32 %10937, ptr %10938, align 4, !tbaa !5
  %10939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10940 = load i32, ptr @test_count, align 4, !tbaa !5
  %10941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10942 = load i32, ptr %10941, align 4, !tbaa !5
  %10943 = call ptr @s2n_strerror(i32 noundef %10942, ptr noundef @.str.4)
  %10944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10945 = load i32, ptr %10944, align 4, !tbaa !5
  %10946 = call ptr @s2n_strerror_debug(i32 noundef %10945, ptr noundef @.str.4)
  %10947 = call ptr @__errno_location() #12
  %10948 = load i32, ptr %10947, align 4, !tbaa !5
  %10949 = call ptr @strerror(i32 noundef %10948) #11
  %10950 = call ptr @__errno_location() #12
  %10951 = load i32, ptr %10950, align 4, !tbaa !5
  %10952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10939, ptr noundef @.str.2, i32 noundef %10940, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 404, ptr noundef %10943, ptr noundef %10946, ptr noundef %10949, i32 noundef %10951) #11
  br label %10970

10953:                                            ; preds = %10931, %10924
  %10954 = load i32, ptr %195, align 4, !tbaa !5
  %10955 = call ptr @__errno_location() #12
  store i32 %10954, ptr %10955, align 4, !tbaa !5
  %10956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10957 = load i32, ptr @test_count, align 4, !tbaa !5
  %10958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10959 = load i32, ptr %10958, align 4, !tbaa !5
  %10960 = call ptr @s2n_strerror(i32 noundef %10959, ptr noundef @.str.4)
  %10961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10962 = load i32, ptr %10961, align 4, !tbaa !5
  %10963 = call ptr @s2n_strerror_debug(i32 noundef %10962, ptr noundef @.str.4)
  %10964 = call ptr @__errno_location() #12
  %10965 = load i32, ptr %10964, align 4, !tbaa !5
  %10966 = call ptr @strerror(i32 noundef %10965) #11
  %10967 = call ptr @__errno_location() #12
  %10968 = load i32, ptr %10967, align 4, !tbaa !5
  %10969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10956, ptr noundef @.str.5, i32 noundef %10957, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 404, ptr noundef %10960, ptr noundef %10963, ptr noundef %10966, i32 noundef %10968) #11
  br label %10970

10970:                                            ; preds = %10953, %10936
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %10971

10971:                                            ; preds = %10970
  br label %10972

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

10973:                                            ; No predecessors!
  br label %10974

10974:                                            ; preds = %10973
  br label %10975

10975:                                            ; preds = %10974, %10916
  br label %10976

10976:                                            ; preds = %10975
  br label %10977

10977:                                            ; preds = %10976
  br label %10978

10978:                                            ; preds = %10977
  %10979 = load i32, ptr @test_count, align 4, !tbaa !5
  %10980 = add nsw i32 %10979, 1
  store i32 %10980, ptr @test_count, align 4, !tbaa !5
  %10981 = load ptr, ptr %7, align 8, !tbaa !9
  %10982 = getelementptr inbounds %struct.s2n_connection, ptr %10981, i32 0, i32 52
  %10983 = getelementptr inbounds %struct.s2n_handshake, ptr %10982, i32 0, i32 0
  %10984 = load ptr, ptr %6, align 8, !tbaa !9
  %10985 = getelementptr inbounds %struct.s2n_connection, ptr %10984, i32 0, i32 52
  %10986 = getelementptr inbounds %struct.s2n_handshake, ptr %10985, i32 0, i32 0
  %10987 = load ptr, ptr %7, align 8, !tbaa !9
  %10988 = getelementptr inbounds %struct.s2n_connection, ptr %10987, i32 0, i32 52
  %10989 = getelementptr inbounds %struct.s2n_handshake, ptr %10988, i32 0, i32 0
  %10990 = getelementptr inbounds %struct.s2n_stuffer, ptr %10989, i32 0, i32 2
  %10991 = load i32, ptr %10990, align 4, !tbaa !52
  %10992 = load ptr, ptr %7, align 8, !tbaa !9
  %10993 = getelementptr inbounds %struct.s2n_connection, ptr %10992, i32 0, i32 52
  %10994 = getelementptr inbounds %struct.s2n_handshake, ptr %10993, i32 0, i32 0
  %10995 = getelementptr inbounds %struct.s2n_stuffer, ptr %10994, i32 0, i32 1
  %10996 = load i32, ptr %10995, align 8, !tbaa !53
  %10997 = sub i32 %10991, %10996
  %10998 = call i32 @s2n_stuffer_copy(ptr noundef %10983, ptr noundef %10986, i32 noundef %10997)
  %10999 = icmp eq i32 %10998, -1
  br i1 %10999, label %11000, label %11053

11000:                                            ; preds = %10978
  br label %11001

11001:                                            ; preds = %11000
  br label %11002

11002:                                            ; preds = %11001
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %11003 = call ptr @__errno_location() #12
  %11004 = load i32, ptr %11003, align 4, !tbaa !5
  store i32 %11004, ptr %196, align 4, !tbaa !5
  %11005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11006 = call i32 @s2n_print_stacktrace(ptr noundef %11005)
  %11007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11008 = trunc i8 %11007 to i1
  br i1 %11008, label %11009, label %11031

11009:                                            ; preds = %11002
  %11010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11011 = call i32 @fileno(ptr noundef %11010) #11
  %11012 = call i32 @isatty(i32 noundef %11011) #11
  %11013 = icmp ne i32 %11012, 0
  br i1 %11013, label %11014, label %11031

11014:                                            ; preds = %11009
  %11015 = load i32, ptr %196, align 4, !tbaa !5
  %11016 = call ptr @__errno_location() #12
  store i32 %11015, ptr %11016, align 4, !tbaa !5
  %11017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11018 = load i32, ptr @test_count, align 4, !tbaa !5
  %11019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11020 = load i32, ptr %11019, align 4, !tbaa !5
  %11021 = call ptr @s2n_strerror(i32 noundef %11020, ptr noundef @.str.4)
  %11022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11023 = load i32, ptr %11022, align 4, !tbaa !5
  %11024 = call ptr @s2n_strerror_debug(i32 noundef %11023, ptr noundef @.str.4)
  %11025 = call ptr @__errno_location() #12
  %11026 = load i32, ptr %11025, align 4, !tbaa !5
  %11027 = call ptr @strerror(i32 noundef %11026) #11
  %11028 = call ptr @__errno_location() #12
  %11029 = load i32, ptr %11028, align 4, !tbaa !5
  %11030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11017, ptr noundef @.str.2, i32 noundef %11018, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 406, ptr noundef %11021, ptr noundef %11024, ptr noundef %11027, i32 noundef %11029) #11
  br label %11048

11031:                                            ; preds = %11009, %11002
  %11032 = load i32, ptr %196, align 4, !tbaa !5
  %11033 = call ptr @__errno_location() #12
  store i32 %11032, ptr %11033, align 4, !tbaa !5
  %11034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11035 = load i32, ptr @test_count, align 4, !tbaa !5
  %11036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11037 = load i32, ptr %11036, align 4, !tbaa !5
  %11038 = call ptr @s2n_strerror(i32 noundef %11037, ptr noundef @.str.4)
  %11039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11040 = load i32, ptr %11039, align 4, !tbaa !5
  %11041 = call ptr @s2n_strerror_debug(i32 noundef %11040, ptr noundef @.str.4)
  %11042 = call ptr @__errno_location() #12
  %11043 = load i32, ptr %11042, align 4, !tbaa !5
  %11044 = call ptr @strerror(i32 noundef %11043) #11
  %11045 = call ptr @__errno_location() #12
  %11046 = load i32, ptr %11045, align 4, !tbaa !5
  %11047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11034, ptr noundef @.str.5, i32 noundef %11035, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 406, ptr noundef %11038, ptr noundef %11041, ptr noundef %11044, i32 noundef %11046) #11
  br label %11048

11048:                                            ; preds = %11031, %11014
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %11049

11049:                                            ; preds = %11048
  br label %11050

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

11051:                                            ; No predecessors!
  br label %11052

11052:                                            ; preds = %11051
  br label %11053

11053:                                            ; preds = %11052, %10978
  br label %11054

11054:                                            ; preds = %11053
  br label %11055

11055:                                            ; preds = %11054
  br label %11056

11056:                                            ; preds = %11055
  %11057 = load i32, ptr @test_count, align 4, !tbaa !5
  %11058 = add nsw i32 %11057, 1
  store i32 %11058, ptr @test_count, align 4, !tbaa !5
  %11059 = load ptr, ptr %6, align 8, !tbaa !9
  %11060 = call i32 @s2n_client_hello_recv(ptr noundef %11059)
  %11061 = icmp eq i32 %11060, -1
  br i1 %11061, label %11062, label %11115

11062:                                            ; preds = %11056
  br label %11063

11063:                                            ; preds = %11062
  br label %11064

11064:                                            ; preds = %11063
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %11065 = call ptr @__errno_location() #12
  %11066 = load i32, ptr %11065, align 4, !tbaa !5
  store i32 %11066, ptr %197, align 4, !tbaa !5
  %11067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11068 = call i32 @s2n_print_stacktrace(ptr noundef %11067)
  %11069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11070 = trunc i8 %11069 to i1
  br i1 %11070, label %11071, label %11093

11071:                                            ; preds = %11064
  %11072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11073 = call i32 @fileno(ptr noundef %11072) #11
  %11074 = call i32 @isatty(i32 noundef %11073) #11
  %11075 = icmp ne i32 %11074, 0
  br i1 %11075, label %11076, label %11093

11076:                                            ; preds = %11071
  %11077 = load i32, ptr %197, align 4, !tbaa !5
  %11078 = call ptr @__errno_location() #12
  store i32 %11077, ptr %11078, align 4, !tbaa !5
  %11079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11080 = load i32, ptr @test_count, align 4, !tbaa !5
  %11081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11082 = load i32, ptr %11081, align 4, !tbaa !5
  %11083 = call ptr @s2n_strerror(i32 noundef %11082, ptr noundef @.str.4)
  %11084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11085 = load i32, ptr %11084, align 4, !tbaa !5
  %11086 = call ptr @s2n_strerror_debug(i32 noundef %11085, ptr noundef @.str.4)
  %11087 = call ptr @__errno_location() #12
  %11088 = load i32, ptr %11087, align 4, !tbaa !5
  %11089 = call ptr @strerror(i32 noundef %11088) #11
  %11090 = call ptr @__errno_location() #12
  %11091 = load i32, ptr %11090, align 4, !tbaa !5
  %11092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11079, ptr noundef @.str.2, i32 noundef %11080, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 407, ptr noundef %11083, ptr noundef %11086, ptr noundef %11089, i32 noundef %11091) #11
  br label %11110

11093:                                            ; preds = %11071, %11064
  %11094 = load i32, ptr %197, align 4, !tbaa !5
  %11095 = call ptr @__errno_location() #12
  store i32 %11094, ptr %11095, align 4, !tbaa !5
  %11096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11097 = load i32, ptr @test_count, align 4, !tbaa !5
  %11098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11099 = load i32, ptr %11098, align 4, !tbaa !5
  %11100 = call ptr @s2n_strerror(i32 noundef %11099, ptr noundef @.str.4)
  %11101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11102 = load i32, ptr %11101, align 4, !tbaa !5
  %11103 = call ptr @s2n_strerror_debug(i32 noundef %11102, ptr noundef @.str.4)
  %11104 = call ptr @__errno_location() #12
  %11105 = load i32, ptr %11104, align 4, !tbaa !5
  %11106 = call ptr @strerror(i32 noundef %11105) #11
  %11107 = call ptr @__errno_location() #12
  %11108 = load i32, ptr %11107, align 4, !tbaa !5
  %11109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11096, ptr noundef @.str.5, i32 noundef %11097, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 407, ptr noundef %11100, ptr noundef %11103, ptr noundef %11106, i32 noundef %11108) #11
  br label %11110

11110:                                            ; preds = %11093, %11076
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %11111

11111:                                            ; preds = %11110
  br label %11112

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

11113:                                            ; No predecessors!
  br label %11114

11114:                                            ; preds = %11113
  br label %11115

11115:                                            ; preds = %11114, %11056
  br label %11116

11116:                                            ; preds = %11115
  br label %11117

11117:                                            ; preds = %11116
  %11118 = load ptr, ptr %7, align 8, !tbaa !9
  %11119 = call i32 @s2n_connection_free(ptr noundef %11118)
  %11120 = load ptr, ptr %6, align 8, !tbaa !9
  %11121 = call i32 @s2n_connection_free(ptr noundef %11120)
  br label %11122

11122:                                            ; preds = %11117
  %11123 = load i32, ptr @test_count, align 4, !tbaa !5
  %11124 = add nsw i32 %11123, 1
  store i32 %11124, ptr @test_count, align 4, !tbaa !5
  %11125 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11125, ptr %6, align 8, !tbaa !9
  %11126 = icmp eq ptr %11125, null
  br i1 %11126, label %11127, label %11180

11127:                                            ; preds = %11122
  br label %11128

11128:                                            ; preds = %11127
  br label %11129

11129:                                            ; preds = %11128
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %11130 = call ptr @__errno_location() #12
  %11131 = load i32, ptr %11130, align 4, !tbaa !5
  store i32 %11131, ptr %198, align 4, !tbaa !5
  %11132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11133 = call i32 @s2n_print_stacktrace(ptr noundef %11132)
  %11134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11135 = trunc i8 %11134 to i1
  br i1 %11135, label %11136, label %11158

11136:                                            ; preds = %11129
  %11137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11138 = call i32 @fileno(ptr noundef %11137) #11
  %11139 = call i32 @isatty(i32 noundef %11138) #11
  %11140 = icmp ne i32 %11139, 0
  br i1 %11140, label %11141, label %11158

11141:                                            ; preds = %11136
  %11142 = load i32, ptr %198, align 4, !tbaa !5
  %11143 = call ptr @__errno_location() #12
  store i32 %11142, ptr %11143, align 4, !tbaa !5
  %11144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11145 = load i32, ptr @test_count, align 4, !tbaa !5
  %11146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call ptr @s2n_strerror(i32 noundef %11147, ptr noundef @.str.4)
  %11149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11150 = load i32, ptr %11149, align 4, !tbaa !5
  %11151 = call ptr @s2n_strerror_debug(i32 noundef %11150, ptr noundef @.str.4)
  %11152 = call ptr @__errno_location() #12
  %11153 = load i32, ptr %11152, align 4, !tbaa !5
  %11154 = call ptr @strerror(i32 noundef %11153) #11
  %11155 = call ptr @__errno_location() #12
  %11156 = load i32, ptr %11155, align 4, !tbaa !5
  %11157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11144, ptr noundef @.str.2, i32 noundef %11145, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 415, ptr noundef %11148, ptr noundef %11151, ptr noundef %11154, i32 noundef %11156) #11
  br label %11175

11158:                                            ; preds = %11136, %11129
  %11159 = load i32, ptr %198, align 4, !tbaa !5
  %11160 = call ptr @__errno_location() #12
  store i32 %11159, ptr %11160, align 4, !tbaa !5
  %11161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11162 = load i32, ptr @test_count, align 4, !tbaa !5
  %11163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11164 = load i32, ptr %11163, align 4, !tbaa !5
  %11165 = call ptr @s2n_strerror(i32 noundef %11164, ptr noundef @.str.4)
  %11166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11167 = load i32, ptr %11166, align 4, !tbaa !5
  %11168 = call ptr @s2n_strerror_debug(i32 noundef %11167, ptr noundef @.str.4)
  %11169 = call ptr @__errno_location() #12
  %11170 = load i32, ptr %11169, align 4, !tbaa !5
  %11171 = call ptr @strerror(i32 noundef %11170) #11
  %11172 = call ptr @__errno_location() #12
  %11173 = load i32, ptr %11172, align 4, !tbaa !5
  %11174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11161, ptr noundef @.str.5, i32 noundef %11162, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 415, ptr noundef %11165, ptr noundef %11168, ptr noundef %11171, i32 noundef %11173) #11
  br label %11175

11175:                                            ; preds = %11158, %11141
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %11176

11176:                                            ; preds = %11175
  br label %11177

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

11178:                                            ; No predecessors!
  br label %11179

11179:                                            ; preds = %11178
  br label %11180

11180:                                            ; preds = %11179, %11122
  br label %11181

11181:                                            ; preds = %11180
  br label %11182

11182:                                            ; preds = %11181
  br label %11183

11183:                                            ; preds = %11182
  %11184 = load i32, ptr @test_count, align 4, !tbaa !5
  %11185 = add nsw i32 %11184, 1
  store i32 %11185, ptr @test_count, align 4, !tbaa !5
  %11186 = load ptr, ptr %6, align 8, !tbaa !9
  %11187 = load ptr, ptr %186, align 8, !tbaa !9
  %11188 = call i32 @s2n_connection_set_config(ptr noundef %11186, ptr noundef %11187)
  %11189 = icmp eq i32 %11188, -1
  br i1 %11189, label %11190, label %11243

11190:                                            ; preds = %11183
  br label %11191

11191:                                            ; preds = %11190
  br label %11192

11192:                                            ; preds = %11191
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %11193 = call ptr @__errno_location() #12
  %11194 = load i32, ptr %11193, align 4, !tbaa !5
  store i32 %11194, ptr %199, align 4, !tbaa !5
  %11195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11196 = call i32 @s2n_print_stacktrace(ptr noundef %11195)
  %11197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11198 = trunc i8 %11197 to i1
  br i1 %11198, label %11199, label %11221

11199:                                            ; preds = %11192
  %11200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11201 = call i32 @fileno(ptr noundef %11200) #11
  %11202 = call i32 @isatty(i32 noundef %11201) #11
  %11203 = icmp ne i32 %11202, 0
  br i1 %11203, label %11204, label %11221

11204:                                            ; preds = %11199
  %11205 = load i32, ptr %199, align 4, !tbaa !5
  %11206 = call ptr @__errno_location() #12
  store i32 %11205, ptr %11206, align 4, !tbaa !5
  %11207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11208 = load i32, ptr @test_count, align 4, !tbaa !5
  %11209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11210 = load i32, ptr %11209, align 4, !tbaa !5
  %11211 = call ptr @s2n_strerror(i32 noundef %11210, ptr noundef @.str.4)
  %11212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11213 = load i32, ptr %11212, align 4, !tbaa !5
  %11214 = call ptr @s2n_strerror_debug(i32 noundef %11213, ptr noundef @.str.4)
  %11215 = call ptr @__errno_location() #12
  %11216 = load i32, ptr %11215, align 4, !tbaa !5
  %11217 = call ptr @strerror(i32 noundef %11216) #11
  %11218 = call ptr @__errno_location() #12
  %11219 = load i32, ptr %11218, align 4, !tbaa !5
  %11220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11207, ptr noundef @.str.2, i32 noundef %11208, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 416, ptr noundef %11211, ptr noundef %11214, ptr noundef %11217, i32 noundef %11219) #11
  br label %11238

11221:                                            ; preds = %11199, %11192
  %11222 = load i32, ptr %199, align 4, !tbaa !5
  %11223 = call ptr @__errno_location() #12
  store i32 %11222, ptr %11223, align 4, !tbaa !5
  %11224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11225 = load i32, ptr @test_count, align 4, !tbaa !5
  %11226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11227 = load i32, ptr %11226, align 4, !tbaa !5
  %11228 = call ptr @s2n_strerror(i32 noundef %11227, ptr noundef @.str.4)
  %11229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11230 = load i32, ptr %11229, align 4, !tbaa !5
  %11231 = call ptr @s2n_strerror_debug(i32 noundef %11230, ptr noundef @.str.4)
  %11232 = call ptr @__errno_location() #12
  %11233 = load i32, ptr %11232, align 4, !tbaa !5
  %11234 = call ptr @strerror(i32 noundef %11233) #11
  %11235 = call ptr @__errno_location() #12
  %11236 = load i32, ptr %11235, align 4, !tbaa !5
  %11237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11224, ptr noundef @.str.5, i32 noundef %11225, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 416, ptr noundef %11228, ptr noundef %11231, ptr noundef %11234, i32 noundef %11236) #11
  br label %11238

11238:                                            ; preds = %11221, %11204
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %11239

11239:                                            ; preds = %11238
  br label %11240

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

11241:                                            ; No predecessors!
  br label %11242

11242:                                            ; preds = %11241
  br label %11243

11243:                                            ; preds = %11242, %11183
  br label %11244

11244:                                            ; preds = %11243
  br label %11245

11245:                                            ; preds = %11244
  br label %11246

11246:                                            ; preds = %11245
  %11247 = load i32, ptr @test_count, align 4, !tbaa !5
  %11248 = add nsw i32 %11247, 1
  store i32 %11248, ptr @test_count, align 4, !tbaa !5
  %11249 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11249, ptr %7, align 8, !tbaa !9
  %11250 = icmp eq ptr %11249, null
  br i1 %11250, label %11251, label %11304

11251:                                            ; preds = %11246
  br label %11252

11252:                                            ; preds = %11251
  br label %11253

11253:                                            ; preds = %11252
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %11254 = call ptr @__errno_location() #12
  %11255 = load i32, ptr %11254, align 4, !tbaa !5
  store i32 %11255, ptr %200, align 4, !tbaa !5
  %11256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11257 = call i32 @s2n_print_stacktrace(ptr noundef %11256)
  %11258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11259 = trunc i8 %11258 to i1
  br i1 %11259, label %11260, label %11282

11260:                                            ; preds = %11253
  %11261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11262 = call i32 @fileno(ptr noundef %11261) #11
  %11263 = call i32 @isatty(i32 noundef %11262) #11
  %11264 = icmp ne i32 %11263, 0
  br i1 %11264, label %11265, label %11282

11265:                                            ; preds = %11260
  %11266 = load i32, ptr %200, align 4, !tbaa !5
  %11267 = call ptr @__errno_location() #12
  store i32 %11266, ptr %11267, align 4, !tbaa !5
  %11268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11269 = load i32, ptr @test_count, align 4, !tbaa !5
  %11270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11271 = load i32, ptr %11270, align 4, !tbaa !5
  %11272 = call ptr @s2n_strerror(i32 noundef %11271, ptr noundef @.str.4)
  %11273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11274 = load i32, ptr %11273, align 4, !tbaa !5
  %11275 = call ptr @s2n_strerror_debug(i32 noundef %11274, ptr noundef @.str.4)
  %11276 = call ptr @__errno_location() #12
  %11277 = load i32, ptr %11276, align 4, !tbaa !5
  %11278 = call ptr @strerror(i32 noundef %11277) #11
  %11279 = call ptr @__errno_location() #12
  %11280 = load i32, ptr %11279, align 4, !tbaa !5
  %11281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11268, ptr noundef @.str.2, i32 noundef %11269, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 418, ptr noundef %11272, ptr noundef %11275, ptr noundef %11278, i32 noundef %11280) #11
  br label %11299

11282:                                            ; preds = %11260, %11253
  %11283 = load i32, ptr %200, align 4, !tbaa !5
  %11284 = call ptr @__errno_location() #12
  store i32 %11283, ptr %11284, align 4, !tbaa !5
  %11285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11286 = load i32, ptr @test_count, align 4, !tbaa !5
  %11287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11288 = load i32, ptr %11287, align 4, !tbaa !5
  %11289 = call ptr @s2n_strerror(i32 noundef %11288, ptr noundef @.str.4)
  %11290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11291 = load i32, ptr %11290, align 4, !tbaa !5
  %11292 = call ptr @s2n_strerror_debug(i32 noundef %11291, ptr noundef @.str.4)
  %11293 = call ptr @__errno_location() #12
  %11294 = load i32, ptr %11293, align 4, !tbaa !5
  %11295 = call ptr @strerror(i32 noundef %11294) #11
  %11296 = call ptr @__errno_location() #12
  %11297 = load i32, ptr %11296, align 4, !tbaa !5
  %11298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11285, ptr noundef @.str.5, i32 noundef %11286, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 418, ptr noundef %11289, ptr noundef %11292, ptr noundef %11295, i32 noundef %11297) #11
  br label %11299

11299:                                            ; preds = %11282, %11265
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %11300

11300:                                            ; preds = %11299
  br label %11301

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

11302:                                            ; No predecessors!
  br label %11303

11303:                                            ; preds = %11302
  br label %11304

11304:                                            ; preds = %11303, %11246
  br label %11305

11305:                                            ; preds = %11304
  br label %11306

11306:                                            ; preds = %11305
  br label %11307

11307:                                            ; preds = %11306
  %11308 = load i32, ptr @test_count, align 4, !tbaa !5
  %11309 = add nsw i32 %11308, 1
  store i32 %11309, ptr @test_count, align 4, !tbaa !5
  %11310 = load ptr, ptr %7, align 8, !tbaa !9
  %11311 = load ptr, ptr %186, align 8, !tbaa !9
  %11312 = call i32 @s2n_connection_set_config(ptr noundef %11310, ptr noundef %11311)
  %11313 = icmp eq i32 %11312, -1
  br i1 %11313, label %11314, label %11367

11314:                                            ; preds = %11307
  br label %11315

11315:                                            ; preds = %11314
  br label %11316

11316:                                            ; preds = %11315
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %11317 = call ptr @__errno_location() #12
  %11318 = load i32, ptr %11317, align 4, !tbaa !5
  store i32 %11318, ptr %201, align 4, !tbaa !5
  %11319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11320 = call i32 @s2n_print_stacktrace(ptr noundef %11319)
  %11321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11322 = trunc i8 %11321 to i1
  br i1 %11322, label %11323, label %11345

11323:                                            ; preds = %11316
  %11324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11325 = call i32 @fileno(ptr noundef %11324) #11
  %11326 = call i32 @isatty(i32 noundef %11325) #11
  %11327 = icmp ne i32 %11326, 0
  br i1 %11327, label %11328, label %11345

11328:                                            ; preds = %11323
  %11329 = load i32, ptr %201, align 4, !tbaa !5
  %11330 = call ptr @__errno_location() #12
  store i32 %11329, ptr %11330, align 4, !tbaa !5
  %11331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11332 = load i32, ptr @test_count, align 4, !tbaa !5
  %11333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11334 = load i32, ptr %11333, align 4, !tbaa !5
  %11335 = call ptr @s2n_strerror(i32 noundef %11334, ptr noundef @.str.4)
  %11336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11337 = load i32, ptr %11336, align 4, !tbaa !5
  %11338 = call ptr @s2n_strerror_debug(i32 noundef %11337, ptr noundef @.str.4)
  %11339 = call ptr @__errno_location() #12
  %11340 = load i32, ptr %11339, align 4, !tbaa !5
  %11341 = call ptr @strerror(i32 noundef %11340) #11
  %11342 = call ptr @__errno_location() #12
  %11343 = load i32, ptr %11342, align 4, !tbaa !5
  %11344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11331, ptr noundef @.str.2, i32 noundef %11332, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 419, ptr noundef %11335, ptr noundef %11338, ptr noundef %11341, i32 noundef %11343) #11
  br label %11362

11345:                                            ; preds = %11323, %11316
  %11346 = load i32, ptr %201, align 4, !tbaa !5
  %11347 = call ptr @__errno_location() #12
  store i32 %11346, ptr %11347, align 4, !tbaa !5
  %11348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11349 = load i32, ptr @test_count, align 4, !tbaa !5
  %11350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11351 = load i32, ptr %11350, align 4, !tbaa !5
  %11352 = call ptr @s2n_strerror(i32 noundef %11351, ptr noundef @.str.4)
  %11353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11354 = load i32, ptr %11353, align 4, !tbaa !5
  %11355 = call ptr @s2n_strerror_debug(i32 noundef %11354, ptr noundef @.str.4)
  %11356 = call ptr @__errno_location() #12
  %11357 = load i32, ptr %11356, align 4, !tbaa !5
  %11358 = call ptr @strerror(i32 noundef %11357) #11
  %11359 = call ptr @__errno_location() #12
  %11360 = load i32, ptr %11359, align 4, !tbaa !5
  %11361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11348, ptr noundef @.str.5, i32 noundef %11349, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 419, ptr noundef %11352, ptr noundef %11355, ptr noundef %11358, i32 noundef %11360) #11
  br label %11362

11362:                                            ; preds = %11345, %11328
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %11363

11363:                                            ; preds = %11362
  br label %11364

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

11365:                                            ; No predecessors!
  br label %11366

11366:                                            ; preds = %11365
  br label %11367

11367:                                            ; preds = %11366, %11307
  br label %11368

11368:                                            ; preds = %11367
  br label %11369

11369:                                            ; preds = %11368
  %11370 = load ptr, ptr %7, align 8, !tbaa !9
  %11371 = getelementptr inbounds %struct.s2n_connection, ptr %11370, i32 0, i32 19
  store i8 10, ptr %11371, align 8, !tbaa !54
  br label %11372

11372:                                            ; preds = %11369
  %11373 = load i32, ptr @test_count, align 4, !tbaa !5
  %11374 = add nsw i32 %11373, 1
  store i32 %11374, ptr @test_count, align 4, !tbaa !5
  %11375 = load ptr, ptr %7, align 8, !tbaa !9
  %11376 = call i32 @s2n_client_hello_send(ptr noundef %11375)
  %11377 = icmp eq i32 %11376, -1
  br i1 %11377, label %11378, label %11431

11378:                                            ; preds = %11372
  br label %11379

11379:                                            ; preds = %11378
  br label %11380

11380:                                            ; preds = %11379
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %11381 = call ptr @__errno_location() #12
  %11382 = load i32, ptr %11381, align 4, !tbaa !5
  store i32 %11382, ptr %202, align 4, !tbaa !5
  %11383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11384 = call i32 @s2n_print_stacktrace(ptr noundef %11383)
  %11385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11386 = trunc i8 %11385 to i1
  br i1 %11386, label %11387, label %11409

11387:                                            ; preds = %11380
  %11388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11389 = call i32 @fileno(ptr noundef %11388) #11
  %11390 = call i32 @isatty(i32 noundef %11389) #11
  %11391 = icmp ne i32 %11390, 0
  br i1 %11391, label %11392, label %11409

11392:                                            ; preds = %11387
  %11393 = load i32, ptr %202, align 4, !tbaa !5
  %11394 = call ptr @__errno_location() #12
  store i32 %11393, ptr %11394, align 4, !tbaa !5
  %11395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11396 = load i32, ptr @test_count, align 4, !tbaa !5
  %11397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11398 = load i32, ptr %11397, align 4, !tbaa !5
  %11399 = call ptr @s2n_strerror(i32 noundef %11398, ptr noundef @.str.4)
  %11400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11401 = load i32, ptr %11400, align 4, !tbaa !5
  %11402 = call ptr @s2n_strerror_debug(i32 noundef %11401, ptr noundef @.str.4)
  %11403 = call ptr @__errno_location() #12
  %11404 = load i32, ptr %11403, align 4, !tbaa !5
  %11405 = call ptr @strerror(i32 noundef %11404) #11
  %11406 = call ptr @__errno_location() #12
  %11407 = load i32, ptr %11406, align 4, !tbaa !5
  %11408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11395, ptr noundef @.str.2, i32 noundef %11396, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 424, ptr noundef %11399, ptr noundef %11402, ptr noundef %11405, i32 noundef %11407) #11
  br label %11426

11409:                                            ; preds = %11387, %11380
  %11410 = load i32, ptr %202, align 4, !tbaa !5
  %11411 = call ptr @__errno_location() #12
  store i32 %11410, ptr %11411, align 4, !tbaa !5
  %11412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11413 = load i32, ptr @test_count, align 4, !tbaa !5
  %11414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11415 = load i32, ptr %11414, align 4, !tbaa !5
  %11416 = call ptr @s2n_strerror(i32 noundef %11415, ptr noundef @.str.4)
  %11417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11418 = load i32, ptr %11417, align 4, !tbaa !5
  %11419 = call ptr @s2n_strerror_debug(i32 noundef %11418, ptr noundef @.str.4)
  %11420 = call ptr @__errno_location() #12
  %11421 = load i32, ptr %11420, align 4, !tbaa !5
  %11422 = call ptr @strerror(i32 noundef %11421) #11
  %11423 = call ptr @__errno_location() #12
  %11424 = load i32, ptr %11423, align 4, !tbaa !5
  %11425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11412, ptr noundef @.str.5, i32 noundef %11413, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 424, ptr noundef %11416, ptr noundef %11419, ptr noundef %11422, i32 noundef %11424) #11
  br label %11426

11426:                                            ; preds = %11409, %11392
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %11427

11427:                                            ; preds = %11426
  br label %11428

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

11429:                                            ; No predecessors!
  br label %11430

11430:                                            ; preds = %11429
  br label %11431

11431:                                            ; preds = %11430, %11372
  br label %11432

11432:                                            ; preds = %11431
  br label %11433

11433:                                            ; preds = %11432
  br label %11434

11434:                                            ; preds = %11433
  %11435 = load i32, ptr @test_count, align 4, !tbaa !5
  %11436 = add nsw i32 %11435, 1
  store i32 %11436, ptr @test_count, align 4, !tbaa !5
  %11437 = load ptr, ptr %7, align 8, !tbaa !9
  %11438 = getelementptr inbounds %struct.s2n_connection, ptr %11437, i32 0, i32 52
  %11439 = getelementptr inbounds %struct.s2n_handshake, ptr %11438, i32 0, i32 0
  %11440 = load ptr, ptr %6, align 8, !tbaa !9
  %11441 = getelementptr inbounds %struct.s2n_connection, ptr %11440, i32 0, i32 52
  %11442 = getelementptr inbounds %struct.s2n_handshake, ptr %11441, i32 0, i32 0
  %11443 = load ptr, ptr %7, align 8, !tbaa !9
  %11444 = getelementptr inbounds %struct.s2n_connection, ptr %11443, i32 0, i32 52
  %11445 = getelementptr inbounds %struct.s2n_handshake, ptr %11444, i32 0, i32 0
  %11446 = getelementptr inbounds %struct.s2n_stuffer, ptr %11445, i32 0, i32 2
  %11447 = load i32, ptr %11446, align 4, !tbaa !52
  %11448 = load ptr, ptr %7, align 8, !tbaa !9
  %11449 = getelementptr inbounds %struct.s2n_connection, ptr %11448, i32 0, i32 52
  %11450 = getelementptr inbounds %struct.s2n_handshake, ptr %11449, i32 0, i32 0
  %11451 = getelementptr inbounds %struct.s2n_stuffer, ptr %11450, i32 0, i32 1
  %11452 = load i32, ptr %11451, align 8, !tbaa !53
  %11453 = sub i32 %11447, %11452
  %11454 = call i32 @s2n_stuffer_copy(ptr noundef %11439, ptr noundef %11442, i32 noundef %11453)
  %11455 = icmp eq i32 %11454, -1
  br i1 %11455, label %11456, label %11509

11456:                                            ; preds = %11434
  br label %11457

11457:                                            ; preds = %11456
  br label %11458

11458:                                            ; preds = %11457
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %11459 = call ptr @__errno_location() #12
  %11460 = load i32, ptr %11459, align 4, !tbaa !5
  store i32 %11460, ptr %203, align 4, !tbaa !5
  %11461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11462 = call i32 @s2n_print_stacktrace(ptr noundef %11461)
  %11463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11464 = trunc i8 %11463 to i1
  br i1 %11464, label %11465, label %11487

11465:                                            ; preds = %11458
  %11466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11467 = call i32 @fileno(ptr noundef %11466) #11
  %11468 = call i32 @isatty(i32 noundef %11467) #11
  %11469 = icmp ne i32 %11468, 0
  br i1 %11469, label %11470, label %11487

11470:                                            ; preds = %11465
  %11471 = load i32, ptr %203, align 4, !tbaa !5
  %11472 = call ptr @__errno_location() #12
  store i32 %11471, ptr %11472, align 4, !tbaa !5
  %11473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11474 = load i32, ptr @test_count, align 4, !tbaa !5
  %11475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11476 = load i32, ptr %11475, align 4, !tbaa !5
  %11477 = call ptr @s2n_strerror(i32 noundef %11476, ptr noundef @.str.4)
  %11478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11479 = load i32, ptr %11478, align 4, !tbaa !5
  %11480 = call ptr @s2n_strerror_debug(i32 noundef %11479, ptr noundef @.str.4)
  %11481 = call ptr @__errno_location() #12
  %11482 = load i32, ptr %11481, align 4, !tbaa !5
  %11483 = call ptr @strerror(i32 noundef %11482) #11
  %11484 = call ptr @__errno_location() #12
  %11485 = load i32, ptr %11484, align 4, !tbaa !5
  %11486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11473, ptr noundef @.str.2, i32 noundef %11474, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 426, ptr noundef %11477, ptr noundef %11480, ptr noundef %11483, i32 noundef %11485) #11
  br label %11504

11487:                                            ; preds = %11465, %11458
  %11488 = load i32, ptr %203, align 4, !tbaa !5
  %11489 = call ptr @__errno_location() #12
  store i32 %11488, ptr %11489, align 4, !tbaa !5
  %11490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11491 = load i32, ptr @test_count, align 4, !tbaa !5
  %11492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11493 = load i32, ptr %11492, align 4, !tbaa !5
  %11494 = call ptr @s2n_strerror(i32 noundef %11493, ptr noundef @.str.4)
  %11495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11496 = load i32, ptr %11495, align 4, !tbaa !5
  %11497 = call ptr @s2n_strerror_debug(i32 noundef %11496, ptr noundef @.str.4)
  %11498 = call ptr @__errno_location() #12
  %11499 = load i32, ptr %11498, align 4, !tbaa !5
  %11500 = call ptr @strerror(i32 noundef %11499) #11
  %11501 = call ptr @__errno_location() #12
  %11502 = load i32, ptr %11501, align 4, !tbaa !5
  %11503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11490, ptr noundef @.str.5, i32 noundef %11491, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 426, ptr noundef %11494, ptr noundef %11497, ptr noundef %11500, i32 noundef %11502) #11
  br label %11504

11504:                                            ; preds = %11487, %11470
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %11505

11505:                                            ; preds = %11504
  br label %11506

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

11507:                                            ; No predecessors!
  br label %11508

11508:                                            ; preds = %11507
  br label %11509

11509:                                            ; preds = %11508, %11434
  br label %11510

11510:                                            ; preds = %11509
  br label %11511

11511:                                            ; preds = %11510
  br label %11512

11512:                                            ; preds = %11511
  %11513 = load i32, ptr @test_count, align 4, !tbaa !5
  %11514 = add nsw i32 %11513, 1
  store i32 %11514, ptr @test_count, align 4, !tbaa !5
  %11515 = load ptr, ptr %6, align 8, !tbaa !9
  %11516 = call i32 @s2n_client_hello_recv(ptr noundef %11515)
  %11517 = icmp eq i32 %11516, -1
  br i1 %11517, label %11518, label %11571

11518:                                            ; preds = %11512
  br label %11519

11519:                                            ; preds = %11518
  br label %11520

11520:                                            ; preds = %11519
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %11521 = call ptr @__errno_location() #12
  %11522 = load i32, ptr %11521, align 4, !tbaa !5
  store i32 %11522, ptr %204, align 4, !tbaa !5
  %11523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11524 = call i32 @s2n_print_stacktrace(ptr noundef %11523)
  %11525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11526 = trunc i8 %11525 to i1
  br i1 %11526, label %11527, label %11549

11527:                                            ; preds = %11520
  %11528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11529 = call i32 @fileno(ptr noundef %11528) #11
  %11530 = call i32 @isatty(i32 noundef %11529) #11
  %11531 = icmp ne i32 %11530, 0
  br i1 %11531, label %11532, label %11549

11532:                                            ; preds = %11527
  %11533 = load i32, ptr %204, align 4, !tbaa !5
  %11534 = call ptr @__errno_location() #12
  store i32 %11533, ptr %11534, align 4, !tbaa !5
  %11535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11536 = load i32, ptr @test_count, align 4, !tbaa !5
  %11537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11538 = load i32, ptr %11537, align 4, !tbaa !5
  %11539 = call ptr @s2n_strerror(i32 noundef %11538, ptr noundef @.str.4)
  %11540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11541 = load i32, ptr %11540, align 4, !tbaa !5
  %11542 = call ptr @s2n_strerror_debug(i32 noundef %11541, ptr noundef @.str.4)
  %11543 = call ptr @__errno_location() #12
  %11544 = load i32, ptr %11543, align 4, !tbaa !5
  %11545 = call ptr @strerror(i32 noundef %11544) #11
  %11546 = call ptr @__errno_location() #12
  %11547 = load i32, ptr %11546, align 4, !tbaa !5
  %11548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11535, ptr noundef @.str.2, i32 noundef %11536, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 427, ptr noundef %11539, ptr noundef %11542, ptr noundef %11545, i32 noundef %11547) #11
  br label %11566

11549:                                            ; preds = %11527, %11520
  %11550 = load i32, ptr %204, align 4, !tbaa !5
  %11551 = call ptr @__errno_location() #12
  store i32 %11550, ptr %11551, align 4, !tbaa !5
  %11552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11553 = load i32, ptr @test_count, align 4, !tbaa !5
  %11554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11555 = load i32, ptr %11554, align 4, !tbaa !5
  %11556 = call ptr @s2n_strerror(i32 noundef %11555, ptr noundef @.str.4)
  %11557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11558 = load i32, ptr %11557, align 4, !tbaa !5
  %11559 = call ptr @s2n_strerror_debug(i32 noundef %11558, ptr noundef @.str.4)
  %11560 = call ptr @__errno_location() #12
  %11561 = load i32, ptr %11560, align 4, !tbaa !5
  %11562 = call ptr @strerror(i32 noundef %11561) #11
  %11563 = call ptr @__errno_location() #12
  %11564 = load i32, ptr %11563, align 4, !tbaa !5
  %11565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11552, ptr noundef @.str.5, i32 noundef %11553, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 427, ptr noundef %11556, ptr noundef %11559, ptr noundef %11562, i32 noundef %11564) #11
  br label %11566

11566:                                            ; preds = %11549, %11532
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %11567

11567:                                            ; preds = %11566
  br label %11568

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

11569:                                            ; No predecessors!
  br label %11570

11570:                                            ; preds = %11569
  br label %11571

11571:                                            ; preds = %11570, %11512
  br label %11572

11572:                                            ; preds = %11571
  br label %11573

11573:                                            ; preds = %11572
  %11574 = load ptr, ptr %7, align 8, !tbaa !9
  %11575 = call i32 @s2n_connection_free(ptr noundef %11574)
  %11576 = load ptr, ptr %6, align 8, !tbaa !9
  %11577 = call i32 @s2n_connection_free(ptr noundef %11576)
  %11578 = load ptr, ptr %186, align 8, !tbaa !9
  %11579 = call i32 @s2n_config_free(ptr noundef %11578)
  call void @llvm.lifetime.end.p0(i64 8, ptr %186) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %185) #11
  br label %11580

11580:                                            ; preds = %11573, %10354
  br label %11581

11581:                                            ; preds = %11580
  %11582 = load i32, ptr @test_count, align 4, !tbaa !5
  %11583 = add nsw i32 %11582, 1
  store i32 %11583, ptr @test_count, align 4, !tbaa !5
  %11584 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11584, ptr %7, align 8, !tbaa !9
  %11585 = icmp eq ptr %11584, null
  br i1 %11585, label %11586, label %11639

11586:                                            ; preds = %11581
  br label %11587

11587:                                            ; preds = %11586
  br label %11588

11588:                                            ; preds = %11587
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #11
  %11589 = call ptr @__errno_location() #12
  %11590 = load i32, ptr %11589, align 4, !tbaa !5
  store i32 %11590, ptr %205, align 4, !tbaa !5
  %11591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11592 = call i32 @s2n_print_stacktrace(ptr noundef %11591)
  %11593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11594 = trunc i8 %11593 to i1
  br i1 %11594, label %11595, label %11617

11595:                                            ; preds = %11588
  %11596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11597 = call i32 @fileno(ptr noundef %11596) #11
  %11598 = call i32 @isatty(i32 noundef %11597) #11
  %11599 = icmp ne i32 %11598, 0
  br i1 %11599, label %11600, label %11617

11600:                                            ; preds = %11595
  %11601 = load i32, ptr %205, align 4, !tbaa !5
  %11602 = call ptr @__errno_location() #12
  store i32 %11601, ptr %11602, align 4, !tbaa !5
  %11603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11604 = load i32, ptr @test_count, align 4, !tbaa !5
  %11605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11606 = load i32, ptr %11605, align 4, !tbaa !5
  %11607 = call ptr @s2n_strerror(i32 noundef %11606, ptr noundef @.str.4)
  %11608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11609 = load i32, ptr %11608, align 4, !tbaa !5
  %11610 = call ptr @s2n_strerror_debug(i32 noundef %11609, ptr noundef @.str.4)
  %11611 = call ptr @__errno_location() #12
  %11612 = load i32, ptr %11611, align 4, !tbaa !5
  %11613 = call ptr @strerror(i32 noundef %11612) #11
  %11614 = call ptr @__errno_location() #12
  %11615 = load i32, ptr %11614, align 4, !tbaa !5
  %11616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11603, ptr noundef @.str.2, i32 noundef %11604, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11607, ptr noundef %11610, ptr noundef %11613, i32 noundef %11615) #11
  br label %11634

11617:                                            ; preds = %11595, %11588
  %11618 = load i32, ptr %205, align 4, !tbaa !5
  %11619 = call ptr @__errno_location() #12
  store i32 %11618, ptr %11619, align 4, !tbaa !5
  %11620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11621 = load i32, ptr @test_count, align 4, !tbaa !5
  %11622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11623 = load i32, ptr %11622, align 4, !tbaa !5
  %11624 = call ptr @s2n_strerror(i32 noundef %11623, ptr noundef @.str.4)
  %11625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11626 = load i32, ptr %11625, align 4, !tbaa !5
  %11627 = call ptr @s2n_strerror_debug(i32 noundef %11626, ptr noundef @.str.4)
  %11628 = call ptr @__errno_location() #12
  %11629 = load i32, ptr %11628, align 4, !tbaa !5
  %11630 = call ptr @strerror(i32 noundef %11629) #11
  %11631 = call ptr @__errno_location() #12
  %11632 = load i32, ptr %11631, align 4, !tbaa !5
  %11633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11620, ptr noundef @.str.5, i32 noundef %11621, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 438, ptr noundef %11624, ptr noundef %11627, ptr noundef %11630, i32 noundef %11632) #11
  br label %11634

11634:                                            ; preds = %11617, %11600
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #11
  br label %11635

11635:                                            ; preds = %11634
  br label %11636

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

11637:                                            ; No predecessors!
  br label %11638

11638:                                            ; preds = %11637
  br label %11639

11639:                                            ; preds = %11638, %11581
  br label %11640

11640:                                            ; preds = %11639
  br label %11641

11641:                                            ; preds = %11640
  br label %11642

11642:                                            ; preds = %11641
  %11643 = load i32, ptr @test_count, align 4, !tbaa !5
  %11644 = add nsw i32 %11643, 1
  store i32 %11644, ptr @test_count, align 4, !tbaa !5
  %11645 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11645, ptr %6, align 8, !tbaa !9
  %11646 = icmp eq ptr %11645, null
  br i1 %11646, label %11647, label %11700

11647:                                            ; preds = %11642
  br label %11648

11648:                                            ; preds = %11647
  br label %11649

11649:                                            ; preds = %11648
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %11650 = call ptr @__errno_location() #12
  %11651 = load i32, ptr %11650, align 4, !tbaa !5
  store i32 %11651, ptr %206, align 4, !tbaa !5
  %11652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11653 = call i32 @s2n_print_stacktrace(ptr noundef %11652)
  %11654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11655 = trunc i8 %11654 to i1
  br i1 %11655, label %11656, label %11678

11656:                                            ; preds = %11649
  %11657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11658 = call i32 @fileno(ptr noundef %11657) #11
  %11659 = call i32 @isatty(i32 noundef %11658) #11
  %11660 = icmp ne i32 %11659, 0
  br i1 %11660, label %11661, label %11678

11661:                                            ; preds = %11656
  %11662 = load i32, ptr %206, align 4, !tbaa !5
  %11663 = call ptr @__errno_location() #12
  store i32 %11662, ptr %11663, align 4, !tbaa !5
  %11664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11665 = load i32, ptr @test_count, align 4, !tbaa !5
  %11666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11667 = load i32, ptr %11666, align 4, !tbaa !5
  %11668 = call ptr @s2n_strerror(i32 noundef %11667, ptr noundef @.str.4)
  %11669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11670 = load i32, ptr %11669, align 4, !tbaa !5
  %11671 = call ptr @s2n_strerror_debug(i32 noundef %11670, ptr noundef @.str.4)
  %11672 = call ptr @__errno_location() #12
  %11673 = load i32, ptr %11672, align 4, !tbaa !5
  %11674 = call ptr @strerror(i32 noundef %11673) #11
  %11675 = call ptr @__errno_location() #12
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11664, ptr noundef @.str.2, i32 noundef %11665, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 439, ptr noundef %11668, ptr noundef %11671, ptr noundef %11674, i32 noundef %11676) #11
  br label %11695

11678:                                            ; preds = %11656, %11649
  %11679 = load i32, ptr %206, align 4, !tbaa !5
  %11680 = call ptr @__errno_location() #12
  store i32 %11679, ptr %11680, align 4, !tbaa !5
  %11681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11682 = load i32, ptr @test_count, align 4, !tbaa !5
  %11683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11684 = load i32, ptr %11683, align 4, !tbaa !5
  %11685 = call ptr @s2n_strerror(i32 noundef %11684, ptr noundef @.str.4)
  %11686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11687 = load i32, ptr %11686, align 4, !tbaa !5
  %11688 = call ptr @s2n_strerror_debug(i32 noundef %11687, ptr noundef @.str.4)
  %11689 = call ptr @__errno_location() #12
  %11690 = load i32, ptr %11689, align 4, !tbaa !5
  %11691 = call ptr @strerror(i32 noundef %11690) #11
  %11692 = call ptr @__errno_location() #12
  %11693 = load i32, ptr %11692, align 4, !tbaa !5
  %11694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11681, ptr noundef @.str.5, i32 noundef %11682, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 439, ptr noundef %11685, ptr noundef %11688, ptr noundef %11691, i32 noundef %11693) #11
  br label %11695

11695:                                            ; preds = %11678, %11661
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %11696

11696:                                            ; preds = %11695
  br label %11697

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

11698:                                            ; No predecessors!
  br label %11699

11699:                                            ; preds = %11698
  br label %11700

11700:                                            ; preds = %11699, %11642
  br label %11701

11701:                                            ; preds = %11700
  br label %11702

11702:                                            ; preds = %11701
  br label %11703

11703:                                            ; preds = %11702
  %11704 = load i32, ptr @test_count, align 4, !tbaa !5
  %11705 = add nsw i32 %11704, 1
  store i32 %11705, ptr @test_count, align 4, !tbaa !5
  %11706 = load ptr, ptr %7, align 8, !tbaa !9
  %11707 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11706, ptr noundef @.str.58)
  %11708 = icmp eq i32 %11707, -1
  br i1 %11708, label %11709, label %11762

11709:                                            ; preds = %11703
  br label %11710

11710:                                            ; preds = %11709
  br label %11711

11711:                                            ; preds = %11710
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %11712 = call ptr @__errno_location() #12
  %11713 = load i32, ptr %11712, align 4, !tbaa !5
  store i32 %11713, ptr %207, align 4, !tbaa !5
  %11714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11715 = call i32 @s2n_print_stacktrace(ptr noundef %11714)
  %11716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11717 = trunc i8 %11716 to i1
  br i1 %11717, label %11718, label %11740

11718:                                            ; preds = %11711
  %11719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11720 = call i32 @fileno(ptr noundef %11719) #11
  %11721 = call i32 @isatty(i32 noundef %11720) #11
  %11722 = icmp ne i32 %11721, 0
  br i1 %11722, label %11723, label %11740

11723:                                            ; preds = %11718
  %11724 = load i32, ptr %207, align 4, !tbaa !5
  %11725 = call ptr @__errno_location() #12
  store i32 %11724, ptr %11725, align 4, !tbaa !5
  %11726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11727 = load i32, ptr @test_count, align 4, !tbaa !5
  %11728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11729 = load i32, ptr %11728, align 4, !tbaa !5
  %11730 = call ptr @s2n_strerror(i32 noundef %11729, ptr noundef @.str.4)
  %11731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11732 = load i32, ptr %11731, align 4, !tbaa !5
  %11733 = call ptr @s2n_strerror_debug(i32 noundef %11732, ptr noundef @.str.4)
  %11734 = call ptr @__errno_location() #12
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  %11736 = call ptr @strerror(i32 noundef %11735) #11
  %11737 = call ptr @__errno_location() #12
  %11738 = load i32, ptr %11737, align 4, !tbaa !5
  %11739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11726, ptr noundef @.str.2, i32 noundef %11727, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 440, ptr noundef %11730, ptr noundef %11733, ptr noundef %11736, i32 noundef %11738) #11
  br label %11757

11740:                                            ; preds = %11718, %11711
  %11741 = load i32, ptr %207, align 4, !tbaa !5
  %11742 = call ptr @__errno_location() #12
  store i32 %11741, ptr %11742, align 4, !tbaa !5
  %11743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11744 = load i32, ptr @test_count, align 4, !tbaa !5
  %11745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11746 = load i32, ptr %11745, align 4, !tbaa !5
  %11747 = call ptr @s2n_strerror(i32 noundef %11746, ptr noundef @.str.4)
  %11748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11749 = load i32, ptr %11748, align 4, !tbaa !5
  %11750 = call ptr @s2n_strerror_debug(i32 noundef %11749, ptr noundef @.str.4)
  %11751 = call ptr @__errno_location() #12
  %11752 = load i32, ptr %11751, align 4, !tbaa !5
  %11753 = call ptr @strerror(i32 noundef %11752) #11
  %11754 = call ptr @__errno_location() #12
  %11755 = load i32, ptr %11754, align 4, !tbaa !5
  %11756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11743, ptr noundef @.str.5, i32 noundef %11744, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 440, ptr noundef %11747, ptr noundef %11750, ptr noundef %11753, i32 noundef %11755) #11
  br label %11757

11757:                                            ; preds = %11740, %11723
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %11758

11758:                                            ; preds = %11757
  br label %11759

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

11760:                                            ; No predecessors!
  br label %11761

11761:                                            ; preds = %11760
  br label %11762

11762:                                            ; preds = %11761, %11703
  br label %11763

11763:                                            ; preds = %11762
  br label %11764

11764:                                            ; preds = %11763
  br label %11765

11765:                                            ; preds = %11764
  %11766 = load i32, ptr @test_count, align 4, !tbaa !5
  %11767 = add nsw i32 %11766, 1
  store i32 %11767, ptr @test_count, align 4, !tbaa !5
  %11768 = load ptr, ptr %6, align 8, !tbaa !9
  %11769 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11768, ptr noundef @.str.58)
  %11770 = icmp eq i32 %11769, -1
  br i1 %11770, label %11771, label %11824

11771:                                            ; preds = %11765
  br label %11772

11772:                                            ; preds = %11771
  br label %11773

11773:                                            ; preds = %11772
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %11774 = call ptr @__errno_location() #12
  %11775 = load i32, ptr %11774, align 4, !tbaa !5
  store i32 %11775, ptr %208, align 4, !tbaa !5
  %11776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11777 = call i32 @s2n_print_stacktrace(ptr noundef %11776)
  %11778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11779 = trunc i8 %11778 to i1
  br i1 %11779, label %11780, label %11802

11780:                                            ; preds = %11773
  %11781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11782 = call i32 @fileno(ptr noundef %11781) #11
  %11783 = call i32 @isatty(i32 noundef %11782) #11
  %11784 = icmp ne i32 %11783, 0
  br i1 %11784, label %11785, label %11802

11785:                                            ; preds = %11780
  %11786 = load i32, ptr %208, align 4, !tbaa !5
  %11787 = call ptr @__errno_location() #12
  store i32 %11786, ptr %11787, align 4, !tbaa !5
  %11788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11789 = load i32, ptr @test_count, align 4, !tbaa !5
  %11790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11791 = load i32, ptr %11790, align 4, !tbaa !5
  %11792 = call ptr @s2n_strerror(i32 noundef %11791, ptr noundef @.str.4)
  %11793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11794 = load i32, ptr %11793, align 4, !tbaa !5
  %11795 = call ptr @s2n_strerror_debug(i32 noundef %11794, ptr noundef @.str.4)
  %11796 = call ptr @__errno_location() #12
  %11797 = load i32, ptr %11796, align 4, !tbaa !5
  %11798 = call ptr @strerror(i32 noundef %11797) #11
  %11799 = call ptr @__errno_location() #12
  %11800 = load i32, ptr %11799, align 4, !tbaa !5
  %11801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11788, ptr noundef @.str.2, i32 noundef %11789, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 441, ptr noundef %11792, ptr noundef %11795, ptr noundef %11798, i32 noundef %11800) #11
  br label %11819

11802:                                            ; preds = %11780, %11773
  %11803 = load i32, ptr %208, align 4, !tbaa !5
  %11804 = call ptr @__errno_location() #12
  store i32 %11803, ptr %11804, align 4, !tbaa !5
  %11805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11806 = load i32, ptr @test_count, align 4, !tbaa !5
  %11807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11808 = load i32, ptr %11807, align 4, !tbaa !5
  %11809 = call ptr @s2n_strerror(i32 noundef %11808, ptr noundef @.str.4)
  %11810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11811 = load i32, ptr %11810, align 4, !tbaa !5
  %11812 = call ptr @s2n_strerror_debug(i32 noundef %11811, ptr noundef @.str.4)
  %11813 = call ptr @__errno_location() #12
  %11814 = load i32, ptr %11813, align 4, !tbaa !5
  %11815 = call ptr @strerror(i32 noundef %11814) #11
  %11816 = call ptr @__errno_location() #12
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11805, ptr noundef @.str.5, i32 noundef %11806, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 441, ptr noundef %11809, ptr noundef %11812, ptr noundef %11815, i32 noundef %11817) #11
  br label %11819

11819:                                            ; preds = %11802, %11785
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %11820

11820:                                            ; preds = %11819
  br label %11821

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

11822:                                            ; No predecessors!
  br label %11823

11823:                                            ; preds = %11822
  br label %11824

11824:                                            ; preds = %11823, %11765
  br label %11825

11825:                                            ; preds = %11824
  br label %11826

11826:                                            ; preds = %11825
  br label %11827

11827:                                            ; preds = %11826
  %11828 = load i32, ptr @test_count, align 4, !tbaa !5
  %11829 = add nsw i32 %11828, 1
  store i32 %11829, ptr @test_count, align 4, !tbaa !5
  %11830 = load ptr, ptr %7, align 8, !tbaa !9
  %11831 = load ptr, ptr %10, align 8, !tbaa !9
  %11832 = call i32 @s2n_connection_set_config(ptr noundef %11830, ptr noundef %11831)
  %11833 = icmp eq i32 %11832, -1
  br i1 %11833, label %11834, label %11887

11834:                                            ; preds = %11827
  br label %11835

11835:                                            ; preds = %11834
  br label %11836

11836:                                            ; preds = %11835
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #11
  %11837 = call ptr @__errno_location() #12
  %11838 = load i32, ptr %11837, align 4, !tbaa !5
  store i32 %11838, ptr %209, align 4, !tbaa !5
  %11839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11840 = call i32 @s2n_print_stacktrace(ptr noundef %11839)
  %11841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11842 = trunc i8 %11841 to i1
  br i1 %11842, label %11843, label %11865

11843:                                            ; preds = %11836
  %11844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11845 = call i32 @fileno(ptr noundef %11844) #11
  %11846 = call i32 @isatty(i32 noundef %11845) #11
  %11847 = icmp ne i32 %11846, 0
  br i1 %11847, label %11848, label %11865

11848:                                            ; preds = %11843
  %11849 = load i32, ptr %209, align 4, !tbaa !5
  %11850 = call ptr @__errno_location() #12
  store i32 %11849, ptr %11850, align 4, !tbaa !5
  %11851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11852 = load i32, ptr @test_count, align 4, !tbaa !5
  %11853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11854 = load i32, ptr %11853, align 4, !tbaa !5
  %11855 = call ptr @s2n_strerror(i32 noundef %11854, ptr noundef @.str.4)
  %11856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11857 = load i32, ptr %11856, align 4, !tbaa !5
  %11858 = call ptr @s2n_strerror_debug(i32 noundef %11857, ptr noundef @.str.4)
  %11859 = call ptr @__errno_location() #12
  %11860 = load i32, ptr %11859, align 4, !tbaa !5
  %11861 = call ptr @strerror(i32 noundef %11860) #11
  %11862 = call ptr @__errno_location() #12
  %11863 = load i32, ptr %11862, align 4, !tbaa !5
  %11864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11851, ptr noundef @.str.2, i32 noundef %11852, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11855, ptr noundef %11858, ptr noundef %11861, i32 noundef %11863) #11
  br label %11882

11865:                                            ; preds = %11843, %11836
  %11866 = load i32, ptr %209, align 4, !tbaa !5
  %11867 = call ptr @__errno_location() #12
  store i32 %11866, ptr %11867, align 4, !tbaa !5
  %11868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11869 = load i32, ptr @test_count, align 4, !tbaa !5
  %11870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11871 = load i32, ptr %11870, align 4, !tbaa !5
  %11872 = call ptr @s2n_strerror(i32 noundef %11871, ptr noundef @.str.4)
  %11873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11874 = load i32, ptr %11873, align 4, !tbaa !5
  %11875 = call ptr @s2n_strerror_debug(i32 noundef %11874, ptr noundef @.str.4)
  %11876 = call ptr @__errno_location() #12
  %11877 = load i32, ptr %11876, align 4, !tbaa !5
  %11878 = call ptr @strerror(i32 noundef %11877) #11
  %11879 = call ptr @__errno_location() #12
  %11880 = load i32, ptr %11879, align 4, !tbaa !5
  %11881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11868, ptr noundef @.str.5, i32 noundef %11869, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 442, ptr noundef %11872, ptr noundef %11875, ptr noundef %11878, i32 noundef %11880) #11
  br label %11882

11882:                                            ; preds = %11865, %11848
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #11
  br label %11883

11883:                                            ; preds = %11882
  br label %11884

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

11885:                                            ; No predecessors!
  br label %11886

11886:                                            ; preds = %11885
  br label %11887

11887:                                            ; preds = %11886, %11827
  br label %11888

11888:                                            ; preds = %11887
  br label %11889

11889:                                            ; preds = %11888
  br label %11890

11890:                                            ; preds = %11889
  %11891 = load i32, ptr @test_count, align 4, !tbaa !5
  %11892 = add nsw i32 %11891, 1
  store i32 %11892, ptr @test_count, align 4, !tbaa !5
  %11893 = load ptr, ptr %6, align 8, !tbaa !9
  %11894 = load ptr, ptr %10, align 8, !tbaa !9
  %11895 = call i32 @s2n_connection_set_config(ptr noundef %11893, ptr noundef %11894)
  %11896 = icmp eq i32 %11895, -1
  br i1 %11896, label %11897, label %11950

11897:                                            ; preds = %11890
  br label %11898

11898:                                            ; preds = %11897
  br label %11899

11899:                                            ; preds = %11898
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %11900 = call ptr @__errno_location() #12
  %11901 = load i32, ptr %11900, align 4, !tbaa !5
  store i32 %11901, ptr %210, align 4, !tbaa !5
  %11902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11903 = call i32 @s2n_print_stacktrace(ptr noundef %11902)
  %11904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11905 = trunc i8 %11904 to i1
  br i1 %11905, label %11906, label %11928

11906:                                            ; preds = %11899
  %11907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11908 = call i32 @fileno(ptr noundef %11907) #11
  %11909 = call i32 @isatty(i32 noundef %11908) #11
  %11910 = icmp ne i32 %11909, 0
  br i1 %11910, label %11911, label %11928

11911:                                            ; preds = %11906
  %11912 = load i32, ptr %210, align 4, !tbaa !5
  %11913 = call ptr @__errno_location() #12
  store i32 %11912, ptr %11913, align 4, !tbaa !5
  %11914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11915 = load i32, ptr @test_count, align 4, !tbaa !5
  %11916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11917 = load i32, ptr %11916, align 4, !tbaa !5
  %11918 = call ptr @s2n_strerror(i32 noundef %11917, ptr noundef @.str.4)
  %11919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11920 = load i32, ptr %11919, align 4, !tbaa !5
  %11921 = call ptr @s2n_strerror_debug(i32 noundef %11920, ptr noundef @.str.4)
  %11922 = call ptr @__errno_location() #12
  %11923 = load i32, ptr %11922, align 4, !tbaa !5
  %11924 = call ptr @strerror(i32 noundef %11923) #11
  %11925 = call ptr @__errno_location() #12
  %11926 = load i32, ptr %11925, align 4, !tbaa !5
  %11927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11914, ptr noundef @.str.2, i32 noundef %11915, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 443, ptr noundef %11918, ptr noundef %11921, ptr noundef %11924, i32 noundef %11926) #11
  br label %11945

11928:                                            ; preds = %11906, %11899
  %11929 = load i32, ptr %210, align 4, !tbaa !5
  %11930 = call ptr @__errno_location() #12
  store i32 %11929, ptr %11930, align 4, !tbaa !5
  %11931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11932 = load i32, ptr @test_count, align 4, !tbaa !5
  %11933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11934 = load i32, ptr %11933, align 4, !tbaa !5
  %11935 = call ptr @s2n_strerror(i32 noundef %11934, ptr noundef @.str.4)
  %11936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11937 = load i32, ptr %11936, align 4, !tbaa !5
  %11938 = call ptr @s2n_strerror_debug(i32 noundef %11937, ptr noundef @.str.4)
  %11939 = call ptr @__errno_location() #12
  %11940 = load i32, ptr %11939, align 4, !tbaa !5
  %11941 = call ptr @strerror(i32 noundef %11940) #11
  %11942 = call ptr @__errno_location() #12
  %11943 = load i32, ptr %11942, align 4, !tbaa !5
  %11944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11931, ptr noundef @.str.5, i32 noundef %11932, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 443, ptr noundef %11935, ptr noundef %11938, ptr noundef %11941, i32 noundef %11943) #11
  br label %11945

11945:                                            ; preds = %11928, %11911
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %11946

11946:                                            ; preds = %11945
  br label %11947

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

11948:                                            ; No predecessors!
  br label %11949

11949:                                            ; preds = %11948
  br label %11950

11950:                                            ; preds = %11949, %11890
  br label %11951

11951:                                            ; preds = %11950
  br label %11952

11952:                                            ; preds = %11951
  br label %11953

11953:                                            ; preds = %11952
  %11954 = load i32, ptr @test_count, align 4, !tbaa !5
  %11955 = add nsw i32 %11954, 1
  store i32 %11955, ptr @test_count, align 4, !tbaa !5
  %11956 = load ptr, ptr %7, align 8, !tbaa !9
  %11957 = call i32 @s2n_client_hello_send(ptr noundef %11956)
  %11958 = icmp eq i32 %11957, -1
  br i1 %11958, label %11959, label %12012

11959:                                            ; preds = %11953
  br label %11960

11960:                                            ; preds = %11959
  br label %11961

11961:                                            ; preds = %11960
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %11962 = call ptr @__errno_location() #12
  %11963 = load i32, ptr %11962, align 4, !tbaa !5
  store i32 %11963, ptr %211, align 4, !tbaa !5
  %11964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11965 = call i32 @s2n_print_stacktrace(ptr noundef %11964)
  %11966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11967 = trunc i8 %11966 to i1
  br i1 %11967, label %11968, label %11990

11968:                                            ; preds = %11961
  %11969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11970 = call i32 @fileno(ptr noundef %11969) #11
  %11971 = call i32 @isatty(i32 noundef %11970) #11
  %11972 = icmp ne i32 %11971, 0
  br i1 %11972, label %11973, label %11990

11973:                                            ; preds = %11968
  %11974 = load i32, ptr %211, align 4, !tbaa !5
  %11975 = call ptr @__errno_location() #12
  store i32 %11974, ptr %11975, align 4, !tbaa !5
  %11976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11977 = load i32, ptr @test_count, align 4, !tbaa !5
  %11978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11979 = load i32, ptr %11978, align 4, !tbaa !5
  %11980 = call ptr @s2n_strerror(i32 noundef %11979, ptr noundef @.str.4)
  %11981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11982 = load i32, ptr %11981, align 4, !tbaa !5
  %11983 = call ptr @s2n_strerror_debug(i32 noundef %11982, ptr noundef @.str.4)
  %11984 = call ptr @__errno_location() #12
  %11985 = load i32, ptr %11984, align 4, !tbaa !5
  %11986 = call ptr @strerror(i32 noundef %11985) #11
  %11987 = call ptr @__errno_location() #12
  %11988 = load i32, ptr %11987, align 4, !tbaa !5
  %11989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11976, ptr noundef @.str.2, i32 noundef %11977, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 445, ptr noundef %11980, ptr noundef %11983, ptr noundef %11986, i32 noundef %11988) #11
  br label %12007

11990:                                            ; preds = %11968, %11961
  %11991 = load i32, ptr %211, align 4, !tbaa !5
  %11992 = call ptr @__errno_location() #12
  store i32 %11991, ptr %11992, align 4, !tbaa !5
  %11993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11994 = load i32, ptr @test_count, align 4, !tbaa !5
  %11995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11996 = load i32, ptr %11995, align 4, !tbaa !5
  %11997 = call ptr @s2n_strerror(i32 noundef %11996, ptr noundef @.str.4)
  %11998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11999 = load i32, ptr %11998, align 4, !tbaa !5
  %12000 = call ptr @s2n_strerror_debug(i32 noundef %11999, ptr noundef @.str.4)
  %12001 = call ptr @__errno_location() #12
  %12002 = load i32, ptr %12001, align 4, !tbaa !5
  %12003 = call ptr @strerror(i32 noundef %12002) #11
  %12004 = call ptr @__errno_location() #12
  %12005 = load i32, ptr %12004, align 4, !tbaa !5
  %12006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11993, ptr noundef @.str.5, i32 noundef %11994, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 445, ptr noundef %11997, ptr noundef %12000, ptr noundef %12003, i32 noundef %12005) #11
  br label %12007

12007:                                            ; preds = %11990, %11973
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %12008

12008:                                            ; preds = %12007
  br label %12009

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

12010:                                            ; No predecessors!
  br label %12011

12011:                                            ; preds = %12010
  br label %12012

12012:                                            ; preds = %12011, %11953
  br label %12013

12013:                                            ; preds = %12012
  br label %12014

12014:                                            ; preds = %12013
  br label %12015

12015:                                            ; preds = %12014
  %12016 = load i32, ptr @test_count, align 4, !tbaa !5
  %12017 = add nsw i32 %12016, 1
  store i32 %12017, ptr @test_count, align 4, !tbaa !5
  %12018 = load ptr, ptr %7, align 8, !tbaa !9
  %12019 = getelementptr inbounds %struct.s2n_connection, ptr %12018, i32 0, i32 52
  %12020 = getelementptr inbounds %struct.s2n_handshake, ptr %12019, i32 0, i32 0
  %12021 = load ptr, ptr %6, align 8, !tbaa !9
  %12022 = getelementptr inbounds %struct.s2n_connection, ptr %12021, i32 0, i32 52
  %12023 = getelementptr inbounds %struct.s2n_handshake, ptr %12022, i32 0, i32 0
  %12024 = load ptr, ptr %7, align 8, !tbaa !9
  %12025 = getelementptr inbounds %struct.s2n_connection, ptr %12024, i32 0, i32 52
  %12026 = getelementptr inbounds %struct.s2n_handshake, ptr %12025, i32 0, i32 0
  %12027 = getelementptr inbounds %struct.s2n_stuffer, ptr %12026, i32 0, i32 2
  %12028 = load i32, ptr %12027, align 4, !tbaa !52
  %12029 = load ptr, ptr %7, align 8, !tbaa !9
  %12030 = getelementptr inbounds %struct.s2n_connection, ptr %12029, i32 0, i32 52
  %12031 = getelementptr inbounds %struct.s2n_handshake, ptr %12030, i32 0, i32 0
  %12032 = getelementptr inbounds %struct.s2n_stuffer, ptr %12031, i32 0, i32 1
  %12033 = load i32, ptr %12032, align 8, !tbaa !53
  %12034 = sub i32 %12028, %12033
  %12035 = call i32 @s2n_stuffer_copy(ptr noundef %12020, ptr noundef %12023, i32 noundef %12034)
  %12036 = icmp eq i32 %12035, -1
  br i1 %12036, label %12037, label %12090

12037:                                            ; preds = %12015
  br label %12038

12038:                                            ; preds = %12037
  br label %12039

12039:                                            ; preds = %12038
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %12040 = call ptr @__errno_location() #12
  %12041 = load i32, ptr %12040, align 4, !tbaa !5
  store i32 %12041, ptr %212, align 4, !tbaa !5
  %12042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12043 = call i32 @s2n_print_stacktrace(ptr noundef %12042)
  %12044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12045 = trunc i8 %12044 to i1
  br i1 %12045, label %12046, label %12068

12046:                                            ; preds = %12039
  %12047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12048 = call i32 @fileno(ptr noundef %12047) #11
  %12049 = call i32 @isatty(i32 noundef %12048) #11
  %12050 = icmp ne i32 %12049, 0
  br i1 %12050, label %12051, label %12068

12051:                                            ; preds = %12046
  %12052 = load i32, ptr %212, align 4, !tbaa !5
  %12053 = call ptr @__errno_location() #12
  store i32 %12052, ptr %12053, align 4, !tbaa !5
  %12054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12055 = load i32, ptr @test_count, align 4, !tbaa !5
  %12056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12057 = load i32, ptr %12056, align 4, !tbaa !5
  %12058 = call ptr @s2n_strerror(i32 noundef %12057, ptr noundef @.str.4)
  %12059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12060 = load i32, ptr %12059, align 4, !tbaa !5
  %12061 = call ptr @s2n_strerror_debug(i32 noundef %12060, ptr noundef @.str.4)
  %12062 = call ptr @__errno_location() #12
  %12063 = load i32, ptr %12062, align 4, !tbaa !5
  %12064 = call ptr @strerror(i32 noundef %12063) #11
  %12065 = call ptr @__errno_location() #12
  %12066 = load i32, ptr %12065, align 4, !tbaa !5
  %12067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12054, ptr noundef @.str.2, i32 noundef %12055, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 447, ptr noundef %12058, ptr noundef %12061, ptr noundef %12064, i32 noundef %12066) #11
  br label %12085

12068:                                            ; preds = %12046, %12039
  %12069 = load i32, ptr %212, align 4, !tbaa !5
  %12070 = call ptr @__errno_location() #12
  store i32 %12069, ptr %12070, align 4, !tbaa !5
  %12071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12072 = load i32, ptr @test_count, align 4, !tbaa !5
  %12073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12074 = load i32, ptr %12073, align 4, !tbaa !5
  %12075 = call ptr @s2n_strerror(i32 noundef %12074, ptr noundef @.str.4)
  %12076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12077 = load i32, ptr %12076, align 4, !tbaa !5
  %12078 = call ptr @s2n_strerror_debug(i32 noundef %12077, ptr noundef @.str.4)
  %12079 = call ptr @__errno_location() #12
  %12080 = load i32, ptr %12079, align 4, !tbaa !5
  %12081 = call ptr @strerror(i32 noundef %12080) #11
  %12082 = call ptr @__errno_location() #12
  %12083 = load i32, ptr %12082, align 4, !tbaa !5
  %12084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12071, ptr noundef @.str.5, i32 noundef %12072, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 447, ptr noundef %12075, ptr noundef %12078, ptr noundef %12081, i32 noundef %12083) #11
  br label %12085

12085:                                            ; preds = %12068, %12051
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %12086

12086:                                            ; preds = %12085
  br label %12087

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

12088:                                            ; No predecessors!
  br label %12089

12089:                                            ; preds = %12088
  br label %12090

12090:                                            ; preds = %12089, %12015
  br label %12091

12091:                                            ; preds = %12090
  br label %12092

12092:                                            ; preds = %12091
  call void @llvm.lifetime.start.p0(i64 168, ptr %213) #11
  call void @llvm.memset.p0.i64(ptr align 8 %213, i8 0, i64 168, i1 false)
  %12093 = getelementptr inbounds %struct.s2n_psk, ptr %213, i32 0, i32 3
  store i32 4, ptr %12093, align 8, !tbaa !55
  %12094 = load ptr, ptr %6, align 8, !tbaa !9
  %12095 = getelementptr inbounds %struct.s2n_connection, ptr %12094, i32 0, i32 33
  %12096 = getelementptr inbounds %struct.s2n_psk_parameters, ptr %12095, i32 0, i32 4
  store ptr %213, ptr %12096, align 8, !tbaa !58
  br label %12097

12097:                                            ; preds = %12092
  %12098 = load i32, ptr @test_count, align 4, !tbaa !5
  %12099 = add nsw i32 %12098, 1
  store i32 %12099, ptr @test_count, align 4, !tbaa !5
  %12100 = load ptr, ptr %6, align 8, !tbaa !9
  %12101 = call i32 @s2n_client_hello_recv(ptr noundef %12100)
  %12102 = icmp eq i32 %12101, -1
  br i1 %12102, label %12103, label %12156

12103:                                            ; preds = %12097
  br label %12104

12104:                                            ; preds = %12103
  br label %12105

12105:                                            ; preds = %12104
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %12106 = call ptr @__errno_location() #12
  %12107 = load i32, ptr %12106, align 4, !tbaa !5
  store i32 %12107, ptr %214, align 4, !tbaa !5
  %12108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12109 = call i32 @s2n_print_stacktrace(ptr noundef %12108)
  %12110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12111 = trunc i8 %12110 to i1
  br i1 %12111, label %12112, label %12134

12112:                                            ; preds = %12105
  %12113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12114 = call i32 @fileno(ptr noundef %12113) #11
  %12115 = call i32 @isatty(i32 noundef %12114) #11
  %12116 = icmp ne i32 %12115, 0
  br i1 %12116, label %12117, label %12134

12117:                                            ; preds = %12112
  %12118 = load i32, ptr %214, align 4, !tbaa !5
  %12119 = call ptr @__errno_location() #12
  store i32 %12118, ptr %12119, align 4, !tbaa !5
  %12120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12121 = load i32, ptr @test_count, align 4, !tbaa !5
  %12122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12123 = load i32, ptr %12122, align 4, !tbaa !5
  %12124 = call ptr @s2n_strerror(i32 noundef %12123, ptr noundef @.str.4)
  %12125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12126 = load i32, ptr %12125, align 4, !tbaa !5
  %12127 = call ptr @s2n_strerror_debug(i32 noundef %12126, ptr noundef @.str.4)
  %12128 = call ptr @__errno_location() #12
  %12129 = load i32, ptr %12128, align 4, !tbaa !5
  %12130 = call ptr @strerror(i32 noundef %12129) #11
  %12131 = call ptr @__errno_location() #12
  %12132 = load i32, ptr %12131, align 4, !tbaa !5
  %12133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12120, ptr noundef @.str.2, i32 noundef %12121, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 452, ptr noundef %12124, ptr noundef %12127, ptr noundef %12130, i32 noundef %12132) #11
  br label %12151

12134:                                            ; preds = %12112, %12105
  %12135 = load i32, ptr %214, align 4, !tbaa !5
  %12136 = call ptr @__errno_location() #12
  store i32 %12135, ptr %12136, align 4, !tbaa !5
  %12137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12138 = load i32, ptr @test_count, align 4, !tbaa !5
  %12139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12140 = load i32, ptr %12139, align 4, !tbaa !5
  %12141 = call ptr @s2n_strerror(i32 noundef %12140, ptr noundef @.str.4)
  %12142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12143 = load i32, ptr %12142, align 4, !tbaa !5
  %12144 = call ptr @s2n_strerror_debug(i32 noundef %12143, ptr noundef @.str.4)
  %12145 = call ptr @__errno_location() #12
  %12146 = load i32, ptr %12145, align 4, !tbaa !5
  %12147 = call ptr @strerror(i32 noundef %12146) #11
  %12148 = call ptr @__errno_location() #12
  %12149 = load i32, ptr %12148, align 4, !tbaa !5
  %12150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12137, ptr noundef @.str.5, i32 noundef %12138, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 452, ptr noundef %12141, ptr noundef %12144, ptr noundef %12147, i32 noundef %12149) #11
  br label %12151

12151:                                            ; preds = %12134, %12117
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %12152

12152:                                            ; preds = %12151
  br label %12153

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

12154:                                            ; No predecessors!
  br label %12155

12155:                                            ; preds = %12154
  br label %12156

12156:                                            ; preds = %12155, %12097
  br label %12157

12157:                                            ; preds = %12156
  br label %12158

12158:                                            ; preds = %12157
  br label %12159

12159:                                            ; preds = %12158
  %12160 = load i32, ptr @test_count, align 4, !tbaa !5
  %12161 = add nsw i32 %12160, 1
  store i32 %12161, ptr @test_count, align 4, !tbaa !5
  %12162 = load ptr, ptr %6, align 8, !tbaa !9
  %12163 = getelementptr inbounds %struct.s2n_connection, ptr %12162, i32 0, i32 32
  %12164 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12163, i32 0, i32 5
  %12165 = load ptr, ptr %12164, align 8, !tbaa !59
  %12166 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %12165, i32 0, i32 0
  %12167 = load i16, ptr %12166, align 8, !tbaa !60
  %12168 = zext i16 %12167 to i32
  %12169 = icmp eq i32 %12168, 0
  br i1 %12169, label %12223, label %12170

12170:                                            ; preds = %12159
  br label %12171

12171:                                            ; preds = %12170
  br label %12172

12172:                                            ; preds = %12171
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %12173 = call ptr @__errno_location() #12
  %12174 = load i32, ptr %12173, align 4, !tbaa !5
  store i32 %12174, ptr %215, align 4, !tbaa !5
  %12175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12176 = call i32 @s2n_print_stacktrace(ptr noundef %12175)
  %12177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12178 = trunc i8 %12177 to i1
  br i1 %12178, label %12179, label %12201

12179:                                            ; preds = %12172
  %12180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12181 = call i32 @fileno(ptr noundef %12180) #11
  %12182 = call i32 @isatty(i32 noundef %12181) #11
  %12183 = icmp ne i32 %12182, 0
  br i1 %12183, label %12184, label %12201

12184:                                            ; preds = %12179
  %12185 = load i32, ptr %215, align 4, !tbaa !5
  %12186 = call ptr @__errno_location() #12
  store i32 %12185, ptr %12186, align 4, !tbaa !5
  %12187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12188 = load i32, ptr @test_count, align 4, !tbaa !5
  %12189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12190 = load i32, ptr %12189, align 4, !tbaa !5
  %12191 = call ptr @s2n_strerror(i32 noundef %12190, ptr noundef @.str.4)
  %12192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12193 = load i32, ptr %12192, align 4, !tbaa !5
  %12194 = call ptr @s2n_strerror_debug(i32 noundef %12193, ptr noundef @.str.4)
  %12195 = call ptr @__errno_location() #12
  %12196 = load i32, ptr %12195, align 4, !tbaa !5
  %12197 = call ptr @strerror(i32 noundef %12196) #11
  %12198 = call ptr @__errno_location() #12
  %12199 = load i32, ptr %12198, align 4, !tbaa !5
  %12200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12187, ptr noundef @.str.2, i32 noundef %12188, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 454, ptr noundef %12191, ptr noundef %12194, ptr noundef %12197, i32 noundef %12199) #11
  br label %12218

12201:                                            ; preds = %12179, %12172
  %12202 = load i32, ptr %215, align 4, !tbaa !5
  %12203 = call ptr @__errno_location() #12
  store i32 %12202, ptr %12203, align 4, !tbaa !5
  %12204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12205 = load i32, ptr @test_count, align 4, !tbaa !5
  %12206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12207 = load i32, ptr %12206, align 4, !tbaa !5
  %12208 = call ptr @s2n_strerror(i32 noundef %12207, ptr noundef @.str.4)
  %12209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12210 = load i32, ptr %12209, align 4, !tbaa !5
  %12211 = call ptr @s2n_strerror_debug(i32 noundef %12210, ptr noundef @.str.4)
  %12212 = call ptr @__errno_location() #12
  %12213 = load i32, ptr %12212, align 4, !tbaa !5
  %12214 = call ptr @strerror(i32 noundef %12213) #11
  %12215 = call ptr @__errno_location() #12
  %12216 = load i32, ptr %12215, align 4, !tbaa !5
  %12217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12204, ptr noundef @.str.5, i32 noundef %12205, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 454, ptr noundef %12208, ptr noundef %12211, ptr noundef %12214, i32 noundef %12216) #11
  br label %12218

12218:                                            ; preds = %12201, %12184
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %12219

12219:                                            ; preds = %12218
  br label %12220

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

12221:                                            ; No predecessors!
  br label %12222

12222:                                            ; preds = %12221
  br label %12223

12223:                                            ; preds = %12222, %12159
  br label %12224

12224:                                            ; preds = %12223
  br label %12225

12225:                                            ; preds = %12224
  br label %12226

12226:                                            ; preds = %12225
  %12227 = load i32, ptr @test_count, align 4, !tbaa !5
  %12228 = add nsw i32 %12227, 1
  store i32 %12228, ptr @test_count, align 4, !tbaa !5
  %12229 = load ptr, ptr %6, align 8, !tbaa !9
  %12230 = getelementptr inbounds %struct.s2n_connection, ptr %12229, i32 0, i32 32
  %12231 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %12230, i32 0, i32 7
  %12232 = load ptr, ptr %12231, align 8, !tbaa !62
  %12233 = icmp eq ptr %12232, null
  br i1 %12233, label %12287, label %12234

12234:                                            ; preds = %12226
  br label %12235

12235:                                            ; preds = %12234
  br label %12236

12236:                                            ; preds = %12235
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %12237 = call ptr @__errno_location() #12
  %12238 = load i32, ptr %12237, align 4, !tbaa !5
  store i32 %12238, ptr %216, align 4, !tbaa !5
  %12239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12240 = call i32 @s2n_print_stacktrace(ptr noundef %12239)
  %12241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12242 = trunc i8 %12241 to i1
  br i1 %12242, label %12243, label %12265

12243:                                            ; preds = %12236
  %12244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12245 = call i32 @fileno(ptr noundef %12244) #11
  %12246 = call i32 @isatty(i32 noundef %12245) #11
  %12247 = icmp ne i32 %12246, 0
  br i1 %12247, label %12248, label %12265

12248:                                            ; preds = %12243
  %12249 = load i32, ptr %216, align 4, !tbaa !5
  %12250 = call ptr @__errno_location() #12
  store i32 %12249, ptr %12250, align 4, !tbaa !5
  %12251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12252 = load i32, ptr @test_count, align 4, !tbaa !5
  %12253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12254 = load i32, ptr %12253, align 4, !tbaa !5
  %12255 = call ptr @s2n_strerror(i32 noundef %12254, ptr noundef @.str.4)
  %12256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12257 = load i32, ptr %12256, align 4, !tbaa !5
  %12258 = call ptr @s2n_strerror_debug(i32 noundef %12257, ptr noundef @.str.4)
  %12259 = call ptr @__errno_location() #12
  %12260 = load i32, ptr %12259, align 4, !tbaa !5
  %12261 = call ptr @strerror(i32 noundef %12260) #11
  %12262 = call ptr @__errno_location() #12
  %12263 = load i32, ptr %12262, align 4, !tbaa !5
  %12264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12251, ptr noundef @.str.2, i32 noundef %12252, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 455, ptr noundef %12255, ptr noundef %12258, ptr noundef %12261, i32 noundef %12263) #11
  br label %12282

12265:                                            ; preds = %12243, %12236
  %12266 = load i32, ptr %216, align 4, !tbaa !5
  %12267 = call ptr @__errno_location() #12
  store i32 %12266, ptr %12267, align 4, !tbaa !5
  %12268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12269 = load i32, ptr @test_count, align 4, !tbaa !5
  %12270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12271 = load i32, ptr %12270, align 4, !tbaa !5
  %12272 = call ptr @s2n_strerror(i32 noundef %12271, ptr noundef @.str.4)
  %12273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12274 = load i32, ptr %12273, align 4, !tbaa !5
  %12275 = call ptr @s2n_strerror_debug(i32 noundef %12274, ptr noundef @.str.4)
  %12276 = call ptr @__errno_location() #12
  %12277 = load i32, ptr %12276, align 4, !tbaa !5
  %12278 = call ptr @strerror(i32 noundef %12277) #11
  %12279 = call ptr @__errno_location() #12
  %12280 = load i32, ptr %12279, align 4, !tbaa !5
  %12281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12268, ptr noundef @.str.5, i32 noundef %12269, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 455, ptr noundef %12272, ptr noundef %12275, ptr noundef %12278, i32 noundef %12280) #11
  br label %12282

12282:                                            ; preds = %12265, %12248
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %12283

12283:                                            ; preds = %12282
  br label %12284

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

12285:                                            ; No predecessors!
  br label %12286

12286:                                            ; preds = %12285
  br label %12287

12287:                                            ; preds = %12286, %12226
  br label %12288

12288:                                            ; preds = %12287
  br label %12289

12289:                                            ; preds = %12288
  br label %12290

12290:                                            ; preds = %12289
  %12291 = load i32, ptr @test_count, align 4, !tbaa !5
  %12292 = add nsw i32 %12291, 1
  store i32 %12292, ptr @test_count, align 4, !tbaa !5
  %12293 = load ptr, ptr %7, align 8, !tbaa !9
  %12294 = call i32 @s2n_connection_free(ptr noundef %12293)
  %12295 = icmp eq i32 %12294, -1
  br i1 %12295, label %12296, label %12349

12296:                                            ; preds = %12290
  br label %12297

12297:                                            ; preds = %12296
  br label %12298

12298:                                            ; preds = %12297
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %12299 = call ptr @__errno_location() #12
  %12300 = load i32, ptr %12299, align 4, !tbaa !5
  store i32 %12300, ptr %217, align 4, !tbaa !5
  %12301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12302 = call i32 @s2n_print_stacktrace(ptr noundef %12301)
  %12303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12304 = trunc i8 %12303 to i1
  br i1 %12304, label %12305, label %12327

12305:                                            ; preds = %12298
  %12306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12307 = call i32 @fileno(ptr noundef %12306) #11
  %12308 = call i32 @isatty(i32 noundef %12307) #11
  %12309 = icmp ne i32 %12308, 0
  br i1 %12309, label %12310, label %12327

12310:                                            ; preds = %12305
  %12311 = load i32, ptr %217, align 4, !tbaa !5
  %12312 = call ptr @__errno_location() #12
  store i32 %12311, ptr %12312, align 4, !tbaa !5
  %12313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12314 = load i32, ptr @test_count, align 4, !tbaa !5
  %12315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12316 = load i32, ptr %12315, align 4, !tbaa !5
  %12317 = call ptr @s2n_strerror(i32 noundef %12316, ptr noundef @.str.4)
  %12318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12319 = load i32, ptr %12318, align 4, !tbaa !5
  %12320 = call ptr @s2n_strerror_debug(i32 noundef %12319, ptr noundef @.str.4)
  %12321 = call ptr @__errno_location() #12
  %12322 = load i32, ptr %12321, align 4, !tbaa !5
  %12323 = call ptr @strerror(i32 noundef %12322) #11
  %12324 = call ptr @__errno_location() #12
  %12325 = load i32, ptr %12324, align 4, !tbaa !5
  %12326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12313, ptr noundef @.str.2, i32 noundef %12314, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12317, ptr noundef %12320, ptr noundef %12323, i32 noundef %12325) #11
  br label %12344

12327:                                            ; preds = %12305, %12298
  %12328 = load i32, ptr %217, align 4, !tbaa !5
  %12329 = call ptr @__errno_location() #12
  store i32 %12328, ptr %12329, align 4, !tbaa !5
  %12330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12331 = load i32, ptr @test_count, align 4, !tbaa !5
  %12332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12333 = load i32, ptr %12332, align 4, !tbaa !5
  %12334 = call ptr @s2n_strerror(i32 noundef %12333, ptr noundef @.str.4)
  %12335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12336 = load i32, ptr %12335, align 4, !tbaa !5
  %12337 = call ptr @s2n_strerror_debug(i32 noundef %12336, ptr noundef @.str.4)
  %12338 = call ptr @__errno_location() #12
  %12339 = load i32, ptr %12338, align 4, !tbaa !5
  %12340 = call ptr @strerror(i32 noundef %12339) #11
  %12341 = call ptr @__errno_location() #12
  %12342 = load i32, ptr %12341, align 4, !tbaa !5
  %12343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12330, ptr noundef @.str.5, i32 noundef %12331, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 457, ptr noundef %12334, ptr noundef %12337, ptr noundef %12340, i32 noundef %12342) #11
  br label %12344

12344:                                            ; preds = %12327, %12310
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %12345

12345:                                            ; preds = %12344
  br label %12346

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

12347:                                            ; No predecessors!
  br label %12348

12348:                                            ; preds = %12347
  br label %12349

12349:                                            ; preds = %12348, %12290
  br label %12350

12350:                                            ; preds = %12349
  br label %12351

12351:                                            ; preds = %12350
  br label %12352

12352:                                            ; preds = %12351
  %12353 = load i32, ptr @test_count, align 4, !tbaa !5
  %12354 = add nsw i32 %12353, 1
  store i32 %12354, ptr @test_count, align 4, !tbaa !5
  %12355 = load ptr, ptr %6, align 8, !tbaa !9
  %12356 = call i32 @s2n_connection_free(ptr noundef %12355)
  %12357 = icmp eq i32 %12356, -1
  br i1 %12357, label %12358, label %12411

12358:                                            ; preds = %12352
  br label %12359

12359:                                            ; preds = %12358
  br label %12360

12360:                                            ; preds = %12359
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %12361 = call ptr @__errno_location() #12
  %12362 = load i32, ptr %12361, align 4, !tbaa !5
  store i32 %12362, ptr %218, align 4, !tbaa !5
  %12363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12364 = call i32 @s2n_print_stacktrace(ptr noundef %12363)
  %12365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12366 = trunc i8 %12365 to i1
  br i1 %12366, label %12367, label %12389

12367:                                            ; preds = %12360
  %12368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12369 = call i32 @fileno(ptr noundef %12368) #11
  %12370 = call i32 @isatty(i32 noundef %12369) #11
  %12371 = icmp ne i32 %12370, 0
  br i1 %12371, label %12372, label %12389

12372:                                            ; preds = %12367
  %12373 = load i32, ptr %218, align 4, !tbaa !5
  %12374 = call ptr @__errno_location() #12
  store i32 %12373, ptr %12374, align 4, !tbaa !5
  %12375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12376 = load i32, ptr @test_count, align 4, !tbaa !5
  %12377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12378 = load i32, ptr %12377, align 4, !tbaa !5
  %12379 = call ptr @s2n_strerror(i32 noundef %12378, ptr noundef @.str.4)
  %12380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12381 = load i32, ptr %12380, align 4, !tbaa !5
  %12382 = call ptr @s2n_strerror_debug(i32 noundef %12381, ptr noundef @.str.4)
  %12383 = call ptr @__errno_location() #12
  %12384 = load i32, ptr %12383, align 4, !tbaa !5
  %12385 = call ptr @strerror(i32 noundef %12384) #11
  %12386 = call ptr @__errno_location() #12
  %12387 = load i32, ptr %12386, align 4, !tbaa !5
  %12388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12375, ptr noundef @.str.2, i32 noundef %12376, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 458, ptr noundef %12379, ptr noundef %12382, ptr noundef %12385, i32 noundef %12387) #11
  br label %12406

12389:                                            ; preds = %12367, %12360
  %12390 = load i32, ptr %218, align 4, !tbaa !5
  %12391 = call ptr @__errno_location() #12
  store i32 %12390, ptr %12391, align 4, !tbaa !5
  %12392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12393 = load i32, ptr @test_count, align 4, !tbaa !5
  %12394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12395 = load i32, ptr %12394, align 4, !tbaa !5
  %12396 = call ptr @s2n_strerror(i32 noundef %12395, ptr noundef @.str.4)
  %12397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12398 = load i32, ptr %12397, align 4, !tbaa !5
  %12399 = call ptr @s2n_strerror_debug(i32 noundef %12398, ptr noundef @.str.4)
  %12400 = call ptr @__errno_location() #12
  %12401 = load i32, ptr %12400, align 4, !tbaa !5
  %12402 = call ptr @strerror(i32 noundef %12401) #11
  %12403 = call ptr @__errno_location() #12
  %12404 = load i32, ptr %12403, align 4, !tbaa !5
  %12405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12392, ptr noundef @.str.5, i32 noundef %12393, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 458, ptr noundef %12396, ptr noundef %12399, ptr noundef %12402, i32 noundef %12404) #11
  br label %12406

12406:                                            ; preds = %12389, %12372
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %12407

12407:                                            ; preds = %12406
  br label %12408

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

12409:                                            ; No predecessors!
  br label %12410

12410:                                            ; preds = %12409
  br label %12411

12411:                                            ; preds = %12410, %12352
  br label %12412

12412:                                            ; preds = %12411
  br label %12413

12413:                                            ; preds = %12412
  call void @llvm.lifetime.end.p0(i64 168, ptr %213) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %219) #11
  call void @llvm.memset.p0.i64(ptr align 8 %219, i8 0, i64 24, i1 false)
  br label %12414

12414:                                            ; preds = %12413
  %12415 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef %219, ptr noundef @.str.87)
  %12416 = getelementptr inbounds %struct.s2n_result, ptr %220, i32 0, i32 0
  store i32 %12415, ptr %12416, align 4
  %12417 = getelementptr inbounds %struct.s2n_result, ptr %220, i32 0, i32 0
  %12418 = load i32, ptr %12417, align 4
  %12419 = call zeroext i1 @s2n_result_is_ok(i32 %12418)
  br i1 %12419, label %12421, label %12420

12420:                                            ; preds = %12414
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %221, align 4
  br label %13119

12421:                                            ; preds = %12414
  br label %12422

12422:                                            ; preds = %12421
  br label %12423

12423:                                            ; preds = %12422
  br label %12424

12424:                                            ; preds = %12423
  %12425 = load i32, ptr @test_count, align 4, !tbaa !5
  %12426 = add nsw i32 %12425, 1
  store i32 %12426, ptr @test_count, align 4, !tbaa !5
  %12427 = call i32 (...) @s2n_enable_tls13_in_test()
  %12428 = icmp eq i32 %12427, -1
  br i1 %12428, label %12429, label %12482

12429:                                            ; preds = %12424
  br label %12430

12430:                                            ; preds = %12429
  br label %12431

12431:                                            ; preds = %12430
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %12432 = call ptr @__errno_location() #12
  %12433 = load i32, ptr %12432, align 4, !tbaa !5
  store i32 %12433, ptr %222, align 4, !tbaa !5
  %12434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12435 = call i32 @s2n_print_stacktrace(ptr noundef %12434)
  %12436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12437 = trunc i8 %12436 to i1
  br i1 %12437, label %12438, label %12460

12438:                                            ; preds = %12431
  %12439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12440 = call i32 @fileno(ptr noundef %12439) #11
  %12441 = call i32 @isatty(i32 noundef %12440) #11
  %12442 = icmp ne i32 %12441, 0
  br i1 %12442, label %12443, label %12460

12443:                                            ; preds = %12438
  %12444 = load i32, ptr %222, align 4, !tbaa !5
  %12445 = call ptr @__errno_location() #12
  store i32 %12444, ptr %12445, align 4, !tbaa !5
  %12446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12447 = load i32, ptr @test_count, align 4, !tbaa !5
  %12448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12449 = load i32, ptr %12448, align 4, !tbaa !5
  %12450 = call ptr @s2n_strerror(i32 noundef %12449, ptr noundef @.str.4)
  %12451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12452 = load i32, ptr %12451, align 4, !tbaa !5
  %12453 = call ptr @s2n_strerror_debug(i32 noundef %12452, ptr noundef @.str.4)
  %12454 = call ptr @__errno_location() #12
  %12455 = load i32, ptr %12454, align 4, !tbaa !5
  %12456 = call ptr @strerror(i32 noundef %12455) #11
  %12457 = call ptr @__errno_location() #12
  %12458 = load i32, ptr %12457, align 4, !tbaa !5
  %12459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12446, ptr noundef @.str.2, i32 noundef %12447, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 490, ptr noundef %12450, ptr noundef %12453, ptr noundef %12456, i32 noundef %12458) #11
  br label %12477

12460:                                            ; preds = %12438, %12431
  %12461 = load i32, ptr %222, align 4, !tbaa !5
  %12462 = call ptr @__errno_location() #12
  store i32 %12461, ptr %12462, align 4, !tbaa !5
  %12463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12464 = load i32, ptr @test_count, align 4, !tbaa !5
  %12465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12466 = load i32, ptr %12465, align 4, !tbaa !5
  %12467 = call ptr @s2n_strerror(i32 noundef %12466, ptr noundef @.str.4)
  %12468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12469 = load i32, ptr %12468, align 4, !tbaa !5
  %12470 = call ptr @s2n_strerror_debug(i32 noundef %12469, ptr noundef @.str.4)
  %12471 = call ptr @__errno_location() #12
  %12472 = load i32, ptr %12471, align 4, !tbaa !5
  %12473 = call ptr @strerror(i32 noundef %12472) #11
  %12474 = call ptr @__errno_location() #12
  %12475 = load i32, ptr %12474, align 4, !tbaa !5
  %12476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12463, ptr noundef @.str.5, i32 noundef %12464, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 490, ptr noundef %12467, ptr noundef %12470, ptr noundef %12473, i32 noundef %12475) #11
  br label %12477

12477:                                            ; preds = %12460, %12443
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %12478

12478:                                            ; preds = %12477
  br label %12479

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

12480:                                            ; No predecessors!
  br label %12481

12481:                                            ; preds = %12480
  br label %12482

12482:                                            ; preds = %12481, %12424
  br label %12483

12483:                                            ; preds = %12482
  br label %12484

12484:                                            ; preds = %12483
  br label %12485

12485:                                            ; preds = %12484
  %12486 = load i32, ptr @test_count, align 4, !tbaa !5
  %12487 = add nsw i32 %12486, 1
  store i32 %12487, ptr @test_count, align 4, !tbaa !5
  %12488 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %12488, ptr %6, align 8, !tbaa !9
  %12489 = icmp eq ptr %12488, null
  br i1 %12489, label %12490, label %12543

12490:                                            ; preds = %12485
  br label %12491

12491:                                            ; preds = %12490
  br label %12492

12492:                                            ; preds = %12491
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %12493 = call ptr @__errno_location() #12
  %12494 = load i32, ptr %12493, align 4, !tbaa !5
  store i32 %12494, ptr %223, align 4, !tbaa !5
  %12495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12496 = call i32 @s2n_print_stacktrace(ptr noundef %12495)
  %12497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12498 = trunc i8 %12497 to i1
  br i1 %12498, label %12499, label %12521

12499:                                            ; preds = %12492
  %12500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12501 = call i32 @fileno(ptr noundef %12500) #11
  %12502 = call i32 @isatty(i32 noundef %12501) #11
  %12503 = icmp ne i32 %12502, 0
  br i1 %12503, label %12504, label %12521

12504:                                            ; preds = %12499
  %12505 = load i32, ptr %223, align 4, !tbaa !5
  %12506 = call ptr @__errno_location() #12
  store i32 %12505, ptr %12506, align 4, !tbaa !5
  %12507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12508 = load i32, ptr @test_count, align 4, !tbaa !5
  %12509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12510 = load i32, ptr %12509, align 4, !tbaa !5
  %12511 = call ptr @s2n_strerror(i32 noundef %12510, ptr noundef @.str.4)
  %12512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12513 = load i32, ptr %12512, align 4, !tbaa !5
  %12514 = call ptr @s2n_strerror_debug(i32 noundef %12513, ptr noundef @.str.4)
  %12515 = call ptr @__errno_location() #12
  %12516 = load i32, ptr %12515, align 4, !tbaa !5
  %12517 = call ptr @strerror(i32 noundef %12516) #11
  %12518 = call ptr @__errno_location() #12
  %12519 = load i32, ptr %12518, align 4, !tbaa !5
  %12520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12507, ptr noundef @.str.2, i32 noundef %12508, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 492, ptr noundef %12511, ptr noundef %12514, ptr noundef %12517, i32 noundef %12519) #11
  br label %12538

12521:                                            ; preds = %12499, %12492
  %12522 = load i32, ptr %223, align 4, !tbaa !5
  %12523 = call ptr @__errno_location() #12
  store i32 %12522, ptr %12523, align 4, !tbaa !5
  %12524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12525 = load i32, ptr @test_count, align 4, !tbaa !5
  %12526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12527 = load i32, ptr %12526, align 4, !tbaa !5
  %12528 = call ptr @s2n_strerror(i32 noundef %12527, ptr noundef @.str.4)
  %12529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12530 = load i32, ptr %12529, align 4, !tbaa !5
  %12531 = call ptr @s2n_strerror_debug(i32 noundef %12530, ptr noundef @.str.4)
  %12532 = call ptr @__errno_location() #12
  %12533 = load i32, ptr %12532, align 4, !tbaa !5
  %12534 = call ptr @strerror(i32 noundef %12533) #11
  %12535 = call ptr @__errno_location() #12
  %12536 = load i32, ptr %12535, align 4, !tbaa !5
  %12537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12524, ptr noundef @.str.5, i32 noundef %12525, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 492, ptr noundef %12528, ptr noundef %12531, ptr noundef %12534, i32 noundef %12536) #11
  br label %12538

12538:                                            ; preds = %12521, %12504
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %12539

12539:                                            ; preds = %12538
  br label %12540

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

12541:                                            ; No predecessors!
  br label %12542

12542:                                            ; preds = %12541
  br label %12543

12543:                                            ; preds = %12542, %12485
  br label %12544

12544:                                            ; preds = %12543
  br label %12545

12545:                                            ; preds = %12544
  br label %12546

12546:                                            ; preds = %12545
  %12547 = load i32, ptr @test_count, align 4, !tbaa !5
  %12548 = add nsw i32 %12547, 1
  store i32 %12548, ptr @test_count, align 4, !tbaa !5
  %12549 = load ptr, ptr %6, align 8, !tbaa !9
  %12550 = load ptr, ptr %10, align 8, !tbaa !9
  %12551 = call i32 @s2n_connection_set_config(ptr noundef %12549, ptr noundef %12550)
  %12552 = icmp eq i32 %12551, -1
  br i1 %12552, label %12553, label %12606

12553:                                            ; preds = %12546
  br label %12554

12554:                                            ; preds = %12553
  br label %12555

12555:                                            ; preds = %12554
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  %12556 = call ptr @__errno_location() #12
  %12557 = load i32, ptr %12556, align 4, !tbaa !5
  store i32 %12557, ptr %224, align 4, !tbaa !5
  %12558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12559 = call i32 @s2n_print_stacktrace(ptr noundef %12558)
  %12560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12561 = trunc i8 %12560 to i1
  br i1 %12561, label %12562, label %12584

12562:                                            ; preds = %12555
  %12563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12564 = call i32 @fileno(ptr noundef %12563) #11
  %12565 = call i32 @isatty(i32 noundef %12564) #11
  %12566 = icmp ne i32 %12565, 0
  br i1 %12566, label %12567, label %12584

12567:                                            ; preds = %12562
  %12568 = load i32, ptr %224, align 4, !tbaa !5
  %12569 = call ptr @__errno_location() #12
  store i32 %12568, ptr %12569, align 4, !tbaa !5
  %12570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12571 = load i32, ptr @test_count, align 4, !tbaa !5
  %12572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12573 = load i32, ptr %12572, align 4, !tbaa !5
  %12574 = call ptr @s2n_strerror(i32 noundef %12573, ptr noundef @.str.4)
  %12575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12576 = load i32, ptr %12575, align 4, !tbaa !5
  %12577 = call ptr @s2n_strerror_debug(i32 noundef %12576, ptr noundef @.str.4)
  %12578 = call ptr @__errno_location() #12
  %12579 = load i32, ptr %12578, align 4, !tbaa !5
  %12580 = call ptr @strerror(i32 noundef %12579) #11
  %12581 = call ptr @__errno_location() #12
  %12582 = load i32, ptr %12581, align 4, !tbaa !5
  %12583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12570, ptr noundef @.str.2, i32 noundef %12571, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 493, ptr noundef %12574, ptr noundef %12577, ptr noundef %12580, i32 noundef %12582) #11
  br label %12601

12584:                                            ; preds = %12562, %12555
  %12585 = load i32, ptr %224, align 4, !tbaa !5
  %12586 = call ptr @__errno_location() #12
  store i32 %12585, ptr %12586, align 4, !tbaa !5
  %12587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12588 = load i32, ptr @test_count, align 4, !tbaa !5
  %12589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12590 = load i32, ptr %12589, align 4, !tbaa !5
  %12591 = call ptr @s2n_strerror(i32 noundef %12590, ptr noundef @.str.4)
  %12592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12593 = load i32, ptr %12592, align 4, !tbaa !5
  %12594 = call ptr @s2n_strerror_debug(i32 noundef %12593, ptr noundef @.str.4)
  %12595 = call ptr @__errno_location() #12
  %12596 = load i32, ptr %12595, align 4, !tbaa !5
  %12597 = call ptr @strerror(i32 noundef %12596) #11
  %12598 = call ptr @__errno_location() #12
  %12599 = load i32, ptr %12598, align 4, !tbaa !5
  %12600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12587, ptr noundef @.str.5, i32 noundef %12588, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 493, ptr noundef %12591, ptr noundef %12594, ptr noundef %12597, i32 noundef %12599) #11
  br label %12601

12601:                                            ; preds = %12584, %12567
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  br label %12602

12602:                                            ; preds = %12601
  br label %12603

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

12604:                                            ; No predecessors!
  br label %12605

12605:                                            ; preds = %12604
  br label %12606

12606:                                            ; preds = %12605, %12546
  br label %12607

12607:                                            ; preds = %12606
  br label %12608

12608:                                            ; preds = %12607
  br label %12609

12609:                                            ; preds = %12608
  %12610 = load i32, ptr @test_count, align 4, !tbaa !5
  %12611 = add nsw i32 %12610, 1
  store i32 %12611, ptr @test_count, align 4, !tbaa !5
  %12612 = load ptr, ptr %6, align 8, !tbaa !9
  %12613 = getelementptr inbounds %struct.s2n_connection, ptr %12612, i32 0, i32 52
  %12614 = getelementptr inbounds %struct.s2n_handshake, ptr %12613, i32 0, i32 0
  %12615 = call i32 @s2n_stuffer_write(ptr noundef %12614, ptr noundef %219)
  %12616 = icmp eq i32 %12615, -1
  br i1 %12616, label %12617, label %12670

12617:                                            ; preds = %12609
  br label %12618

12618:                                            ; preds = %12617
  br label %12619

12619:                                            ; preds = %12618
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %12620 = call ptr @__errno_location() #12
  %12621 = load i32, ptr %12620, align 4, !tbaa !5
  store i32 %12621, ptr %225, align 4, !tbaa !5
  %12622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12623 = call i32 @s2n_print_stacktrace(ptr noundef %12622)
  %12624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12625 = trunc i8 %12624 to i1
  br i1 %12625, label %12626, label %12648

12626:                                            ; preds = %12619
  %12627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12628 = call i32 @fileno(ptr noundef %12627) #11
  %12629 = call i32 @isatty(i32 noundef %12628) #11
  %12630 = icmp ne i32 %12629, 0
  br i1 %12630, label %12631, label %12648

12631:                                            ; preds = %12626
  %12632 = load i32, ptr %225, align 4, !tbaa !5
  %12633 = call ptr @__errno_location() #12
  store i32 %12632, ptr %12633, align 4, !tbaa !5
  %12634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12635 = load i32, ptr @test_count, align 4, !tbaa !5
  %12636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12637 = load i32, ptr %12636, align 4, !tbaa !5
  %12638 = call ptr @s2n_strerror(i32 noundef %12637, ptr noundef @.str.4)
  %12639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12640 = load i32, ptr %12639, align 4, !tbaa !5
  %12641 = call ptr @s2n_strerror_debug(i32 noundef %12640, ptr noundef @.str.4)
  %12642 = call ptr @__errno_location() #12
  %12643 = load i32, ptr %12642, align 4, !tbaa !5
  %12644 = call ptr @strerror(i32 noundef %12643) #11
  %12645 = call ptr @__errno_location() #12
  %12646 = load i32, ptr %12645, align 4, !tbaa !5
  %12647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12634, ptr noundef @.str.2, i32 noundef %12635, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 495, ptr noundef %12638, ptr noundef %12641, ptr noundef %12644, i32 noundef %12646) #11
  br label %12665

12648:                                            ; preds = %12626, %12619
  %12649 = load i32, ptr %225, align 4, !tbaa !5
  %12650 = call ptr @__errno_location() #12
  store i32 %12649, ptr %12650, align 4, !tbaa !5
  %12651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12652 = load i32, ptr @test_count, align 4, !tbaa !5
  %12653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12654 = load i32, ptr %12653, align 4, !tbaa !5
  %12655 = call ptr @s2n_strerror(i32 noundef %12654, ptr noundef @.str.4)
  %12656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12657 = load i32, ptr %12656, align 4, !tbaa !5
  %12658 = call ptr @s2n_strerror_debug(i32 noundef %12657, ptr noundef @.str.4)
  %12659 = call ptr @__errno_location() #12
  %12660 = load i32, ptr %12659, align 4, !tbaa !5
  %12661 = call ptr @strerror(i32 noundef %12660) #11
  %12662 = call ptr @__errno_location() #12
  %12663 = load i32, ptr %12662, align 4, !tbaa !5
  %12664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12651, ptr noundef @.str.5, i32 noundef %12652, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 495, ptr noundef %12655, ptr noundef %12658, ptr noundef %12661, i32 noundef %12663) #11
  br label %12665

12665:                                            ; preds = %12648, %12631
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %12666

12666:                                            ; preds = %12665
  br label %12667

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

12668:                                            ; No predecessors!
  br label %12669

12669:                                            ; preds = %12668
  br label %12670

12670:                                            ; preds = %12669, %12609
  br label %12671

12671:                                            ; preds = %12670
  br label %12672

12672:                                            ; preds = %12671
  br label %12673

12673:                                            ; preds = %12672
  %12674 = load i32, ptr @test_count, align 4, !tbaa !5
  %12675 = add nsw i32 %12674, 1
  store i32 %12675, ptr @test_count, align 4, !tbaa !5
  %12676 = load ptr, ptr %6, align 8, !tbaa !9
  %12677 = call i32 @s2n_client_hello_recv(ptr noundef %12676)
  %12678 = icmp eq i32 %12677, -1
  br i1 %12678, label %12679, label %12732

12679:                                            ; preds = %12673
  br label %12680

12680:                                            ; preds = %12679
  br label %12681

12681:                                            ; preds = %12680
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  %12682 = call ptr @__errno_location() #12
  %12683 = load i32, ptr %12682, align 4, !tbaa !5
  store i32 %12683, ptr %226, align 4, !tbaa !5
  %12684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12685 = call i32 @s2n_print_stacktrace(ptr noundef %12684)
  %12686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12687 = trunc i8 %12686 to i1
  br i1 %12687, label %12688, label %12710

12688:                                            ; preds = %12681
  %12689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12690 = call i32 @fileno(ptr noundef %12689) #11
  %12691 = call i32 @isatty(i32 noundef %12690) #11
  %12692 = icmp ne i32 %12691, 0
  br i1 %12692, label %12693, label %12710

12693:                                            ; preds = %12688
  %12694 = load i32, ptr %226, align 4, !tbaa !5
  %12695 = call ptr @__errno_location() #12
  store i32 %12694, ptr %12695, align 4, !tbaa !5
  %12696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12697 = load i32, ptr @test_count, align 4, !tbaa !5
  %12698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12699 = load i32, ptr %12698, align 4, !tbaa !5
  %12700 = call ptr @s2n_strerror(i32 noundef %12699, ptr noundef @.str.4)
  %12701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12702 = load i32, ptr %12701, align 4, !tbaa !5
  %12703 = call ptr @s2n_strerror_debug(i32 noundef %12702, ptr noundef @.str.4)
  %12704 = call ptr @__errno_location() #12
  %12705 = load i32, ptr %12704, align 4, !tbaa !5
  %12706 = call ptr @strerror(i32 noundef %12705) #11
  %12707 = call ptr @__errno_location() #12
  %12708 = load i32, ptr %12707, align 4, !tbaa !5
  %12709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12696, ptr noundef @.str.2, i32 noundef %12697, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 496, ptr noundef %12700, ptr noundef %12703, ptr noundef %12706, i32 noundef %12708) #11
  br label %12727

12710:                                            ; preds = %12688, %12681
  %12711 = load i32, ptr %226, align 4, !tbaa !5
  %12712 = call ptr @__errno_location() #12
  store i32 %12711, ptr %12712, align 4, !tbaa !5
  %12713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12714 = load i32, ptr @test_count, align 4, !tbaa !5
  %12715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12716 = load i32, ptr %12715, align 4, !tbaa !5
  %12717 = call ptr @s2n_strerror(i32 noundef %12716, ptr noundef @.str.4)
  %12718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12719 = load i32, ptr %12718, align 4, !tbaa !5
  %12720 = call ptr @s2n_strerror_debug(i32 noundef %12719, ptr noundef @.str.4)
  %12721 = call ptr @__errno_location() #12
  %12722 = load i32, ptr %12721, align 4, !tbaa !5
  %12723 = call ptr @strerror(i32 noundef %12722) #11
  %12724 = call ptr @__errno_location() #12
  %12725 = load i32, ptr %12724, align 4, !tbaa !5
  %12726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12713, ptr noundef @.str.5, i32 noundef %12714, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 496, ptr noundef %12717, ptr noundef %12720, ptr noundef %12723, i32 noundef %12725) #11
  br label %12727

12727:                                            ; preds = %12710, %12693
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  br label %12728

12728:                                            ; preds = %12727
  br label %12729

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

12730:                                            ; No predecessors!
  br label %12731

12731:                                            ; preds = %12730
  br label %12732

12732:                                            ; preds = %12731, %12673
  br label %12733

12733:                                            ; preds = %12732
  br label %12734

12734:                                            ; preds = %12733
  br label %12735

12735:                                            ; preds = %12734
  %12736 = load i32, ptr @test_count, align 4, !tbaa !5
  %12737 = add nsw i32 %12736, 1
  store i32 %12737, ptr @test_count, align 4, !tbaa !5
  %12738 = load ptr, ptr %6, align 8, !tbaa !9
  %12739 = getelementptr inbounds %struct.s2n_connection, ptr %12738, i32 0, i32 31
  %12740 = getelementptr inbounds %struct.s2n_kex_parameters, ptr %12739, i32 0, i32 1
  %12741 = getelementptr inbounds %struct.s2n_ecc_evp_params, ptr %12740, i32 0, i32 0
  %12742 = load ptr, ptr %12741, align 8, !tbaa !63
  %12743 = icmp eq ptr %12742, @s2n_ecc_curve_secp256r1
  br i1 %12743, label %12797, label %12744

12744:                                            ; preds = %12735
  br label %12745

12745:                                            ; preds = %12744
  br label %12746

12746:                                            ; preds = %12745
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %12747 = call ptr @__errno_location() #12
  %12748 = load i32, ptr %12747, align 4, !tbaa !5
  store i32 %12748, ptr %227, align 4, !tbaa !5
  %12749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12750 = call i32 @s2n_print_stacktrace(ptr noundef %12749)
  %12751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12752 = trunc i8 %12751 to i1
  br i1 %12752, label %12753, label %12775

12753:                                            ; preds = %12746
  %12754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12755 = call i32 @fileno(ptr noundef %12754) #11
  %12756 = call i32 @isatty(i32 noundef %12755) #11
  %12757 = icmp ne i32 %12756, 0
  br i1 %12757, label %12758, label %12775

12758:                                            ; preds = %12753
  %12759 = load i32, ptr %227, align 4, !tbaa !5
  %12760 = call ptr @__errno_location() #12
  store i32 %12759, ptr %12760, align 4, !tbaa !5
  %12761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12762 = load i32, ptr @test_count, align 4, !tbaa !5
  %12763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12764 = load i32, ptr %12763, align 4, !tbaa !5
  %12765 = call ptr @s2n_strerror(i32 noundef %12764, ptr noundef @.str.4)
  %12766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12767 = load i32, ptr %12766, align 4, !tbaa !5
  %12768 = call ptr @s2n_strerror_debug(i32 noundef %12767, ptr noundef @.str.4)
  %12769 = call ptr @__errno_location() #12
  %12770 = load i32, ptr %12769, align 4, !tbaa !5
  %12771 = call ptr @strerror(i32 noundef %12770) #11
  %12772 = call ptr @__errno_location() #12
  %12773 = load i32, ptr %12772, align 4, !tbaa !5
  %12774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12761, ptr noundef @.str.2, i32 noundef %12762, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 499, ptr noundef %12765, ptr noundef %12768, ptr noundef %12771, i32 noundef %12773) #11
  br label %12792

12775:                                            ; preds = %12753, %12746
  %12776 = load i32, ptr %227, align 4, !tbaa !5
  %12777 = call ptr @__errno_location() #12
  store i32 %12776, ptr %12777, align 4, !tbaa !5
  %12778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12779 = load i32, ptr @test_count, align 4, !tbaa !5
  %12780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12781 = load i32, ptr %12780, align 4, !tbaa !5
  %12782 = call ptr @s2n_strerror(i32 noundef %12781, ptr noundef @.str.4)
  %12783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12784 = load i32, ptr %12783, align 4, !tbaa !5
  %12785 = call ptr @s2n_strerror_debug(i32 noundef %12784, ptr noundef @.str.4)
  %12786 = call ptr @__errno_location() #12
  %12787 = load i32, ptr %12786, align 4, !tbaa !5
  %12788 = call ptr @strerror(i32 noundef %12787) #11
  %12789 = call ptr @__errno_location() #12
  %12790 = load i32, ptr %12789, align 4, !tbaa !5
  %12791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12778, ptr noundef @.str.5, i32 noundef %12779, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 499, ptr noundef %12782, ptr noundef %12785, ptr noundef %12788, i32 noundef %12790) #11
  br label %12792

12792:                                            ; preds = %12775, %12758
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %12793

12793:                                            ; preds = %12792
  br label %12794

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

12795:                                            ; No predecessors!
  br label %12796

12796:                                            ; preds = %12795
  br label %12797

12797:                                            ; preds = %12796, %12735
  br label %12798

12798:                                            ; preds = %12797
  br label %12799

12799:                                            ; preds = %12798
  br label %12800

12800:                                            ; preds = %12799
  %12801 = load i32, ptr @test_count, align 4, !tbaa !5
  %12802 = add nsw i32 %12801, 1
  store i32 %12802, ptr @test_count, align 4, !tbaa !5
  %12803 = load ptr, ptr %6, align 8, !tbaa !9
  %12804 = getelementptr inbounds %struct.s2n_connection, ptr %12803, i32 0, i32 22
  %12805 = load i8, ptr %12804, align 1, !tbaa !47
  %12806 = zext i8 %12805 to i32
  %12807 = icmp eq i32 %12806, 34
  br i1 %12807, label %12861, label %12808

12808:                                            ; preds = %12800
  br label %12809

12809:                                            ; preds = %12808
  br label %12810

12810:                                            ; preds = %12809
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #11
  %12811 = call ptr @__errno_location() #12
  %12812 = load i32, ptr %12811, align 4, !tbaa !5
  store i32 %12812, ptr %228, align 4, !tbaa !5
  %12813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12814 = call i32 @s2n_print_stacktrace(ptr noundef %12813)
  %12815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12816 = trunc i8 %12815 to i1
  br i1 %12816, label %12817, label %12839

12817:                                            ; preds = %12810
  %12818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12819 = call i32 @fileno(ptr noundef %12818) #11
  %12820 = call i32 @isatty(i32 noundef %12819) #11
  %12821 = icmp ne i32 %12820, 0
  br i1 %12821, label %12822, label %12839

12822:                                            ; preds = %12817
  %12823 = load i32, ptr %228, align 4, !tbaa !5
  %12824 = call ptr @__errno_location() #12
  store i32 %12823, ptr %12824, align 4, !tbaa !5
  %12825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12826 = load i32, ptr @test_count, align 4, !tbaa !5
  %12827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12828 = load i32, ptr %12827, align 4, !tbaa !5
  %12829 = call ptr @s2n_strerror(i32 noundef %12828, ptr noundef @.str.4)
  %12830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12831 = load i32, ptr %12830, align 4, !tbaa !5
  %12832 = call ptr @s2n_strerror_debug(i32 noundef %12831, ptr noundef @.str.4)
  %12833 = call ptr @__errno_location() #12
  %12834 = load i32, ptr %12833, align 4, !tbaa !5
  %12835 = call ptr @strerror(i32 noundef %12834) #11
  %12836 = call ptr @__errno_location() #12
  %12837 = load i32, ptr %12836, align 4, !tbaa !5
  %12838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12825, ptr noundef @.str.2, i32 noundef %12826, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 501, ptr noundef %12829, ptr noundef %12832, ptr noundef %12835, i32 noundef %12837) #11
  br label %12856

12839:                                            ; preds = %12817, %12810
  %12840 = load i32, ptr %228, align 4, !tbaa !5
  %12841 = call ptr @__errno_location() #12
  store i32 %12840, ptr %12841, align 4, !tbaa !5
  %12842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12843 = load i32, ptr @test_count, align 4, !tbaa !5
  %12844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12845 = load i32, ptr %12844, align 4, !tbaa !5
  %12846 = call ptr @s2n_strerror(i32 noundef %12845, ptr noundef @.str.4)
  %12847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12848 = load i32, ptr %12847, align 4, !tbaa !5
  %12849 = call ptr @s2n_strerror_debug(i32 noundef %12848, ptr noundef @.str.4)
  %12850 = call ptr @__errno_location() #12
  %12851 = load i32, ptr %12850, align 4, !tbaa !5
  %12852 = call ptr @strerror(i32 noundef %12851) #11
  %12853 = call ptr @__errno_location() #12
  %12854 = load i32, ptr %12853, align 4, !tbaa !5
  %12855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12842, ptr noundef @.str.5, i32 noundef %12843, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 501, ptr noundef %12846, ptr noundef %12849, ptr noundef %12852, i32 noundef %12854) #11
  br label %12856

12856:                                            ; preds = %12839, %12822
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #11
  br label %12857

12857:                                            ; preds = %12856
  br label %12858

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

12859:                                            ; No predecessors!
  br label %12860

12860:                                            ; preds = %12859
  br label %12861

12861:                                            ; preds = %12860, %12800
  br label %12862

12862:                                            ; preds = %12861
  br label %12863

12863:                                            ; preds = %12862
  br label %12864

12864:                                            ; preds = %12863
  %12865 = load i32, ptr @test_count, align 4, !tbaa !5
  %12866 = add nsw i32 %12865, 1
  store i32 %12866, ptr @test_count, align 4, !tbaa !5
  %12867 = load ptr, ptr %6, align 8, !tbaa !9
  %12868 = getelementptr inbounds %struct.s2n_connection, ptr %12867, i32 0, i32 23
  %12869 = load i8, ptr %12868, align 4, !tbaa !46
  %12870 = zext i8 %12869 to i32
  %12871 = icmp eq i32 %12870, 33
  br i1 %12871, label %12925, label %12872

12872:                                            ; preds = %12864
  br label %12873

12873:                                            ; preds = %12872
  br label %12874

12874:                                            ; preds = %12873
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %12875 = call ptr @__errno_location() #12
  %12876 = load i32, ptr %12875, align 4, !tbaa !5
  store i32 %12876, ptr %229, align 4, !tbaa !5
  %12877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12878 = call i32 @s2n_print_stacktrace(ptr noundef %12877)
  %12879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12880 = trunc i8 %12879 to i1
  br i1 %12880, label %12881, label %12903

12881:                                            ; preds = %12874
  %12882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12883 = call i32 @fileno(ptr noundef %12882) #11
  %12884 = call i32 @isatty(i32 noundef %12883) #11
  %12885 = icmp ne i32 %12884, 0
  br i1 %12885, label %12886, label %12903

12886:                                            ; preds = %12881
  %12887 = load i32, ptr %229, align 4, !tbaa !5
  %12888 = call ptr @__errno_location() #12
  store i32 %12887, ptr %12888, align 4, !tbaa !5
  %12889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12890 = load i32, ptr @test_count, align 4, !tbaa !5
  %12891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12892 = load i32, ptr %12891, align 4, !tbaa !5
  %12893 = call ptr @s2n_strerror(i32 noundef %12892, ptr noundef @.str.4)
  %12894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12895 = load i32, ptr %12894, align 4, !tbaa !5
  %12896 = call ptr @s2n_strerror_debug(i32 noundef %12895, ptr noundef @.str.4)
  %12897 = call ptr @__errno_location() #12
  %12898 = load i32, ptr %12897, align 4, !tbaa !5
  %12899 = call ptr @strerror(i32 noundef %12898) #11
  %12900 = call ptr @__errno_location() #12
  %12901 = load i32, ptr %12900, align 4, !tbaa !5
  %12902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12889, ptr noundef @.str.2, i32 noundef %12890, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 502, ptr noundef %12893, ptr noundef %12896, ptr noundef %12899, i32 noundef %12901) #11
  br label %12920

12903:                                            ; preds = %12881, %12874
  %12904 = load i32, ptr %229, align 4, !tbaa !5
  %12905 = call ptr @__errno_location() #12
  store i32 %12904, ptr %12905, align 4, !tbaa !5
  %12906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12907 = load i32, ptr @test_count, align 4, !tbaa !5
  %12908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12909 = load i32, ptr %12908, align 4, !tbaa !5
  %12910 = call ptr @s2n_strerror(i32 noundef %12909, ptr noundef @.str.4)
  %12911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12912 = load i32, ptr %12911, align 4, !tbaa !5
  %12913 = call ptr @s2n_strerror_debug(i32 noundef %12912, ptr noundef @.str.4)
  %12914 = call ptr @__errno_location() #12
  %12915 = load i32, ptr %12914, align 4, !tbaa !5
  %12916 = call ptr @strerror(i32 noundef %12915) #11
  %12917 = call ptr @__errno_location() #12
  %12918 = load i32, ptr %12917, align 4, !tbaa !5
  %12919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12906, ptr noundef @.str.5, i32 noundef %12907, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 502, ptr noundef %12910, ptr noundef %12913, ptr noundef %12916, i32 noundef %12918) #11
  br label %12920

12920:                                            ; preds = %12903, %12886
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %12921

12921:                                            ; preds = %12920
  br label %12922

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

12923:                                            ; No predecessors!
  br label %12924

12924:                                            ; preds = %12923
  br label %12925

12925:                                            ; preds = %12924, %12864
  br label %12926

12926:                                            ; preds = %12925
  br label %12927

12927:                                            ; preds = %12926
  br label %12928

12928:                                            ; preds = %12927
  %12929 = load i32, ptr @test_count, align 4, !tbaa !5
  %12930 = add nsw i32 %12929, 1
  store i32 %12930, ptr @test_count, align 4, !tbaa !5
  %12931 = load ptr, ptr %6, align 8, !tbaa !9
  %12932 = getelementptr inbounds %struct.s2n_connection, ptr %12931, i32 0, i32 21
  %12933 = load i8, ptr %12932, align 2, !tbaa !42
  %12934 = zext i8 %12933 to i32
  %12935 = icmp eq i32 %12934, 33
  br i1 %12935, label %12989, label %12936

12936:                                            ; preds = %12928
  br label %12937

12937:                                            ; preds = %12936
  br label %12938

12938:                                            ; preds = %12937
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %12939 = call ptr @__errno_location() #12
  %12940 = load i32, ptr %12939, align 4, !tbaa !5
  store i32 %12940, ptr %230, align 4, !tbaa !5
  %12941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12942 = call i32 @s2n_print_stacktrace(ptr noundef %12941)
  %12943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12944 = trunc i8 %12943 to i1
  br i1 %12944, label %12945, label %12967

12945:                                            ; preds = %12938
  %12946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12947 = call i32 @fileno(ptr noundef %12946) #11
  %12948 = call i32 @isatty(i32 noundef %12947) #11
  %12949 = icmp ne i32 %12948, 0
  br i1 %12949, label %12950, label %12967

12950:                                            ; preds = %12945
  %12951 = load i32, ptr %230, align 4, !tbaa !5
  %12952 = call ptr @__errno_location() #12
  store i32 %12951, ptr %12952, align 4, !tbaa !5
  %12953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12954 = load i32, ptr @test_count, align 4, !tbaa !5
  %12955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12956 = load i32, ptr %12955, align 4, !tbaa !5
  %12957 = call ptr @s2n_strerror(i32 noundef %12956, ptr noundef @.str.4)
  %12958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12959 = load i32, ptr %12958, align 4, !tbaa !5
  %12960 = call ptr @s2n_strerror_debug(i32 noundef %12959, ptr noundef @.str.4)
  %12961 = call ptr @__errno_location() #12
  %12962 = load i32, ptr %12961, align 4, !tbaa !5
  %12963 = call ptr @strerror(i32 noundef %12962) #11
  %12964 = call ptr @__errno_location() #12
  %12965 = load i32, ptr %12964, align 4, !tbaa !5
  %12966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12953, ptr noundef @.str.2, i32 noundef %12954, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 503, ptr noundef %12957, ptr noundef %12960, ptr noundef %12963, i32 noundef %12965) #11
  br label %12984

12967:                                            ; preds = %12945, %12938
  %12968 = load i32, ptr %230, align 4, !tbaa !5
  %12969 = call ptr @__errno_location() #12
  store i32 %12968, ptr %12969, align 4, !tbaa !5
  %12970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12971 = load i32, ptr @test_count, align 4, !tbaa !5
  %12972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12973 = load i32, ptr %12972, align 4, !tbaa !5
  %12974 = call ptr @s2n_strerror(i32 noundef %12973, ptr noundef @.str.4)
  %12975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12976 = load i32, ptr %12975, align 4, !tbaa !5
  %12977 = call ptr @s2n_strerror_debug(i32 noundef %12976, ptr noundef @.str.4)
  %12978 = call ptr @__errno_location() #12
  %12979 = load i32, ptr %12978, align 4, !tbaa !5
  %12980 = call ptr @strerror(i32 noundef %12979) #11
  %12981 = call ptr @__errno_location() #12
  %12982 = load i32, ptr %12981, align 4, !tbaa !5
  %12983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12970, ptr noundef @.str.5, i32 noundef %12971, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 503, ptr noundef %12974, ptr noundef %12977, ptr noundef %12980, i32 noundef %12982) #11
  br label %12984

12984:                                            ; preds = %12967, %12950
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %12985

12985:                                            ; preds = %12984
  br label %12986

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

12987:                                            ; No predecessors!
  br label %12988

12988:                                            ; preds = %12987
  br label %12989

12989:                                            ; preds = %12988, %12928
  br label %12990

12990:                                            ; preds = %12989
  br label %12991

12991:                                            ; preds = %12990
  br label %12992

12992:                                            ; preds = %12991
  %12993 = load i32, ptr @test_count, align 4, !tbaa !5
  %12994 = add nsw i32 %12993, 1
  store i32 %12994, ptr @test_count, align 4, !tbaa !5
  %12995 = load ptr, ptr %6, align 8, !tbaa !9
  %12996 = getelementptr inbounds %struct.s2n_connection, ptr %12995, i32 0, i32 20
  %12997 = load i8, ptr %12996, align 1, !tbaa !15
  %12998 = zext i8 %12997 to i32
  %12999 = icmp eq i32 %12998, 33
  br i1 %12999, label %13053, label %13000

13000:                                            ; preds = %12992
  br label %13001

13001:                                            ; preds = %13000
  br label %13002

13002:                                            ; preds = %13001
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %13003 = call ptr @__errno_location() #12
  %13004 = load i32, ptr %13003, align 4, !tbaa !5
  store i32 %13004, ptr %231, align 4, !tbaa !5
  %13005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13006 = call i32 @s2n_print_stacktrace(ptr noundef %13005)
  %13007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13008 = trunc i8 %13007 to i1
  br i1 %13008, label %13009, label %13031

13009:                                            ; preds = %13002
  %13010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13011 = call i32 @fileno(ptr noundef %13010) #11
  %13012 = call i32 @isatty(i32 noundef %13011) #11
  %13013 = icmp ne i32 %13012, 0
  br i1 %13013, label %13014, label %13031

13014:                                            ; preds = %13009
  %13015 = load i32, ptr %231, align 4, !tbaa !5
  %13016 = call ptr @__errno_location() #12
  store i32 %13015, ptr %13016, align 4, !tbaa !5
  %13017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13018 = load i32, ptr @test_count, align 4, !tbaa !5
  %13019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13020 = load i32, ptr %13019, align 4, !tbaa !5
  %13021 = call ptr @s2n_strerror(i32 noundef %13020, ptr noundef @.str.4)
  %13022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13023 = load i32, ptr %13022, align 4, !tbaa !5
  %13024 = call ptr @s2n_strerror_debug(i32 noundef %13023, ptr noundef @.str.4)
  %13025 = call ptr @__errno_location() #12
  %13026 = load i32, ptr %13025, align 4, !tbaa !5
  %13027 = call ptr @strerror(i32 noundef %13026) #11
  %13028 = call ptr @__errno_location() #12
  %13029 = load i32, ptr %13028, align 4, !tbaa !5
  %13030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13017, ptr noundef @.str.2, i32 noundef %13018, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 504, ptr noundef %13021, ptr noundef %13024, ptr noundef %13027, i32 noundef %13029) #11
  br label %13048

13031:                                            ; preds = %13009, %13002
  %13032 = load i32, ptr %231, align 4, !tbaa !5
  %13033 = call ptr @__errno_location() #12
  store i32 %13032, ptr %13033, align 4, !tbaa !5
  %13034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13035 = load i32, ptr @test_count, align 4, !tbaa !5
  %13036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13037 = load i32, ptr %13036, align 4, !tbaa !5
  %13038 = call ptr @s2n_strerror(i32 noundef %13037, ptr noundef @.str.4)
  %13039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13040 = load i32, ptr %13039, align 4, !tbaa !5
  %13041 = call ptr @s2n_strerror_debug(i32 noundef %13040, ptr noundef @.str.4)
  %13042 = call ptr @__errno_location() #12
  %13043 = load i32, ptr %13042, align 4, !tbaa !5
  %13044 = call ptr @strerror(i32 noundef %13043) #11
  %13045 = call ptr @__errno_location() #12
  %13046 = load i32, ptr %13045, align 4, !tbaa !5
  %13047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13034, ptr noundef @.str.5, i32 noundef %13035, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 504, ptr noundef %13038, ptr noundef %13041, ptr noundef %13044, i32 noundef %13046) #11
  br label %13048

13048:                                            ; preds = %13031, %13014
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %13049

13049:                                            ; preds = %13048
  br label %13050

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

13051:                                            ; No predecessors!
  br label %13052

13052:                                            ; preds = %13051
  br label %13053

13053:                                            ; preds = %13052, %12992
  br label %13054

13054:                                            ; preds = %13053
  br label %13055

13055:                                            ; preds = %13054
  %13056 = load ptr, ptr %6, align 8, !tbaa !9
  %13057 = call i32 @s2n_connection_free(ptr noundef %13056)
  br label %13058

13058:                                            ; preds = %13055
  %13059 = load i32, ptr @test_count, align 4, !tbaa !5
  %13060 = add nsw i32 %13059, 1
  store i32 %13060, ptr @test_count, align 4, !tbaa !5
  %13061 = call i32 (...) @s2n_disable_tls13_in_test()
  %13062 = icmp eq i32 %13061, -1
  br i1 %13062, label %13063, label %13116

13063:                                            ; preds = %13058
  br label %13064

13064:                                            ; preds = %13063
  br label %13065

13065:                                            ; preds = %13064
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %13066 = call ptr @__errno_location() #12
  %13067 = load i32, ptr %13066, align 4, !tbaa !5
  store i32 %13067, ptr %232, align 4, !tbaa !5
  %13068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13069 = call i32 @s2n_print_stacktrace(ptr noundef %13068)
  %13070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13071 = trunc i8 %13070 to i1
  br i1 %13071, label %13072, label %13094

13072:                                            ; preds = %13065
  %13073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13074 = call i32 @fileno(ptr noundef %13073) #11
  %13075 = call i32 @isatty(i32 noundef %13074) #11
  %13076 = icmp ne i32 %13075, 0
  br i1 %13076, label %13077, label %13094

13077:                                            ; preds = %13072
  %13078 = load i32, ptr %232, align 4, !tbaa !5
  %13079 = call ptr @__errno_location() #12
  store i32 %13078, ptr %13079, align 4, !tbaa !5
  %13080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13081 = load i32, ptr @test_count, align 4, !tbaa !5
  %13082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13083 = load i32, ptr %13082, align 4, !tbaa !5
  %13084 = call ptr @s2n_strerror(i32 noundef %13083, ptr noundef @.str.4)
  %13085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13086 = load i32, ptr %13085, align 4, !tbaa !5
  %13087 = call ptr @s2n_strerror_debug(i32 noundef %13086, ptr noundef @.str.4)
  %13088 = call ptr @__errno_location() #12
  %13089 = load i32, ptr %13088, align 4, !tbaa !5
  %13090 = call ptr @strerror(i32 noundef %13089) #11
  %13091 = call ptr @__errno_location() #12
  %13092 = load i32, ptr %13091, align 4, !tbaa !5
  %13093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13080, ptr noundef @.str.2, i32 noundef %13081, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 507, ptr noundef %13084, ptr noundef %13087, ptr noundef %13090, i32 noundef %13092) #11
  br label %13111

13094:                                            ; preds = %13072, %13065
  %13095 = load i32, ptr %232, align 4, !tbaa !5
  %13096 = call ptr @__errno_location() #12
  store i32 %13095, ptr %13096, align 4, !tbaa !5
  %13097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13098 = load i32, ptr @test_count, align 4, !tbaa !5
  %13099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13100 = load i32, ptr %13099, align 4, !tbaa !5
  %13101 = call ptr @s2n_strerror(i32 noundef %13100, ptr noundef @.str.4)
  %13102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13103 = load i32, ptr %13102, align 4, !tbaa !5
  %13104 = call ptr @s2n_strerror_debug(i32 noundef %13103, ptr noundef @.str.4)
  %13105 = call ptr @__errno_location() #12
  %13106 = load i32, ptr %13105, align 4, !tbaa !5
  %13107 = call ptr @strerror(i32 noundef %13106) #11
  %13108 = call ptr @__errno_location() #12
  %13109 = load i32, ptr %13108, align 4, !tbaa !5
  %13110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13097, ptr noundef @.str.5, i32 noundef %13098, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 507, ptr noundef %13101, ptr noundef %13104, ptr noundef %13107, i32 noundef %13109) #11
  br label %13111

13111:                                            ; preds = %13094, %13077
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  br label %13112

13112:                                            ; preds = %13111
  br label %13113

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

13114:                                            ; No predecessors!
  br label %13115

13115:                                            ; preds = %13114
  br label %13116

13116:                                            ; preds = %13115, %13058
  br label %13117

13117:                                            ; preds = %13116
  br label %13118

13118:                                            ; preds = %13117
  store i32 0, ptr %221, align 4
  br label %13119

13119:                                            ; preds = %13118, %12420
  %13120 = call i32 @s2n_free(ptr noundef %219)
  call void @llvm.lifetime.end.p0(i64 24, ptr %219) #11
  %13121 = load i32, ptr %221, align 4
  switch i32 %13121, label %14072 [
    i32 0, label %13122
  ]

13122:                                            ; preds = %13119
  call void @llvm.lifetime.start.p0(i64 8, ptr %233) #11
  %13123 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %13123, ptr %233, align 8, !tbaa !9
  br label %13124

13124:                                            ; preds = %13122
  %13125 = load i32, ptr @test_count, align 4, !tbaa !5
  %13126 = add nsw i32 %13125, 1
  store i32 %13126, ptr @test_count, align 4, !tbaa !5
  %13127 = load ptr, ptr %233, align 8, !tbaa !9
  %13128 = load ptr, ptr %9, align 8, !tbaa !9
  %13129 = call i32 @s2n_connection_set_config(ptr noundef %13127, ptr noundef %13128)
  %13130 = icmp eq i32 %13129, -1
  br i1 %13130, label %13131, label %13184

13131:                                            ; preds = %13124
  br label %13132

13132:                                            ; preds = %13131
  br label %13133

13133:                                            ; preds = %13132
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  %13134 = call ptr @__errno_location() #12
  %13135 = load i32, ptr %13134, align 4, !tbaa !5
  store i32 %13135, ptr %234, align 4, !tbaa !5
  %13136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13137 = call i32 @s2n_print_stacktrace(ptr noundef %13136)
  %13138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13139 = trunc i8 %13138 to i1
  br i1 %13139, label %13140, label %13162

13140:                                            ; preds = %13133
  %13141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13142 = call i32 @fileno(ptr noundef %13141) #11
  %13143 = call i32 @isatty(i32 noundef %13142) #11
  %13144 = icmp ne i32 %13143, 0
  br i1 %13144, label %13145, label %13162

13145:                                            ; preds = %13140
  %13146 = load i32, ptr %234, align 4, !tbaa !5
  %13147 = call ptr @__errno_location() #12
  store i32 %13146, ptr %13147, align 4, !tbaa !5
  %13148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13149 = load i32, ptr @test_count, align 4, !tbaa !5
  %13150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13151 = load i32, ptr %13150, align 4, !tbaa !5
  %13152 = call ptr @s2n_strerror(i32 noundef %13151, ptr noundef @.str.4)
  %13153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13154 = load i32, ptr %13153, align 4, !tbaa !5
  %13155 = call ptr @s2n_strerror_debug(i32 noundef %13154, ptr noundef @.str.4)
  %13156 = call ptr @__errno_location() #12
  %13157 = load i32, ptr %13156, align 4, !tbaa !5
  %13158 = call ptr @strerror(i32 noundef %13157) #11
  %13159 = call ptr @__errno_location() #12
  %13160 = load i32, ptr %13159, align 4, !tbaa !5
  %13161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13148, ptr noundef @.str.2, i32 noundef %13149, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 519, ptr noundef %13152, ptr noundef %13155, ptr noundef %13158, i32 noundef %13160) #11
  br label %13179

13162:                                            ; preds = %13140, %13133
  %13163 = load i32, ptr %234, align 4, !tbaa !5
  %13164 = call ptr @__errno_location() #12
  store i32 %13163, ptr %13164, align 4, !tbaa !5
  %13165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13166 = load i32, ptr @test_count, align 4, !tbaa !5
  %13167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13168 = load i32, ptr %13167, align 4, !tbaa !5
  %13169 = call ptr @s2n_strerror(i32 noundef %13168, ptr noundef @.str.4)
  %13170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13171 = load i32, ptr %13170, align 4, !tbaa !5
  %13172 = call ptr @s2n_strerror_debug(i32 noundef %13171, ptr noundef @.str.4)
  %13173 = call ptr @__errno_location() #12
  %13174 = load i32, ptr %13173, align 4, !tbaa !5
  %13175 = call ptr @strerror(i32 noundef %13174) #11
  %13176 = call ptr @__errno_location() #12
  %13177 = load i32, ptr %13176, align 4, !tbaa !5
  %13178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13165, ptr noundef @.str.5, i32 noundef %13166, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 519, ptr noundef %13169, ptr noundef %13172, ptr noundef %13175, i32 noundef %13177) #11
  br label %13179

13179:                                            ; preds = %13162, %13145
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  br label %13180

13180:                                            ; preds = %13179
  br label %13181

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

13182:                                            ; No predecessors!
  br label %13183

13183:                                            ; preds = %13182
  br label %13184

13184:                                            ; preds = %13183, %13124
  br label %13185

13185:                                            ; preds = %13184
  br label %13186

13186:                                            ; preds = %13185
  call void @llvm.lifetime.start.p0(i64 40, ptr %235) #11
  call void @llvm.memset.p0.i64(ptr align 8 %235, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 181, ptr %236) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %236, ptr align 16 @__const.main.sslv2_client_hello_bytes, i64 181, i1 false)
  br label %13187

13187:                                            ; preds = %13186
  %13188 = load i32, ptr @test_count, align 4, !tbaa !5
  %13189 = add nsw i32 %13188, 1
  store i32 %13189, ptr @test_count, align 4, !tbaa !5
  %13190 = getelementptr inbounds %struct.s2n_stuffer, ptr %235, i32 0, i32 0
  %13191 = getelementptr inbounds [181 x i8], ptr %236, i64 0, i64 0
  %13192 = call i32 @s2n_blob_init(ptr noundef %13190, ptr noundef %13191, i32 noundef 181)
  %13193 = icmp eq i32 %13192, -1
  br i1 %13193, label %13194, label %13247

13194:                                            ; preds = %13187
  br label %13195

13195:                                            ; preds = %13194
  br label %13196

13196:                                            ; preds = %13195
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %13197 = call ptr @__errno_location() #12
  %13198 = load i32, ptr %13197, align 4, !tbaa !5
  store i32 %13198, ptr %237, align 4, !tbaa !5
  %13199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13200 = call i32 @s2n_print_stacktrace(ptr noundef %13199)
  %13201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13202 = trunc i8 %13201 to i1
  br i1 %13202, label %13203, label %13225

13203:                                            ; preds = %13196
  %13204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13205 = call i32 @fileno(ptr noundef %13204) #11
  %13206 = call i32 @isatty(i32 noundef %13205) #11
  %13207 = icmp ne i32 %13206, 0
  br i1 %13207, label %13208, label %13225

13208:                                            ; preds = %13203
  %13209 = load i32, ptr %237, align 4, !tbaa !5
  %13210 = call ptr @__errno_location() #12
  store i32 %13209, ptr %13210, align 4, !tbaa !5
  %13211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13212 = load i32, ptr @test_count, align 4, !tbaa !5
  %13213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13214 = load i32, ptr %13213, align 4, !tbaa !5
  %13215 = call ptr @s2n_strerror(i32 noundef %13214, ptr noundef @.str.4)
  %13216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13217 = load i32, ptr %13216, align 4, !tbaa !5
  %13218 = call ptr @s2n_strerror_debug(i32 noundef %13217, ptr noundef @.str.4)
  %13219 = call ptr @__errno_location() #12
  %13220 = load i32, ptr %13219, align 4, !tbaa !5
  %13221 = call ptr @strerror(i32 noundef %13220) #11
  %13222 = call ptr @__errno_location() #12
  %13223 = load i32, ptr %13222, align 4, !tbaa !5
  %13224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13211, ptr noundef @.str.2, i32 noundef %13212, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 529, ptr noundef %13215, ptr noundef %13218, ptr noundef %13221, i32 noundef %13223) #11
  br label %13242

13225:                                            ; preds = %13203, %13196
  %13226 = load i32, ptr %237, align 4, !tbaa !5
  %13227 = call ptr @__errno_location() #12
  store i32 %13226, ptr %13227, align 4, !tbaa !5
  %13228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13229 = load i32, ptr @test_count, align 4, !tbaa !5
  %13230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13231 = load i32, ptr %13230, align 4, !tbaa !5
  %13232 = call ptr @s2n_strerror(i32 noundef %13231, ptr noundef @.str.4)
  %13233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13234 = load i32, ptr %13233, align 4, !tbaa !5
  %13235 = call ptr @s2n_strerror_debug(i32 noundef %13234, ptr noundef @.str.4)
  %13236 = call ptr @__errno_location() #12
  %13237 = load i32, ptr %13236, align 4, !tbaa !5
  %13238 = call ptr @strerror(i32 noundef %13237) #11
  %13239 = call ptr @__errno_location() #12
  %13240 = load i32, ptr %13239, align 4, !tbaa !5
  %13241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13228, ptr noundef @.str.5, i32 noundef %13229, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 529, ptr noundef %13232, ptr noundef %13235, ptr noundef %13238, i32 noundef %13240) #11
  br label %13242

13242:                                            ; preds = %13225, %13208
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %13243

13243:                                            ; preds = %13242
  br label %13244

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

13245:                                            ; No predecessors!
  br label %13246

13246:                                            ; preds = %13245
  br label %13247

13247:                                            ; preds = %13246, %13187
  br label %13248

13248:                                            ; preds = %13247
  br label %13249

13249:                                            ; preds = %13248
  br label %13250

13250:                                            ; preds = %13249
  %13251 = load i32, ptr @test_count, align 4, !tbaa !5
  %13252 = add nsw i32 %13251, 1
  store i32 %13252, ptr @test_count, align 4, !tbaa !5
  %13253 = load ptr, ptr %233, align 8, !tbaa !9
  %13254 = call i32 @s2n_connection_set_recv_io_stuffer(ptr noundef %235, ptr noundef %13253)
  %13255 = icmp eq i32 %13254, -1
  br i1 %13255, label %13256, label %13309

13256:                                            ; preds = %13250
  br label %13257

13257:                                            ; preds = %13256
  br label %13258

13258:                                            ; preds = %13257
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %13259 = call ptr @__errno_location() #12
  %13260 = load i32, ptr %13259, align 4, !tbaa !5
  store i32 %13260, ptr %238, align 4, !tbaa !5
  %13261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13262 = call i32 @s2n_print_stacktrace(ptr noundef %13261)
  %13263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13264 = trunc i8 %13263 to i1
  br i1 %13264, label %13265, label %13287

13265:                                            ; preds = %13258
  %13266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13267 = call i32 @fileno(ptr noundef %13266) #11
  %13268 = call i32 @isatty(i32 noundef %13267) #11
  %13269 = icmp ne i32 %13268, 0
  br i1 %13269, label %13270, label %13287

13270:                                            ; preds = %13265
  %13271 = load i32, ptr %238, align 4, !tbaa !5
  %13272 = call ptr @__errno_location() #12
  store i32 %13271, ptr %13272, align 4, !tbaa !5
  %13273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13274 = load i32, ptr @test_count, align 4, !tbaa !5
  %13275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13276 = load i32, ptr %13275, align 4, !tbaa !5
  %13277 = call ptr @s2n_strerror(i32 noundef %13276, ptr noundef @.str.4)
  %13278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13279 = load i32, ptr %13278, align 4, !tbaa !5
  %13280 = call ptr @s2n_strerror_debug(i32 noundef %13279, ptr noundef @.str.4)
  %13281 = call ptr @__errno_location() #12
  %13282 = load i32, ptr %13281, align 4, !tbaa !5
  %13283 = call ptr @strerror(i32 noundef %13282) #11
  %13284 = call ptr @__errno_location() #12
  %13285 = load i32, ptr %13284, align 4, !tbaa !5
  %13286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13273, ptr noundef @.str.2, i32 noundef %13274, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 530, ptr noundef %13277, ptr noundef %13280, ptr noundef %13283, i32 noundef %13285) #11
  br label %13304

13287:                                            ; preds = %13265, %13258
  %13288 = load i32, ptr %238, align 4, !tbaa !5
  %13289 = call ptr @__errno_location() #12
  store i32 %13288, ptr %13289, align 4, !tbaa !5
  %13290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13291 = load i32, ptr @test_count, align 4, !tbaa !5
  %13292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13293 = load i32, ptr %13292, align 4, !tbaa !5
  %13294 = call ptr @s2n_strerror(i32 noundef %13293, ptr noundef @.str.4)
  %13295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13296 = load i32, ptr %13295, align 4, !tbaa !5
  %13297 = call ptr @s2n_strerror_debug(i32 noundef %13296, ptr noundef @.str.4)
  %13298 = call ptr @__errno_location() #12
  %13299 = load i32, ptr %13298, align 4, !tbaa !5
  %13300 = call ptr @strerror(i32 noundef %13299) #11
  %13301 = call ptr @__errno_location() #12
  %13302 = load i32, ptr %13301, align 4, !tbaa !5
  %13303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13290, ptr noundef @.str.5, i32 noundef %13291, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 530, ptr noundef %13294, ptr noundef %13297, ptr noundef %13300, i32 noundef %13302) #11
  br label %13304

13304:                                            ; preds = %13287, %13270
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %13305

13305:                                            ; preds = %13304
  br label %13306

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

13307:                                            ; No predecessors!
  br label %13308

13308:                                            ; preds = %13307
  br label %13309

13309:                                            ; preds = %13308, %13250
  br label %13310

13310:                                            ; preds = %13309
  br label %13311

13311:                                            ; preds = %13310
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #11
  store i32 0, ptr %239, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #11
  store i64 0, ptr %240, align 8, !tbaa !51
  br label %13312

13312:                                            ; preds = %13640, %13311
  %13313 = load i64, ptr %240, align 8, !tbaa !51
  %13314 = icmp ult i64 %13313, 181
  br i1 %13314, label %13316, label %13315

13315:                                            ; preds = %13312
  store i32 1253, ptr %221, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #11
  br label %13643

13316:                                            ; preds = %13312
  br label %13317

13317:                                            ; preds = %13316
  br label %13318

13318:                                            ; preds = %13317
  br label %13319

13319:                                            ; preds = %13318
  %13320 = load i32, ptr @test_count, align 4, !tbaa !5
  %13321 = add nsw i32 %13320, 1
  store i32 %13321, ptr @test_count, align 4, !tbaa !5
  %13322 = load ptr, ptr %233, align 8, !tbaa !9
  %13323 = call i32 @s2n_negotiate_until_message(ptr noundef %13322, ptr noundef %239, i32 noundef 1)
  %13324 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  store i32 %13323, ptr %13324, align 4
  %13325 = getelementptr inbounds %struct.s2n_result, ptr %241, i32 0, i32 0
  %13326 = load i32, ptr %13325, align 4
  %13327 = call zeroext i1 @s2n_result_is_error(i32 %13326)
  br i1 %13327, label %13381, label %13328

13328:                                            ; preds = %13319
  br label %13329

13329:                                            ; preds = %13328
  br label %13330

13330:                                            ; preds = %13329
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %13331 = call ptr @__errno_location() #12
  %13332 = load i32, ptr %13331, align 4, !tbaa !5
  store i32 %13332, ptr %242, align 4, !tbaa !5
  %13333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13334 = call i32 @s2n_print_stacktrace(ptr noundef %13333)
  %13335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13336 = trunc i8 %13335 to i1
  br i1 %13336, label %13337, label %13359

13337:                                            ; preds = %13330
  %13338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13339 = call i32 @fileno(ptr noundef %13338) #11
  %13340 = call i32 @isatty(i32 noundef %13339) #11
  %13341 = icmp ne i32 %13340, 0
  br i1 %13341, label %13342, label %13359

13342:                                            ; preds = %13337
  %13343 = load i32, ptr %242, align 4, !tbaa !5
  %13344 = call ptr @__errno_location() #12
  store i32 %13343, ptr %13344, align 4, !tbaa !5
  %13345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13346 = load i32, ptr @test_count, align 4, !tbaa !5
  %13347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13348 = load i32, ptr %13347, align 4, !tbaa !5
  %13349 = call ptr @s2n_strerror(i32 noundef %13348, ptr noundef @.str.4)
  %13350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13351 = load i32, ptr %13350, align 4, !tbaa !5
  %13352 = call ptr @s2n_strerror_debug(i32 noundef %13351, ptr noundef @.str.4)
  %13353 = call ptr @__errno_location() #12
  %13354 = load i32, ptr %13353, align 4, !tbaa !5
  %13355 = call ptr @strerror(i32 noundef %13354) #11
  %13356 = call ptr @__errno_location() #12
  %13357 = load i32, ptr %13356, align 4, !tbaa !5
  %13358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13345, ptr noundef @.str.2, i32 noundef %13346, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13349, ptr noundef %13352, ptr noundef %13355, i32 noundef %13357) #11
  br label %13376

13359:                                            ; preds = %13337, %13330
  %13360 = load i32, ptr %242, align 4, !tbaa !5
  %13361 = call ptr @__errno_location() #12
  store i32 %13360, ptr %13361, align 4, !tbaa !5
  %13362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13363 = load i32, ptr @test_count, align 4, !tbaa !5
  %13364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13365 = load i32, ptr %13364, align 4, !tbaa !5
  %13366 = call ptr @s2n_strerror(i32 noundef %13365, ptr noundef @.str.4)
  %13367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13368 = load i32, ptr %13367, align 4, !tbaa !5
  %13369 = call ptr @s2n_strerror_debug(i32 noundef %13368, ptr noundef @.str.4)
  %13370 = call ptr @__errno_location() #12
  %13371 = load i32, ptr %13370, align 4, !tbaa !5
  %13372 = call ptr @strerror(i32 noundef %13371) #11
  %13373 = call ptr @__errno_location() #12
  %13374 = load i32, ptr %13373, align 4, !tbaa !5
  %13375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13362, ptr noundef @.str.5, i32 noundef %13363, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13366, ptr noundef %13369, ptr noundef %13372, i32 noundef %13374) #11
  br label %13376

13376:                                            ; preds = %13359, %13342
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %13377

13377:                                            ; preds = %13376
  br label %13378

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

13379:                                            ; No predecessors!
  br label %13380

13380:                                            ; preds = %13379
  br label %13381

13381:                                            ; preds = %13380, %13319
  br label %13382

13382:                                            ; preds = %13381
  br label %13383

13383:                                            ; preds = %13382
  br label %13384

13384:                                            ; preds = %13383
  %13385 = load i32, ptr @test_count, align 4, !tbaa !5
  %13386 = add nsw i32 %13385, 1
  store i32 %13386, ptr @test_count, align 4, !tbaa !5
  %13387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13388 = load i32, ptr %13387, align 4, !tbaa !5
  %13389 = icmp eq i32 %13388, 201326592
  br i1 %13389, label %13443, label %13390

13390:                                            ; preds = %13384
  br label %13391

13391:                                            ; preds = %13390
  br label %13392

13392:                                            ; preds = %13391
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %13393 = call ptr @__errno_location() #12
  %13394 = load i32, ptr %13393, align 4, !tbaa !5
  store i32 %13394, ptr %243, align 4, !tbaa !5
  %13395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13396 = call i32 @s2n_print_stacktrace(ptr noundef %13395)
  %13397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13398 = trunc i8 %13397 to i1
  br i1 %13398, label %13399, label %13421

13399:                                            ; preds = %13392
  %13400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13401 = call i32 @fileno(ptr noundef %13400) #11
  %13402 = call i32 @isatty(i32 noundef %13401) #11
  %13403 = icmp ne i32 %13402, 0
  br i1 %13403, label %13404, label %13421

13404:                                            ; preds = %13399
  %13405 = load i32, ptr %243, align 4, !tbaa !5
  %13406 = call ptr @__errno_location() #12
  store i32 %13405, ptr %13406, align 4, !tbaa !5
  %13407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13408 = load i32, ptr @test_count, align 4, !tbaa !5
  %13409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13410 = load i32, ptr %13409, align 4, !tbaa !5
  %13411 = call ptr @s2n_strerror(i32 noundef %13410, ptr noundef @.str.4)
  %13412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13413 = load i32, ptr %13412, align 4, !tbaa !5
  %13414 = call ptr @s2n_strerror_debug(i32 noundef %13413, ptr noundef @.str.4)
  %13415 = call ptr @__errno_location() #12
  %13416 = load i32, ptr %13415, align 4, !tbaa !5
  %13417 = call ptr @strerror(i32 noundef %13416) #11
  %13418 = call ptr @__errno_location() #12
  %13419 = load i32, ptr %13418, align 4, !tbaa !5
  %13420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13407, ptr noundef @.str.2, i32 noundef %13408, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13411, ptr noundef %13414, ptr noundef %13417, i32 noundef %13419) #11
  br label %13438

13421:                                            ; preds = %13399, %13392
  %13422 = load i32, ptr %243, align 4, !tbaa !5
  %13423 = call ptr @__errno_location() #12
  store i32 %13422, ptr %13423, align 4, !tbaa !5
  %13424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13425 = load i32, ptr @test_count, align 4, !tbaa !5
  %13426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13427 = load i32, ptr %13426, align 4, !tbaa !5
  %13428 = call ptr @s2n_strerror(i32 noundef %13427, ptr noundef @.str.4)
  %13429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13430 = load i32, ptr %13429, align 4, !tbaa !5
  %13431 = call ptr @s2n_strerror_debug(i32 noundef %13430, ptr noundef @.str.4)
  %13432 = call ptr @__errno_location() #12
  %13433 = load i32, ptr %13432, align 4, !tbaa !5
  %13434 = call ptr @strerror(i32 noundef %13433) #11
  %13435 = call ptr @__errno_location() #12
  %13436 = load i32, ptr %13435, align 4, !tbaa !5
  %13437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13424, ptr noundef @.str.5, i32 noundef %13425, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13428, ptr noundef %13431, ptr noundef %13434, i32 noundef %13436) #11
  br label %13438

13438:                                            ; preds = %13421, %13404
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %13439

13439:                                            ; preds = %13438
  br label %13440

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

13441:                                            ; No predecessors!
  br label %13442

13442:                                            ; preds = %13441
  br label %13443

13443:                                            ; preds = %13442, %13384
  br label %13444

13444:                                            ; preds = %13443
  br label %13445

13445:                                            ; preds = %13444
  br label %13446

13446:                                            ; preds = %13445
  %13447 = load i32, ptr @test_count, align 4, !tbaa !5
  %13448 = add nsw i32 %13447, 1
  store i32 %13448, ptr @test_count, align 4, !tbaa !5
  %13449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13450 = load i32, ptr %13449, align 4, !tbaa !5
  %13451 = call ptr @s2n_strerror_debug(i32 noundef %13450, ptr noundef @.str.4)
  %13452 = icmp eq ptr %13451, null
  br i1 %13452, label %13453, label %13506

13453:                                            ; preds = %13446
  br label %13454

13454:                                            ; preds = %13453
  br label %13455

13455:                                            ; preds = %13454
  call void @llvm.lifetime.start.p0(i64 4, ptr %244) #11
  %13456 = call ptr @__errno_location() #12
  %13457 = load i32, ptr %13456, align 4, !tbaa !5
  store i32 %13457, ptr %244, align 4, !tbaa !5
  %13458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13459 = call i32 @s2n_print_stacktrace(ptr noundef %13458)
  %13460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13461 = trunc i8 %13460 to i1
  br i1 %13461, label %13462, label %13484

13462:                                            ; preds = %13455
  %13463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13464 = call i32 @fileno(ptr noundef %13463) #11
  %13465 = call i32 @isatty(i32 noundef %13464) #11
  %13466 = icmp ne i32 %13465, 0
  br i1 %13466, label %13467, label %13484

13467:                                            ; preds = %13462
  %13468 = load i32, ptr %244, align 4, !tbaa !5
  %13469 = call ptr @__errno_location() #12
  store i32 %13468, ptr %13469, align 4, !tbaa !5
  %13470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13471 = load i32, ptr @test_count, align 4, !tbaa !5
  %13472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13473 = load i32, ptr %13472, align 4, !tbaa !5
  %13474 = call ptr @s2n_strerror(i32 noundef %13473, ptr noundef @.str.4)
  %13475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13476 = load i32, ptr %13475, align 4, !tbaa !5
  %13477 = call ptr @s2n_strerror_debug(i32 noundef %13476, ptr noundef @.str.4)
  %13478 = call ptr @__errno_location() #12
  %13479 = load i32, ptr %13478, align 4, !tbaa !5
  %13480 = call ptr @strerror(i32 noundef %13479) #11
  %13481 = call ptr @__errno_location() #12
  %13482 = load i32, ptr %13481, align 4, !tbaa !5
  %13483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13470, ptr noundef @.str.2, i32 noundef %13471, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13474, ptr noundef %13477, ptr noundef %13480, i32 noundef %13482) #11
  br label %13501

13484:                                            ; preds = %13462, %13455
  %13485 = load i32, ptr %244, align 4, !tbaa !5
  %13486 = call ptr @__errno_location() #12
  store i32 %13485, ptr %13486, align 4, !tbaa !5
  %13487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13488 = load i32, ptr @test_count, align 4, !tbaa !5
  %13489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13490 = load i32, ptr %13489, align 4, !tbaa !5
  %13491 = call ptr @s2n_strerror(i32 noundef %13490, ptr noundef @.str.4)
  %13492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13493 = load i32, ptr %13492, align 4, !tbaa !5
  %13494 = call ptr @s2n_strerror_debug(i32 noundef %13493, ptr noundef @.str.4)
  %13495 = call ptr @__errno_location() #12
  %13496 = load i32, ptr %13495, align 4, !tbaa !5
  %13497 = call ptr @strerror(i32 noundef %13496) #11
  %13498 = call ptr @__errno_location() #12
  %13499 = load i32, ptr %13498, align 4, !tbaa !5
  %13500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13487, ptr noundef @.str.5, i32 noundef %13488, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 537, ptr noundef %13491, ptr noundef %13494, ptr noundef %13497, i32 noundef %13499) #11
  br label %13501

13501:                                            ; preds = %13484, %13467
  call void @llvm.lifetime.end.p0(i64 4, ptr %244) #11
  br label %13502

13502:                                            ; preds = %13501
  br label %13503

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

13504:                                            ; No predecessors!
  br label %13505

13505:                                            ; preds = %13504
  br label %13506

13506:                                            ; preds = %13505, %13446
  br label %13507

13507:                                            ; preds = %13506
  br label %13508

13508:                                            ; preds = %13507
  br label %13509

13509:                                            ; preds = %13508
  br label %13510

13510:                                            ; preds = %13509
  br label %13511

13511:                                            ; preds = %13510
  %13512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13512, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13513 = call ptr @__errno_location() #12
  store i32 0, ptr %13513, align 4, !tbaa !5
  br label %13514

13514:                                            ; preds = %13511
  br label %13515

13515:                                            ; preds = %13514
  br label %13516

13516:                                            ; preds = %13515
  br label %13517

13517:                                            ; preds = %13516
  br label %13518

13518:                                            ; preds = %13517
  %13519 = load i32, ptr @test_count, align 4, !tbaa !5
  %13520 = add nsw i32 %13519, 1
  store i32 %13520, ptr @test_count, align 4, !tbaa !5
  %13521 = load i32, ptr %239, align 4, !tbaa !5
  %13522 = icmp eq i32 %13521, 1
  br i1 %13522, label %13576, label %13523

13523:                                            ; preds = %13518
  br label %13524

13524:                                            ; preds = %13523
  br label %13525

13525:                                            ; preds = %13524
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %13526 = call ptr @__errno_location() #12
  %13527 = load i32, ptr %13526, align 4, !tbaa !5
  store i32 %13527, ptr %245, align 4, !tbaa !5
  %13528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13529 = call i32 @s2n_print_stacktrace(ptr noundef %13528)
  %13530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13531 = trunc i8 %13530 to i1
  br i1 %13531, label %13532, label %13554

13532:                                            ; preds = %13525
  %13533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13534 = call i32 @fileno(ptr noundef %13533) #11
  %13535 = call i32 @isatty(i32 noundef %13534) #11
  %13536 = icmp ne i32 %13535, 0
  br i1 %13536, label %13537, label %13554

13537:                                            ; preds = %13532
  %13538 = load i32, ptr %245, align 4, !tbaa !5
  %13539 = call ptr @__errno_location() #12
  store i32 %13538, ptr %13539, align 4, !tbaa !5
  %13540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13541 = load i32, ptr @test_count, align 4, !tbaa !5
  %13542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13543 = load i32, ptr %13542, align 4, !tbaa !5
  %13544 = call ptr @s2n_strerror(i32 noundef %13543, ptr noundef @.str.4)
  %13545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13546 = load i32, ptr %13545, align 4, !tbaa !5
  %13547 = call ptr @s2n_strerror_debug(i32 noundef %13546, ptr noundef @.str.4)
  %13548 = call ptr @__errno_location() #12
  %13549 = load i32, ptr %13548, align 4, !tbaa !5
  %13550 = call ptr @strerror(i32 noundef %13549) #11
  %13551 = call ptr @__errno_location() #12
  %13552 = load i32, ptr %13551, align 4, !tbaa !5
  %13553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13540, ptr noundef @.str.2, i32 noundef %13541, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 538, ptr noundef %13544, ptr noundef %13547, ptr noundef %13550, i32 noundef %13552) #11
  br label %13571

13554:                                            ; preds = %13532, %13525
  %13555 = load i32, ptr %245, align 4, !tbaa !5
  %13556 = call ptr @__errno_location() #12
  store i32 %13555, ptr %13556, align 4, !tbaa !5
  %13557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13558 = load i32, ptr @test_count, align 4, !tbaa !5
  %13559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13560 = load i32, ptr %13559, align 4, !tbaa !5
  %13561 = call ptr @s2n_strerror(i32 noundef %13560, ptr noundef @.str.4)
  %13562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13563 = load i32, ptr %13562, align 4, !tbaa !5
  %13564 = call ptr @s2n_strerror_debug(i32 noundef %13563, ptr noundef @.str.4)
  %13565 = call ptr @__errno_location() #12
  %13566 = load i32, ptr %13565, align 4, !tbaa !5
  %13567 = call ptr @strerror(i32 noundef %13566) #11
  %13568 = call ptr @__errno_location() #12
  %13569 = load i32, ptr %13568, align 4, !tbaa !5
  %13570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13557, ptr noundef @.str.5, i32 noundef %13558, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 538, ptr noundef %13561, ptr noundef %13564, ptr noundef %13567, i32 noundef %13569) #11
  br label %13571

13571:                                            ; preds = %13554, %13537
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %13572

13572:                                            ; preds = %13571
  br label %13573

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

13574:                                            ; No predecessors!
  br label %13575

13575:                                            ; preds = %13574
  br label %13576

13576:                                            ; preds = %13575, %13518
  br label %13577

13577:                                            ; preds = %13576
  br label %13578

13578:                                            ; preds = %13577
  br label %13579

13579:                                            ; preds = %13578
  %13580 = load i32, ptr @test_count, align 4, !tbaa !5
  %13581 = add nsw i32 %13580, 1
  store i32 %13581, ptr @test_count, align 4, !tbaa !5
  %13582 = call i32 @s2n_stuffer_skip_write(ptr noundef %235, i32 noundef 1)
  %13583 = icmp eq i32 %13582, -1
  br i1 %13583, label %13584, label %13637

13584:                                            ; preds = %13579
  br label %13585

13585:                                            ; preds = %13584
  br label %13586

13586:                                            ; preds = %13585
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %13587 = call ptr @__errno_location() #12
  %13588 = load i32, ptr %13587, align 4, !tbaa !5
  store i32 %13588, ptr %246, align 4, !tbaa !5
  %13589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13590 = call i32 @s2n_print_stacktrace(ptr noundef %13589)
  %13591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13592 = trunc i8 %13591 to i1
  br i1 %13592, label %13593, label %13615

13593:                                            ; preds = %13586
  %13594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13595 = call i32 @fileno(ptr noundef %13594) #11
  %13596 = call i32 @isatty(i32 noundef %13595) #11
  %13597 = icmp ne i32 %13596, 0
  br i1 %13597, label %13598, label %13615

13598:                                            ; preds = %13593
  %13599 = load i32, ptr %246, align 4, !tbaa !5
  %13600 = call ptr @__errno_location() #12
  store i32 %13599, ptr %13600, align 4, !tbaa !5
  %13601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13602 = load i32, ptr @test_count, align 4, !tbaa !5
  %13603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13604 = load i32, ptr %13603, align 4, !tbaa !5
  %13605 = call ptr @s2n_strerror(i32 noundef %13604, ptr noundef @.str.4)
  %13606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13607 = load i32, ptr %13606, align 4, !tbaa !5
  %13608 = call ptr @s2n_strerror_debug(i32 noundef %13607, ptr noundef @.str.4)
  %13609 = call ptr @__errno_location() #12
  %13610 = load i32, ptr %13609, align 4, !tbaa !5
  %13611 = call ptr @strerror(i32 noundef %13610) #11
  %13612 = call ptr @__errno_location() #12
  %13613 = load i32, ptr %13612, align 4, !tbaa !5
  %13614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13601, ptr noundef @.str.2, i32 noundef %13602, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 539, ptr noundef %13605, ptr noundef %13608, ptr noundef %13611, i32 noundef %13613) #11
  br label %13632

13615:                                            ; preds = %13593, %13586
  %13616 = load i32, ptr %246, align 4, !tbaa !5
  %13617 = call ptr @__errno_location() #12
  store i32 %13616, ptr %13617, align 4, !tbaa !5
  %13618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13619 = load i32, ptr @test_count, align 4, !tbaa !5
  %13620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13621 = load i32, ptr %13620, align 4, !tbaa !5
  %13622 = call ptr @s2n_strerror(i32 noundef %13621, ptr noundef @.str.4)
  %13623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13624 = load i32, ptr %13623, align 4, !tbaa !5
  %13625 = call ptr @s2n_strerror_debug(i32 noundef %13624, ptr noundef @.str.4)
  %13626 = call ptr @__errno_location() #12
  %13627 = load i32, ptr %13626, align 4, !tbaa !5
  %13628 = call ptr @strerror(i32 noundef %13627) #11
  %13629 = call ptr @__errno_location() #12
  %13630 = load i32, ptr %13629, align 4, !tbaa !5
  %13631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13618, ptr noundef @.str.5, i32 noundef %13619, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 539, ptr noundef %13622, ptr noundef %13625, ptr noundef %13628, i32 noundef %13630) #11
  br label %13632

13632:                                            ; preds = %13615, %13598
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %13633

13633:                                            ; preds = %13632
  br label %13634

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

13635:                                            ; No predecessors!
  br label %13636

13636:                                            ; preds = %13635
  br label %13637

13637:                                            ; preds = %13636, %13579
  br label %13638

13638:                                            ; preds = %13637
  br label %13639

13639:                                            ; preds = %13638
  br label %13640

13640:                                            ; preds = %13639
  %13641 = load i64, ptr %240, align 8, !tbaa !51
  %13642 = add i64 %13641, 1
  store i64 %13642, ptr %240, align 8, !tbaa !51
  br label %13312, !llvm.loop !64

13643:                                            ; preds = %13315
  br label %13644

13644:                                            ; preds = %13643
  %13645 = load i32, ptr @test_count, align 4, !tbaa !5
  %13646 = add nsw i32 %13645, 1
  store i32 %13646, ptr @test_count, align 4, !tbaa !5
  %13647 = load ptr, ptr %233, align 8, !tbaa !9
  %13648 = call i32 @s2n_negotiate_until_message(ptr noundef %13647, ptr noundef %239, i32 noundef 1)
  %13649 = getelementptr inbounds %struct.s2n_result, ptr %247, i32 0, i32 0
  store i32 %13648, ptr %13649, align 4
  %13650 = getelementptr inbounds %struct.s2n_result, ptr %247, i32 0, i32 0
  %13651 = load i32, ptr %13650, align 4
  %13652 = call zeroext i1 @s2n_result_is_ok(i32 %13651)
  br i1 %13652, label %13706, label %13653

13653:                                            ; preds = %13644
  br label %13654

13654:                                            ; preds = %13653
  br label %13655

13655:                                            ; preds = %13654
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #11
  %13656 = call ptr @__errno_location() #12
  %13657 = load i32, ptr %13656, align 4, !tbaa !5
  store i32 %13657, ptr %248, align 4, !tbaa !5
  %13658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13659 = call i32 @s2n_print_stacktrace(ptr noundef %13658)
  %13660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13661 = trunc i8 %13660 to i1
  br i1 %13661, label %13662, label %13684

13662:                                            ; preds = %13655
  %13663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13664 = call i32 @fileno(ptr noundef %13663) #11
  %13665 = call i32 @isatty(i32 noundef %13664) #11
  %13666 = icmp ne i32 %13665, 0
  br i1 %13666, label %13667, label %13684

13667:                                            ; preds = %13662
  %13668 = load i32, ptr %248, align 4, !tbaa !5
  %13669 = call ptr @__errno_location() #12
  store i32 %13668, ptr %13669, align 4, !tbaa !5
  %13670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13671 = load i32, ptr @test_count, align 4, !tbaa !5
  %13672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13673 = load i32, ptr %13672, align 4, !tbaa !5
  %13674 = call ptr @s2n_strerror(i32 noundef %13673, ptr noundef @.str.4)
  %13675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13676 = load i32, ptr %13675, align 4, !tbaa !5
  %13677 = call ptr @s2n_strerror_debug(i32 noundef %13676, ptr noundef @.str.4)
  %13678 = call ptr @__errno_location() #12
  %13679 = load i32, ptr %13678, align 4, !tbaa !5
  %13680 = call ptr @strerror(i32 noundef %13679) #11
  %13681 = call ptr @__errno_location() #12
  %13682 = load i32, ptr %13681, align 4, !tbaa !5
  %13683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13670, ptr noundef @.str.2, i32 noundef %13671, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 543, ptr noundef %13674, ptr noundef %13677, ptr noundef %13680, i32 noundef %13682) #11
  br label %13701

13684:                                            ; preds = %13662, %13655
  %13685 = load i32, ptr %248, align 4, !tbaa !5
  %13686 = call ptr @__errno_location() #12
  store i32 %13685, ptr %13686, align 4, !tbaa !5
  %13687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13688 = load i32, ptr @test_count, align 4, !tbaa !5
  %13689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13690 = load i32, ptr %13689, align 4, !tbaa !5
  %13691 = call ptr @s2n_strerror(i32 noundef %13690, ptr noundef @.str.4)
  %13692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13693 = load i32, ptr %13692, align 4, !tbaa !5
  %13694 = call ptr @s2n_strerror_debug(i32 noundef %13693, ptr noundef @.str.4)
  %13695 = call ptr @__errno_location() #12
  %13696 = load i32, ptr %13695, align 4, !tbaa !5
  %13697 = call ptr @strerror(i32 noundef %13696) #11
  %13698 = call ptr @__errno_location() #12
  %13699 = load i32, ptr %13698, align 4, !tbaa !5
  %13700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13687, ptr noundef @.str.5, i32 noundef %13688, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 543, ptr noundef %13691, ptr noundef %13694, ptr noundef %13697, i32 noundef %13699) #11
  br label %13701

13701:                                            ; preds = %13684, %13667
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  br label %13702

13702:                                            ; preds = %13701
  br label %13703

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

13704:                                            ; No predecessors!
  br label %13705

13705:                                            ; preds = %13704
  br label %13706

13706:                                            ; preds = %13705, %13644
  br label %13707

13707:                                            ; preds = %13706
  br label %13708

13708:                                            ; preds = %13707
  br label %13709

13709:                                            ; preds = %13708
  %13710 = load i32, ptr @test_count, align 4, !tbaa !5
  %13711 = add nsw i32 %13710, 1
  store i32 %13711, ptr @test_count, align 4, !tbaa !5
  %13712 = load ptr, ptr %233, align 8, !tbaa !9
  %13713 = getelementptr inbounds %struct.s2n_connection, ptr %13712, i32 0, i32 21
  %13714 = load i8, ptr %13713, align 2, !tbaa !42
  %13715 = zext i8 %13714 to i32
  %13716 = icmp eq i32 %13715, 33
  br i1 %13716, label %13770, label %13717

13717:                                            ; preds = %13709
  br label %13718

13718:                                            ; preds = %13717
  br label %13719

13719:                                            ; preds = %13718
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %13720 = call ptr @__errno_location() #12
  %13721 = load i32, ptr %13720, align 4, !tbaa !5
  store i32 %13721, ptr %249, align 4, !tbaa !5
  %13722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13723 = call i32 @s2n_print_stacktrace(ptr noundef %13722)
  %13724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13725 = trunc i8 %13724 to i1
  br i1 %13725, label %13726, label %13748

13726:                                            ; preds = %13719
  %13727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13728 = call i32 @fileno(ptr noundef %13727) #11
  %13729 = call i32 @isatty(i32 noundef %13728) #11
  %13730 = icmp ne i32 %13729, 0
  br i1 %13730, label %13731, label %13748

13731:                                            ; preds = %13726
  %13732 = load i32, ptr %249, align 4, !tbaa !5
  %13733 = call ptr @__errno_location() #12
  store i32 %13732, ptr %13733, align 4, !tbaa !5
  %13734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13735 = load i32, ptr @test_count, align 4, !tbaa !5
  %13736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13737 = load i32, ptr %13736, align 4, !tbaa !5
  %13738 = call ptr @s2n_strerror(i32 noundef %13737, ptr noundef @.str.4)
  %13739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13740 = load i32, ptr %13739, align 4, !tbaa !5
  %13741 = call ptr @s2n_strerror_debug(i32 noundef %13740, ptr noundef @.str.4)
  %13742 = call ptr @__errno_location() #12
  %13743 = load i32, ptr %13742, align 4, !tbaa !5
  %13744 = call ptr @strerror(i32 noundef %13743) #11
  %13745 = call ptr @__errno_location() #12
  %13746 = load i32, ptr %13745, align 4, !tbaa !5
  %13747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13734, ptr noundef @.str.2, i32 noundef %13735, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 544, ptr noundef %13738, ptr noundef %13741, ptr noundef %13744, i32 noundef %13746) #11
  br label %13765

13748:                                            ; preds = %13726, %13719
  %13749 = load i32, ptr %249, align 4, !tbaa !5
  %13750 = call ptr @__errno_location() #12
  store i32 %13749, ptr %13750, align 4, !tbaa !5
  %13751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13752 = load i32, ptr @test_count, align 4, !tbaa !5
  %13753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13754 = load i32, ptr %13753, align 4, !tbaa !5
  %13755 = call ptr @s2n_strerror(i32 noundef %13754, ptr noundef @.str.4)
  %13756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13757 = load i32, ptr %13756, align 4, !tbaa !5
  %13758 = call ptr @s2n_strerror_debug(i32 noundef %13757, ptr noundef @.str.4)
  %13759 = call ptr @__errno_location() #12
  %13760 = load i32, ptr %13759, align 4, !tbaa !5
  %13761 = call ptr @strerror(i32 noundef %13760) #11
  %13762 = call ptr @__errno_location() #12
  %13763 = load i32, ptr %13762, align 4, !tbaa !5
  %13764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13751, ptr noundef @.str.5, i32 noundef %13752, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 544, ptr noundef %13755, ptr noundef %13758, ptr noundef %13761, i32 noundef %13763) #11
  br label %13765

13765:                                            ; preds = %13748, %13731
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %13766

13766:                                            ; preds = %13765
  br label %13767

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

13768:                                            ; No predecessors!
  br label %13769

13769:                                            ; preds = %13768
  br label %13770

13770:                                            ; preds = %13769, %13709
  br label %13771

13771:                                            ; preds = %13770
  br label %13772

13772:                                            ; preds = %13771
  br label %13773

13773:                                            ; preds = %13772
  %13774 = load i32, ptr @test_count, align 4, !tbaa !5
  %13775 = add nsw i32 %13774, 1
  store i32 %13775, ptr @test_count, align 4, !tbaa !5
  %13776 = load ptr, ptr %233, align 8, !tbaa !9
  %13777 = getelementptr inbounds %struct.s2n_connection, ptr %13776, i32 0, i32 20
  %13778 = load i8, ptr %13777, align 1, !tbaa !15
  %13779 = zext i8 %13778 to i32
  %13780 = icmp eq i32 %13779, 20
  br i1 %13780, label %13834, label %13781

13781:                                            ; preds = %13773
  br label %13782

13782:                                            ; preds = %13781
  br label %13783

13783:                                            ; preds = %13782
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #11
  %13784 = call ptr @__errno_location() #12
  %13785 = load i32, ptr %13784, align 4, !tbaa !5
  store i32 %13785, ptr %250, align 4, !tbaa !5
  %13786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13787 = call i32 @s2n_print_stacktrace(ptr noundef %13786)
  %13788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13789 = trunc i8 %13788 to i1
  br i1 %13789, label %13790, label %13812

13790:                                            ; preds = %13783
  %13791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13792 = call i32 @fileno(ptr noundef %13791) #11
  %13793 = call i32 @isatty(i32 noundef %13792) #11
  %13794 = icmp ne i32 %13793, 0
  br i1 %13794, label %13795, label %13812

13795:                                            ; preds = %13790
  %13796 = load i32, ptr %250, align 4, !tbaa !5
  %13797 = call ptr @__errno_location() #12
  store i32 %13796, ptr %13797, align 4, !tbaa !5
  %13798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13799 = load i32, ptr @test_count, align 4, !tbaa !5
  %13800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13801 = load i32, ptr %13800, align 4, !tbaa !5
  %13802 = call ptr @s2n_strerror(i32 noundef %13801, ptr noundef @.str.4)
  %13803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13804 = load i32, ptr %13803, align 4, !tbaa !5
  %13805 = call ptr @s2n_strerror_debug(i32 noundef %13804, ptr noundef @.str.4)
  %13806 = call ptr @__errno_location() #12
  %13807 = load i32, ptr %13806, align 4, !tbaa !5
  %13808 = call ptr @strerror(i32 noundef %13807) #11
  %13809 = call ptr @__errno_location() #12
  %13810 = load i32, ptr %13809, align 4, !tbaa !5
  %13811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13798, ptr noundef @.str.2, i32 noundef %13799, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 545, ptr noundef %13802, ptr noundef %13805, ptr noundef %13808, i32 noundef %13810) #11
  br label %13829

13812:                                            ; preds = %13790, %13783
  %13813 = load i32, ptr %250, align 4, !tbaa !5
  %13814 = call ptr @__errno_location() #12
  store i32 %13813, ptr %13814, align 4, !tbaa !5
  %13815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13816 = load i32, ptr @test_count, align 4, !tbaa !5
  %13817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13818 = load i32, ptr %13817, align 4, !tbaa !5
  %13819 = call ptr @s2n_strerror(i32 noundef %13818, ptr noundef @.str.4)
  %13820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13821 = load i32, ptr %13820, align 4, !tbaa !5
  %13822 = call ptr @s2n_strerror_debug(i32 noundef %13821, ptr noundef @.str.4)
  %13823 = call ptr @__errno_location() #12
  %13824 = load i32, ptr %13823, align 4, !tbaa !5
  %13825 = call ptr @strerror(i32 noundef %13824) #11
  %13826 = call ptr @__errno_location() #12
  %13827 = load i32, ptr %13826, align 4, !tbaa !5
  %13828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13815, ptr noundef @.str.5, i32 noundef %13816, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 545, ptr noundef %13819, ptr noundef %13822, ptr noundef %13825, i32 noundef %13827) #11
  br label %13829

13829:                                            ; preds = %13812, %13795
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #11
  br label %13830

13830:                                            ; preds = %13829
  br label %13831

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

13832:                                            ; No predecessors!
  br label %13833

13833:                                            ; preds = %13832
  br label %13834

13834:                                            ; preds = %13833, %13773
  br label %13835

13835:                                            ; preds = %13834
  br label %13836

13836:                                            ; preds = %13835
  br label %13837

13837:                                            ; preds = %13836
  %13838 = load i32, ptr @test_count, align 4, !tbaa !5
  %13839 = add nsw i32 %13838, 1
  store i32 %13839, ptr @test_count, align 4, !tbaa !5
  %13840 = load ptr, ptr %233, align 8, !tbaa !9
  %13841 = getelementptr inbounds %struct.s2n_connection, ptr %13840, i32 0, i32 71
  %13842 = getelementptr inbounds %struct.s2n_client_hello, ptr %13841, i32 0, i32 7
  %13843 = load i8, ptr %13842, align 2
  %13844 = lshr i8 %13843, 5
  %13845 = and i8 %13844, 1
  %13846 = zext i8 %13845 to i32
  %13847 = icmp ne i32 %13846, 0
  br i1 %13847, label %13901, label %13848

13848:                                            ; preds = %13837
  br label %13849

13849:                                            ; preds = %13848
  br label %13850

13850:                                            ; preds = %13849
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %13851 = call ptr @__errno_location() #12
  %13852 = load i32, ptr %13851, align 4, !tbaa !5
  store i32 %13852, ptr %251, align 4, !tbaa !5
  %13853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13854 = call i32 @s2n_print_stacktrace(ptr noundef %13853)
  %13855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13856 = trunc i8 %13855 to i1
  br i1 %13856, label %13857, label %13879

13857:                                            ; preds = %13850
  %13858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13859 = call i32 @fileno(ptr noundef %13858) #11
  %13860 = call i32 @isatty(i32 noundef %13859) #11
  %13861 = icmp ne i32 %13860, 0
  br i1 %13861, label %13862, label %13879

13862:                                            ; preds = %13857
  %13863 = load i32, ptr %251, align 4, !tbaa !5
  %13864 = call ptr @__errno_location() #12
  store i32 %13863, ptr %13864, align 4, !tbaa !5
  %13865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13866 = load i32, ptr @test_count, align 4, !tbaa !5
  %13867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13868 = load i32, ptr %13867, align 4, !tbaa !5
  %13869 = call ptr @s2n_strerror(i32 noundef %13868, ptr noundef @.str.4)
  %13870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13871 = load i32, ptr %13870, align 4, !tbaa !5
  %13872 = call ptr @s2n_strerror_debug(i32 noundef %13871, ptr noundef @.str.4)
  %13873 = call ptr @__errno_location() #12
  %13874 = load i32, ptr %13873, align 4, !tbaa !5
  %13875 = call ptr @strerror(i32 noundef %13874) #11
  %13876 = call ptr @__errno_location() #12
  %13877 = load i32, ptr %13876, align 4, !tbaa !5
  %13878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13865, ptr noundef @.str.2, i32 noundef %13866, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 546, ptr noundef %13869, ptr noundef %13872, ptr noundef %13875, i32 noundef %13877) #11
  br label %13896

13879:                                            ; preds = %13857, %13850
  %13880 = load i32, ptr %251, align 4, !tbaa !5
  %13881 = call ptr @__errno_location() #12
  store i32 %13880, ptr %13881, align 4, !tbaa !5
  %13882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13883 = load i32, ptr @test_count, align 4, !tbaa !5
  %13884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13885 = load i32, ptr %13884, align 4, !tbaa !5
  %13886 = call ptr @s2n_strerror(i32 noundef %13885, ptr noundef @.str.4)
  %13887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13888 = load i32, ptr %13887, align 4, !tbaa !5
  %13889 = call ptr @s2n_strerror_debug(i32 noundef %13888, ptr noundef @.str.4)
  %13890 = call ptr @__errno_location() #12
  %13891 = load i32, ptr %13890, align 4, !tbaa !5
  %13892 = call ptr @strerror(i32 noundef %13891) #11
  %13893 = call ptr @__errno_location() #12
  %13894 = load i32, ptr %13893, align 4, !tbaa !5
  %13895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13882, ptr noundef @.str.5, i32 noundef %13883, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 546, ptr noundef %13886, ptr noundef %13889, ptr noundef %13892, i32 noundef %13894) #11
  br label %13896

13896:                                            ; preds = %13879, %13862
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %13897

13897:                                            ; preds = %13896
  br label %13898

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

13899:                                            ; No predecessors!
  br label %13900

13900:                                            ; preds = %13899
  br label %13901

13901:                                            ; preds = %13900, %13837
  br label %13902

13902:                                            ; preds = %13901
  br label %13903

13903:                                            ; preds = %13902
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #11
  call void @llvm.lifetime.end.p0(i64 181, ptr %236) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %235) #11
  %13904 = call i32 @s2n_connection_ptr_free(ptr noundef %233)
  %13905 = getelementptr inbounds %struct.s2n_result, ptr %252, i32 0, i32 0
  store i32 %13904, ptr %13905, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %233) #11
  %13906 = load ptr, ptr %9, align 8, !tbaa !9
  %13907 = call i32 @s2n_config_free(ptr noundef %13906)
  %13908 = load ptr, ptr %10, align 8, !tbaa !9
  %13909 = call i32 @s2n_config_free(ptr noundef %13908)
  %13910 = load ptr, ptr %11, align 8, !tbaa !9
  %13911 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %13910)
  %13912 = load ptr, ptr %13, align 8, !tbaa !9
  call void @free(ptr noundef %13912) #11
  %13913 = load ptr, ptr %15, align 8, !tbaa !9
  call void @free(ptr noundef %13913) #11
  %13914 = load ptr, ptr %12, align 8, !tbaa !9
  %13915 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %13914)
  %13916 = load ptr, ptr %14, align 8, !tbaa !9
  call void @free(ptr noundef %13916) #11
  %13917 = load ptr, ptr %16, align 8, !tbaa !9
  call void @free(ptr noundef %13917) #11
  br label %13918

13918:                                            ; preds = %13903
  br label %13919

13919:                                            ; preds = %13918
  %13920 = call i32 @s2n_cleanup()
  %13921 = icmp eq i32 %13920, -1
  br i1 %13921, label %13922, label %13975

13922:                                            ; preds = %13919
  br label %13923

13923:                                            ; preds = %13922
  br label %13924

13924:                                            ; preds = %13923
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %13925 = call ptr @__errno_location() #12
  %13926 = load i32, ptr %13925, align 4, !tbaa !5
  store i32 %13926, ptr %253, align 4, !tbaa !5
  %13927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13928 = call i32 @s2n_print_stacktrace(ptr noundef %13927)
  %13929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13930 = trunc i8 %13929 to i1
  br i1 %13930, label %13931, label %13953

13931:                                            ; preds = %13924
  %13932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13933 = call i32 @fileno(ptr noundef %13932) #11
  %13934 = call i32 @isatty(i32 noundef %13933) #11
  %13935 = icmp ne i32 %13934, 0
  br i1 %13935, label %13936, label %13953

13936:                                            ; preds = %13931
  %13937 = load i32, ptr %253, align 4, !tbaa !5
  %13938 = call ptr @__errno_location() #12
  store i32 %13937, ptr %13938, align 4, !tbaa !5
  %13939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13940 = load i32, ptr @test_count, align 4, !tbaa !5
  %13941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13942 = load i32, ptr %13941, align 4, !tbaa !5
  %13943 = call ptr @s2n_strerror(i32 noundef %13942, ptr noundef @.str.4)
  %13944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13945 = load i32, ptr %13944, align 4, !tbaa !5
  %13946 = call ptr @s2n_strerror_debug(i32 noundef %13945, ptr noundef @.str.4)
  %13947 = call ptr @__errno_location() #12
  %13948 = load i32, ptr %13947, align 4, !tbaa !5
  %13949 = call ptr @strerror(i32 noundef %13948) #11
  %13950 = call ptr @__errno_location() #12
  %13951 = load i32, ptr %13950, align 4, !tbaa !5
  %13952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13939, ptr noundef @.str.2, i32 noundef %13940, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 557, ptr noundef %13943, ptr noundef %13946, ptr noundef %13949, i32 noundef %13951) #11
  br label %13970

13953:                                            ; preds = %13931, %13924
  %13954 = load i32, ptr %253, align 4, !tbaa !5
  %13955 = call ptr @__errno_location() #12
  store i32 %13954, ptr %13955, align 4, !tbaa !5
  %13956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13957 = load i32, ptr @test_count, align 4, !tbaa !5
  %13958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13959 = load i32, ptr %13958, align 4, !tbaa !5
  %13960 = call ptr @s2n_strerror(i32 noundef %13959, ptr noundef @.str.4)
  %13961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13962 = load i32, ptr %13961, align 4, !tbaa !5
  %13963 = call ptr @s2n_strerror_debug(i32 noundef %13962, ptr noundef @.str.4)
  %13964 = call ptr @__errno_location() #12
  %13965 = load i32, ptr %13964, align 4, !tbaa !5
  %13966 = call ptr @strerror(i32 noundef %13965) #11
  %13967 = call ptr @__errno_location() #12
  %13968 = load i32, ptr %13967, align 4, !tbaa !5
  %13969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13956, ptr noundef @.str.5, i32 noundef %13957, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 557, ptr noundef %13960, ptr noundef %13963, ptr noundef %13966, i32 noundef %13968) #11
  br label %13970

13970:                                            ; preds = %13953, %13936
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %13971

13971:                                            ; preds = %13970
  br label %13972

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

13973:                                            ; No predecessors!
  br label %13974

13974:                                            ; preds = %13973
  br label %13975

13975:                                            ; preds = %13974, %13919
  br label %13976

13976:                                            ; preds = %13975
  br label %13977

13977:                                            ; preds = %13976
  br label %13978

13978:                                            ; preds = %13977
  br label %13979

13979:                                            ; preds = %13978
  %13980 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %13981 = icmp eq i32 %13980, -1
  br i1 %13981, label %13982, label %14035

13982:                                            ; preds = %13979
  br label %13983

13983:                                            ; preds = %13982
  br label %13984

13984:                                            ; preds = %13983
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %13985 = call ptr @__errno_location() #12
  %13986 = load i32, ptr %13985, align 4, !tbaa !5
  store i32 %13986, ptr %254, align 4, !tbaa !5
  %13987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13988 = call i32 @s2n_print_stacktrace(ptr noundef %13987)
  %13989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13990 = trunc i8 %13989 to i1
  br i1 %13990, label %13991, label %14013

13991:                                            ; preds = %13984
  %13992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13993 = call i32 @fileno(ptr noundef %13992) #11
  %13994 = call i32 @isatty(i32 noundef %13993) #11
  %13995 = icmp ne i32 %13994, 0
  br i1 %13995, label %13996, label %14013

13996:                                            ; preds = %13991
  %13997 = load i32, ptr %254, align 4, !tbaa !5
  %13998 = call ptr @__errno_location() #12
  store i32 %13997, ptr %13998, align 4, !tbaa !5
  %13999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14000 = load i32, ptr @test_count, align 4, !tbaa !5
  %14001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14002 = load i32, ptr %14001, align 4, !tbaa !5
  %14003 = call ptr @s2n_strerror(i32 noundef %14002, ptr noundef @.str.4)
  %14004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14005 = load i32, ptr %14004, align 4, !tbaa !5
  %14006 = call ptr @s2n_strerror_debug(i32 noundef %14005, ptr noundef @.str.4)
  %14007 = call ptr @__errno_location() #12
  %14008 = load i32, ptr %14007, align 4, !tbaa !5
  %14009 = call ptr @strerror(i32 noundef %14008) #11
  %14010 = call ptr @__errno_location() #12
  %14011 = load i32, ptr %14010, align 4, !tbaa !5
  %14012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13999, ptr noundef @.str.2, i32 noundef %14000, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 557, ptr noundef %14003, ptr noundef %14006, ptr noundef %14009, i32 noundef %14011) #11
  br label %14030

14013:                                            ; preds = %13991, %13984
  %14014 = load i32, ptr %254, align 4, !tbaa !5
  %14015 = call ptr @__errno_location() #12
  store i32 %14014, ptr %14015, align 4, !tbaa !5
  %14016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14017 = load i32, ptr @test_count, align 4, !tbaa !5
  %14018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14019 = load i32, ptr %14018, align 4, !tbaa !5
  %14020 = call ptr @s2n_strerror(i32 noundef %14019, ptr noundef @.str.4)
  %14021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14022 = load i32, ptr %14021, align 4, !tbaa !5
  %14023 = call ptr @s2n_strerror_debug(i32 noundef %14022, ptr noundef @.str.4)
  %14024 = call ptr @__errno_location() #12
  %14025 = load i32, ptr %14024, align 4, !tbaa !5
  %14026 = call ptr @strerror(i32 noundef %14025) #11
  %14027 = call ptr @__errno_location() #12
  %14028 = load i32, ptr %14027, align 4, !tbaa !5
  %14029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14016, ptr noundef @.str.5, i32 noundef %14017, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 557, ptr noundef %14020, ptr noundef %14023, ptr noundef %14026, i32 noundef %14028) #11
  br label %14030

14030:                                            ; preds = %14013, %13996
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %14031

14031:                                            ; preds = %14030
  br label %14032

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

14033:                                            ; No predecessors!
  br label %14034

14034:                                            ; preds = %14033
  br label %14035

14035:                                            ; preds = %14034, %13979
  br label %14036

14036:                                            ; preds = %14035
  br label %14037

14037:                                            ; preds = %14036
  %14038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14039 = trunc i8 %14038 to i1
  br i1 %14039, label %14040, label %14056

14040:                                            ; preds = %14037
  %14041 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14042 = call i32 @fileno(ptr noundef %14041) #11
  %14043 = call i32 @isatty(i32 noundef %14042) #11
  %14044 = icmp ne i32 %14043, 0
  br i1 %14044, label %14045, label %14056

14045:                                            ; preds = %14040
  %14046 = load i32, ptr @test_count, align 4, !tbaa !5
  %14047 = icmp ne i32 %14046, 0
  br i1 %14047, label %14048, label %14052

14048:                                            ; preds = %14045
  %14049 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14050 = load i32, ptr @test_count, align 4, !tbaa !5
  %14051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14049, ptr noundef @.str.103, i32 noundef %14050) #11
  br label %14055

14052:                                            ; preds = %14045
  %14053 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14053, ptr noundef @.str.104) #11
  br label %14055

14055:                                            ; preds = %14052, %14048
  br label %14067

14056:                                            ; preds = %14040, %14037
  %14057 = load i32, ptr @test_count, align 4, !tbaa !5
  %14058 = icmp ne i32 %14057, 0
  br i1 %14058, label %14059, label %14063

14059:                                            ; preds = %14056
  %14060 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14061 = load i32, ptr @test_count, align 4, !tbaa !5
  %14062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14060, ptr noundef @.str.105, i32 noundef %14061) #11
  br label %14066

14063:                                            ; preds = %14056
  %14064 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14064, ptr noundef @.str.106) #11
  br label %14066

14066:                                            ; preds = %14063, %14059
  br label %14067

14067:                                            ; preds = %14066, %14055
  store i32 0, ptr %3, align 4
  store i32 1, ptr %221, align 4
  br label %14072

14068:                                            ; No predecessors!
  br label %14069

14069:                                            ; preds = %14068
  br label %14070

14070:                                            ; preds = %14069
  br label %14071

14071:                                            ; preds = %14070
  store i32 0, ptr %221, align 4
  br label %14072

14072:                                            ; preds = %14071, %14067, %13119
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  %14073 = load i32, ptr %221, align 4
  switch i32 %14073, label %14076 [
    i32 0, label %14074
    i32 1, label %14074
  ]

14074:                                            ; preds = %14072, %14072
  %14075 = load i32, ptr %3, align 4
  ret i32 %14075

14076:                                            ; preds = %14072
  unreachable
}

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

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

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

declare ptr @s2n_config_new() #3

declare ptr @s2n_cert_chain_and_key_new() #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #3

declare i32 @s2n_reset_tls13_in_test(...) #3

declare ptr @s2n_connection_new(i32 noundef) #3

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

; 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 i32 @s2n_stuffer_write(ptr noundef, ptr noundef) #3

declare i32 @s2n_client_hello_recv(ptr noundef) #3

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_client_hello_send(ptr noundef) #3

declare i32 @s2n_enable_tls13_in_test(...) #3

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare i32 @s2n_stuffer_rewrite(ptr noundef) #3

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_get_highest_fully_supported_tls_version(...) #3

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

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) #3

declare void @s2n_debug_info_reset() #3

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #3

declare i32 @s2n_config_enable_quic(ptr noundef) #3

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

declare i32 @s2n_free(ptr noundef) #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #10

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_ptr_free(ptr noundef) #3

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_connection_set_recv_io_stuffer(ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #10

declare i32 @s2n_negotiate_until_message(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

declare i32 @s2n_cleanup() #3

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

!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 217}
!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 = !{!16, !7, i64 218}
!43 = !{!25, !10, i64 0}
!44 = !{!25, !6, i64 8}
!45 = !{!25, !6, i64 12}
!46 = !{!16, !7, i64 220}
!47 = !{!16, !7, i64 219}
!48 = !{!7, !7, i64 0}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = !{!18, !18, i64 0}
!52 = !{!16, !6, i64 2044}
!53 = !{!16, !6, i64 2040}
!54 = !{!16, !7, i64 216}
!55 = !{!56, !6, i64 56}
!56 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !57, i64 96, !18, i64 160}
!57 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!58 = !{!16, !10, i64 1736}
!59 = !{!16, !10, i64 1528}
!60 = !{!61, !31, i64 0}
!61 = !{!"s2n_signature_scheme", !31, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !31, i64 26, !10, i64 32}
!62 = !{!16, !10, i64 1544}
!63 = !{!16, !10, i64 656}
!64 = distinct !{!64, !50}


; 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_ecc_named_curve = type { i16, i32, ptr, i8, ptr }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_psk = type { i32, %struct.s2n_blob, %struct.s2n_blob, i32, i32, i64, %struct.s2n_blob, %struct.s2n_early_data_config, i64 }
%struct.s2n_early_data_config = type { i32, i8, ptr, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [85 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 [61 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [81 x i8], align 1
@__const.main.sslv2_client_hello = external hidden unnamed_addr constant [176 x i8], align 16
@.str.36 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [70 x i8], align 1
@__const.main.sslv2_client_hello.75 = external hidden unnamed_addr constant [176 x i8], align 16
@.str.76 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [191 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [323 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [105 x i8], align 1
@s2n_ecc_curve_secp256r1 = external constant %struct.s2n_ecc_named_curve, align 8
@.str.89 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [76 x i8], align 1
@__const.main.sslv2_client_hello_bytes = external hidden unnamed_addr constant [181 x i8], align 16
@.str.91 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [25 x i8], align 1

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

22:                                               ; preds = %2
  %23 = tail call ptr @__errno_location() #14
  %24 = load i32, ptr %23, align 4, !tbaa !5
  %25 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26 = tail call i32 @s2n_print_stacktrace(ptr noundef %25) #13
  %27 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %28 = trunc nuw i8 %27 to i1
  br i1 %28, label %29, label %33

29:                                               ; preds = %22
  %30 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31 = tail call i32 @fileno(ptr noundef %30) #13
  %32 = tail call i32 @isatty(i32 noundef %31) #13
  %.not934 = icmp eq i32 %32, 0
  br i1 %.not934, label %33, label %34

33:                                               ; preds = %29, %22
  br label %34

34:                                               ; preds = %29, %33
  %.str.5.sink = phi ptr [ @.str.5, %33 ], [ @.str.2, %29 ]
  store i32 %24, ptr %23, align 4, !tbaa !5
  %35 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36 = load i32, ptr @test_count, align 4, !tbaa !5
  %37 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %38 = load i32, ptr %37, align 4, !tbaa !5
  %39 = tail call ptr @s2n_strerror(i32 noundef %38, ptr noundef nonnull @.str.4) #13
  %40 = load i32, ptr %37, align 4, !tbaa !5
  %41 = tail call ptr @s2n_strerror_debug(i32 noundef %40, ptr noundef nonnull @.str.4) #13
  %42 = load i32, ptr %23, align 4, !tbaa !5
  %43 = tail call ptr @strerror(i32 noundef %42) #13
  %44 = load i32, ptr %23, align 4, !tbaa !5
  %45 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35, ptr noundef nonnull %.str.5.sink, i32 noundef %36, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %39, ptr noundef %41, ptr noundef %43, i32 noundef %44) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

46:                                               ; preds = %2
  %47 = load i32, ptr @test_count, align 4, !tbaa !5
  %48 = add nsw i32 %47, 1
  store i32 %48, ptr @test_count, align 4, !tbaa !5
  %49 = tail call i32 @s2n_enable_atexit() #13
  %50 = icmp eq i32 %49, -1
  br i1 %50, label %51, label %75

51:                                               ; preds = %46
  %52 = tail call ptr @__errno_location() #14
  %53 = load i32, ptr %52, align 4, !tbaa !5
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = tail call i32 @s2n_print_stacktrace(ptr noundef %54) #13
  %56 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %57 = trunc nuw i8 %56 to i1
  br i1 %57, label %58, label %62

58:                                               ; preds = %51
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = tail call i32 @fileno(ptr noundef %59) #13
  %61 = tail call i32 @isatty(i32 noundef %60) #13
  %.not933 = icmp eq i32 %61, 0
  br i1 %.not933, label %62, label %63

62:                                               ; preds = %58, %51
  br label %63

63:                                               ; preds = %58, %62
  %.str.5.sink953 = phi ptr [ @.str.5, %62 ], [ @.str.2, %58 ]
  store i32 %53, ptr %52, align 4, !tbaa !5
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = load i32, ptr @test_count, align 4, !tbaa !5
  %66 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %67 = load i32, ptr %66, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror(i32 noundef %67, ptr noundef nonnull @.str.4) #13
  %69 = load i32, ptr %66, align 4, !tbaa !5
  %70 = tail call ptr @s2n_strerror_debug(i32 noundef %69, ptr noundef nonnull @.str.4) #13
  %71 = load i32, ptr %52, align 4, !tbaa !5
  %72 = tail call ptr @strerror(i32 noundef %71) #13
  %73 = load i32, ptr %52, align 4, !tbaa !5
  %74 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %64, ptr noundef nonnull %.str.5.sink953, i32 noundef %65, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %68, ptr noundef %70, ptr noundef %72, i32 noundef %73) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

75:                                               ; preds = %46
  %76 = tail call i32 @s2n_init() #13
  %77 = icmp eq i32 %76, -1
  br i1 %77, label %78, label %102

78:                                               ; preds = %75
  %79 = tail call ptr @__errno_location() #14
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = tail call i32 @s2n_print_stacktrace(ptr noundef %81) #13
  %83 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %84 = trunc nuw i8 %83 to i1
  br i1 %84, label %85, label %89

85:                                               ; preds = %78
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = tail call i32 @fileno(ptr noundef %86) #13
  %88 = tail call i32 @isatty(i32 noundef %87) #13
  %.not932 = icmp eq i32 %88, 0
  br i1 %.not932, label %89, label %90

89:                                               ; preds = %85, %78
  br label %90

90:                                               ; preds = %85, %89
  %.str.5.sink964 = phi ptr [ @.str.5, %89 ], [ @.str.2, %85 ]
  store i32 %80, ptr %79, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror(i32 noundef %94, ptr noundef nonnull @.str.4) #13
  %96 = load i32, ptr %93, align 4, !tbaa !5
  %97 = tail call ptr @s2n_strerror_debug(i32 noundef %96, ptr noundef nonnull @.str.4) #13
  %98 = load i32, ptr %79, align 4, !tbaa !5
  %99 = tail call ptr @strerror(i32 noundef %98) #13
  %100 = load i32, ptr %79, align 4, !tbaa !5
  %101 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef nonnull %.str.5.sink964, i32 noundef %92, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %95, ptr noundef %97, ptr noundef %99, i32 noundef %100) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

102:                                              ; preds = %75
  %103 = load i32, ptr @test_count, align 4, !tbaa !5
  %104 = add nsw i32 %103, 1
  store i32 %104, ptr @test_count, align 4, !tbaa !5
  %105 = tail call i32 (...) @s2n_disable_tls13_in_test() #13
  %106 = icmp eq i32 %105, -1
  br i1 %106, label %107, label %131

107:                                              ; preds = %102
  %108 = tail call ptr @__errno_location() #14
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %111 = tail call i32 @s2n_print_stacktrace(ptr noundef %110) #13
  %112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %113 = trunc nuw i8 %112 to i1
  br i1 %113, label %114, label %118

114:                                              ; preds = %107
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = tail call i32 @fileno(ptr noundef %115) #13
  %117 = tail call i32 @isatty(i32 noundef %116) #13
  %.not931 = icmp eq i32 %117, 0
  br i1 %.not931, label %118, label %119

118:                                              ; preds = %114, %107
  br label %119

119:                                              ; preds = %114, %118
  %.str.5.sink975 = phi ptr [ @.str.5, %118 ], [ @.str.2, %114 ]
  store i32 %109, ptr %108, align 4, !tbaa !5
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = load i32, ptr @test_count, align 4, !tbaa !5
  %122 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror(i32 noundef %123, ptr noundef nonnull @.str.4) #13
  %125 = load i32, ptr %122, align 4, !tbaa !5
  %126 = tail call ptr @s2n_strerror_debug(i32 noundef %125, ptr noundef nonnull @.str.4) #13
  %127 = load i32, ptr %108, align 4, !tbaa !5
  %128 = tail call ptr @strerror(i32 noundef %127) #13
  %129 = load i32, ptr %108, align 4, !tbaa !5
  %130 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef nonnull %.str.5.sink975, i32 noundef %121, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %124, ptr noundef %126, ptr noundef %128, i32 noundef %129) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

131:                                              ; preds = %102
  %132 = load i32, ptr @test_count, align 4, !tbaa !5
  %133 = add nsw i32 %132, 1
  store i32 %133, ptr @test_count, align 4, !tbaa !5
  %134 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %135 = icmp eq ptr %134, null
  br i1 %135, label %136, label %160

136:                                              ; preds = %131
  %137 = tail call ptr @__errno_location() #14
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = tail call i32 @s2n_print_stacktrace(ptr noundef %139) #13
  %141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %142 = trunc nuw i8 %141 to i1
  br i1 %142, label %143, label %147

143:                                              ; preds = %136
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = tail call i32 @fileno(ptr noundef %144) #13
  %146 = tail call i32 @isatty(i32 noundef %145) #13
  %.not930 = icmp eq i32 %146, 0
  br i1 %.not930, label %147, label %148

147:                                              ; preds = %143, %136
  br label %148

148:                                              ; preds = %143, %147
  %.str.5.sink986 = phi ptr [ @.str.5, %147 ], [ @.str.2, %143 ]
  store i32 %138, ptr %137, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = tail call ptr @s2n_strerror(i32 noundef %152, ptr noundef nonnull @.str.4) #13
  %154 = load i32, ptr %151, align 4, !tbaa !5
  %155 = tail call ptr @s2n_strerror_debug(i32 noundef %154, ptr noundef nonnull @.str.4) #13
  %156 = load i32, ptr %137, align 4, !tbaa !5
  %157 = tail call ptr @strerror(i32 noundef %156) #13
  %158 = load i32, ptr %137, align 4, !tbaa !5
  %159 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef nonnull %.str.5.sink986, i32 noundef %150, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %153, ptr noundef %155, ptr noundef %157, i32 noundef %158) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

160:                                              ; preds = %131
  %161 = add nsw i32 %132, 2
  store i32 %161, ptr @test_count, align 4, !tbaa !5
  %162 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %163 = icmp eq ptr %162, null
  br i1 %163, label %164, label %188

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

171:                                              ; preds = %164
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = tail call i32 @fileno(ptr noundef %172) #13
  %174 = tail call i32 @isatty(i32 noundef %173) #13
  %.not929 = icmp eq i32 %174, 0
  br i1 %.not929, label %175, label %176

175:                                              ; preds = %171, %164
  br label %176

176:                                              ; preds = %171, %175
  %.str.5.sink997 = phi ptr [ @.str.5, %175 ], [ @.str.2, %171 ]
  store i32 %166, ptr %165, align 4, !tbaa !5
  %177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %178 = load i32, ptr @test_count, align 4, !tbaa !5
  %179 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = tail call ptr @s2n_strerror(i32 noundef %180, ptr noundef nonnull @.str.4) #13
  %182 = load i32, ptr %179, align 4, !tbaa !5
  %183 = tail call ptr @s2n_strerror_debug(i32 noundef %182, ptr noundef nonnull @.str.4) #13
  %184 = load i32, ptr %165, align 4, !tbaa !5
  %185 = tail call ptr @strerror(i32 noundef %184) #13
  %186 = load i32, ptr %165, align 4, !tbaa !5
  %187 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %177, ptr noundef nonnull %.str.5.sink997, i32 noundef %178, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %181, ptr noundef %183, ptr noundef %185, i32 noundef %186) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

188:                                              ; preds = %160
  %189 = add nsw i32 %132, 3
  store i32 %189, ptr @test_count, align 4, !tbaa !5
  %190 = tail call ptr @s2n_config_new() #13
  %191 = icmp eq ptr %190, null
  br i1 %191, label %192, label %216

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

199:                                              ; preds = %192
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = tail call i32 @fileno(ptr noundef %200) #13
  %202 = tail call i32 @isatty(i32 noundef %201) #13
  %.not928 = icmp eq i32 %202, 0
  br i1 %.not928, label %203, label %204

203:                                              ; preds = %199, %192
  br label %204

204:                                              ; preds = %199, %203
  %.str.5.sink1008 = phi ptr [ @.str.5, %203 ], [ @.str.2, %199 ]
  store i32 %194, ptr %193, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = tail call ptr @s2n_strerror(i32 noundef %208, ptr noundef nonnull @.str.4) #13
  %210 = load i32, ptr %207, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror_debug(i32 noundef %210, ptr noundef nonnull @.str.4) #13
  %212 = load i32, ptr %193, align 4, !tbaa !5
  %213 = tail call ptr @strerror(i32 noundef %212) #13
  %214 = load i32, ptr %193, align 4, !tbaa !5
  %215 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef nonnull %.str.5.sink1008, i32 noundef %206, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 53, ptr noundef %209, ptr noundef %211, ptr noundef %213, i32 noundef %214) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

216:                                              ; preds = %188
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = tail call ptr @s2n_cert_chain_and_key_new() #13
  %220 = icmp eq ptr %219, null
  br i1 %220, label %221, label %245

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

228:                                              ; preds = %221
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = tail call i32 @fileno(ptr noundef %229) #13
  %231 = tail call i32 @isatty(i32 noundef %230) #13
  %.not927 = icmp eq i32 %231, 0
  br i1 %.not927, label %232, label %233

232:                                              ; preds = %228, %221
  br label %233

233:                                              ; preds = %228, %232
  %.str.5.sink1019 = phi ptr [ @.str.5, %232 ], [ @.str.2, %228 ]
  store i32 %223, ptr %222, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = tail call ptr @s2n_strerror(i32 noundef %237, ptr noundef nonnull @.str.4) #13
  %239 = load i32, ptr %236, align 4, !tbaa !5
  %240 = tail call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef nonnull @.str.4) #13
  %241 = load i32, ptr %222, align 4, !tbaa !5
  %242 = tail call ptr @strerror(i32 noundef %241) #13
  %243 = load i32, ptr %222, align 4, !tbaa !5
  %244 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %234, ptr noundef nonnull %.str.5.sink1019, i32 noundef %235, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %238, ptr noundef %240, ptr noundef %242, i32 noundef %243) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

245:                                              ; preds = %216
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr @test_count, align 4, !tbaa !5
  %248 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %190, ptr noundef nonnull @.str.13) #13
  %249 = icmp eq i32 %248, -1
  br i1 %249, label %250, label %274

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

257:                                              ; preds = %250
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = tail call i32 @fileno(ptr noundef %258) #13
  %260 = tail call i32 @isatty(i32 noundef %259) #13
  %.not926 = icmp eq i32 %260, 0
  br i1 %.not926, label %261, label %262

261:                                              ; preds = %257, %250
  br label %262

262:                                              ; preds = %257, %261
  %.str.5.sink1030 = phi ptr [ @.str.5, %261 ], [ @.str.2, %257 ]
  store i32 %252, ptr %251, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = tail call ptr @s2n_strerror(i32 noundef %266, ptr noundef nonnull @.str.4) #13
  %268 = load i32, ptr %265, align 4, !tbaa !5
  %269 = tail call ptr @s2n_strerror_debug(i32 noundef %268, ptr noundef nonnull @.str.4) #13
  %270 = load i32, ptr %251, align 4, !tbaa !5
  %271 = tail call ptr @strerror(i32 noundef %270) #13
  %272 = load i32, ptr %251, align 4, !tbaa !5
  %273 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef nonnull %.str.5.sink1030, i32 noundef %264, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %267, ptr noundef %269, ptr noundef %271, i32 noundef %272) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

274:                                              ; preds = %245
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr @test_count, align 4, !tbaa !5
  %277 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %278 = icmp eq ptr %277, null
  br i1 %278, label %279, label %303

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

286:                                              ; preds = %279
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = tail call i32 @fileno(ptr noundef %287) #13
  %289 = tail call i32 @isatty(i32 noundef %288) #13
  %.not925 = icmp eq i32 %289, 0
  br i1 %.not925, label %290, label %291

290:                                              ; preds = %286, %279
  br label %291

291:                                              ; preds = %286, %290
  %.str.5.sink1041 = phi ptr [ @.str.5, %290 ], [ @.str.2, %286 ]
  store i32 %281, ptr %280, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = tail call ptr @s2n_strerror(i32 noundef %295, ptr noundef nonnull @.str.4) #13
  %297 = load i32, ptr %294, align 4, !tbaa !5
  %298 = tail call ptr @s2n_strerror_debug(i32 noundef %297, ptr noundef nonnull @.str.4) #13
  %299 = load i32, ptr %280, align 4, !tbaa !5
  %300 = tail call ptr @strerror(i32 noundef %299) #13
  %301 = load i32, ptr %280, align 4, !tbaa !5
  %302 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef nonnull %.str.5.sink1041, i32 noundef %293, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %296, ptr noundef %298, ptr noundef %300, i32 noundef %301) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

303:                                              ; preds = %274
  %304 = add nsw i32 %275, 2
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = tail call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #17
  %306 = icmp eq ptr %305, null
  br i1 %306, label %307, label %331

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

314:                                              ; preds = %307
  %315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %316 = tail call i32 @fileno(ptr noundef %315) #13
  %317 = tail call i32 @isatty(i32 noundef %316) #13
  %.not924 = icmp eq i32 %317, 0
  br i1 %.not924, label %318, label %319

318:                                              ; preds = %314, %307
  br label %319

319:                                              ; preds = %314, %318
  %.str.5.sink1052 = phi ptr [ @.str.5, %318 ], [ @.str.2, %314 ]
  store i32 %309, ptr %308, align 4, !tbaa !5
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = tail call ptr @s2n_strerror(i32 noundef %323, ptr noundef nonnull @.str.4) #13
  %325 = load i32, ptr %322, align 4, !tbaa !5
  %326 = tail call ptr @s2n_strerror_debug(i32 noundef %325, ptr noundef nonnull @.str.4) #13
  %327 = load i32, ptr %308, align 4, !tbaa !5
  %328 = tail call ptr @strerror(i32 noundef %327) #13
  %329 = load i32, ptr %308, align 4, !tbaa !5
  %330 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %320, ptr noundef nonnull %.str.5.sink1052, i32 noundef %321, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %324, ptr noundef %326, ptr noundef %328, i32 noundef %329) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

331:                                              ; preds = %303
  %332 = add nsw i32 %275, 3
  store i32 %332, ptr @test_count, align 4, !tbaa !5
  %333 = tail call ptr @s2n_config_new() #13
  %334 = icmp eq ptr %333, null
  br i1 %334, label %335, label %359

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

342:                                              ; preds = %335
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = tail call i32 @fileno(ptr noundef %343) #13
  %345 = tail call i32 @isatty(i32 noundef %344) #13
  %.not923 = icmp eq i32 %345, 0
  br i1 %.not923, label %346, label %347

346:                                              ; preds = %342, %335
  br label %347

347:                                              ; preds = %342, %346
  %.str.5.sink1063 = phi ptr [ @.str.5, %346 ], [ @.str.2, %342 ]
  store i32 %337, ptr %336, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = load i32, ptr @test_count, align 4, !tbaa !5
  %350 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = tail call ptr @s2n_strerror(i32 noundef %351, ptr noundef nonnull @.str.4) #13
  %353 = load i32, ptr %350, align 4, !tbaa !5
  %354 = tail call ptr @s2n_strerror_debug(i32 noundef %353, ptr noundef nonnull @.str.4) #13
  %355 = load i32, ptr %336, align 4, !tbaa !5
  %356 = tail call ptr @strerror(i32 noundef %355) #13
  %357 = load i32, ptr %336, align 4, !tbaa !5
  %358 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %348, ptr noundef nonnull %.str.5.sink1063, i32 noundef %349, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %352, ptr noundef %354, ptr noundef %356, i32 noundef %357) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

359:                                              ; preds = %331
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = add nsw i32 %360, 1
  store i32 %361, ptr @test_count, align 4, !tbaa !5
  %362 = tail call ptr @s2n_cert_chain_and_key_new() #13
  %363 = icmp eq ptr %362, null
  br i1 %363, label %364, label %388

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

371:                                              ; preds = %364
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = tail call i32 @fileno(ptr noundef %372) #13
  %374 = tail call i32 @isatty(i32 noundef %373) #13
  %.not922 = icmp eq i32 %374, 0
  br i1 %.not922, label %375, label %376

375:                                              ; preds = %371, %364
  br label %376

376:                                              ; preds = %371, %375
  %.str.5.sink1074 = phi ptr [ @.str.5, %375 ], [ @.str.2, %371 ]
  store i32 %366, ptr %365, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = tail call ptr @s2n_strerror(i32 noundef %380, ptr noundef nonnull @.str.4) #13
  %382 = load i32, ptr %379, align 4, !tbaa !5
  %383 = tail call ptr @s2n_strerror_debug(i32 noundef %382, ptr noundef nonnull @.str.4) #13
  %384 = load i32, ptr %365, align 4, !tbaa !5
  %385 = tail call ptr @strerror(i32 noundef %384) #13
  %386 = load i32, ptr %365, align 4, !tbaa !5
  %387 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %377, ptr noundef nonnull %.str.5.sink1074, i32 noundef %378, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %381, ptr noundef %383, ptr noundef %385, i32 noundef %386) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

388:                                              ; preds = %359
  %389 = load i32, ptr @test_count, align 4, !tbaa !5
  %390 = add nsw i32 %389, 1
  store i32 %390, ptr @test_count, align 4, !tbaa !5
  %391 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %333, ptr noundef nonnull @.str.19) #13
  %392 = icmp eq i32 %391, -1
  br i1 %392, label %393, label %417

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

400:                                              ; preds = %393
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = tail call i32 @fileno(ptr noundef %401) #13
  %403 = tail call i32 @isatty(i32 noundef %402) #13
  %.not921 = icmp eq i32 %403, 0
  br i1 %.not921, label %404, label %405

404:                                              ; preds = %400, %393
  br label %405

405:                                              ; preds = %400, %404
  %.str.5.sink1085 = phi ptr [ @.str.5, %404 ], [ @.str.2, %400 ]
  store i32 %395, ptr %394, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = tail call ptr @s2n_strerror(i32 noundef %409, ptr noundef nonnull @.str.4) #13
  %411 = load i32, ptr %408, align 4, !tbaa !5
  %412 = tail call ptr @s2n_strerror_debug(i32 noundef %411, ptr noundef nonnull @.str.4) #13
  %413 = load i32, ptr %394, align 4, !tbaa !5
  %414 = tail call ptr @strerror(i32 noundef %413) #13
  %415 = load i32, ptr %394, align 4, !tbaa !5
  %416 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %406, ptr noundef nonnull %.str.5.sink1085, i32 noundef %407, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %410, ptr noundef %412, ptr noundef %414, i32 noundef %415) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

417:                                              ; preds = %388
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = add nsw i32 %418, 1
  store i32 %419, ptr @test_count, align 4, !tbaa !5
  %420 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.21, ptr noundef nonnull %134, i64 noundef 12000) #13
  %421 = icmp eq i32 %420, -1
  br i1 %421, label %422, label %446

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

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = tail call i32 @fileno(ptr noundef %430) #13
  %432 = tail call i32 @isatty(i32 noundef %431) #13
  %.not920 = icmp eq i32 %432, 0
  br i1 %.not920, label %433, label %434

433:                                              ; preds = %429, %422
  br label %434

434:                                              ; preds = %429, %433
  %.str.5.sink1096 = phi ptr [ @.str.5, %433 ], [ @.str.2, %429 ]
  store i32 %424, ptr %423, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = tail call ptr @s2n_strerror(i32 noundef %438, ptr noundef nonnull @.str.4) #13
  %440 = load i32, ptr %437, align 4, !tbaa !5
  %441 = tail call ptr @s2n_strerror_debug(i32 noundef %440, ptr noundef nonnull @.str.4) #13
  %442 = load i32, ptr %423, align 4, !tbaa !5
  %443 = tail call ptr @strerror(i32 noundef %442) #13
  %444 = load i32, ptr %423, align 4, !tbaa !5
  %445 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef nonnull %.str.5.sink1096, i32 noundef %436, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %439, ptr noundef %441, ptr noundef %443, i32 noundef %444) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

446:                                              ; preds = %417
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = add nsw i32 %447, 1
  store i32 %448, ptr @test_count, align 4, !tbaa !5
  %449 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.23, ptr noundef nonnull %162, i64 noundef 12000) #13
  %450 = icmp eq i32 %449, -1
  br i1 %450, label %451, label %475

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

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

462:                                              ; preds = %458, %451
  br label %463

463:                                              ; preds = %458, %462
  %.str.5.sink1107 = phi ptr [ @.str.5, %462 ], [ @.str.2, %458 ]
  store i32 %453, ptr %452, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = tail call ptr @s2n_strerror(i32 noundef %467, ptr noundef nonnull @.str.4) #13
  %469 = load i32, ptr %466, align 4, !tbaa !5
  %470 = tail call ptr @s2n_strerror_debug(i32 noundef %469, ptr noundef nonnull @.str.4) #13
  %471 = load i32, ptr %452, align 4, !tbaa !5
  %472 = tail call ptr @strerror(i32 noundef %471) #13
  %473 = load i32, ptr %452, align 4, !tbaa !5
  %474 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef nonnull %.str.5.sink1107, i32 noundef %465, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %468, ptr noundef %470, ptr noundef %472, i32 noundef %473) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

475:                                              ; preds = %446
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr @test_count, align 4, !tbaa !5
  %478 = tail call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %219, ptr noundef nonnull %134, ptr noundef nonnull %162) #13
  %479 = icmp eq i32 %478, -1
  br i1 %479, label %480, label %504

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

487:                                              ; preds = %480
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = tail call i32 @fileno(ptr noundef %488) #13
  %490 = tail call i32 @isatty(i32 noundef %489) #13
  %.not918 = icmp eq i32 %490, 0
  br i1 %.not918, label %491, label %492

491:                                              ; preds = %487, %480
  br label %492

492:                                              ; preds = %487, %491
  %.str.5.sink1118 = phi ptr [ @.str.5, %491 ], [ @.str.2, %487 ]
  store i32 %482, ptr %481, align 4, !tbaa !5
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %496 = load i32, ptr %495, align 4, !tbaa !5
  %497 = tail call ptr @s2n_strerror(i32 noundef %496, ptr noundef nonnull @.str.4) #13
  %498 = load i32, ptr %495, align 4, !tbaa !5
  %499 = tail call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef nonnull @.str.4) #13
  %500 = load i32, ptr %481, align 4, !tbaa !5
  %501 = tail call ptr @strerror(i32 noundef %500) #13
  %502 = load i32, ptr %481, align 4, !tbaa !5
  %503 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %493, ptr noundef nonnull %.str.5.sink1118, i32 noundef %494, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %497, ptr noundef %499, ptr noundef %501, i32 noundef %502) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

504:                                              ; preds = %475
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = tail call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %190, ptr noundef nonnull %219) #13
  %508 = icmp eq i32 %507, -1
  br i1 %508, label %509, label %533

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

516:                                              ; preds = %509
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = tail call i32 @fileno(ptr noundef %517) #13
  %519 = tail call i32 @isatty(i32 noundef %518) #13
  %.not917 = icmp eq i32 %519, 0
  br i1 %.not917, label %520, label %521

520:                                              ; preds = %516, %509
  br label %521

521:                                              ; preds = %516, %520
  %.str.5.sink1129 = phi ptr [ @.str.5, %520 ], [ @.str.2, %516 ]
  store i32 %511, ptr %510, align 4, !tbaa !5
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = tail call ptr @s2n_strerror(i32 noundef %525, ptr noundef nonnull @.str.4) #13
  %527 = load i32, ptr %524, align 4, !tbaa !5
  %528 = tail call ptr @s2n_strerror_debug(i32 noundef %527, ptr noundef nonnull @.str.4) #13
  %529 = load i32, ptr %510, align 4, !tbaa !5
  %530 = tail call ptr @strerror(i32 noundef %529) #13
  %531 = load i32, ptr %510, align 4, !tbaa !5
  %532 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %522, ptr noundef nonnull %.str.5.sink1129, i32 noundef %523, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %526, ptr noundef %528, ptr noundef %530, i32 noundef %531) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

533:                                              ; preds = %504
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.27, ptr noundef nonnull %277, i64 noundef 12000) #13
  %537 = icmp eq i32 %536, -1
  br i1 %537, label %538, label %562

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

545:                                              ; preds = %538
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = tail call i32 @fileno(ptr noundef %546) #13
  %548 = tail call i32 @isatty(i32 noundef %547) #13
  %.not916 = icmp eq i32 %548, 0
  br i1 %.not916, label %549, label %550

549:                                              ; preds = %545, %538
  br label %550

550:                                              ; preds = %545, %549
  %.str.5.sink1140 = phi ptr [ @.str.5, %549 ], [ @.str.2, %545 ]
  store i32 %540, ptr %539, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = tail call ptr @s2n_strerror(i32 noundef %554, ptr noundef nonnull @.str.4) #13
  %556 = load i32, ptr %553, align 4, !tbaa !5
  %557 = tail call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef nonnull @.str.4) #13
  %558 = load i32, ptr %539, align 4, !tbaa !5
  %559 = tail call ptr @strerror(i32 noundef %558) #13
  %560 = load i32, ptr %539, align 4, !tbaa !5
  %561 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef nonnull %.str.5.sink1140, i32 noundef %552, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %555, ptr noundef %557, ptr noundef %559, i32 noundef %560) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

562:                                              ; preds = %533
  %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 = tail call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.29, ptr noundef nonnull %305, i64 noundef 12000) #13
  %566 = icmp eq i32 %565, -1
  br i1 %566, label %567, label %591

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

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

578:                                              ; preds = %574, %567
  br label %579

579:                                              ; preds = %574, %578
  %.str.5.sink1151 = phi ptr [ @.str.5, %578 ], [ @.str.2, %574 ]
  store i32 %569, ptr %568, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = tail call ptr @s2n_strerror(i32 noundef %583, ptr noundef nonnull @.str.4) #13
  %585 = load i32, ptr %582, align 4, !tbaa !5
  %586 = tail call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef nonnull @.str.4) #13
  %587 = load i32, ptr %568, align 4, !tbaa !5
  %588 = tail call ptr @strerror(i32 noundef %587) #13
  %589 = load i32, ptr %568, align 4, !tbaa !5
  %590 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef nonnull %.str.5.sink1151, i32 noundef %581, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %584, ptr noundef %586, ptr noundef %588, i32 noundef %589) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

591:                                              ; preds = %562
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = add nsw i32 %592, 1
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = tail call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %362, ptr noundef nonnull %277, ptr noundef nonnull %305) #13
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %596, label %620

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

603:                                              ; preds = %596
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = tail call i32 @fileno(ptr noundef %604) #13
  %606 = tail call i32 @isatty(i32 noundef %605) #13
  %.not914 = icmp eq i32 %606, 0
  br i1 %.not914, label %607, label %608

607:                                              ; preds = %603, %596
  br label %608

608:                                              ; preds = %603, %607
  %.str.5.sink1162 = phi ptr [ @.str.5, %607 ], [ @.str.2, %603 ]
  store i32 %598, ptr %597, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = tail call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.4) #13
  %614 = load i32, ptr %611, align 4, !tbaa !5
  %615 = tail call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.4) #13
  %616 = load i32, ptr %597, align 4, !tbaa !5
  %617 = tail call ptr @strerror(i32 noundef %616) #13
  %618 = load i32, ptr %597, align 4, !tbaa !5
  %619 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef nonnull %.str.5.sink1162, i32 noundef %610, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

620:                                              ; preds = %591
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = tail call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %333, ptr noundef nonnull %362) #13
  %624 = icmp eq i32 %623, -1
  br i1 %624, label %625, label %649

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

632:                                              ; preds = %625
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = tail call i32 @fileno(ptr noundef %633) #13
  %635 = tail call i32 @isatty(i32 noundef %634) #13
  %.not913 = icmp eq i32 %635, 0
  br i1 %.not913, label %636, label %637

636:                                              ; preds = %632, %625
  br label %637

637:                                              ; preds = %632, %636
  %.str.5.sink1173 = phi ptr [ @.str.5, %636 ], [ @.str.2, %632 ]
  store i32 %627, ptr %626, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = tail call ptr @s2n_strerror(i32 noundef %641, ptr noundef nonnull @.str.4) #13
  %643 = load i32, ptr %640, align 4, !tbaa !5
  %644 = tail call ptr @s2n_strerror_debug(i32 noundef %643, ptr noundef nonnull @.str.4) #13
  %645 = load i32, ptr %626, align 4, !tbaa !5
  %646 = tail call ptr @strerror(i32 noundef %645) #13
  %647 = load i32, ptr %626, align 4, !tbaa !5
  %648 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.5.sink1173, i32 noundef %639, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %642, ptr noundef %644, ptr noundef %646, i32 noundef %647) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

649:                                              ; preds = %620
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = add nsw i32 %650, 1
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = tail call i32 (...) @s2n_reset_tls13_in_test() #13
  %653 = icmp eq i32 %652, -1
  br i1 %653, label %654, label %678

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

661:                                              ; preds = %654
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = tail call i32 @fileno(ptr noundef %662) #13
  %664 = tail call i32 @isatty(i32 noundef %663) #13
  %.not912 = icmp eq i32 %664, 0
  br i1 %.not912, label %665, label %666

665:                                              ; preds = %661, %654
  br label %666

666:                                              ; preds = %661, %665
  %.str.5.sink1184 = phi ptr [ @.str.5, %665 ], [ @.str.2, %661 ]
  store i32 %656, ptr %655, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = tail call ptr @s2n_strerror(i32 noundef %670, ptr noundef nonnull @.str.4) #13
  %672 = load i32, ptr %669, align 4, !tbaa !5
  %673 = tail call ptr @s2n_strerror_debug(i32 noundef %672, ptr noundef nonnull @.str.4) #13
  %674 = load i32, ptr %655, align 4, !tbaa !5
  %675 = tail call ptr @strerror(i32 noundef %674) #13
  %676 = load i32, ptr %655, align 4, !tbaa !5
  %677 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef nonnull %.str.5.sink1184, i32 noundef %668, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %671, ptr noundef %673, ptr noundef %675, i32 noundef %676) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

678:                                              ; preds = %649
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr @test_count, align 4, !tbaa !5
  %681 = tail call ptr @s2n_connection_new(i32 noundef 0) #13
  %682 = icmp eq ptr %681, null
  br i1 %682, label %683, label %707

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

690:                                              ; preds = %683
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = tail call i32 @fileno(ptr noundef %691) #13
  %693 = tail call i32 @isatty(i32 noundef %692) #13
  %.not911 = icmp eq i32 %693, 0
  br i1 %.not911, label %694, label %695

694:                                              ; preds = %690, %683
  br label %695

695:                                              ; preds = %690, %694
  %.str.5.sink1195 = phi ptr [ @.str.5, %694 ], [ @.str.2, %690 ]
  store i32 %685, ptr %684, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = tail call ptr @s2n_strerror(i32 noundef %699, ptr noundef nonnull @.str.4) #13
  %701 = load i32, ptr %698, align 4, !tbaa !5
  %702 = tail call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef nonnull @.str.4) #13
  %703 = load i32, ptr %684, align 4, !tbaa !5
  %704 = tail call ptr @strerror(i32 noundef %703) #13
  %705 = load i32, ptr %684, align 4, !tbaa !5
  %706 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %696, ptr noundef nonnull %.str.5.sink1195, i32 noundef %697, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %700, ptr noundef %702, ptr noundef %704, i32 noundef %705) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

707:                                              ; preds = %678
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %681, ptr noundef nonnull %333) #13
  %711 = icmp eq i32 %710, -1
  br i1 %711, label %712, label %736

712:                                              ; preds = %707
  %713 = tail call ptr @__errno_location() #14
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = tail call i32 @s2n_print_stacktrace(ptr noundef %715) #13
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %719, label %723

719:                                              ; preds = %712
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = tail call i32 @fileno(ptr noundef %720) #13
  %722 = tail call i32 @isatty(i32 noundef %721) #13
  %.not910 = icmp eq i32 %722, 0
  br i1 %.not910, label %723, label %724

723:                                              ; preds = %719, %712
  br label %724

724:                                              ; preds = %719, %723
  %.str.5.sink1206 = phi ptr [ @.str.5, %723 ], [ @.str.2, %719 ]
  store i32 %714, ptr %713, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = tail call ptr @s2n_strerror(i32 noundef %728, ptr noundef nonnull @.str.4) #13
  %730 = load i32, ptr %727, align 4, !tbaa !5
  %731 = tail call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef nonnull @.str.4) #13
  %732 = load i32, ptr %713, align 4, !tbaa !5
  %733 = tail call ptr @strerror(i32 noundef %732) #13
  %734 = load i32, ptr %713, align 4, !tbaa !5
  %735 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.5.sink1206, i32 noundef %726, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %729, ptr noundef %731, ptr noundef %733, i32 noundef %734) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

736:                                              ; preds = %707
  %737 = getelementptr inbounds i8, ptr %681, i64 217
  store i8 20, ptr %737, align 1, !tbaa !15
  %738 = getelementptr inbounds i8, ptr %681, i64 218
  store i8 33, ptr %738, align 2, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %3) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(176) %3, ptr noundef nonnull align 16 dereferenceable(176) @__const.main.sslv2_client_hello, i64 176, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #13
  store ptr %3, ptr %4, align 8, !tbaa !43
  %739 = getelementptr inbounds i8, ptr %4, i64 8
  store i32 176, ptr %739, align 8, !tbaa !44
  %740 = getelementptr inbounds i8, ptr %4, i64 12
  store i32 0, ptr %740, align 4, !tbaa !45
  %741 = getelementptr inbounds i8, ptr %4, i64 16
  store i8 0, ptr %741, align 8
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = add nsw i32 %742, 1
  store i32 %743, ptr @test_count, align 4, !tbaa !5
  %744 = getelementptr inbounds i8, ptr %681, i64 2016
  %745 = call i32 @s2n_stuffer_write(ptr noundef nonnull %744, ptr noundef nonnull %4) #13
  %746 = icmp eq i32 %745, -1
  br i1 %746, label %747, label %771

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

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

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

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

771:                                              ; preds = %736
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = add nsw i32 %772, 1
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %681) #13
  %775 = icmp eq i32 %774, -1
  br i1 %775, label %776, label %800

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

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

787:                                              ; preds = %783, %776
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink1228 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %777, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %792, ptr noundef nonnull @.str.4) #13
  %794 = load i32, ptr %791, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef nonnull @.str.4) #13
  %796 = load i32, ptr %777, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #13
  %798 = load i32, ptr %777, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink1228, i32 noundef %790, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %793, ptr noundef %795, ptr noundef %797, i32 noundef %798) #15
  call void @exit(i32 noundef 1) #16
  unreachable

800:                                              ; preds = %771
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  store i32 %802, ptr @test_count, align 4, !tbaa !5
  %803 = getelementptr inbounds i8, ptr %681, i64 220
  %804 = load i8, ptr %803, align 4, !tbaa !46
  %805 = icmp eq i8 %804, 33
  br i1 %805, label %830, label %806

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

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

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

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

830:                                              ; preds = %800
  %831 = add nsw i32 %801, 2
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = load i8, ptr %738, align 2, !tbaa !42
  %833 = icmp eq i8 %832, 33
  br i1 %833, label %858, label %834

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

841:                                              ; preds = %834
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = call i32 @fileno(ptr noundef %842) #13
  %844 = call i32 @isatty(i32 noundef %843) #13
  %.not715 = icmp eq i32 %844, 0
  br i1 %.not715, label %845, label %846

845:                                              ; preds = %841, %834
  br label %846

846:                                              ; preds = %841, %845
  %.str.5.sink1250 = phi ptr [ @.str.5, %845 ], [ @.str.2, %841 ]
  store i32 %836, ptr %835, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror(i32 noundef %850, ptr noundef nonnull @.str.4) #13
  %852 = load i32, ptr %849, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef nonnull @.str.4) #13
  %854 = load i32, ptr %835, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #13
  %856 = load i32, ptr %835, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %847, ptr noundef nonnull %.str.5.sink1250, i32 noundef %848, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %851, ptr noundef %853, ptr noundef %855, i32 noundef %856) #15
  call void @exit(i32 noundef 1) #16
  unreachable

858:                                              ; preds = %830
  %859 = add nsw i32 %801, 3
  store i32 %859, ptr @test_count, align 4, !tbaa !5
  %860 = load i8, ptr %737, align 1, !tbaa !15
  %861 = icmp eq i8 %860, 20
  br i1 %861, label %886, label %862

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

869:                                              ; preds = %862
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = call i32 @fileno(ptr noundef %870) #13
  %872 = call i32 @isatty(i32 noundef %871) #13
  %.not716 = icmp eq i32 %872, 0
  br i1 %.not716, label %873, label %874

873:                                              ; preds = %869, %862
  br label %874

874:                                              ; preds = %869, %873
  %.str.5.sink1261 = phi ptr [ @.str.5, %873 ], [ @.str.2, %869 ]
  store i32 %864, ptr %863, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror(i32 noundef %878, ptr noundef nonnull @.str.4) #13
  %880 = load i32, ptr %877, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef nonnull @.str.4) #13
  %882 = load i32, ptr %863, align 4, !tbaa !5
  %883 = call ptr @strerror(i32 noundef %882) #13
  %884 = load i32, ptr %863, align 4, !tbaa !5
  %885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef nonnull %.str.5.sink1261, i32 noundef %876, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %879, ptr noundef %881, ptr noundef %883, i32 noundef %884) #15
  call void @exit(i32 noundef 1) #16
  unreachable

886:                                              ; preds = %858
  %887 = add nsw i32 %801, 4
  store i32 %887, ptr @test_count, align 4, !tbaa !5
  %888 = getelementptr inbounds i8, ptr %681, i64 3698
  %889 = load i8, ptr %888, align 2
  %890 = and i8 %889, 2
  %.not717 = icmp eq i8 %890, 0
  br i1 %.not717, label %891, label %915

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

898:                                              ; preds = %891
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = call i32 @fileno(ptr noundef %899) #13
  %901 = call i32 @isatty(i32 noundef %900) #13
  %.not718 = icmp eq i32 %901, 0
  br i1 %.not718, label %902, label %903

902:                                              ; preds = %898, %891
  br label %903

903:                                              ; preds = %898, %902
  %.str.5.sink1272 = phi ptr [ @.str.5, %902 ], [ @.str.2, %898 ]
  store i32 %893, ptr %892, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror(i32 noundef %907, ptr noundef nonnull @.str.4) #13
  %909 = load i32, ptr %906, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef nonnull @.str.4) #13
  %911 = load i32, ptr %892, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #13
  %913 = load i32, ptr %892, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %904, ptr noundef nonnull %.str.5.sink1272, i32 noundef %905, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %908, ptr noundef %910, ptr noundef %912, i32 noundef %913) #15
  call void @exit(i32 noundef 1) #16
  unreachable

915:                                              ; preds = %886
  %916 = call i32 @s2n_connection_free(ptr noundef nonnull %681) #13
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr @test_count, align 4, !tbaa !5
  %919 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %920 = icmp eq i32 %919, -1
  br i1 %920, label %921, label %945

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

928:                                              ; preds = %921
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @fileno(ptr noundef %929) #13
  %931 = call i32 @isatty(i32 noundef %930) #13
  %.not907 = icmp eq i32 %931, 0
  br i1 %.not907, label %932, label %933

932:                                              ; preds = %928, %921
  br label %933

933:                                              ; preds = %928, %932
  %.str.5.sink1283 = phi ptr [ @.str.5, %932 ], [ @.str.2, %928 ]
  store i32 %923, ptr %922, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %937 = load i32, ptr %936, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror(i32 noundef %937, ptr noundef nonnull @.str.4) #13
  %939 = load i32, ptr %936, align 4, !tbaa !5
  %940 = call ptr @s2n_strerror_debug(i32 noundef %939, ptr noundef nonnull @.str.4) #13
  %941 = load i32, ptr %922, align 4, !tbaa !5
  %942 = call ptr @strerror(i32 noundef %941) #13
  %943 = load i32, ptr %922, align 4, !tbaa !5
  %944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %934, ptr noundef nonnull %.str.5.sink1283, i32 noundef %935, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %938, ptr noundef %940, ptr noundef %942, i32 noundef %943) #15
  call void @exit(i32 noundef 1) #16
  unreachable

945:                                              ; preds = %915
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %3) #13
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr @test_count, align 4, !tbaa !5
  %948 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %949 = icmp eq ptr %948, null
  br i1 %949, label %950, label %974

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

957:                                              ; preds = %950
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @fileno(ptr noundef %958) #13
  %960 = call i32 @isatty(i32 noundef %959) #13
  %.not906 = icmp eq i32 %960, 0
  br i1 %.not906, label %961, label %962

961:                                              ; preds = %957, %950
  br label %962

962:                                              ; preds = %957, %961
  %.str.5.sink1294 = phi ptr [ @.str.5, %961 ], [ @.str.2, %957 ]
  store i32 %952, ptr %951, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror(i32 noundef %966, ptr noundef nonnull @.str.4) #13
  %968 = load i32, ptr %965, align 4, !tbaa !5
  %969 = call ptr @s2n_strerror_debug(i32 noundef %968, ptr noundef nonnull @.str.4) #13
  %970 = load i32, ptr %951, align 4, !tbaa !5
  %971 = call ptr @strerror(i32 noundef %970) #13
  %972 = load i32, ptr %951, align 4, !tbaa !5
  %973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %963, ptr noundef nonnull %.str.5.sink1294, i32 noundef %964, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %967, ptr noundef %969, ptr noundef %971, i32 noundef %972) #15
  call void @exit(i32 noundef 1) #16
  unreachable

974:                                              ; preds = %945
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = add nsw i32 %975, 1
  store i32 %976, ptr @test_count, align 4, !tbaa !5
  %977 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %978 = icmp eq ptr %977, null
  br i1 %978, label %979, label %1003

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

986:                                              ; preds = %979
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @fileno(ptr noundef %987) #13
  %989 = call i32 @isatty(i32 noundef %988) #13
  %.not905 = icmp eq i32 %989, 0
  br i1 %.not905, label %990, label %991

990:                                              ; preds = %986, %979
  br label %991

991:                                              ; preds = %986, %990
  %.str.5.sink1305 = phi ptr [ @.str.5, %990 ], [ @.str.2, %986 ]
  store i32 %981, ptr %980, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef nonnull @.str.4) #13
  %997 = load i32, ptr %994, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef nonnull @.str.4) #13
  %999 = load i32, ptr %980, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #13
  %1001 = load i32, ptr %980, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef nonnull %.str.5.sink1305, i32 noundef %993, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %996, ptr noundef %998, ptr noundef %1000, i32 noundef %1001) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1003:                                             ; preds = %974
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr @test_count, align 4, !tbaa !5
  %1006 = call i32 @s2n_connection_set_config(ptr noundef nonnull %948, ptr noundef nonnull %190) #13
  %1007 = icmp eq i32 %1006, -1
  br i1 %1007, label %1008, label %1032

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

1015:                                             ; preds = %1008
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #13
  %1018 = call i32 @isatty(i32 noundef %1017) #13
  %.not904 = icmp eq i32 %1018, 0
  br i1 %.not904, label %1019, label %1020

1019:                                             ; preds = %1015, %1008
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.5.sink1316 = phi ptr [ @.str.5, %1019 ], [ @.str.2, %1015 ]
  store i32 %1010, ptr %1009, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.4) #13
  %1026 = load i32, ptr %1023, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.4) #13
  %1028 = load i32, ptr %1009, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #13
  %1030 = load i32, ptr %1009, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.5.sink1316, i32 noundef %1022, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1032:                                             ; preds = %1003
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = call i32 @s2n_connection_set_config(ptr noundef nonnull %977, ptr noundef nonnull %190) #13
  %1036 = icmp eq i32 %1035, -1
  br i1 %1036, label %1037, label %1061

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

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #13
  %1047 = call i32 @isatty(i32 noundef %1046) #13
  %.not903 = icmp eq i32 %1047, 0
  br i1 %.not903, label %1048, label %1049

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.5.sink1327 = phi ptr [ @.str.5, %1048 ], [ @.str.2, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef nonnull @.str.4) #13
  %1055 = load i32, ptr %1052, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef nonnull @.str.4) #13
  %1057 = load i32, ptr %1038, align 4, !tbaa !5
  %1058 = call ptr @strerror(i32 noundef %1057) #13
  %1059 = load i32, ptr %1038, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.5.sink1327, i32 noundef %1051, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %1054, ptr noundef %1056, ptr noundef %1058, i32 noundef %1059) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1061:                                             ; preds = %1032
  %1062 = load i32, ptr @test_count, align 4, !tbaa !5
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr @test_count, align 4, !tbaa !5
  %1064 = call i32 @s2n_client_hello_send(ptr noundef nonnull %977) #13
  %1065 = icmp eq i32 %1064, -1
  br i1 %1065, label %1066, label %1090

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

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

1077:                                             ; preds = %1073, %1066
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.5.sink1338 = phi ptr [ @.str.5, %1077 ], [ @.str.2, %1073 ]
  store i32 %1068, ptr %1067, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef nonnull @.str.4) #13
  %1084 = load i32, ptr %1081, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef nonnull @.str.4) #13
  %1086 = load i32, ptr %1067, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #13
  %1088 = load i32, ptr %1067, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.5.sink1338, i32 noundef %1080, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1083, ptr noundef %1085, ptr noundef %1087, i32 noundef %1088) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1090:                                             ; preds = %1061
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = add nsw i32 %1091, 1
  store i32 %1092, ptr @test_count, align 4, !tbaa !5
  %1093 = getelementptr inbounds i8, ptr %977, i64 220
  %1094 = load i8, ptr %1093, align 4, !tbaa !46
  %1095 = icmp eq i8 %1094, 33
  br i1 %1095, label %1120, label %1096

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

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

1107:                                             ; preds = %1103, %1096
  br label %1108

1108:                                             ; preds = %1103, %1107
  %.str.5.sink1349 = phi ptr [ @.str.5, %1107 ], [ @.str.2, %1103 ]
  store i32 %1098, ptr %1097, align 4, !tbaa !5
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = load i32, ptr @test_count, align 4, !tbaa !5
  %1111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.4) #13
  %1114 = load i32, ptr %1111, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.4) #13
  %1116 = load i32, ptr %1097, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #13
  %1118 = load i32, ptr %1097, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1109, ptr noundef nonnull %.str.5.sink1349, i32 noundef %1110, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1120:                                             ; preds = %1090
  %1121 = add nsw i32 %1091, 2
  store i32 %1121, ptr @test_count, align 4, !tbaa !5
  %1122 = getelementptr inbounds i8, ptr %977, i64 218
  %1123 = load i8, ptr %1122, align 2, !tbaa !42
  %1124 = icmp eq i8 %1123, 33
  br i1 %1124, label %1149, label %1125

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

1132:                                             ; preds = %1125
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @fileno(ptr noundef %1133) #13
  %1135 = call i32 @isatty(i32 noundef %1134) #13
  %.not720 = icmp eq i32 %1135, 0
  br i1 %.not720, label %1136, label %1137

1136:                                             ; preds = %1132, %1125
  br label %1137

1137:                                             ; preds = %1132, %1136
  %.str.5.sink1360 = phi ptr [ @.str.5, %1136 ], [ @.str.2, %1132 ]
  store i32 %1127, ptr %1126, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef nonnull @.str.4) #13
  %1143 = load i32, ptr %1140, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef nonnull @.str.4) #13
  %1145 = load i32, ptr %1126, align 4, !tbaa !5
  %1146 = call ptr @strerror(i32 noundef %1145) #13
  %1147 = load i32, ptr %1126, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef nonnull %.str.5.sink1360, i32 noundef %1139, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1142, ptr noundef %1144, ptr noundef %1146, i32 noundef %1147) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1149:                                             ; preds = %1120
  %1150 = add nsw i32 %1091, 3
  store i32 %1150, ptr @test_count, align 4, !tbaa !5
  %1151 = getelementptr inbounds i8, ptr %977, i64 217
  %1152 = load i8, ptr %1151, align 1, !tbaa !15
  %1153 = icmp eq i8 %1152, 33
  br i1 %1153, label %1178, label %1154

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

1161:                                             ; preds = %1154
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @fileno(ptr noundef %1162) #13
  %1164 = call i32 @isatty(i32 noundef %1163) #13
  %.not721 = icmp eq i32 %1164, 0
  br i1 %.not721, label %1165, label %1166

1165:                                             ; preds = %1161, %1154
  br label %1166

1166:                                             ; preds = %1161, %1165
  %.str.5.sink1371 = phi ptr [ @.str.5, %1165 ], [ @.str.2, %1161 ]
  store i32 %1156, ptr %1155, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror(i32 noundef %1170, ptr noundef nonnull @.str.4) #13
  %1172 = load i32, ptr %1169, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef nonnull @.str.4) #13
  %1174 = load i32, ptr %1155, align 4, !tbaa !5
  %1175 = call ptr @strerror(i32 noundef %1174) #13
  %1176 = load i32, ptr %1155, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1167, ptr noundef nonnull %.str.5.sink1371, i32 noundef %1168, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1171, ptr noundef %1173, ptr noundef %1175, i32 noundef %1176) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1178:                                             ; preds = %1149
  %1179 = add nsw i32 %1091, 4
  store i32 %1179, ptr @test_count, align 4, !tbaa !5
  %1180 = getelementptr inbounds i8, ptr %948, i64 2016
  %1181 = getelementptr inbounds i8, ptr %977, i64 2016
  %1182 = call i32 @s2n_stuffer_write(ptr noundef nonnull %1180, ptr noundef nonnull %1181) #13
  %1183 = icmp eq i32 %1182, -1
  br i1 %1183, label %1184, label %1208

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

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

1195:                                             ; preds = %1191, %1184
  br label %1196

1196:                                             ; preds = %1191, %1195
  %.str.5.sink1382 = phi ptr [ @.str.5, %1195 ], [ @.str.2, %1191 ]
  store i32 %1186, ptr %1185, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = load i32, ptr @test_count, align 4, !tbaa !5
  %1199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror(i32 noundef %1200, ptr noundef nonnull @.str.4) #13
  %1202 = load i32, ptr %1199, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef nonnull @.str.4) #13
  %1204 = load i32, ptr %1185, align 4, !tbaa !5
  %1205 = call ptr @strerror(i32 noundef %1204) #13
  %1206 = load i32, ptr %1185, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef nonnull %.str.5.sink1382, i32 noundef %1198, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1201, ptr noundef %1203, ptr noundef %1205, i32 noundef %1206) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1208:                                             ; preds = %1178
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = add nsw i32 %1209, 1
  store i32 %1210, ptr @test_count, align 4, !tbaa !5
  %1211 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %948) #13
  %1212 = icmp eq i32 %1211, -1
  br i1 %1212, label %1213, label %1237

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

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

1224:                                             ; preds = %1220, %1213
  br label %1225

1225:                                             ; preds = %1220, %1224
  %.str.5.sink1393 = phi ptr [ @.str.5, %1224 ], [ @.str.2, %1220 ]
  store i32 %1215, ptr %1214, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @s2n_strerror(i32 noundef %1229, ptr noundef nonnull @.str.4) #13
  %1231 = load i32, ptr %1228, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror_debug(i32 noundef %1231, ptr noundef nonnull @.str.4) #13
  %1233 = load i32, ptr %1214, align 4, !tbaa !5
  %1234 = call ptr @strerror(i32 noundef %1233) #13
  %1235 = load i32, ptr %1214, align 4, !tbaa !5
  %1236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef nonnull %.str.5.sink1393, i32 noundef %1227, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1230, ptr noundef %1232, ptr noundef %1234, i32 noundef %1235) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1237:                                             ; preds = %1208
  %1238 = load i32, ptr @test_count, align 4, !tbaa !5
  %1239 = add nsw i32 %1238, 1
  store i32 %1239, ptr @test_count, align 4, !tbaa !5
  %1240 = getelementptr inbounds i8, ptr %948, i64 219
  %1241 = load i8, ptr %1240, align 1, !tbaa !47
  %1242 = icmp eq i8 %1241, 33
  br i1 %1242, label %1267, label %1243

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

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

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

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

1267:                                             ; preds = %1237
  %1268 = add nsw i32 %1238, 2
  store i32 %1268, ptr @test_count, align 4, !tbaa !5
  %1269 = getelementptr inbounds i8, ptr %948, i64 220
  %1270 = load i8, ptr %1269, align 4, !tbaa !46
  %1271 = icmp eq i8 %1270, 33
  br i1 %1271, label %1296, label %1272

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

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

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

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

1296:                                             ; preds = %1267
  %1297 = add nsw i32 %1238, 3
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = getelementptr inbounds i8, ptr %948, i64 218
  %1299 = load i8, ptr %1298, align 2, !tbaa !42
  %1300 = icmp eq i8 %1299, 33
  br i1 %1300, label %1325, label %1301

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

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

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

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

1325:                                             ; preds = %1296
  %1326 = call i32 @s2n_connection_free(ptr noundef nonnull %948) #13
  %1327 = call i32 @s2n_connection_free(ptr noundef nonnull %977) #13
  %1328 = load i32, ptr @test_count, align 4, !tbaa !5
  %1329 = add nsw i32 %1328, 1
  store i32 %1329, ptr @test_count, align 4, !tbaa !5
  %1330 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %1331 = icmp eq i32 %1330, -1
  br i1 %1331, label %1332, label %1356

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

1339:                                             ; preds = %1332
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = call i32 @fileno(ptr noundef %1340) #13
  %1342 = call i32 @isatty(i32 noundef %1341) #13
  %.not899 = icmp eq i32 %1342, 0
  br i1 %.not899, label %1343, label %1344

1343:                                             ; preds = %1339, %1332
  br label %1344

1344:                                             ; preds = %1339, %1343
  %.str.5.sink1437 = phi ptr [ @.str.5, %1343 ], [ @.str.2, %1339 ]
  store i32 %1334, ptr %1333, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = load i32, ptr @test_count, align 4, !tbaa !5
  %1347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call ptr @s2n_strerror(i32 noundef %1348, ptr noundef nonnull @.str.4) #13
  %1350 = load i32, ptr %1347, align 4, !tbaa !5
  %1351 = call ptr @s2n_strerror_debug(i32 noundef %1350, ptr noundef nonnull @.str.4) #13
  %1352 = load i32, ptr %1333, align 4, !tbaa !5
  %1353 = call ptr @strerror(i32 noundef %1352) #13
  %1354 = load i32, ptr %1333, align 4, !tbaa !5
  %1355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1345, ptr noundef nonnull %.str.5.sink1437, i32 noundef %1346, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1349, ptr noundef %1351, ptr noundef %1353, i32 noundef %1354) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1356:                                             ; preds = %1325
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = add nsw i32 %1357, 1
  store i32 %1358, ptr @test_count, align 4, !tbaa !5
  %1359 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %1360 = icmp eq ptr %1359, null
  br i1 %1360, label %1361, label %1385

1361:                                             ; preds = %1356
  %1362 = tail call ptr @__errno_location() #14
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @s2n_print_stacktrace(ptr noundef %1364) #13
  %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 = %1361
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @fileno(ptr noundef %1369) #13
  %1371 = call i32 @isatty(i32 noundef %1370) #13
  %.not898 = icmp eq i32 %1371, 0
  br i1 %.not898, label %1372, label %1373

1372:                                             ; preds = %1368, %1361
  br label %1373

1373:                                             ; preds = %1368, %1372
  %.str.5.sink1448 = phi ptr [ @.str.5, %1372 ], [ @.str.2, %1368 ]
  store i32 %1363, ptr %1362, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror(i32 noundef %1377, ptr noundef nonnull @.str.4) #13
  %1379 = load i32, ptr %1376, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef nonnull @.str.4) #13
  %1381 = load i32, ptr %1362, align 4, !tbaa !5
  %1382 = call ptr @strerror(i32 noundef %1381) #13
  %1383 = load i32, ptr %1362, align 4, !tbaa !5
  %1384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1374, ptr noundef nonnull %.str.5.sink1448, i32 noundef %1375, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1378, ptr noundef %1380, ptr noundef %1382, i32 noundef %1383) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1385:                                             ; preds = %1356
  %1386 = load i32, ptr @test_count, align 4, !tbaa !5
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr @test_count, align 4, !tbaa !5
  %1388 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1389 = icmp eq ptr %1388, null
  br i1 %1389, label %1390, label %1414

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

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

1401:                                             ; preds = %1397, %1390
  br label %1402

1402:                                             ; preds = %1397, %1401
  %.str.5.sink1459 = phi ptr [ @.str.5, %1401 ], [ @.str.2, %1397 ]
  store i32 %1392, ptr %1391, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef nonnull @.str.4) #13
  %1408 = load i32, ptr %1405, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef nonnull @.str.4) #13
  %1410 = load i32, ptr %1391, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #13
  %1412 = load i32, ptr %1391, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef nonnull %.str.5.sink1459, i32 noundef %1404, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i32 noundef %1412) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1414:                                             ; preds = %1385
  %1415 = load i32, ptr @test_count, align 4, !tbaa !5
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr @test_count, align 4, !tbaa !5
  %1417 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1359, ptr noundef nonnull %190) #13
  %1418 = icmp eq i32 %1417, -1
  br i1 %1418, label %1419, label %1443

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

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

1430:                                             ; preds = %1426, %1419
  br label %1431

1431:                                             ; preds = %1426, %1430
  %.str.5.sink1470 = phi ptr [ @.str.5, %1430 ], [ @.str.2, %1426 ]
  store i32 %1421, ptr %1420, align 4, !tbaa !5
  %1432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1433 = load i32, ptr @test_count, align 4, !tbaa !5
  %1434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror(i32 noundef %1435, ptr noundef nonnull @.str.4) #13
  %1437 = load i32, ptr %1434, align 4, !tbaa !5
  %1438 = call ptr @s2n_strerror_debug(i32 noundef %1437, ptr noundef nonnull @.str.4) #13
  %1439 = load i32, ptr %1420, align 4, !tbaa !5
  %1440 = call ptr @strerror(i32 noundef %1439) #13
  %1441 = load i32, ptr %1420, align 4, !tbaa !5
  %1442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1432, ptr noundef nonnull %.str.5.sink1470, i32 noundef %1433, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %1436, ptr noundef %1438, ptr noundef %1440, i32 noundef %1441) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1443:                                             ; preds = %1414
  %1444 = load i32, ptr @test_count, align 4, !tbaa !5
  %1445 = add nsw i32 %1444, 1
  store i32 %1445, ptr @test_count, align 4, !tbaa !5
  %1446 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1388, ptr noundef nonnull %190) #13
  %1447 = icmp eq i32 %1446, -1
  br i1 %1447, label %1448, label %1472

1448:                                             ; preds = %1443
  %1449 = tail call ptr @__errno_location() #14
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @s2n_print_stacktrace(ptr noundef %1451) #13
  %1453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1454 = trunc nuw i8 %1453 to i1
  br i1 %1454, label %1455, label %1459

1455:                                             ; preds = %1448
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = call i32 @fileno(ptr noundef %1456) #13
  %1458 = call i32 @isatty(i32 noundef %1457) #13
  %.not895 = icmp eq i32 %1458, 0
  br i1 %.not895, label %1459, label %1460

1459:                                             ; preds = %1455, %1448
  br label %1460

1460:                                             ; preds = %1455, %1459
  %.str.5.sink1481 = phi ptr [ @.str.5, %1459 ], [ @.str.2, %1455 ]
  store i32 %1450, ptr %1449, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.4) #13
  %1466 = load i32, ptr %1463, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.4) #13
  %1468 = load i32, ptr %1449, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #13
  %1470 = load i32, ptr %1449, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef nonnull %.str.5.sink1481, i32 noundef %1462, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1472:                                             ; preds = %1443
  %1473 = load i32, ptr @test_count, align 4, !tbaa !5
  %1474 = add nsw i32 %1473, 1
  store i32 %1474, ptr @test_count, align 4, !tbaa !5
  %1475 = call i32 @s2n_client_hello_send(ptr noundef nonnull %1388) #13
  %1476 = icmp eq i32 %1475, -1
  br i1 %1476, label %1477, label %1501

1477:                                             ; preds = %1472
  %1478 = tail call ptr @__errno_location() #14
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @s2n_print_stacktrace(ptr noundef %1480) #13
  %1482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1483 = trunc nuw i8 %1482 to i1
  br i1 %1483, label %1484, label %1488

1484:                                             ; preds = %1477
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = call i32 @fileno(ptr noundef %1485) #13
  %1487 = call i32 @isatty(i32 noundef %1486) #13
  %.not894 = icmp eq i32 %1487, 0
  br i1 %.not894, label %1488, label %1489

1488:                                             ; preds = %1484, %1477
  br label %1489

1489:                                             ; preds = %1484, %1488
  %.str.5.sink1492 = phi ptr [ @.str.5, %1488 ], [ @.str.2, %1484 ]
  store i32 %1479, ptr %1478, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror(i32 noundef %1493, ptr noundef nonnull @.str.4) #13
  %1495 = load i32, ptr %1492, align 4, !tbaa !5
  %1496 = call ptr @s2n_strerror_debug(i32 noundef %1495, ptr noundef nonnull @.str.4) #13
  %1497 = load i32, ptr %1478, align 4, !tbaa !5
  %1498 = call ptr @strerror(i32 noundef %1497) #13
  %1499 = load i32, ptr %1478, align 4, !tbaa !5
  %1500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1490, ptr noundef nonnull %.str.5.sink1492, i32 noundef %1491, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1494, ptr noundef %1496, ptr noundef %1498, i32 noundef %1499) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1501:                                             ; preds = %1472
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = add nsw i32 %1502, 1
  store i32 %1503, ptr @test_count, align 4, !tbaa !5
  %1504 = getelementptr inbounds i8, ptr %1388, i64 220
  %1505 = load i8, ptr %1504, align 4, !tbaa !46
  %1506 = icmp eq i8 %1505, 33
  br i1 %1506, label %1531, label %1507

1507:                                             ; preds = %1501
  %1508 = tail call ptr @__errno_location() #14
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @s2n_print_stacktrace(ptr noundef %1510) #13
  %1512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1513 = trunc nuw i8 %1512 to i1
  br i1 %1513, label %1514, label %1518

1514:                                             ; preds = %1507
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = call i32 @fileno(ptr noundef %1515) #13
  %1517 = call i32 @isatty(i32 noundef %1516) #13
  %.not725 = icmp eq i32 %1517, 0
  br i1 %.not725, label %1518, label %1519

1518:                                             ; preds = %1514, %1507
  br label %1519

1519:                                             ; preds = %1514, %1518
  %.str.5.sink1503 = phi ptr [ @.str.5, %1518 ], [ @.str.2, %1514 ]
  store i32 %1509, ptr %1508, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1523, ptr noundef nonnull @.str.4) #13
  %1525 = load i32, ptr %1522, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef nonnull @.str.4) #13
  %1527 = load i32, ptr %1508, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #13
  %1529 = load i32, ptr %1508, align 4, !tbaa !5
  %1530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef nonnull %.str.5.sink1503, i32 noundef %1521, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1524, ptr noundef %1526, ptr noundef %1528, i32 noundef %1529) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1531:                                             ; preds = %1501
  %1532 = add nsw i32 %1502, 2
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = getelementptr inbounds i8, ptr %1388, i64 218
  %1534 = load i8, ptr %1533, align 2, !tbaa !42
  %1535 = icmp eq i8 %1534, 33
  br i1 %1535, label %1560, label %1536

1536:                                             ; preds = %1531
  %1537 = tail call ptr @__errno_location() #14
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @s2n_print_stacktrace(ptr noundef %1539) #13
  %1541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1542 = trunc nuw i8 %1541 to i1
  br i1 %1542, label %1543, label %1547

1543:                                             ; preds = %1536
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @fileno(ptr noundef %1544) #13
  %1546 = call i32 @isatty(i32 noundef %1545) #13
  %.not726 = icmp eq i32 %1546, 0
  br i1 %.not726, label %1547, label %1548

1547:                                             ; preds = %1543, %1536
  br label %1548

1548:                                             ; preds = %1543, %1547
  %.str.5.sink1514 = phi ptr [ @.str.5, %1547 ], [ @.str.2, %1543 ]
  store i32 %1538, ptr %1537, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef nonnull @.str.4) #13
  %1554 = load i32, ptr %1551, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror_debug(i32 noundef %1554, ptr noundef nonnull @.str.4) #13
  %1556 = load i32, ptr %1537, align 4, !tbaa !5
  %1557 = call ptr @strerror(i32 noundef %1556) #13
  %1558 = load i32, ptr %1537, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef nonnull %.str.5.sink1514, i32 noundef %1550, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1553, ptr noundef %1555, ptr noundef %1557, i32 noundef %1558) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1560:                                             ; preds = %1531
  %1561 = add nsw i32 %1502, 3
  store i32 %1561, ptr @test_count, align 4, !tbaa !5
  %1562 = getelementptr inbounds i8, ptr %1388, i64 217
  %1563 = load i8, ptr %1562, align 1, !tbaa !15
  %1564 = icmp eq i8 %1563, 33
  br i1 %1564, label %1589, label %1565

1565:                                             ; preds = %1560
  %1566 = tail call ptr @__errno_location() #14
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @s2n_print_stacktrace(ptr noundef %1568) #13
  %1570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1571 = trunc nuw i8 %1570 to i1
  br i1 %1571, label %1572, label %1576

1572:                                             ; preds = %1565
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = call i32 @fileno(ptr noundef %1573) #13
  %1575 = call i32 @isatty(i32 noundef %1574) #13
  %.not727 = icmp eq i32 %1575, 0
  br i1 %.not727, label %1576, label %1577

1576:                                             ; preds = %1572, %1565
  br label %1577

1577:                                             ; preds = %1572, %1576
  %.str.5.sink1525 = phi ptr [ @.str.5, %1576 ], [ @.str.2, %1572 ]
  store i32 %1567, ptr %1566, align 4, !tbaa !5
  %1578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1579 = load i32, ptr @test_count, align 4, !tbaa !5
  %1580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1581 = load i32, ptr %1580, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror(i32 noundef %1581, ptr noundef nonnull @.str.4) #13
  %1583 = load i32, ptr %1580, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror_debug(i32 noundef %1583, ptr noundef nonnull @.str.4) #13
  %1585 = load i32, ptr %1566, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #13
  %1587 = load i32, ptr %1566, align 4, !tbaa !5
  %1588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1578, ptr noundef nonnull %.str.5.sink1525, i32 noundef %1579, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1582, ptr noundef %1584, ptr noundef %1586, i32 noundef %1587) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1589:                                             ; preds = %1560
  %1590 = add nsw i32 %1502, 4
  store i32 %1590, ptr @test_count, align 4, !tbaa !5
  %1591 = getelementptr inbounds i8, ptr %1359, i64 2016
  %1592 = getelementptr inbounds i8, ptr %1388, i64 2016
  %1593 = call i32 @s2n_stuffer_write(ptr noundef nonnull %1591, ptr noundef nonnull %1592) #13
  %1594 = icmp eq i32 %1593, -1
  br i1 %1594, label %1595, label %1619

1595:                                             ; preds = %1589
  %1596 = tail call ptr @__errno_location() #14
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @s2n_print_stacktrace(ptr noundef %1598) #13
  %1600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1601 = trunc nuw i8 %1600 to i1
  br i1 %1601, label %1602, label %1606

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

1606:                                             ; preds = %1602, %1595
  br label %1607

1607:                                             ; preds = %1602, %1606
  %.str.5.sink1536 = phi ptr [ @.str.5, %1606 ], [ @.str.2, %1602 ]
  store i32 %1597, ptr %1596, align 4, !tbaa !5
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror(i32 noundef %1611, ptr noundef nonnull @.str.4) #13
  %1613 = load i32, ptr %1610, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror_debug(i32 noundef %1613, ptr noundef nonnull @.str.4) #13
  %1615 = load i32, ptr %1596, align 4, !tbaa !5
  %1616 = call ptr @strerror(i32 noundef %1615) #13
  %1617 = load i32, ptr %1596, align 4, !tbaa !5
  %1618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef nonnull %.str.5.sink1536, i32 noundef %1609, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1612, ptr noundef %1614, ptr noundef %1616, i32 noundef %1617) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1619:                                             ; preds = %1589
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = add nsw i32 %1620, 1
  store i32 %1621, ptr @test_count, align 4, !tbaa !5
  %1622 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %1359) #13
  %1623 = icmp eq i32 %1622, -1
  br i1 %1623, label %1624, label %1648

1624:                                             ; preds = %1619
  %1625 = tail call ptr @__errno_location() #14
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @s2n_print_stacktrace(ptr noundef %1627) #13
  %1629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1630 = trunc nuw i8 %1629 to i1
  br i1 %1630, label %1631, label %1635

1631:                                             ; preds = %1624
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @fileno(ptr noundef %1632) #13
  %1634 = call i32 @isatty(i32 noundef %1633) #13
  %.not892 = icmp eq i32 %1634, 0
  br i1 %.not892, label %1635, label %1636

1635:                                             ; preds = %1631, %1624
  br label %1636

1636:                                             ; preds = %1631, %1635
  %.str.5.sink1547 = phi ptr [ @.str.5, %1635 ], [ @.str.2, %1631 ]
  store i32 %1626, ptr %1625, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror(i32 noundef %1640, ptr noundef nonnull @.str.4) #13
  %1642 = load i32, ptr %1639, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef nonnull @.str.4) #13
  %1644 = load i32, ptr %1625, align 4, !tbaa !5
  %1645 = call ptr @strerror(i32 noundef %1644) #13
  %1646 = load i32, ptr %1625, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1637, ptr noundef nonnull %.str.5.sink1547, i32 noundef %1638, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1641, ptr noundef %1643, ptr noundef %1645, i32 noundef %1646) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1648:                                             ; preds = %1619
  %1649 = load i32, ptr @test_count, align 4, !tbaa !5
  %1650 = add nsw i32 %1649, 1
  store i32 %1650, ptr @test_count, align 4, !tbaa !5
  %1651 = getelementptr inbounds i8, ptr %1359, i64 219
  %1652 = load i8, ptr %1651, align 1, !tbaa !47
  %1653 = icmp eq i8 %1652, 33
  br i1 %1653, label %1678, label %1654

1654:                                             ; preds = %1648
  %1655 = tail call ptr @__errno_location() #14
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @s2n_print_stacktrace(ptr noundef %1657) #13
  %1659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1660 = trunc nuw i8 %1659 to i1
  br i1 %1660, label %1661, label %1665

1661:                                             ; preds = %1654
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @fileno(ptr noundef %1662) #13
  %1664 = call i32 @isatty(i32 noundef %1663) #13
  %.not728 = icmp eq i32 %1664, 0
  br i1 %.not728, label %1665, label %1666

1665:                                             ; preds = %1661, %1654
  br label %1666

1666:                                             ; preds = %1661, %1665
  %.str.5.sink1558 = phi ptr [ @.str.5, %1665 ], [ @.str.2, %1661 ]
  store i32 %1656, ptr %1655, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = load i32, ptr @test_count, align 4, !tbaa !5
  %1669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror(i32 noundef %1670, ptr noundef nonnull @.str.4) #13
  %1672 = load i32, ptr %1669, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror_debug(i32 noundef %1672, ptr noundef nonnull @.str.4) #13
  %1674 = load i32, ptr %1655, align 4, !tbaa !5
  %1675 = call ptr @strerror(i32 noundef %1674) #13
  %1676 = load i32, ptr %1655, align 4, !tbaa !5
  %1677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1667, ptr noundef nonnull %.str.5.sink1558, i32 noundef %1668, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1671, ptr noundef %1673, ptr noundef %1675, i32 noundef %1676) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1678:                                             ; preds = %1648
  %1679 = add nsw i32 %1649, 2
  store i32 %1679, ptr @test_count, align 4, !tbaa !5
  %1680 = getelementptr inbounds i8, ptr %1359, i64 220
  %1681 = load i8, ptr %1680, align 4, !tbaa !46
  %1682 = icmp eq i8 %1681, 33
  br i1 %1682, label %1707, label %1683

1683:                                             ; preds = %1678
  %1684 = tail call ptr @__errno_location() #14
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @s2n_print_stacktrace(ptr noundef %1686) #13
  %1688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1689 = trunc nuw i8 %1688 to i1
  br i1 %1689, label %1690, label %1694

1690:                                             ; preds = %1683
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @fileno(ptr noundef %1691) #13
  %1693 = call i32 @isatty(i32 noundef %1692) #13
  %.not729 = icmp eq i32 %1693, 0
  br i1 %.not729, label %1694, label %1695

1694:                                             ; preds = %1690, %1683
  br label %1695

1695:                                             ; preds = %1690, %1694
  %.str.5.sink1569 = phi ptr [ @.str.5, %1694 ], [ @.str.2, %1690 ]
  store i32 %1685, ptr %1684, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = load i32, ptr @test_count, align 4, !tbaa !5
  %1698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror(i32 noundef %1699, ptr noundef nonnull @.str.4) #13
  %1701 = load i32, ptr %1698, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror_debug(i32 noundef %1701, ptr noundef nonnull @.str.4) #13
  %1703 = load i32, ptr %1684, align 4, !tbaa !5
  %1704 = call ptr @strerror(i32 noundef %1703) #13
  %1705 = load i32, ptr %1684, align 4, !tbaa !5
  %1706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1696, ptr noundef nonnull %.str.5.sink1569, i32 noundef %1697, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1700, ptr noundef %1702, ptr noundef %1704, i32 noundef %1705) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1707:                                             ; preds = %1678
  %1708 = add nsw i32 %1649, 3
  store i32 %1708, ptr @test_count, align 4, !tbaa !5
  %1709 = getelementptr inbounds i8, ptr %1359, i64 218
  %1710 = load i8, ptr %1709, align 2, !tbaa !42
  %1711 = icmp eq i8 %1710, 33
  br i1 %1711, label %1736, label %1712

1712:                                             ; preds = %1707
  %1713 = tail call ptr @__errno_location() #14
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = call i32 @s2n_print_stacktrace(ptr noundef %1715) #13
  %1717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1718 = trunc nuw i8 %1717 to i1
  br i1 %1718, label %1719, label %1723

1719:                                             ; preds = %1712
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = call i32 @fileno(ptr noundef %1720) #13
  %1722 = call i32 @isatty(i32 noundef %1721) #13
  %.not730 = icmp eq i32 %1722, 0
  br i1 %.not730, label %1723, label %1724

1723:                                             ; preds = %1719, %1712
  br label %1724

1724:                                             ; preds = %1719, %1723
  %.str.5.sink1580 = phi ptr [ @.str.5, %1723 ], [ @.str.2, %1719 ]
  store i32 %1714, ptr %1713, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = load i32, ptr @test_count, align 4, !tbaa !5
  %1727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call ptr @s2n_strerror(i32 noundef %1728, ptr noundef nonnull @.str.4) #13
  %1730 = load i32, ptr %1727, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror_debug(i32 noundef %1730, ptr noundef nonnull @.str.4) #13
  %1732 = load i32, ptr %1713, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #13
  %1734 = load i32, ptr %1713, align 4, !tbaa !5
  %1735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1725, ptr noundef nonnull %.str.5.sink1580, i32 noundef %1726, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1729, ptr noundef %1731, ptr noundef %1733, i32 noundef %1734) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1736:                                             ; preds = %1707
  %1737 = add nsw i32 %1649, 4
  store i32 %1737, ptr @test_count, align 4, !tbaa !5
  %1738 = getelementptr inbounds i8, ptr %1359, i64 217
  %1739 = load i8, ptr %1738, align 1, !tbaa !15
  %1740 = icmp eq i8 %1739, 33
  br i1 %1740, label %1765, label %1741

1741:                                             ; preds = %1736
  %1742 = tail call ptr @__errno_location() #14
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @s2n_print_stacktrace(ptr noundef %1744) #13
  %1746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1747 = trunc nuw i8 %1746 to i1
  br i1 %1747, label %1748, label %1752

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #13
  %1751 = call i32 @isatty(i32 noundef %1750) #13
  %.not731 = icmp eq i32 %1751, 0
  br i1 %.not731, label %1752, label %1753

1752:                                             ; preds = %1748, %1741
  br label %1753

1753:                                             ; preds = %1748, %1752
  %.str.5.sink1591 = phi ptr [ @.str.5, %1752 ], [ @.str.2, %1748 ]
  store i32 %1743, ptr %1742, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #13
  %1759 = load i32, ptr %1756, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #13
  %1761 = load i32, ptr %1742, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #13
  %1763 = load i32, ptr %1742, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1754, ptr noundef nonnull %.str.5.sink1591, i32 noundef %1755, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1765:                                             ; preds = %1736
  %1766 = call i32 @s2n_connection_free(ptr noundef nonnull %1359) #13
  %1767 = call i32 @s2n_connection_free(ptr noundef nonnull %1388) #13
  %1768 = load i32, ptr @test_count, align 4, !tbaa !5
  %1769 = add nsw i32 %1768, 1
  store i32 %1769, ptr @test_count, align 4, !tbaa !5
  %1770 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %1771 = icmp eq i32 %1770, -1
  br i1 %1771, label %1772, label %.preheader.preheader._crit_edge

1772:                                             ; preds = %1765
  %1773 = tail call ptr @__errno_location() #14
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = call i32 @s2n_print_stacktrace(ptr noundef %1775) #13
  %1777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1778 = trunc nuw i8 %1777 to i1
  br i1 %1778, label %1779, label %1783

1779:                                             ; preds = %1772
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @fileno(ptr noundef %1780) #13
  %1782 = call i32 @isatty(i32 noundef %1781) #13
  %.not891 = icmp eq i32 %1782, 0
  br i1 %.not891, label %1783, label %1784

1783:                                             ; preds = %1779, %1772
  br label %1784

1784:                                             ; preds = %1779, %1783
  %.str.5.sink1602 = phi ptr [ @.str.5, %1783 ], [ @.str.2, %1779 ]
  store i32 %1774, ptr %1773, align 4, !tbaa !5
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = load i32, ptr @test_count, align 4, !tbaa !5
  %1787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror(i32 noundef %1788, ptr noundef nonnull @.str.4) #13
  %1790 = load i32, ptr %1787, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef nonnull @.str.4) #13
  %1792 = load i32, ptr %1773, align 4, !tbaa !5
  %1793 = call ptr @strerror(i32 noundef %1792) #13
  %1794 = load i32, ptr %1773, align 4, !tbaa !5
  %1795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1785, ptr noundef nonnull %.str.5.sink1602, i32 noundef %1786, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1789, ptr noundef %1791, ptr noundef %1793, i32 noundef %1794) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader.1:                                     ; preds = %2247
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %1797 = add nsw i32 %1796, 1
  store i32 %1797, ptr @test_count, align 4, !tbaa !5
  %1798 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %1799 = icmp eq i32 %1798, -1
  br i1 %1799, label %._crit_edge940, label %1800

1800:                                             ; preds = %.preheader.1
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = add nsw i32 %1801, 1
  store i32 %1802, ptr @test_count, align 4, !tbaa !5
  %1803 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %1804 = icmp eq ptr %1803, null
  br i1 %1804, label %1900, label %1805

1805:                                             ; preds = %1800
  %1806 = load i32, ptr @test_count, align 4, !tbaa !5
  %1807 = add nsw i32 %1806, 1
  store i32 %1807, ptr @test_count, align 4, !tbaa !5
  %1808 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1809 = icmp eq ptr %1808, null
  br i1 %1809, label %1929, label %1810

1810:                                             ; preds = %1805
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = add nsw i32 %1811, 1
  store i32 %1812, ptr @test_count, align 4, !tbaa !5
  %1813 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1803, ptr noundef nonnull %190) #13
  %1814 = icmp eq i32 %1813, -1
  br i1 %1814, label %1958, label %1815

1815:                                             ; preds = %1810
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = add nsw i32 %1816, 1
  store i32 %1817, ptr @test_count, align 4, !tbaa !5
  %1818 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1808, ptr noundef nonnull %190) #13
  %1819 = icmp eq i32 %1818, -1
  br i1 %1819, label %1987, label %1820

1820:                                             ; preds = %1815
  %1821 = getelementptr inbounds i8, ptr %1808, i64 218
  store i8 32, ptr %1821, align 2, !tbaa !42
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = add nsw i32 %1822, 1
  store i32 %1823, ptr @test_count, align 4, !tbaa !5
  %1824 = call i32 @s2n_client_hello_send(ptr noundef nonnull %1808) #13
  %1825 = icmp eq i32 %1824, -1
  br i1 %1825, label %2017, label %1826

1826:                                             ; preds = %1820
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr @test_count, align 4, !tbaa !5
  %1829 = getelementptr inbounds i8, ptr %1808, i64 217
  %1830 = load i8, ptr %1829, align 1, !tbaa !15
  %1831 = icmp eq i8 %1830, 32
  br i1 %1831, label %1832, label %2047

1832:                                             ; preds = %1826
  %1833 = add nsw i32 %1827, 2
  store i32 %1833, ptr @test_count, align 4, !tbaa !5
  %1834 = getelementptr inbounds i8, ptr %1803, i64 2016
  %1835 = getelementptr inbounds i8, ptr %1808, i64 2016
  %1836 = call i32 @s2n_stuffer_write(ptr noundef nonnull %1834, ptr noundef nonnull %1835) #13
  %1837 = icmp eq i32 %1836, -1
  br i1 %1837, label %2077, label %1838

1838:                                             ; preds = %1832
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = add nsw i32 %1839, 1
  store i32 %1840, ptr @test_count, align 4, !tbaa !5
  %1841 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %1803) #13
  %1842 = icmp eq i32 %1841, -1
  br i1 %1842, label %2106, label %1843

1843:                                             ; preds = %1838
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr @test_count, align 4, !tbaa !5
  %1846 = getelementptr inbounds i8, ptr %1803, i64 219
  %1847 = load i8, ptr %1846, align 1, !tbaa !47
  %1848 = icmp eq i8 %1847, 33
  br i1 %1848, label %1849, label %2136

1849:                                             ; preds = %1843
  %1850 = add nsw i32 %1844, 2
  store i32 %1850, ptr @test_count, align 4, !tbaa !5
  %1851 = getelementptr inbounds i8, ptr %1803, i64 220
  %1852 = load i8, ptr %1851, align 4, !tbaa !46
  %1853 = icmp eq i8 %1852, 32
  br i1 %1853, label %1854, label %2165

1854:                                             ; preds = %1849
  %1855 = add nsw i32 %1844, 3
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = getelementptr inbounds i8, ptr %1803, i64 218
  %1857 = load i8, ptr %1856, align 2, !tbaa !42
  %1858 = icmp eq i8 %1857, 32
  br i1 %1858, label %1859, label %2194

1859:                                             ; preds = %1854
  %1860 = add nsw i32 %1844, 4
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = getelementptr inbounds i8, ptr %1803, i64 217
  %1862 = load i8, ptr %1861, align 1, !tbaa !15
  %1863 = icmp eq i8 %1862, 32
  br i1 %1863, label %1864, label %2223

1864:                                             ; preds = %1859
  %1865 = call i32 @s2n_connection_free(ptr noundef nonnull %1803) #13
  %1866 = call i32 @s2n_connection_free(ptr noundef nonnull %1808) #13
  %1867 = load i32, ptr @test_count, align 4, !tbaa !5
  %1868 = add nsw i32 %1867, 1
  store i32 %1868, ptr @test_count, align 4, !tbaa !5
  %1869 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %1870 = icmp eq i32 %1869, -1
  br i1 %1870, label %2254, label %1871

1871:                                             ; preds = %1864
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = add nsw i32 %1872, 1
  store i32 %1873, ptr @test_count, align 4, !tbaa !5
  %1874 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1875 = icmp eq ptr %1874, null
  br i1 %1875, label %2278, label %2302

._crit_edge940:                                   ; preds = %.preheader.1
  %.pre941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = tail call ptr @__errno_location() #14
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %.pre941) #13
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %._crit_edge940
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #13
  %1884 = call i32 @isatty(i32 noundef %1883) #13
  %.not890 = icmp eq i32 %1884, 0
  br i1 %.not890, label %1885, label %1886

1885:                                             ; preds = %1881, %._crit_edge940
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.5.sink1613 = phi ptr [ @.str.5, %1885 ], [ @.str.2, %1881 ]
  store i32 %1877, ptr %1876, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef nonnull @.str.4) #13
  %1892 = load i32, ptr %1889, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror_debug(i32 noundef %1892, ptr noundef nonnull @.str.4) #13
  %1894 = load i32, ptr %1876, align 4, !tbaa !5
  %1895 = call ptr @strerror(i32 noundef %1894) #13
  %1896 = load i32, ptr %1876, align 4, !tbaa !5
  %1897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.5.sink1613, i32 noundef %1888, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1891, ptr noundef %1893, ptr noundef %1895, i32 noundef %1896) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader.preheader._crit_edge:                  ; preds = %1765
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  %.pre942 = add nsw i32 %.pre, 1
  store i32 %.pre942, ptr @test_count, align 4, !tbaa !5
  %1898 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %1899 = icmp eq ptr %1898, null
  br i1 %1899, label %1900, label %1924

1900:                                             ; preds = %1800, %.preheader.preheader._crit_edge
  %1901 = tail call ptr @__errno_location() #14
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = call i32 @s2n_print_stacktrace(ptr noundef %1903) #13
  %1905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1906 = trunc nuw i8 %1905 to i1
  br i1 %1906, label %1907, label %1911

1907:                                             ; preds = %1900
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = call i32 @fileno(ptr noundef %1908) #13
  %1910 = call i32 @isatty(i32 noundef %1909) #13
  %.not889 = icmp eq i32 %1910, 0
  br i1 %.not889, label %1911, label %1912

1911:                                             ; preds = %1907, %1900
  br label %1912

1912:                                             ; preds = %1907, %1911
  %.str.5.sink1624 = phi ptr [ @.str.5, %1911 ], [ @.str.2, %1907 ]
  store i32 %1902, ptr %1901, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror(i32 noundef %1916, ptr noundef nonnull @.str.4) #13
  %1918 = load i32, ptr %1915, align 4, !tbaa !5
  %1919 = call ptr @s2n_strerror_debug(i32 noundef %1918, ptr noundef nonnull @.str.4) #13
  %1920 = load i32, ptr %1901, align 4, !tbaa !5
  %1921 = call ptr @strerror(i32 noundef %1920) #13
  %1922 = load i32, ptr %1901, align 4, !tbaa !5
  %1923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1913, ptr noundef nonnull %.str.5.sink1624, i32 noundef %1914, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1917, ptr noundef %1919, ptr noundef %1921, i32 noundef %1922) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1924:                                             ; preds = %.preheader.preheader._crit_edge
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = add nsw i32 %1925, 1
  store i32 %1926, ptr @test_count, align 4, !tbaa !5
  %1927 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1928 = icmp eq ptr %1927, null
  br i1 %1928, label %1929, label %1953

1929:                                             ; preds = %1805, %1924
  %1930 = tail call ptr @__errno_location() #14
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = call i32 @s2n_print_stacktrace(ptr noundef %1932) #13
  %1934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1935 = trunc nuw i8 %1934 to i1
  br i1 %1935, label %1936, label %1940

1936:                                             ; preds = %1929
  %1937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1938 = call i32 @fileno(ptr noundef %1937) #13
  %1939 = call i32 @isatty(i32 noundef %1938) #13
  %.not888 = icmp eq i32 %1939, 0
  br i1 %.not888, label %1940, label %1941

1940:                                             ; preds = %1936, %1929
  br label %1941

1941:                                             ; preds = %1936, %1940
  %.str.5.sink1635 = phi ptr [ @.str.5, %1940 ], [ @.str.2, %1936 ]
  store i32 %1931, ptr %1930, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = load i32, ptr @test_count, align 4, !tbaa !5
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror(i32 noundef %1945, ptr noundef nonnull @.str.4) #13
  %1947 = load i32, ptr %1944, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef nonnull @.str.4) #13
  %1949 = load i32, ptr %1930, align 4, !tbaa !5
  %1950 = call ptr @strerror(i32 noundef %1949) #13
  %1951 = load i32, ptr %1930, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1942, ptr noundef nonnull %.str.5.sink1635, i32 noundef %1943, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1946, ptr noundef %1948, ptr noundef %1950, i32 noundef %1951) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1953:                                             ; preds = %1924
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr @test_count, align 4, !tbaa !5
  %1956 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1898, ptr noundef nonnull %190) #13
  %1957 = icmp eq i32 %1956, -1
  br i1 %1957, label %1958, label %1982

1958:                                             ; preds = %1810, %1953
  %1959 = tail call ptr @__errno_location() #14
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @s2n_print_stacktrace(ptr noundef %1961) #13
  %1963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1964 = trunc nuw i8 %1963 to i1
  br i1 %1964, label %1965, label %1969

1965:                                             ; preds = %1958
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = call i32 @fileno(ptr noundef %1966) #13
  %1968 = call i32 @isatty(i32 noundef %1967) #13
  %.not887 = icmp eq i32 %1968, 0
  br i1 %.not887, label %1969, label %1970

1969:                                             ; preds = %1965, %1958
  br label %1970

1970:                                             ; preds = %1965, %1969
  %.str.5.sink1646 = phi ptr [ @.str.5, %1969 ], [ @.str.2, %1965 ]
  store i32 %1960, ptr %1959, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef nonnull @.str.4) #13
  %1976 = load i32, ptr %1973, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef nonnull @.str.4) #13
  %1978 = load i32, ptr %1959, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #13
  %1980 = load i32, ptr %1959, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef nonnull %.str.5.sink1646, i32 noundef %1972, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1975, ptr noundef %1977, ptr noundef %1979, i32 noundef %1980) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1982:                                             ; preds = %1953
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1927, ptr noundef nonnull %190) #13
  %1986 = icmp eq i32 %1985, -1
  br i1 %1986, label %1987, label %2011

1987:                                             ; preds = %1815, %1982
  %1988 = tail call ptr @__errno_location() #14
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @s2n_print_stacktrace(ptr noundef %1990) #13
  %1992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1993 = trunc nuw i8 %1992 to i1
  br i1 %1993, label %1994, label %1998

1994:                                             ; preds = %1987
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @fileno(ptr noundef %1995) #13
  %1997 = call i32 @isatty(i32 noundef %1996) #13
  %.not886 = icmp eq i32 %1997, 0
  br i1 %.not886, label %1998, label %1999

1998:                                             ; preds = %1994, %1987
  br label %1999

1999:                                             ; preds = %1994, %1998
  %.str.5.sink1657 = phi ptr [ @.str.5, %1998 ], [ @.str.2, %1994 ]
  store i32 %1989, ptr %1988, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef nonnull @.str.4) #13
  %2005 = load i32, ptr %2002, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef nonnull @.str.4) #13
  %2007 = load i32, ptr %1988, align 4, !tbaa !5
  %2008 = call ptr @strerror(i32 noundef %2007) #13
  %2009 = load i32, ptr %1988, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef nonnull %.str.5.sink1657, i32 noundef %2001, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %2004, ptr noundef %2006, ptr noundef %2008, i32 noundef %2009) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2011:                                             ; preds = %1982
  %2012 = getelementptr inbounds i8, ptr %1927, i64 218
  store i8 32, ptr %2012, align 2, !tbaa !42
  %2013 = load i32, ptr @test_count, align 4, !tbaa !5
  %2014 = add nsw i32 %2013, 1
  store i32 %2014, ptr @test_count, align 4, !tbaa !5
  %2015 = call i32 @s2n_client_hello_send(ptr noundef nonnull %1927) #13
  %2016 = icmp eq i32 %2015, -1
  br i1 %2016, label %2017, label %2041

2017:                                             ; preds = %1820, %2011
  %2018 = tail call ptr @__errno_location() #14
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @s2n_print_stacktrace(ptr noundef %2020) #13
  %2022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2023 = trunc nuw i8 %2022 to i1
  br i1 %2023, label %2024, label %2028

2024:                                             ; preds = %2017
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @fileno(ptr noundef %2025) #13
  %2027 = call i32 @isatty(i32 noundef %2026) #13
  %.not885 = icmp eq i32 %2027, 0
  br i1 %.not885, label %2028, label %2029

2028:                                             ; preds = %2024, %2017
  br label %2029

2029:                                             ; preds = %2024, %2028
  %.str.5.sink1668 = phi ptr [ @.str.5, %2028 ], [ @.str.2, %2024 ]
  store i32 %2019, ptr %2018, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef nonnull @.str.4) #13
  %2035 = load i32, ptr %2032, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef nonnull @.str.4) #13
  %2037 = load i32, ptr %2018, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #13
  %2039 = load i32, ptr %2018, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef nonnull %.str.5.sink1668, i32 noundef %2031, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %2034, ptr noundef %2036, ptr noundef %2038, i32 noundef %2039) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2041:                                             ; preds = %2011
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = getelementptr inbounds i8, ptr %1927, i64 217
  %2045 = load i8, ptr %2044, align 1, !tbaa !15
  %2046 = icmp eq i8 %2045, 32
  br i1 %2046, label %2071, label %2047

2047:                                             ; preds = %1826, %2041
  %2048 = tail call ptr @__errno_location() #14
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @s2n_print_stacktrace(ptr noundef %2050) #13
  %2052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2053 = trunc nuw i8 %2052 to i1
  br i1 %2053, label %2054, label %2058

2054:                                             ; preds = %2047
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @fileno(ptr noundef %2055) #13
  %2057 = call i32 @isatty(i32 noundef %2056) #13
  %.not877 = icmp eq i32 %2057, 0
  br i1 %.not877, label %2058, label %2059

2058:                                             ; preds = %2054, %2047
  br label %2059

2059:                                             ; preds = %2054, %2058
  %.str.5.sink1679 = phi ptr [ @.str.5, %2058 ], [ @.str.2, %2054 ]
  store i32 %2049, ptr %2048, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror(i32 noundef %2063, ptr noundef nonnull @.str.4) #13
  %2065 = load i32, ptr %2062, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror_debug(i32 noundef %2065, ptr noundef nonnull @.str.4) #13
  %2067 = load i32, ptr %2048, align 4, !tbaa !5
  %2068 = call ptr @strerror(i32 noundef %2067) #13
  %2069 = load i32, ptr %2048, align 4, !tbaa !5
  %2070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef nonnull %.str.5.sink1679, i32 noundef %2061, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %2064, ptr noundef %2066, ptr noundef %2068, i32 noundef %2069) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2071:                                             ; preds = %2041
  %2072 = add nsw i32 %2042, 2
  store i32 %2072, ptr @test_count, align 4, !tbaa !5
  %2073 = getelementptr inbounds i8, ptr %1898, i64 2016
  %2074 = getelementptr inbounds i8, ptr %1927, i64 2016
  %2075 = call i32 @s2n_stuffer_write(ptr noundef nonnull %2073, ptr noundef nonnull %2074) #13
  %2076 = icmp eq i32 %2075, -1
  br i1 %2076, label %2077, label %2101

2077:                                             ; preds = %1832, %2071
  %2078 = tail call ptr @__errno_location() #14
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @s2n_print_stacktrace(ptr noundef %2080) #13
  %2082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2083 = trunc nuw i8 %2082 to i1
  br i1 %2083, label %2084, label %2088

2084:                                             ; preds = %2077
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @fileno(ptr noundef %2085) #13
  %2087 = call i32 @isatty(i32 noundef %2086) #13
  %.not884 = icmp eq i32 %2087, 0
  br i1 %.not884, label %2088, label %2089

2088:                                             ; preds = %2084, %2077
  br label %2089

2089:                                             ; preds = %2084, %2088
  %.str.5.sink1690 = phi ptr [ @.str.5, %2088 ], [ @.str.2, %2084 ]
  store i32 %2079, ptr %2078, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @s2n_strerror(i32 noundef %2093, ptr noundef nonnull @.str.4) #13
  %2095 = load i32, ptr %2092, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror_debug(i32 noundef %2095, ptr noundef nonnull @.str.4) #13
  %2097 = load i32, ptr %2078, align 4, !tbaa !5
  %2098 = call ptr @strerror(i32 noundef %2097) #13
  %2099 = load i32, ptr %2078, align 4, !tbaa !5
  %2100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef nonnull %.str.5.sink1690, i32 noundef %2091, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %2094, ptr noundef %2096, ptr noundef %2098, i32 noundef %2099) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2101:                                             ; preds = %2071
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = add nsw i32 %2102, 1
  store i32 %2103, ptr @test_count, align 4, !tbaa !5
  %2104 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %1898) #13
  %2105 = icmp eq i32 %2104, -1
  br i1 %2105, label %2106, label %2130

2106:                                             ; preds = %1838, %2101
  %2107 = tail call ptr @__errno_location() #14
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = call i32 @s2n_print_stacktrace(ptr noundef %2109) #13
  %2111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2112 = trunc nuw i8 %2111 to i1
  br i1 %2112, label %2113, label %2117

2113:                                             ; preds = %2106
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = call i32 @fileno(ptr noundef %2114) #13
  %2116 = call i32 @isatty(i32 noundef %2115) #13
  %.not883 = icmp eq i32 %2116, 0
  br i1 %.not883, label %2117, label %2118

2117:                                             ; preds = %2113, %2106
  br label %2118

2118:                                             ; preds = %2113, %2117
  %.str.5.sink1701 = phi ptr [ @.str.5, %2117 ], [ @.str.2, %2113 ]
  store i32 %2108, ptr %2107, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror(i32 noundef %2122, ptr noundef nonnull @.str.4) #13
  %2124 = load i32, ptr %2121, align 4, !tbaa !5
  %2125 = call ptr @s2n_strerror_debug(i32 noundef %2124, ptr noundef nonnull @.str.4) #13
  %2126 = load i32, ptr %2107, align 4, !tbaa !5
  %2127 = call ptr @strerror(i32 noundef %2126) #13
  %2128 = load i32, ptr %2107, align 4, !tbaa !5
  %2129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2119, ptr noundef nonnull %.str.5.sink1701, i32 noundef %2120, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %2123, ptr noundef %2125, ptr noundef %2127, i32 noundef %2128) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2130:                                             ; preds = %2101
  %2131 = load i32, ptr @test_count, align 4, !tbaa !5
  %2132 = add nsw i32 %2131, 1
  store i32 %2132, ptr @test_count, align 4, !tbaa !5
  %2133 = getelementptr inbounds i8, ptr %1898, i64 219
  %2134 = load i8, ptr %2133, align 1, !tbaa !47
  %2135 = icmp eq i8 %2134, 33
  br i1 %2135, label %2160, label %2136

2136:                                             ; preds = %1843, %2130
  %2137 = tail call ptr @__errno_location() #14
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @s2n_print_stacktrace(ptr noundef %2139) #13
  %2141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2142 = trunc nuw i8 %2141 to i1
  br i1 %2142, label %2143, label %2147

2143:                                             ; preds = %2136
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @fileno(ptr noundef %2144) #13
  %2146 = call i32 @isatty(i32 noundef %2145) #13
  %.not878 = icmp eq i32 %2146, 0
  br i1 %.not878, label %2147, label %2148

2147:                                             ; preds = %2143, %2136
  br label %2148

2148:                                             ; preds = %2143, %2147
  %.str.5.sink1712 = phi ptr [ @.str.5, %2147 ], [ @.str.2, %2143 ]
  store i32 %2138, ptr %2137, align 4, !tbaa !5
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = load i32, ptr @test_count, align 4, !tbaa !5
  %2151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror(i32 noundef %2152, ptr noundef nonnull @.str.4) #13
  %2154 = load i32, ptr %2151, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef nonnull @.str.4) #13
  %2156 = load i32, ptr %2137, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #13
  %2158 = load i32, ptr %2137, align 4, !tbaa !5
  %2159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2149, ptr noundef nonnull %.str.5.sink1712, i32 noundef %2150, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %2153, ptr noundef %2155, ptr noundef %2157, i32 noundef %2158) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2160:                                             ; preds = %2130
  %2161 = add nsw i32 %2131, 2
  store i32 %2161, ptr @test_count, align 4, !tbaa !5
  %2162 = getelementptr inbounds i8, ptr %1898, i64 220
  %2163 = load i8, ptr %2162, align 4, !tbaa !46
  %2164 = icmp eq i8 %2163, 32
  br i1 %2164, label %2189, label %2165

2165:                                             ; preds = %1849, %2160
  %2166 = tail call ptr @__errno_location() #14
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @s2n_print_stacktrace(ptr noundef %2168) #13
  %2170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2171 = trunc nuw i8 %2170 to i1
  br i1 %2171, label %2172, label %2176

2172:                                             ; preds = %2165
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @fileno(ptr noundef %2173) #13
  %2175 = call i32 @isatty(i32 noundef %2174) #13
  %.not879 = icmp eq i32 %2175, 0
  br i1 %.not879, label %2176, label %2177

2176:                                             ; preds = %2172, %2165
  br label %2177

2177:                                             ; preds = %2172, %2176
  %.str.5.sink1723 = phi ptr [ @.str.5, %2176 ], [ @.str.2, %2172 ]
  store i32 %2167, ptr %2166, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef nonnull @.str.4) #13
  %2183 = load i32, ptr %2180, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef nonnull @.str.4) #13
  %2185 = load i32, ptr %2166, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #13
  %2187 = load i32, ptr %2166, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef nonnull %.str.5.sink1723, i32 noundef %2179, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %2182, ptr noundef %2184, ptr noundef %2186, i32 noundef %2187) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2189:                                             ; preds = %2160
  %2190 = add nsw i32 %2131, 3
  store i32 %2190, ptr @test_count, align 4, !tbaa !5
  %2191 = getelementptr inbounds i8, ptr %1898, i64 218
  %2192 = load i8, ptr %2191, align 2, !tbaa !42
  %2193 = icmp eq i8 %2192, 32
  br i1 %2193, label %2218, label %2194

2194:                                             ; preds = %1854, %2189
  %2195 = tail call ptr @__errno_location() #14
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = call i32 @s2n_print_stacktrace(ptr noundef %2197) #13
  %2199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2200 = trunc nuw i8 %2199 to i1
  br i1 %2200, label %2201, label %2205

2201:                                             ; preds = %2194
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = call i32 @fileno(ptr noundef %2202) #13
  %2204 = call i32 @isatty(i32 noundef %2203) #13
  %.not880 = icmp eq i32 %2204, 0
  br i1 %.not880, label %2205, label %2206

2205:                                             ; preds = %2201, %2194
  br label %2206

2206:                                             ; preds = %2201, %2205
  %.str.5.sink1734 = phi ptr [ @.str.5, %2205 ], [ @.str.2, %2201 ]
  store i32 %2196, ptr %2195, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef nonnull @.str.4) #13
  %2212 = load i32, ptr %2209, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef nonnull @.str.4) #13
  %2214 = load i32, ptr %2195, align 4, !tbaa !5
  %2215 = call ptr @strerror(i32 noundef %2214) #13
  %2216 = load i32, ptr %2195, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2207, ptr noundef nonnull %.str.5.sink1734, i32 noundef %2208, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %2211, ptr noundef %2213, ptr noundef %2215, i32 noundef %2216) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2218:                                             ; preds = %2189
  %2219 = add nsw i32 %2131, 4
  store i32 %2219, ptr @test_count, align 4, !tbaa !5
  %2220 = getelementptr inbounds i8, ptr %1898, i64 217
  %2221 = load i8, ptr %2220, align 1, !tbaa !15
  %2222 = icmp eq i8 %2221, 32
  br i1 %2222, label %2247, label %2223

2223:                                             ; preds = %1859, %2218
  %2224 = tail call ptr @__errno_location() #14
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @s2n_print_stacktrace(ptr noundef %2226) #13
  %2228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2229 = trunc nuw i8 %2228 to i1
  br i1 %2229, label %2230, label %2234

2230:                                             ; preds = %2223
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = call i32 @fileno(ptr noundef %2231) #13
  %2233 = call i32 @isatty(i32 noundef %2232) #13
  %.not881 = icmp eq i32 %2233, 0
  br i1 %.not881, label %2234, label %2235

2234:                                             ; preds = %2230, %2223
  br label %2235

2235:                                             ; preds = %2230, %2234
  %.str.5.sink1745 = phi ptr [ @.str.5, %2234 ], [ @.str.2, %2230 ]
  store i32 %2225, ptr %2224, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = load i32, ptr @test_count, align 4, !tbaa !5
  %2238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2239 = load i32, ptr %2238, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror(i32 noundef %2239, ptr noundef nonnull @.str.4) #13
  %2241 = load i32, ptr %2238, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef nonnull @.str.4) #13
  %2243 = load i32, ptr %2224, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #13
  %2245 = load i32, ptr %2224, align 4, !tbaa !5
  %2246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2236, ptr noundef nonnull %.str.5.sink1745, i32 noundef %2237, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %2240, ptr noundef %2242, ptr noundef %2244, i32 noundef %2245) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2247:                                             ; preds = %2218
  %2248 = call i32 @s2n_connection_free(ptr noundef nonnull %1898) #13
  %2249 = call i32 @s2n_connection_free(ptr noundef nonnull %1927) #13
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %2253 = icmp eq i32 %2252, -1
  br i1 %2253, label %2254, label %.preheader.1

2254:                                             ; preds = %1864, %2247
  %2255 = tail call ptr @__errno_location() #14
  %2256 = load i32, ptr %2255, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @s2n_print_stacktrace(ptr noundef %2257) #13
  %2259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2260 = trunc nuw i8 %2259 to i1
  br i1 %2260, label %2261, label %2265

2261:                                             ; preds = %2254
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = call i32 @fileno(ptr noundef %2262) #13
  %2264 = call i32 @isatty(i32 noundef %2263) #13
  %.not882 = icmp eq i32 %2264, 0
  br i1 %.not882, label %2265, label %2266

2265:                                             ; preds = %2261, %2254
  br label %2266

2266:                                             ; preds = %2261, %2265
  %.str.5.sink1756 = phi ptr [ @.str.5, %2265 ], [ @.str.2, %2261 ]
  store i32 %2256, ptr %2255, align 4, !tbaa !5
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2270, ptr noundef nonnull @.str.4) #13
  %2272 = load i32, ptr %2269, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror_debug(i32 noundef %2272, ptr noundef nonnull @.str.4) #13
  %2274 = load i32, ptr %2255, align 4, !tbaa !5
  %2275 = call ptr @strerror(i32 noundef %2274) #13
  %2276 = load i32, ptr %2255, align 4, !tbaa !5
  %2277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2267, ptr noundef nonnull %.str.5.sink1756, i32 noundef %2268, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %2271, ptr noundef %2273, ptr noundef %2275, i32 noundef %2276) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2278:                                             ; preds = %1871
  %2279 = tail call ptr @__errno_location() #14
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @s2n_print_stacktrace(ptr noundef %2281) #13
  %2283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2284 = trunc nuw i8 %2283 to i1
  br i1 %2284, label %2285, label %2289

2285:                                             ; preds = %2278
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = call i32 @fileno(ptr noundef %2286) #13
  %2288 = call i32 @isatty(i32 noundef %2287) #13
  %.not876 = icmp eq i32 %2288, 0
  br i1 %.not876, label %2289, label %2290

2289:                                             ; preds = %2285, %2278
  br label %2290

2290:                                             ; preds = %2285, %2289
  %.str.5.sink1767 = phi ptr [ @.str.5, %2289 ], [ @.str.2, %2285 ]
  store i32 %2280, ptr %2279, align 4, !tbaa !5
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = load i32, ptr @test_count, align 4, !tbaa !5
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror(i32 noundef %2294, ptr noundef nonnull @.str.4) #13
  %2296 = load i32, ptr %2293, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef nonnull @.str.4) #13
  %2298 = load i32, ptr %2279, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #13
  %2300 = load i32, ptr %2279, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2291, ptr noundef nonnull %.str.5.sink1767, i32 noundef %2292, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %2295, ptr noundef %2297, ptr noundef %2299, i32 noundef %2300) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2302:                                             ; preds = %1871
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = add nsw i32 %2303, 1
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1874, ptr noundef nonnull %190) #13
  %2306 = icmp eq i32 %2305, -1
  br i1 %2306, label %2307, label %2331

2307:                                             ; preds = %2302
  %2308 = tail call ptr @__errno_location() #14
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @s2n_print_stacktrace(ptr noundef %2310) #13
  %2312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2313 = trunc nuw i8 %2312 to i1
  br i1 %2313, label %2314, label %2318

2314:                                             ; preds = %2307
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @fileno(ptr noundef %2315) #13
  %2317 = call i32 @isatty(i32 noundef %2316) #13
  %.not875 = icmp eq i32 %2317, 0
  br i1 %.not875, label %2318, label %2319

2318:                                             ; preds = %2314, %2307
  br label %2319

2319:                                             ; preds = %2314, %2318
  %.str.5.sink1778 = phi ptr [ @.str.5, %2318 ], [ @.str.2, %2314 ]
  store i32 %2309, ptr %2308, align 4, !tbaa !5
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = load i32, ptr @test_count, align 4, !tbaa !5
  %2322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror(i32 noundef %2323, ptr noundef nonnull @.str.4) #13
  %2325 = load i32, ptr %2322, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror_debug(i32 noundef %2325, ptr noundef nonnull @.str.4) #13
  %2327 = load i32, ptr %2308, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #13
  %2329 = load i32, ptr %2308, align 4, !tbaa !5
  %2330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2320, ptr noundef nonnull %.str.5.sink1778, i32 noundef %2321, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %2324, ptr noundef %2326, ptr noundef %2328, i32 noundef %2329) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2331:                                             ; preds = %2302
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = add nsw i32 %2332, 1
  store i32 %2333, ptr @test_count, align 4, !tbaa !5
  %2334 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %2335 = icmp eq i32 %2334, -1
  br i1 %2335, label %2336, label %2360

2336:                                             ; preds = %2331
  %2337 = tail call ptr @__errno_location() #14
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @s2n_print_stacktrace(ptr noundef %2339) #13
  %2341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2342 = trunc nuw i8 %2341 to i1
  br i1 %2342, label %2343, label %2347

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

2347:                                             ; preds = %2343, %2336
  br label %2348

2348:                                             ; preds = %2343, %2347
  %.str.5.sink1789 = phi ptr [ @.str.5, %2347 ], [ @.str.2, %2343 ]
  store i32 %2338, ptr %2337, align 4, !tbaa !5
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2352, ptr noundef nonnull @.str.4) #13
  %2354 = load i32, ptr %2351, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef nonnull @.str.4) #13
  %2356 = load i32, ptr %2337, align 4, !tbaa !5
  %2357 = call ptr @strerror(i32 noundef %2356) #13
  %2358 = load i32, ptr %2337, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2349, ptr noundef nonnull %.str.5.sink1789, i32 noundef %2350, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %2353, ptr noundef %2355, ptr noundef %2357, i32 noundef %2358) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2360:                                             ; preds = %2331
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = add nsw i32 %2361, 1
  store i32 %2362, ptr @test_count, align 4, !tbaa !5
  %2363 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2364 = icmp eq ptr %2363, null
  br i1 %2364, label %2365, label %2389

2365:                                             ; preds = %2360
  %2366 = tail call ptr @__errno_location() #14
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @s2n_print_stacktrace(ptr noundef %2368) #13
  %2370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2371 = trunc nuw i8 %2370 to i1
  br i1 %2371, label %2372, label %2376

2372:                                             ; preds = %2365
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @fileno(ptr noundef %2373) #13
  %2375 = call i32 @isatty(i32 noundef %2374) #13
  %.not873 = icmp eq i32 %2375, 0
  br i1 %.not873, label %2376, label %2377

2376:                                             ; preds = %2372, %2365
  br label %2377

2377:                                             ; preds = %2372, %2376
  %.str.5.sink1800 = phi ptr [ @.str.5, %2376 ], [ @.str.2, %2372 ]
  store i32 %2367, ptr %2366, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call ptr @s2n_strerror(i32 noundef %2381, ptr noundef nonnull @.str.4) #13
  %2383 = load i32, ptr %2380, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror_debug(i32 noundef %2383, ptr noundef nonnull @.str.4) #13
  %2385 = load i32, ptr %2366, align 4, !tbaa !5
  %2386 = call ptr @strerror(i32 noundef %2385) #13
  %2387 = load i32, ptr %2366, align 4, !tbaa !5
  %2388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef nonnull %.str.5.sink1800, i32 noundef %2379, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %2382, ptr noundef %2384, ptr noundef %2386, i32 noundef %2387) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2389:                                             ; preds = %2360
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = add nsw i32 %2390, 1
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2363, ptr noundef nonnull %333) #13
  %2393 = icmp eq i32 %2392, -1
  br i1 %2393, label %2394, label %2418

2394:                                             ; preds = %2389
  %2395 = tail call ptr @__errno_location() #14
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @s2n_print_stacktrace(ptr noundef %2397) #13
  %2399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2400 = trunc nuw i8 %2399 to i1
  br i1 %2400, label %2401, label %2405

2401:                                             ; preds = %2394
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @fileno(ptr noundef %2402) #13
  %2404 = call i32 @isatty(i32 noundef %2403) #13
  %.not872 = icmp eq i32 %2404, 0
  br i1 %.not872, label %2405, label %2406

2405:                                             ; preds = %2401, %2394
  br label %2406

2406:                                             ; preds = %2401, %2405
  %.str.5.sink1811 = phi ptr [ @.str.5, %2405 ], [ @.str.2, %2401 ]
  store i32 %2396, ptr %2395, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror(i32 noundef %2410, ptr noundef nonnull @.str.4) #13
  %2412 = load i32, ptr %2409, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror_debug(i32 noundef %2412, ptr noundef nonnull @.str.4) #13
  %2414 = load i32, ptr %2395, align 4, !tbaa !5
  %2415 = call ptr @strerror(i32 noundef %2414) #13
  %2416 = load i32, ptr %2395, align 4, !tbaa !5
  %2417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef nonnull %.str.5.sink1811, i32 noundef %2408, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %2411, ptr noundef %2413, ptr noundef %2415, i32 noundef %2416) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2418:                                             ; preds = %2389
  %2419 = load i32, ptr @test_count, align 4, !tbaa !5
  %2420 = add nsw i32 %2419, 1
  store i32 %2420, ptr @test_count, align 4, !tbaa !5
  %2421 = call i32 @s2n_client_hello_send(ptr noundef nonnull %1874) #13
  %2422 = icmp eq i32 %2421, -1
  br i1 %2422, label %2423, label %2447

2423:                                             ; preds = %2418
  %2424 = tail call ptr @__errno_location() #14
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = call i32 @s2n_print_stacktrace(ptr noundef %2426) #13
  %2428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2429 = trunc nuw i8 %2428 to i1
  br i1 %2429, label %2430, label %2434

2430:                                             ; preds = %2423
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = call i32 @fileno(ptr noundef %2431) #13
  %2433 = call i32 @isatty(i32 noundef %2432) #13
  %.not871 = icmp eq i32 %2433, 0
  br i1 %.not871, label %2434, label %2435

2434:                                             ; preds = %2430, %2423
  br label %2435

2435:                                             ; preds = %2430, %2434
  %.str.5.sink1822 = phi ptr [ @.str.5, %2434 ], [ @.str.2, %2430 ]
  store i32 %2425, ptr %2424, align 4, !tbaa !5
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror(i32 noundef %2439, ptr noundef nonnull @.str.4) #13
  %2441 = load i32, ptr %2438, align 4, !tbaa !5
  %2442 = call ptr @s2n_strerror_debug(i32 noundef %2441, ptr noundef nonnull @.str.4) #13
  %2443 = load i32, ptr %2424, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #13
  %2445 = load i32, ptr %2424, align 4, !tbaa !5
  %2446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2436, ptr noundef nonnull %.str.5.sink1822, i32 noundef %2437, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %2440, ptr noundef %2442, ptr noundef %2444, i32 noundef %2445) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2447:                                             ; preds = %2418
  %2448 = load i32, ptr @test_count, align 4, !tbaa !5
  %2449 = add nsw i32 %2448, 1
  store i32 %2449, ptr @test_count, align 4, !tbaa !5
  %2450 = getelementptr inbounds i8, ptr %1874, i64 218
  %2451 = load i8, ptr %2450, align 2, !tbaa !42
  %2452 = icmp eq i8 %2451, 33
  br i1 %2452, label %2477, label %2453

2453:                                             ; preds = %2447
  %2454 = tail call ptr @__errno_location() #14
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @s2n_print_stacktrace(ptr noundef %2456) #13
  %2458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2459 = trunc nuw i8 %2458 to i1
  br i1 %2459, label %2460, label %2464

2460:                                             ; preds = %2453
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @fileno(ptr noundef %2461) #13
  %2463 = call i32 @isatty(i32 noundef %2462) #13
  %.not732 = icmp eq i32 %2463, 0
  br i1 %.not732, label %2464, label %2465

2464:                                             ; preds = %2460, %2453
  br label %2465

2465:                                             ; preds = %2460, %2464
  %.str.5.sink1833 = phi ptr [ @.str.5, %2464 ], [ @.str.2, %2460 ]
  store i32 %2455, ptr %2454, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = load i32, ptr @test_count, align 4, !tbaa !5
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror(i32 noundef %2469, ptr noundef nonnull @.str.4) #13
  %2471 = load i32, ptr %2468, align 4, !tbaa !5
  %2472 = call ptr @s2n_strerror_debug(i32 noundef %2471, ptr noundef nonnull @.str.4) #13
  %2473 = load i32, ptr %2454, align 4, !tbaa !5
  %2474 = call ptr @strerror(i32 noundef %2473) #13
  %2475 = load i32, ptr %2454, align 4, !tbaa !5
  %2476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2466, ptr noundef nonnull %.str.5.sink1833, i32 noundef %2467, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %2470, ptr noundef %2472, ptr noundef %2474, i32 noundef %2475) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2477:                                             ; preds = %2447
  %2478 = add nsw i32 %2448, 2
  store i32 %2478, ptr @test_count, align 4, !tbaa !5
  %2479 = getelementptr inbounds i8, ptr %1874, i64 217
  %2480 = load i8, ptr %2479, align 1, !tbaa !15
  %2481 = icmp eq i8 %2480, 33
  br i1 %2481, label %2506, label %2482

2482:                                             ; preds = %2477
  %2483 = tail call ptr @__errno_location() #14
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = call i32 @s2n_print_stacktrace(ptr noundef %2485) #13
  %2487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2488 = trunc nuw i8 %2487 to i1
  br i1 %2488, label %2489, label %2493

2489:                                             ; preds = %2482
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = call i32 @fileno(ptr noundef %2490) #13
  %2492 = call i32 @isatty(i32 noundef %2491) #13
  %.not733 = icmp eq i32 %2492, 0
  br i1 %.not733, label %2493, label %2494

2493:                                             ; preds = %2489, %2482
  br label %2494

2494:                                             ; preds = %2489, %2493
  %.str.5.sink1844 = phi ptr [ @.str.5, %2493 ], [ @.str.2, %2489 ]
  store i32 %2484, ptr %2483, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror(i32 noundef %2498, ptr noundef nonnull @.str.4) #13
  %2500 = load i32, ptr %2497, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror_debug(i32 noundef %2500, ptr noundef nonnull @.str.4) #13
  %2502 = load i32, ptr %2483, align 4, !tbaa !5
  %2503 = call ptr @strerror(i32 noundef %2502) #13
  %2504 = load i32, ptr %2483, align 4, !tbaa !5
  %2505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2495, ptr noundef nonnull %.str.5.sink1844, i32 noundef %2496, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %2499, ptr noundef %2501, ptr noundef %2503, i32 noundef %2504) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2506:                                             ; preds = %2477
  %2507 = add nsw i32 %2448, 3
  store i32 %2507, ptr @test_count, align 4, !tbaa !5
  %2508 = getelementptr inbounds i8, ptr %2363, i64 2016
  %2509 = getelementptr inbounds i8, ptr %1874, i64 2016
  %2510 = call i32 @s2n_stuffer_write(ptr noundef nonnull %2508, ptr noundef nonnull %2509) #13
  %2511 = icmp eq i32 %2510, -1
  br i1 %2511, label %2512, label %2536

2512:                                             ; preds = %2506
  %2513 = tail call ptr @__errno_location() #14
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @s2n_print_stacktrace(ptr noundef %2515) #13
  %2517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2518 = trunc nuw i8 %2517 to i1
  br i1 %2518, label %2519, label %2523

2519:                                             ; preds = %2512
  %2520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2521 = call i32 @fileno(ptr noundef %2520) #13
  %2522 = call i32 @isatty(i32 noundef %2521) #13
  %.not870 = icmp eq i32 %2522, 0
  br i1 %.not870, label %2523, label %2524

2523:                                             ; preds = %2519, %2512
  br label %2524

2524:                                             ; preds = %2519, %2523
  %.str.5.sink1855 = phi ptr [ @.str.5, %2523 ], [ @.str.2, %2519 ]
  store i32 %2514, ptr %2513, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef nonnull @.str.4) #13
  %2530 = load i32, ptr %2527, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef nonnull @.str.4) #13
  %2532 = load i32, ptr %2513, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #13
  %2534 = load i32, ptr %2513, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2525, ptr noundef nonnull %.str.5.sink1855, i32 noundef %2526, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %2529, ptr noundef %2531, ptr noundef %2533, i32 noundef %2534) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2536:                                             ; preds = %2506
  %2537 = load i32, ptr @test_count, align 4, !tbaa !5
  %2538 = add nsw i32 %2537, 1
  store i32 %2538, ptr @test_count, align 4, !tbaa !5
  %2539 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %2363) #13
  %2540 = icmp eq i32 %2539, -1
  br i1 %2540, label %2541, label %2565

2541:                                             ; preds = %2536
  %2542 = tail call ptr @__errno_location() #14
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = call i32 @s2n_print_stacktrace(ptr noundef %2544) #13
  %2546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2547 = trunc nuw i8 %2546 to i1
  br i1 %2547, label %2548, label %2552

2548:                                             ; preds = %2541
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @fileno(ptr noundef %2549) #13
  %2551 = call i32 @isatty(i32 noundef %2550) #13
  %.not869 = icmp eq i32 %2551, 0
  br i1 %.not869, label %2552, label %2553

2552:                                             ; preds = %2548, %2541
  br label %2553

2553:                                             ; preds = %2548, %2552
  %.str.5.sink1866 = phi ptr [ @.str.5, %2552 ], [ @.str.2, %2548 ]
  store i32 %2543, ptr %2542, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror(i32 noundef %2557, ptr noundef nonnull @.str.4) #13
  %2559 = load i32, ptr %2556, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror_debug(i32 noundef %2559, ptr noundef nonnull @.str.4) #13
  %2561 = load i32, ptr %2542, align 4, !tbaa !5
  %2562 = call ptr @strerror(i32 noundef %2561) #13
  %2563 = load i32, ptr %2542, align 4, !tbaa !5
  %2564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef nonnull %.str.5.sink1866, i32 noundef %2555, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %2558, ptr noundef %2560, ptr noundef %2562, i32 noundef %2563) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2565:                                             ; preds = %2536
  %2566 = load i32, ptr @test_count, align 4, !tbaa !5
  %2567 = add nsw i32 %2566, 1
  store i32 %2567, ptr @test_count, align 4, !tbaa !5
  %2568 = getelementptr inbounds i8, ptr %2363, i64 219
  %2569 = load i8, ptr %2568, align 1, !tbaa !47
  %2570 = icmp eq i8 %2569, 34
  br i1 %2570, label %2595, label %2571

2571:                                             ; preds = %2565
  %2572 = tail call ptr @__errno_location() #14
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @s2n_print_stacktrace(ptr noundef %2574) #13
  %2576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2577 = trunc nuw i8 %2576 to i1
  br i1 %2577, label %2578, label %2582

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

2582:                                             ; preds = %2578, %2571
  br label %2583

2583:                                             ; preds = %2578, %2582
  %.str.5.sink1877 = phi ptr [ @.str.5, %2582 ], [ @.str.2, %2578 ]
  store i32 %2573, ptr %2572, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef nonnull @.str.4) #13
  %2589 = load i32, ptr %2586, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror_debug(i32 noundef %2589, ptr noundef nonnull @.str.4) #13
  %2591 = load i32, ptr %2572, align 4, !tbaa !5
  %2592 = call ptr @strerror(i32 noundef %2591) #13
  %2593 = load i32, ptr %2572, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef nonnull %.str.5.sink1877, i32 noundef %2585, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %2588, ptr noundef %2590, ptr noundef %2592, i32 noundef %2593) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2595:                                             ; preds = %2565
  %2596 = add nsw i32 %2566, 2
  store i32 %2596, ptr @test_count, align 4, !tbaa !5
  %2597 = getelementptr inbounds i8, ptr %2363, i64 220
  %2598 = load i8, ptr %2597, align 4, !tbaa !46
  %2599 = icmp eq i8 %2598, 33
  br i1 %2599, label %2624, label %2600

2600:                                             ; preds = %2595
  %2601 = tail call ptr @__errno_location() #14
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #13
  %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 = %2600
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #13
  %2610 = call i32 @isatty(i32 noundef %2609) #13
  %.not735 = icmp eq i32 %2610, 0
  br i1 %.not735, label %2611, label %2612

2611:                                             ; preds = %2607, %2600
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.5.sink1888 = phi ptr [ @.str.5, %2611 ], [ @.str.2, %2607 ]
  store i32 %2602, ptr %2601, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror(i32 noundef %2616, ptr noundef nonnull @.str.4) #13
  %2618 = load i32, ptr %2615, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror_debug(i32 noundef %2618, ptr noundef nonnull @.str.4) #13
  %2620 = load i32, ptr %2601, align 4, !tbaa !5
  %2621 = call ptr @strerror(i32 noundef %2620) #13
  %2622 = load i32, ptr %2601, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.5.sink1888, i32 noundef %2614, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2617, ptr noundef %2619, ptr noundef %2621, i32 noundef %2622) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2624:                                             ; preds = %2595
  %2625 = add nsw i32 %2566, 3
  store i32 %2625, ptr @test_count, align 4, !tbaa !5
  %2626 = getelementptr inbounds i8, ptr %2363, i64 218
  %2627 = load i8, ptr %2626, align 2, !tbaa !42
  %2628 = icmp eq i8 %2627, 33
  br i1 %2628, label %2653, label %2629

2629:                                             ; preds = %2624
  %2630 = tail call ptr @__errno_location() #14
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = call i32 @s2n_print_stacktrace(ptr noundef %2632) #13
  %2634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2635 = trunc nuw i8 %2634 to i1
  br i1 %2635, label %2636, label %2640

2636:                                             ; preds = %2629
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @fileno(ptr noundef %2637) #13
  %2639 = call i32 @isatty(i32 noundef %2638) #13
  %.not736 = icmp eq i32 %2639, 0
  br i1 %.not736, label %2640, label %2641

2640:                                             ; preds = %2636, %2629
  br label %2641

2641:                                             ; preds = %2636, %2640
  %.str.5.sink1899 = phi ptr [ @.str.5, %2640 ], [ @.str.2, %2636 ]
  store i32 %2631, ptr %2630, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = load i32, ptr @test_count, align 4, !tbaa !5
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror(i32 noundef %2645, ptr noundef nonnull @.str.4) #13
  %2647 = load i32, ptr %2644, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef nonnull @.str.4) #13
  %2649 = load i32, ptr %2630, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #13
  %2651 = load i32, ptr %2630, align 4, !tbaa !5
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2642, ptr noundef nonnull %.str.5.sink1899, i32 noundef %2643, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %2646, ptr noundef %2648, ptr noundef %2650, i32 noundef %2651) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2653:                                             ; preds = %2624
  %2654 = add nsw i32 %2566, 4
  store i32 %2654, ptr @test_count, align 4, !tbaa !5
  %2655 = getelementptr inbounds i8, ptr %2363, i64 217
  %2656 = load i8, ptr %2655, align 1, !tbaa !15
  %2657 = icmp eq i8 %2656, 33
  br i1 %2657, label %2682, label %2658

2658:                                             ; preds = %2653
  %2659 = tail call ptr @__errno_location() #14
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2662 = call i32 @s2n_print_stacktrace(ptr noundef %2661) #13
  %2663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2664 = trunc nuw i8 %2663 to i1
  br i1 %2664, label %2665, label %2669

2665:                                             ; preds = %2658
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = call i32 @fileno(ptr noundef %2666) #13
  %2668 = call i32 @isatty(i32 noundef %2667) #13
  %.not737 = icmp eq i32 %2668, 0
  br i1 %.not737, label %2669, label %2670

2669:                                             ; preds = %2665, %2658
  br label %2670

2670:                                             ; preds = %2665, %2669
  %.str.5.sink1910 = phi ptr [ @.str.5, %2669 ], [ @.str.2, %2665 ]
  store i32 %2660, ptr %2659, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef nonnull @.str.4) #13
  %2676 = load i32, ptr %2673, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror_debug(i32 noundef %2676, ptr noundef nonnull @.str.4) #13
  %2678 = load i32, ptr %2659, align 4, !tbaa !5
  %2679 = call ptr @strerror(i32 noundef %2678) #13
  %2680 = load i32, ptr %2659, align 4, !tbaa !5
  %2681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef nonnull %.str.5.sink1910, i32 noundef %2672, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2675, ptr noundef %2677, ptr noundef %2679, i32 noundef %2680) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2682:                                             ; preds = %2653
  %2683 = call i32 @s2n_connection_free(ptr noundef nonnull %2363) #13
  %2684 = call i32 @s2n_connection_free(ptr noundef nonnull %1874) #13
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = add nsw i32 %2685, 1
  store i32 %2686, ptr @test_count, align 4, !tbaa !5
  %2687 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %2688 = icmp eq i32 %2687, -1
  br i1 %2688, label %2689, label %2713

2689:                                             ; preds = %2682
  %2690 = tail call ptr @__errno_location() #14
  %2691 = load i32, ptr %2690, align 4, !tbaa !5
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = call i32 @s2n_print_stacktrace(ptr noundef %2692) #13
  %2694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2695 = trunc nuw i8 %2694 to i1
  br i1 %2695, label %2696, label %2700

2696:                                             ; preds = %2689
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = call i32 @fileno(ptr noundef %2697) #13
  %2699 = call i32 @isatty(i32 noundef %2698) #13
  %.not868 = icmp eq i32 %2699, 0
  br i1 %.not868, label %2700, label %2701

2700:                                             ; preds = %2696, %2689
  br label %2701

2701:                                             ; preds = %2696, %2700
  %.str.5.sink1921 = phi ptr [ @.str.5, %2700 ], [ @.str.2, %2696 ]
  store i32 %2691, ptr %2690, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef nonnull @.str.4) #13
  %2707 = load i32, ptr %2704, align 4, !tbaa !5
  %2708 = call ptr @s2n_strerror_debug(i32 noundef %2707, ptr noundef nonnull @.str.4) #13
  %2709 = load i32, ptr %2690, align 4, !tbaa !5
  %2710 = call ptr @strerror(i32 noundef %2709) #13
  %2711 = load i32, ptr %2690, align 4, !tbaa !5
  %2712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2702, ptr noundef nonnull %.str.5.sink1921, i32 noundef %2703, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2706, ptr noundef %2708, ptr noundef %2710, i32 noundef %2711) #15
  call void @exit(i32 noundef 1) #16
  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 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %2717 = icmp eq i32 %2716, -1
  br i1 %2717, label %2718, label %2742

2718:                                             ; preds = %2713
  %2719 = tail call ptr @__errno_location() #14
  %2720 = load i32, ptr %2719, align 4, !tbaa !5
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = call i32 @s2n_print_stacktrace(ptr noundef %2721) #13
  %2723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2724 = trunc nuw i8 %2723 to i1
  br i1 %2724, label %2725, label %2729

2725:                                             ; preds = %2718
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @fileno(ptr noundef %2726) #13
  %2728 = call i32 @isatty(i32 noundef %2727) #13
  %.not867 = icmp eq i32 %2728, 0
  br i1 %.not867, label %2729, label %2730

2729:                                             ; preds = %2725, %2718
  br label %2730

2730:                                             ; preds = %2725, %2729
  %.str.5.sink1932 = phi ptr [ @.str.5, %2729 ], [ @.str.2, %2725 ]
  store i32 %2720, ptr %2719, align 4, !tbaa !5
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = load i32, ptr @test_count, align 4, !tbaa !5
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef nonnull @.str.4) #13
  %2736 = load i32, ptr %2733, align 4, !tbaa !5
  %2737 = call ptr @s2n_strerror_debug(i32 noundef %2736, ptr noundef nonnull @.str.4) #13
  %2738 = load i32, ptr %2719, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #13
  %2740 = load i32, ptr %2719, align 4, !tbaa !5
  %2741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2731, ptr noundef nonnull %.str.5.sink1932, i32 noundef %2732, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %2735, ptr noundef %2737, ptr noundef %2739, i32 noundef %2740) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2742:                                             ; preds = %2713
  %2743 = load i32, ptr @test_count, align 4, !tbaa !5
  %2744 = add nsw i32 %2743, 1
  store i32 %2744, ptr @test_count, align 4, !tbaa !5
  %2745 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2746 = icmp eq ptr %2745, null
  br i1 %2746, label %2747, label %2771

2747:                                             ; preds = %2742
  %2748 = tail call ptr @__errno_location() #14
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @s2n_print_stacktrace(ptr noundef %2750) #13
  %2752 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2753 = trunc nuw i8 %2752 to i1
  br i1 %2753, label %2754, label %2758

2754:                                             ; preds = %2747
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = call i32 @fileno(ptr noundef %2755) #13
  %2757 = call i32 @isatty(i32 noundef %2756) #13
  %.not866 = icmp eq i32 %2757, 0
  br i1 %.not866, label %2758, label %2759

2758:                                             ; preds = %2754, %2747
  br label %2759

2759:                                             ; preds = %2754, %2758
  %.str.5.sink1943 = phi ptr [ @.str.5, %2758 ], [ @.str.2, %2754 ]
  store i32 %2749, ptr %2748, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror(i32 noundef %2763, ptr noundef nonnull @.str.4) #13
  %2765 = load i32, ptr %2762, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef nonnull @.str.4) #13
  %2767 = load i32, ptr %2748, align 4, !tbaa !5
  %2768 = call ptr @strerror(i32 noundef %2767) #13
  %2769 = load i32, ptr %2748, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2760, ptr noundef nonnull %.str.5.sink1943, i32 noundef %2761, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2764, ptr noundef %2766, ptr noundef %2768, i32 noundef %2769) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2771:                                             ; preds = %2742
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = add nsw i32 %2772, 1
  store i32 %2773, ptr @test_count, align 4, !tbaa !5
  %2774 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %2775 = icmp eq ptr %2774, null
  br i1 %2775, label %2776, label %2800

2776:                                             ; preds = %2771
  %2777 = tail call ptr @__errno_location() #14
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = call i32 @s2n_print_stacktrace(ptr noundef %2779) #13
  %2781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2782 = trunc nuw i8 %2781 to i1
  br i1 %2782, label %2783, label %2787

2783:                                             ; preds = %2776
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @fileno(ptr noundef %2784) #13
  %2786 = call i32 @isatty(i32 noundef %2785) #13
  %.not865 = icmp eq i32 %2786, 0
  br i1 %.not865, label %2787, label %2788

2787:                                             ; preds = %2783, %2776
  br label %2788

2788:                                             ; preds = %2783, %2787
  %.str.5.sink1954 = phi ptr [ @.str.5, %2787 ], [ @.str.2, %2783 ]
  store i32 %2778, ptr %2777, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = load i32, ptr @test_count, align 4, !tbaa !5
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror(i32 noundef %2792, ptr noundef nonnull @.str.4) #13
  %2794 = load i32, ptr %2791, align 4, !tbaa !5
  %2795 = call ptr @s2n_strerror_debug(i32 noundef %2794, ptr noundef nonnull @.str.4) #13
  %2796 = load i32, ptr %2777, align 4, !tbaa !5
  %2797 = call ptr @strerror(i32 noundef %2796) #13
  %2798 = load i32, ptr %2777, align 4, !tbaa !5
  %2799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2789, ptr noundef nonnull %.str.5.sink1954, i32 noundef %2790, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %2793, ptr noundef %2795, ptr noundef %2797, i32 noundef %2798) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2800:                                             ; preds = %2771
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = add nsw i32 %2801, 1
  store i32 %2802, ptr @test_count, align 4, !tbaa !5
  %2803 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2745, ptr noundef nonnull %333) #13
  %2804 = icmp eq i32 %2803, -1
  br i1 %2804, label %2805, label %2829

2805:                                             ; preds = %2800
  %2806 = tail call ptr @__errno_location() #14
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = call i32 @s2n_print_stacktrace(ptr noundef %2808) #13
  %2810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2811 = trunc nuw i8 %2810 to i1
  br i1 %2811, label %2812, label %2816

2812:                                             ; preds = %2805
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = call i32 @fileno(ptr noundef %2813) #13
  %2815 = call i32 @isatty(i32 noundef %2814) #13
  %.not864 = icmp eq i32 %2815, 0
  br i1 %.not864, label %2816, label %2817

2816:                                             ; preds = %2812, %2805
  br label %2817

2817:                                             ; preds = %2812, %2816
  %.str.5.sink1965 = phi ptr [ @.str.5, %2816 ], [ @.str.2, %2812 ]
  store i32 %2807, ptr %2806, align 4, !tbaa !5
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = load i32, ptr @test_count, align 4, !tbaa !5
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror(i32 noundef %2821, ptr noundef nonnull @.str.4) #13
  %2823 = load i32, ptr %2820, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror_debug(i32 noundef %2823, ptr noundef nonnull @.str.4) #13
  %2825 = load i32, ptr %2806, align 4, !tbaa !5
  %2826 = call ptr @strerror(i32 noundef %2825) #13
  %2827 = load i32, ptr %2806, align 4, !tbaa !5
  %2828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2818, ptr noundef nonnull %.str.5.sink1965, i32 noundef %2819, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2822, ptr noundef %2824, ptr noundef %2826, i32 noundef %2827) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2829:                                             ; preds = %2800
  %2830 = load i32, ptr @test_count, align 4, !tbaa !5
  %2831 = add nsw i32 %2830, 1
  store i32 %2831, ptr @test_count, align 4, !tbaa !5
  %2832 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2774, ptr noundef nonnull %190) #13
  %2833 = icmp eq i32 %2832, -1
  br i1 %2833, label %2834, label %2858

2834:                                             ; preds = %2829
  %2835 = tail call ptr @__errno_location() #14
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = call i32 @s2n_print_stacktrace(ptr noundef %2837) #13
  %2839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2840 = trunc nuw i8 %2839 to i1
  br i1 %2840, label %2841, label %2845

2841:                                             ; preds = %2834
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = call i32 @fileno(ptr noundef %2842) #13
  %2844 = call i32 @isatty(i32 noundef %2843) #13
  %.not863 = icmp eq i32 %2844, 0
  br i1 %.not863, label %2845, label %2846

2845:                                             ; preds = %2841, %2834
  br label %2846

2846:                                             ; preds = %2841, %2845
  %.str.5.sink1976 = phi ptr [ @.str.5, %2845 ], [ @.str.2, %2841 ]
  store i32 %2836, ptr %2835, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call ptr @s2n_strerror(i32 noundef %2850, ptr noundef nonnull @.str.4) #13
  %2852 = load i32, ptr %2849, align 4, !tbaa !5
  %2853 = call ptr @s2n_strerror_debug(i32 noundef %2852, ptr noundef nonnull @.str.4) #13
  %2854 = load i32, ptr %2835, align 4, !tbaa !5
  %2855 = call ptr @strerror(i32 noundef %2854) #13
  %2856 = load i32, ptr %2835, align 4, !tbaa !5
  %2857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2847, ptr noundef nonnull %.str.5.sink1976, i32 noundef %2848, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2851, ptr noundef %2853, ptr noundef %2855, i32 noundef %2856) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2858:                                             ; preds = %2829
  %2859 = load i32, ptr @test_count, align 4, !tbaa !5
  %2860 = add nsw i32 %2859, 1
  store i32 %2860, ptr @test_count, align 4, !tbaa !5
  %2861 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2774, ptr noundef nonnull @.str.58) #13
  %2862 = icmp eq i32 %2861, -1
  br i1 %2862, label %2863, label %2887

2863:                                             ; preds = %2858
  %2864 = tail call ptr @__errno_location() #14
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2867 = call i32 @s2n_print_stacktrace(ptr noundef %2866) #13
  %2868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2869 = trunc nuw i8 %2868 to i1
  br i1 %2869, label %2870, label %2874

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

2874:                                             ; preds = %2870, %2863
  br label %2875

2875:                                             ; preds = %2870, %2874
  %.str.5.sink1987 = phi ptr [ @.str.5, %2874 ], [ @.str.2, %2870 ]
  store i32 %2865, ptr %2864, align 4, !tbaa !5
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = load i32, ptr @test_count, align 4, !tbaa !5
  %2878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2879 = load i32, ptr %2878, align 4, !tbaa !5
  %2880 = call ptr @s2n_strerror(i32 noundef %2879, ptr noundef nonnull @.str.4) #13
  %2881 = load i32, ptr %2878, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror_debug(i32 noundef %2881, ptr noundef nonnull @.str.4) #13
  %2883 = load i32, ptr %2864, align 4, !tbaa !5
  %2884 = call ptr @strerror(i32 noundef %2883) #13
  %2885 = load i32, ptr %2864, align 4, !tbaa !5
  %2886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2876, ptr noundef nonnull %.str.5.sink1987, i32 noundef %2877, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %2880, ptr noundef %2882, ptr noundef %2884, i32 noundef %2885) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2887:                                             ; preds = %2858
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = add nsw i32 %2888, 1
  store i32 %2889, ptr @test_count, align 4, !tbaa !5
  %2890 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2745, ptr noundef nonnull @.str.58) #13
  %2891 = icmp eq i32 %2890, -1
  br i1 %2891, label %2892, label %2916

2892:                                             ; preds = %2887
  %2893 = tail call ptr @__errno_location() #14
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @s2n_print_stacktrace(ptr noundef %2895) #13
  %2897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2898 = trunc nuw i8 %2897 to i1
  br i1 %2898, label %2899, label %2903

2899:                                             ; preds = %2892
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @fileno(ptr noundef %2900) #13
  %2902 = call i32 @isatty(i32 noundef %2901) #13
  %.not861 = icmp eq i32 %2902, 0
  br i1 %.not861, label %2903, label %2904

2903:                                             ; preds = %2899, %2892
  br label %2904

2904:                                             ; preds = %2899, %2903
  %.str.5.sink1998 = phi ptr [ @.str.5, %2903 ], [ @.str.2, %2899 ]
  store i32 %2894, ptr %2893, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = load i32, ptr @test_count, align 4, !tbaa !5
  %2907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror(i32 noundef %2908, ptr noundef nonnull @.str.4) #13
  %2910 = load i32, ptr %2907, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror_debug(i32 noundef %2910, ptr noundef nonnull @.str.4) #13
  %2912 = load i32, ptr %2893, align 4, !tbaa !5
  %2913 = call ptr @strerror(i32 noundef %2912) #13
  %2914 = load i32, ptr %2893, align 4, !tbaa !5
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2905, ptr noundef nonnull %.str.5.sink1998, i32 noundef %2906, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %2909, ptr noundef %2911, ptr noundef %2913, i32 noundef %2914) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2916:                                             ; preds = %2887
  %2917 = getelementptr inbounds i8, ptr %2774, i64 2016
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = add nsw i32 %2918, 1
  store i32 %2919, ptr @test_count, align 4, !tbaa !5
  %2920 = call i32 @s2n_client_hello_send(ptr noundef nonnull %2774) #13
  %2921 = icmp eq i32 %2920, -1
  br i1 %2921, label %2922, label %2946

2922:                                             ; preds = %2916
  %2923 = tail call ptr @__errno_location() #14
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @s2n_print_stacktrace(ptr noundef %2925) #13
  %2927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2928 = trunc nuw i8 %2927 to i1
  br i1 %2928, label %2929, label %2933

2929:                                             ; preds = %2922
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = call i32 @fileno(ptr noundef %2930) #13
  %2932 = call i32 @isatty(i32 noundef %2931) #13
  %.not860 = icmp eq i32 %2932, 0
  br i1 %.not860, label %2933, label %2934

2933:                                             ; preds = %2929, %2922
  br label %2934

2934:                                             ; preds = %2929, %2933
  %.str.5.sink2009 = phi ptr [ @.str.5, %2933 ], [ @.str.2, %2929 ]
  store i32 %2924, ptr %2923, align 4, !tbaa !5
  %2935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2936 = load i32, ptr @test_count, align 4, !tbaa !5
  %2937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call ptr @s2n_strerror(i32 noundef %2938, ptr noundef nonnull @.str.4) #13
  %2940 = load i32, ptr %2937, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror_debug(i32 noundef %2940, ptr noundef nonnull @.str.4) #13
  %2942 = load i32, ptr %2923, align 4, !tbaa !5
  %2943 = call ptr @strerror(i32 noundef %2942) #13
  %2944 = load i32, ptr %2923, align 4, !tbaa !5
  %2945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2935, ptr noundef nonnull %.str.5.sink2009, i32 noundef %2936, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2939, ptr noundef %2941, ptr noundef %2943, i32 noundef %2944) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2946:                                             ; preds = %2916
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #13
  store i8 3, ptr %5, align 1, !tbaa !48
  %2947 = getelementptr inbounds i8, ptr %5, i64 1
  store i8 4, ptr %2947, align 1, !tbaa !48
  %2948 = load i32, ptr @test_count, align 4, !tbaa !5
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr @test_count, align 4, !tbaa !5
  %2950 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %2917) #13
  %2951 = icmp eq i32 %2950, -1
  br i1 %2951, label %2952, label %2976

2952:                                             ; preds = %2946
  %2953 = tail call ptr @__errno_location() #14
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @s2n_print_stacktrace(ptr noundef %2955) #13
  %2957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2958 = trunc nuw i8 %2957 to i1
  br i1 %2958, label %2959, label %2963

2959:                                             ; preds = %2952
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @fileno(ptr noundef %2960) #13
  %2962 = call i32 @isatty(i32 noundef %2961) #13
  %.not859 = icmp eq i32 %2962, 0
  br i1 %.not859, label %2963, label %2964

2963:                                             ; preds = %2959, %2952
  br label %2964

2964:                                             ; preds = %2959, %2963
  %.str.5.sink2020 = phi ptr [ @.str.5, %2963 ], [ @.str.2, %2959 ]
  store i32 %2954, ptr %2953, align 4, !tbaa !5
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call ptr @s2n_strerror(i32 noundef %2968, ptr noundef nonnull @.str.4) #13
  %2970 = load i32, ptr %2967, align 4, !tbaa !5
  %2971 = call ptr @s2n_strerror_debug(i32 noundef %2970, ptr noundef nonnull @.str.4) #13
  %2972 = load i32, ptr %2953, align 4, !tbaa !5
  %2973 = call ptr @strerror(i32 noundef %2972) #13
  %2974 = load i32, ptr %2953, align 4, !tbaa !5
  %2975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2965, ptr noundef nonnull %.str.5.sink2020, i32 noundef %2966, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2969, ptr noundef %2971, ptr noundef %2973, i32 noundef %2974) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2976:                                             ; preds = %2946
  %2977 = load i32, ptr @test_count, align 4, !tbaa !5
  %2978 = add nsw i32 %2977, 1
  store i32 %2978, ptr @test_count, align 4, !tbaa !5
  %2979 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %2917, ptr noundef nonnull %5, i32 noundef 2) #13
  %2980 = icmp eq i32 %2979, -1
  br i1 %2980, label %2981, label %3005

2981:                                             ; preds = %2976
  %2982 = tail call ptr @__errno_location() #14
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = call i32 @s2n_print_stacktrace(ptr noundef %2984) #13
  %2986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2987 = trunc nuw i8 %2986 to i1
  br i1 %2987, label %2988, label %2992

2988:                                             ; preds = %2981
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = call i32 @fileno(ptr noundef %2989) #13
  %2991 = call i32 @isatty(i32 noundef %2990) #13
  %.not858 = icmp eq i32 %2991, 0
  br i1 %.not858, label %2992, label %2993

2992:                                             ; preds = %2988, %2981
  br label %2993

2993:                                             ; preds = %2988, %2992
  %.str.5.sink2031 = phi ptr [ @.str.5, %2992 ], [ @.str.2, %2988 ]
  store i32 %2983, ptr %2982, align 4, !tbaa !5
  %2994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2995 = load i32, ptr @test_count, align 4, !tbaa !5
  %2996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @s2n_strerror(i32 noundef %2997, ptr noundef nonnull @.str.4) #13
  %2999 = load i32, ptr %2996, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror_debug(i32 noundef %2999, ptr noundef nonnull @.str.4) #13
  %3001 = load i32, ptr %2982, align 4, !tbaa !5
  %3002 = call ptr @strerror(i32 noundef %3001) #13
  %3003 = load i32, ptr %2982, align 4, !tbaa !5
  %3004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2994, ptr noundef nonnull %.str.5.sink2031, i32 noundef %2995, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2998, ptr noundef %3000, ptr noundef %3002, i32 noundef %3003) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3005:                                             ; preds = %2976
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = add nsw i32 %3006, 1
  store i32 %3007, ptr @test_count, align 4, !tbaa !5
  %3008 = getelementptr inbounds i8, ptr %2745, i64 2016
  %3009 = call i32 @s2n_stuffer_write(ptr noundef nonnull %3008, ptr noundef nonnull %2917) #13
  %3010 = icmp eq i32 %3009, -1
  br i1 %3010, label %3011, label %3035

3011:                                             ; preds = %3005
  %3012 = tail call ptr @__errno_location() #14
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = call i32 @s2n_print_stacktrace(ptr noundef %3014) #13
  %3016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3017 = trunc nuw i8 %3016 to i1
  br i1 %3017, label %3018, label %3022

3018:                                             ; preds = %3011
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = call i32 @fileno(ptr noundef %3019) #13
  %3021 = call i32 @isatty(i32 noundef %3020) #13
  %.not857 = icmp eq i32 %3021, 0
  br i1 %.not857, label %3022, label %3023

3022:                                             ; preds = %3018, %3011
  br label %3023

3023:                                             ; preds = %3018, %3022
  %.str.5.sink2042 = phi ptr [ @.str.5, %3022 ], [ @.str.2, %3018 ]
  store i32 %3013, ptr %3012, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror(i32 noundef %3027, ptr noundef nonnull @.str.4) #13
  %3029 = load i32, ptr %3026, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror_debug(i32 noundef %3029, ptr noundef nonnull @.str.4) #13
  %3031 = load i32, ptr %3012, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #13
  %3033 = load i32, ptr %3012, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3024, ptr noundef nonnull %.str.5.sink2042, i32 noundef %3025, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %3028, ptr noundef %3030, ptr noundef %3032, i32 noundef %3033) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3035:                                             ; preds = %3005
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = add nsw i32 %3036, 1
  store i32 %3037, ptr @test_count, align 4, !tbaa !5
  %3038 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %2745) #13
  %3039 = icmp eq i32 %3038, -1
  br i1 %3039, label %3040, label %3064

3040:                                             ; preds = %3035
  %3041 = tail call ptr @__errno_location() #14
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = call i32 @s2n_print_stacktrace(ptr noundef %3043) #13
  %3045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3046 = trunc nuw i8 %3045 to i1
  br i1 %3046, label %3047, label %3051

3047:                                             ; preds = %3040
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @fileno(ptr noundef %3048) #13
  %3050 = call i32 @isatty(i32 noundef %3049) #13
  %.not856 = icmp eq i32 %3050, 0
  br i1 %.not856, label %3051, label %3052

3051:                                             ; preds = %3047, %3040
  br label %3052

3052:                                             ; preds = %3047, %3051
  %.str.5.sink2053 = phi ptr [ @.str.5, %3051 ], [ @.str.2, %3047 ]
  store i32 %3042, ptr %3041, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3056, ptr noundef nonnull @.str.4) #13
  %3058 = load i32, ptr %3055, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror_debug(i32 noundef %3058, ptr noundef nonnull @.str.4) #13
  %3060 = load i32, ptr %3041, align 4, !tbaa !5
  %3061 = call ptr @strerror(i32 noundef %3060) #13
  %3062 = load i32, ptr %3041, align 4, !tbaa !5
  %3063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3053, ptr noundef nonnull %.str.5.sink2053, i32 noundef %3054, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %3057, ptr noundef %3059, ptr noundef %3061, i32 noundef %3062) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3064:                                             ; preds = %3035
  %3065 = load i32, ptr @test_count, align 4, !tbaa !5
  %3066 = add nsw i32 %3065, 1
  store i32 %3066, ptr @test_count, align 4, !tbaa !5
  %3067 = getelementptr inbounds i8, ptr %2774, i64 220
  %3068 = load i8, ptr %3067, align 4, !tbaa !46
  %3069 = zext i8 %3068 to i32
  %3070 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %3071 = icmp eq i32 %3070, %3069
  br i1 %3071, label %3096, label %3072

3072:                                             ; preds = %3064
  %3073 = tail call ptr @__errno_location() #14
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075) #13
  %3077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3078 = trunc nuw i8 %3077 to i1
  br i1 %3078, label %3079, label %3083

3079:                                             ; preds = %3072
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @fileno(ptr noundef %3080) #13
  %3082 = call i32 @isatty(i32 noundef %3081) #13
  %.not738 = icmp eq i32 %3082, 0
  br i1 %.not738, label %3083, label %3084

3083:                                             ; preds = %3079, %3072
  br label %3084

3084:                                             ; preds = %3079, %3083
  %.str.5.sink2064 = phi ptr [ @.str.5, %3083 ], [ @.str.2, %3079 ]
  store i32 %3074, ptr %3073, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef nonnull @.str.4) #13
  %3090 = load i32, ptr %3087, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror_debug(i32 noundef %3090, ptr noundef nonnull @.str.4) #13
  %3092 = load i32, ptr %3073, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #13
  %3094 = load i32, ptr %3073, align 4, !tbaa !5
  %3095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef nonnull %.str.5.sink2064, i32 noundef %3086, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %3089, ptr noundef %3091, ptr noundef %3093, i32 noundef %3094) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3096:                                             ; preds = %3064
  %3097 = load i32, ptr @test_count, align 4, !tbaa !5
  %3098 = add nsw i32 %3097, 1
  store i32 %3098, ptr @test_count, align 4, !tbaa !5
  %3099 = getelementptr inbounds i8, ptr %2774, i64 218
  %3100 = load i8, ptr %3099, align 2, !tbaa !42
  %3101 = zext i8 %3100 to i32
  %3102 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %3103 = icmp eq i32 %3102, %3101
  br i1 %3103, label %3128, label %3104

3104:                                             ; preds = %3096
  %3105 = tail call ptr @__errno_location() #14
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = call i32 @s2n_print_stacktrace(ptr noundef %3107) #13
  %3109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3110 = trunc nuw i8 %3109 to i1
  br i1 %3110, label %3111, label %3115

3111:                                             ; preds = %3104
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @fileno(ptr noundef %3112) #13
  %3114 = call i32 @isatty(i32 noundef %3113) #13
  %.not739 = icmp eq i32 %3114, 0
  br i1 %.not739, label %3115, label %3116

3115:                                             ; preds = %3111, %3104
  br label %3116

3116:                                             ; preds = %3111, %3115
  %.str.5.sink2075 = phi ptr [ @.str.5, %3115 ], [ @.str.2, %3111 ]
  store i32 %3106, ptr %3105, align 4, !tbaa !5
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = load i32, ptr @test_count, align 4, !tbaa !5
  %3119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @s2n_strerror(i32 noundef %3120, ptr noundef nonnull @.str.4) #13
  %3122 = load i32, ptr %3119, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror_debug(i32 noundef %3122, ptr noundef nonnull @.str.4) #13
  %3124 = load i32, ptr %3105, align 4, !tbaa !5
  %3125 = call ptr @strerror(i32 noundef %3124) #13
  %3126 = load i32, ptr %3105, align 4, !tbaa !5
  %3127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3117, ptr noundef nonnull %.str.5.sink2075, i32 noundef %3118, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %3121, ptr noundef %3123, ptr noundef %3125, i32 noundef %3126) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3128:                                             ; preds = %3096
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = add nsw i32 %3129, 1
  store i32 %3130, ptr @test_count, align 4, !tbaa !5
  %3131 = getelementptr inbounds i8, ptr %2774, i64 217
  %3132 = load i8, ptr %3131, align 1, !tbaa !15
  %3133 = icmp eq i8 %3132, 33
  br i1 %3133, label %3158, label %3134

3134:                                             ; preds = %3128
  %3135 = tail call ptr @__errno_location() #14
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @s2n_print_stacktrace(ptr noundef %3137) #13
  %3139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3140 = trunc nuw i8 %3139 to i1
  br i1 %3140, label %3141, label %3145

3141:                                             ; preds = %3134
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @fileno(ptr noundef %3142) #13
  %3144 = call i32 @isatty(i32 noundef %3143) #13
  %.not740 = icmp eq i32 %3144, 0
  br i1 %.not740, label %3145, label %3146

3145:                                             ; preds = %3141, %3134
  br label %3146

3146:                                             ; preds = %3141, %3145
  %.str.5.sink2086 = phi ptr [ @.str.5, %3145 ], [ @.str.2, %3141 ]
  store i32 %3136, ptr %3135, align 4, !tbaa !5
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = load i32, ptr @test_count, align 4, !tbaa !5
  %3149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @s2n_strerror(i32 noundef %3150, ptr noundef nonnull @.str.4) #13
  %3152 = load i32, ptr %3149, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror_debug(i32 noundef %3152, ptr noundef nonnull @.str.4) #13
  %3154 = load i32, ptr %3135, align 4, !tbaa !5
  %3155 = call ptr @strerror(i32 noundef %3154) #13
  %3156 = load i32, ptr %3135, align 4, !tbaa !5
  %3157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef nonnull %.str.5.sink2086, i32 noundef %3148, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %3151, ptr noundef %3153, ptr noundef %3155, i32 noundef %3156) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3158:                                             ; preds = %3128
  %3159 = add nsw i32 %3129, 2
  store i32 %3159, ptr @test_count, align 4, !tbaa !5
  %3160 = getelementptr inbounds i8, ptr %2745, i64 219
  %3161 = load i8, ptr %3160, align 1, !tbaa !47
  %3162 = icmp eq i8 %3161, 34
  br i1 %3162, label %3187, label %3163

3163:                                             ; preds = %3158
  %3164 = tail call ptr @__errno_location() #14
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = call i32 @s2n_print_stacktrace(ptr noundef %3166) #13
  %3168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3169 = trunc nuw i8 %3168 to i1
  br i1 %3169, label %3170, label %3174

3170:                                             ; preds = %3163
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @fileno(ptr noundef %3171) #13
  %3173 = call i32 @isatty(i32 noundef %3172) #13
  %.not741 = icmp eq i32 %3173, 0
  br i1 %.not741, label %3174, label %3175

3174:                                             ; preds = %3170, %3163
  br label %3175

3175:                                             ; preds = %3170, %3174
  %.str.5.sink2097 = phi ptr [ @.str.5, %3174 ], [ @.str.2, %3170 ]
  store i32 %3165, ptr %3164, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3179, ptr noundef nonnull @.str.4) #13
  %3181 = load i32, ptr %3178, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror_debug(i32 noundef %3181, ptr noundef nonnull @.str.4) #13
  %3183 = load i32, ptr %3164, align 4, !tbaa !5
  %3184 = call ptr @strerror(i32 noundef %3183) #13
  %3185 = load i32, ptr %3164, align 4, !tbaa !5
  %3186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3176, ptr noundef nonnull %.str.5.sink2097, i32 noundef %3177, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %3180, ptr noundef %3182, ptr noundef %3184, i32 noundef %3185) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3187:                                             ; preds = %3158
  %3188 = add nsw i32 %3129, 3
  store i32 %3188, ptr @test_count, align 4, !tbaa !5
  %3189 = getelementptr inbounds i8, ptr %2745, i64 220
  %3190 = load i8, ptr %3189, align 4, !tbaa !46
  %3191 = zext i8 %3190 to i32
  %3192 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %3193 = icmp eq i32 %3192, %3191
  br i1 %3193, label %3218, label %3194

3194:                                             ; preds = %3187
  %3195 = tail call ptr @__errno_location() #14
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = call i32 @s2n_print_stacktrace(ptr noundef %3197) #13
  %3199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3200 = trunc nuw i8 %3199 to i1
  br i1 %3200, label %3201, label %3205

3201:                                             ; preds = %3194
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = call i32 @fileno(ptr noundef %3202) #13
  %3204 = call i32 @isatty(i32 noundef %3203) #13
  %.not742 = icmp eq i32 %3204, 0
  br i1 %.not742, label %3205, label %3206

3205:                                             ; preds = %3201, %3194
  br label %3206

3206:                                             ; preds = %3201, %3205
  %.str.5.sink2108 = phi ptr [ @.str.5, %3205 ], [ @.str.2, %3201 ]
  store i32 %3196, ptr %3195, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef nonnull @.str.4) #13
  %3212 = load i32, ptr %3209, align 4, !tbaa !5
  %3213 = call ptr @s2n_strerror_debug(i32 noundef %3212, ptr noundef nonnull @.str.4) #13
  %3214 = load i32, ptr %3195, align 4, !tbaa !5
  %3215 = call ptr @strerror(i32 noundef %3214) #13
  %3216 = load i32, ptr %3195, align 4, !tbaa !5
  %3217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef nonnull %.str.5.sink2108, i32 noundef %3208, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %3211, ptr noundef %3213, ptr noundef %3215, i32 noundef %3216) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3218:                                             ; preds = %3187
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = add nsw i32 %3219, 1
  store i32 %3220, ptr @test_count, align 4, !tbaa !5
  %3221 = getelementptr inbounds i8, ptr %2745, i64 218
  %3222 = load i8, ptr %3221, align 2, !tbaa !42
  %3223 = zext i8 %3222 to i32
  %3224 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %3225 = icmp eq i32 %3224, %3223
  br i1 %3225, label %3250, label %3226

3226:                                             ; preds = %3218
  %3227 = tail call ptr @__errno_location() #14
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = call i32 @s2n_print_stacktrace(ptr noundef %3229) #13
  %3231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3232 = trunc nuw i8 %3231 to i1
  br i1 %3232, label %3233, label %3237

3233:                                             ; preds = %3226
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = call i32 @fileno(ptr noundef %3234) #13
  %3236 = call i32 @isatty(i32 noundef %3235) #13
  %.not743 = icmp eq i32 %3236, 0
  br i1 %.not743, label %3237, label %3238

3237:                                             ; preds = %3233, %3226
  br label %3238

3238:                                             ; preds = %3233, %3237
  %.str.5.sink2119 = phi ptr [ @.str.5, %3237 ], [ @.str.2, %3233 ]
  store i32 %3228, ptr %3227, align 4, !tbaa !5
  %3239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3240 = load i32, ptr @test_count, align 4, !tbaa !5
  %3241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror(i32 noundef %3242, ptr noundef nonnull @.str.4) #13
  %3244 = load i32, ptr %3241, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror_debug(i32 noundef %3244, ptr noundef nonnull @.str.4) #13
  %3246 = load i32, ptr %3227, align 4, !tbaa !5
  %3247 = call ptr @strerror(i32 noundef %3246) #13
  %3248 = load i32, ptr %3227, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3239, ptr noundef nonnull %.str.5.sink2119, i32 noundef %3240, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %3243, ptr noundef %3245, ptr noundef %3247, i32 noundef %3248) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3250:                                             ; preds = %3218
  %3251 = load i32, ptr @test_count, align 4, !tbaa !5
  %3252 = add nsw i32 %3251, 1
  store i32 %3252, ptr @test_count, align 4, !tbaa !5
  %3253 = getelementptr inbounds i8, ptr %2745, i64 217
  %3254 = load i8, ptr %3253, align 1, !tbaa !15
  %3255 = icmp eq i8 %3254, 33
  br i1 %3255, label %3280, label %3256

3256:                                             ; preds = %3250
  %3257 = tail call ptr @__errno_location() #14
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = call i32 @s2n_print_stacktrace(ptr noundef %3259) #13
  %3261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3262 = trunc nuw i8 %3261 to i1
  br i1 %3262, label %3263, label %3267

3263:                                             ; preds = %3256
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = call i32 @fileno(ptr noundef %3264) #13
  %3266 = call i32 @isatty(i32 noundef %3265) #13
  %.not744 = icmp eq i32 %3266, 0
  br i1 %.not744, label %3267, label %3268

3267:                                             ; preds = %3263, %3256
  br label %3268

3268:                                             ; preds = %3263, %3267
  %.str.5.sink2130 = phi ptr [ @.str.5, %3267 ], [ @.str.2, %3263 ]
  store i32 %3258, ptr %3257, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror(i32 noundef %3272, ptr noundef nonnull @.str.4) #13
  %3274 = load i32, ptr %3271, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror_debug(i32 noundef %3274, ptr noundef nonnull @.str.4) #13
  %3276 = load i32, ptr %3257, align 4, !tbaa !5
  %3277 = call ptr @strerror(i32 noundef %3276) #13
  %3278 = load i32, ptr %3257, align 4, !tbaa !5
  %3279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3269, ptr noundef nonnull %.str.5.sink2130, i32 noundef %3270, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %3273, ptr noundef %3275, ptr noundef %3277, i32 noundef %3278) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3280:                                             ; preds = %3250
  %3281 = call i32 @s2n_connection_free(ptr noundef nonnull %2745) #13
  %3282 = call i32 @s2n_connection_free(ptr noundef nonnull %2774) #13
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = add nsw i32 %3283, 1
  store i32 %3284, ptr @test_count, align 4, !tbaa !5
  %3285 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %3286 = icmp eq i32 %3285, -1
  br i1 %3286, label %3287, label %3311

3287:                                             ; preds = %3280
  %3288 = tail call ptr @__errno_location() #14
  %3289 = load i32, ptr %3288, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @s2n_print_stacktrace(ptr noundef %3290) #13
  %3292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3293 = trunc nuw i8 %3292 to i1
  br i1 %3293, label %3294, label %3298

3294:                                             ; preds = %3287
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = call i32 @fileno(ptr noundef %3295) #13
  %3297 = call i32 @isatty(i32 noundef %3296) #13
  %.not855 = icmp eq i32 %3297, 0
  br i1 %.not855, label %3298, label %3299

3298:                                             ; preds = %3294, %3287
  br label %3299

3299:                                             ; preds = %3294, %3298
  %.str.5.sink2141 = phi ptr [ @.str.5, %3298 ], [ @.str.2, %3294 ]
  store i32 %3289, ptr %3288, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call ptr @s2n_strerror(i32 noundef %3303, ptr noundef nonnull @.str.4) #13
  %3305 = load i32, ptr %3302, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror_debug(i32 noundef %3305, ptr noundef nonnull @.str.4) #13
  %3307 = load i32, ptr %3288, align 4, !tbaa !5
  %3308 = call ptr @strerror(i32 noundef %3307) #13
  %3309 = load i32, ptr %3288, align 4, !tbaa !5
  %3310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3300, ptr noundef nonnull %.str.5.sink2141, i32 noundef %3301, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %3304, ptr noundef %3306, ptr noundef %3308, i32 noundef %3309) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3311:                                             ; preds = %3280
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #13
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = add nsw i32 %3312, 1
  store i32 %3313, ptr @test_count, align 4, !tbaa !5
  %3314 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %3315 = icmp eq i32 %3314, -1
  br i1 %3315, label %3316, label %3340

3316:                                             ; preds = %3311
  %3317 = tail call ptr @__errno_location() #14
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @s2n_print_stacktrace(ptr noundef %3319) #13
  %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 = %3316
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @fileno(ptr noundef %3324) #13
  %3326 = call i32 @isatty(i32 noundef %3325) #13
  %.not854 = icmp eq i32 %3326, 0
  br i1 %.not854, label %3327, label %3328

3327:                                             ; preds = %3323, %3316
  br label %3328

3328:                                             ; preds = %3323, %3327
  %.str.5.sink2152 = phi ptr [ @.str.5, %3327 ], [ @.str.2, %3323 ]
  store i32 %3318, ptr %3317, align 4, !tbaa !5
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror(i32 noundef %3332, ptr noundef nonnull @.str.4) #13
  %3334 = load i32, ptr %3331, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror_debug(i32 noundef %3334, ptr noundef nonnull @.str.4) #13
  %3336 = load i32, ptr %3317, align 4, !tbaa !5
  %3337 = call ptr @strerror(i32 noundef %3336) #13
  %3338 = load i32, ptr %3317, align 4, !tbaa !5
  %3339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3329, ptr noundef nonnull %.str.5.sink2152, i32 noundef %3330, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %3333, ptr noundef %3335, ptr noundef %3337, i32 noundef %3338) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3340:                                             ; preds = %3311
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = add nsw i32 %3341, 1
  store i32 %3342, ptr @test_count, align 4, !tbaa !5
  %3343 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %3344 = icmp eq ptr %3343, null
  br i1 %3344, label %3345, label %3369

3345:                                             ; preds = %3340
  %3346 = tail call ptr @__errno_location() #14
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = call i32 @s2n_print_stacktrace(ptr noundef %3348) #13
  %3350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3351 = trunc nuw i8 %3350 to i1
  br i1 %3351, label %3352, label %3356

3352:                                             ; preds = %3345
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = call i32 @fileno(ptr noundef %3353) #13
  %3355 = call i32 @isatty(i32 noundef %3354) #13
  %.not853 = icmp eq i32 %3355, 0
  br i1 %.not853, label %3356, label %3357

3356:                                             ; preds = %3352, %3345
  br label %3357

3357:                                             ; preds = %3352, %3356
  %.str.5.sink2163 = phi ptr [ @.str.5, %3356 ], [ @.str.2, %3352 ]
  store i32 %3347, ptr %3346, align 4, !tbaa !5
  %3358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3359 = load i32, ptr @test_count, align 4, !tbaa !5
  %3360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror(i32 noundef %3361, ptr noundef nonnull @.str.4) #13
  %3363 = load i32, ptr %3360, align 4, !tbaa !5
  %3364 = call ptr @s2n_strerror_debug(i32 noundef %3363, ptr noundef nonnull @.str.4) #13
  %3365 = load i32, ptr %3346, align 4, !tbaa !5
  %3366 = call ptr @strerror(i32 noundef %3365) #13
  %3367 = load i32, ptr %3346, align 4, !tbaa !5
  %3368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3358, ptr noundef nonnull %.str.5.sink2163, i32 noundef %3359, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 266, ptr noundef %3362, ptr noundef %3364, ptr noundef %3366, i32 noundef %3367) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3369:                                             ; preds = %3340
  %3370 = load i32, ptr @test_count, align 4, !tbaa !5
  %3371 = add nsw i32 %3370, 1
  store i32 %3371, ptr @test_count, align 4, !tbaa !5
  %3372 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3373 = icmp eq ptr %3372, null
  br i1 %3373, label %3374, label %3398

3374:                                             ; preds = %3369
  %3375 = tail call ptr @__errno_location() #14
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3378 = call i32 @s2n_print_stacktrace(ptr noundef %3377) #13
  %3379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3380 = trunc nuw i8 %3379 to i1
  br i1 %3380, label %3381, label %3385

3381:                                             ; preds = %3374
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = call i32 @fileno(ptr noundef %3382) #13
  %3384 = call i32 @isatty(i32 noundef %3383) #13
  %.not852 = icmp eq i32 %3384, 0
  br i1 %.not852, label %3385, label %3386

3385:                                             ; preds = %3381, %3374
  br label %3386

3386:                                             ; preds = %3381, %3385
  %.str.5.sink2174 = phi ptr [ @.str.5, %3385 ], [ @.str.2, %3381 ]
  store i32 %3376, ptr %3375, align 4, !tbaa !5
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = load i32, ptr @test_count, align 4, !tbaa !5
  %3389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3390 = load i32, ptr %3389, align 4, !tbaa !5
  %3391 = call ptr @s2n_strerror(i32 noundef %3390, ptr noundef nonnull @.str.4) #13
  %3392 = load i32, ptr %3389, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror_debug(i32 noundef %3392, ptr noundef nonnull @.str.4) #13
  %3394 = load i32, ptr %3375, align 4, !tbaa !5
  %3395 = call ptr @strerror(i32 noundef %3394) #13
  %3396 = load i32, ptr %3375, align 4, !tbaa !5
  %3397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3387, ptr noundef nonnull %.str.5.sink2174, i32 noundef %3388, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %3391, ptr noundef %3393, ptr noundef %3395, i32 noundef %3396) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3398:                                             ; preds = %3369
  %3399 = load i32, ptr @test_count, align 4, !tbaa !5
  %3400 = add nsw i32 %3399, 1
  store i32 %3400, ptr @test_count, align 4, !tbaa !5
  %3401 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3343, ptr noundef nonnull %333) #13
  %3402 = icmp eq i32 %3401, -1
  br i1 %3402, label %3403, label %3427

3403:                                             ; preds = %3398
  %3404 = tail call ptr @__errno_location() #14
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = call i32 @s2n_print_stacktrace(ptr noundef %3406) #13
  %3408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3409 = trunc nuw i8 %3408 to i1
  br i1 %3409, label %3410, label %3414

3410:                                             ; preds = %3403
  %3411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3412 = call i32 @fileno(ptr noundef %3411) #13
  %3413 = call i32 @isatty(i32 noundef %3412) #13
  %.not851 = icmp eq i32 %3413, 0
  br i1 %.not851, label %3414, label %3415

3414:                                             ; preds = %3410, %3403
  br label %3415

3415:                                             ; preds = %3410, %3414
  %.str.5.sink2185 = phi ptr [ @.str.5, %3414 ], [ @.str.2, %3410 ]
  store i32 %3405, ptr %3404, align 4, !tbaa !5
  %3416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3417 = load i32, ptr @test_count, align 4, !tbaa !5
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror(i32 noundef %3419, ptr noundef nonnull @.str.4) #13
  %3421 = load i32, ptr %3418, align 4, !tbaa !5
  %3422 = call ptr @s2n_strerror_debug(i32 noundef %3421, ptr noundef nonnull @.str.4) #13
  %3423 = load i32, ptr %3404, align 4, !tbaa !5
  %3424 = call ptr @strerror(i32 noundef %3423) #13
  %3425 = load i32, ptr %3404, align 4, !tbaa !5
  %3426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3416, ptr noundef nonnull %.str.5.sink2185, i32 noundef %3417, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %3420, ptr noundef %3422, ptr noundef %3424, i32 noundef %3425) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3427:                                             ; preds = %3398
  %3428 = load i32, ptr @test_count, align 4, !tbaa !5
  %3429 = add nsw i32 %3428, 1
  store i32 %3429, ptr @test_count, align 4, !tbaa !5
  %3430 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3372, ptr noundef nonnull %190) #13
  %3431 = icmp eq i32 %3430, -1
  br i1 %3431, label %3432, label %3456

3432:                                             ; preds = %3427
  %3433 = tail call ptr @__errno_location() #14
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = call i32 @s2n_print_stacktrace(ptr noundef %3435) #13
  %3437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3438 = trunc nuw i8 %3437 to i1
  br i1 %3438, label %3439, label %3443

3439:                                             ; preds = %3432
  %3440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3441 = call i32 @fileno(ptr noundef %3440) #13
  %3442 = call i32 @isatty(i32 noundef %3441) #13
  %.not850 = icmp eq i32 %3442, 0
  br i1 %.not850, label %3443, label %3444

3443:                                             ; preds = %3439, %3432
  br label %3444

3444:                                             ; preds = %3439, %3443
  %.str.5.sink2196 = phi ptr [ @.str.5, %3443 ], [ @.str.2, %3439 ]
  store i32 %3434, ptr %3433, align 4, !tbaa !5
  %3445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3446 = load i32, 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(i32 noundef %3448, ptr noundef nonnull @.str.4) #13
  %3450 = load i32, ptr %3447, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef nonnull @.str.4) #13
  %3452 = load i32, ptr %3433, align 4, !tbaa !5
  %3453 = call ptr @strerror(i32 noundef %3452) #13
  %3454 = load i32, ptr %3433, align 4, !tbaa !5
  %3455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3445, ptr noundef nonnull %.str.5.sink2196, i32 noundef %3446, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %3449, ptr noundef %3451, ptr noundef %3453, i32 noundef %3454) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3456:                                             ; preds = %3427
  %3457 = load i32, ptr @test_count, align 4, !tbaa !5
  %3458 = add nsw i32 %3457, 1
  store i32 %3458, ptr @test_count, align 4, !tbaa !5
  %3459 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3372, ptr noundef nonnull @.str.58) #13
  %3460 = icmp eq i32 %3459, -1
  br i1 %3460, label %3461, label %3485

3461:                                             ; preds = %3456
  %3462 = tail call ptr @__errno_location() #14
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3465 = call i32 @s2n_print_stacktrace(ptr noundef %3464) #13
  %3466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3467 = trunc nuw i8 %3466 to i1
  br i1 %3467, label %3468, label %3472

3468:                                             ; preds = %3461
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @fileno(ptr noundef %3469) #13
  %3471 = call i32 @isatty(i32 noundef %3470) #13
  %.not849 = icmp eq i32 %3471, 0
  br i1 %.not849, label %3472, label %3473

3472:                                             ; preds = %3468, %3461
  br label %3473

3473:                                             ; preds = %3468, %3472
  %.str.5.sink2207 = phi ptr [ @.str.5, %3472 ], [ @.str.2, %3468 ]
  store i32 %3463, ptr %3462, align 4, !tbaa !5
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3477 = load i32, ptr %3476, align 4, !tbaa !5
  %3478 = call ptr @s2n_strerror(i32 noundef %3477, ptr noundef nonnull @.str.4) #13
  %3479 = load i32, ptr %3476, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror_debug(i32 noundef %3479, ptr noundef nonnull @.str.4) #13
  %3481 = load i32, ptr %3462, align 4, !tbaa !5
  %3482 = call ptr @strerror(i32 noundef %3481) #13
  %3483 = load i32, ptr %3462, align 4, !tbaa !5
  %3484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3474, ptr noundef nonnull %.str.5.sink2207, i32 noundef %3475, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %3478, ptr noundef %3480, ptr noundef %3482, i32 noundef %3483) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3485:                                             ; preds = %3456
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = add nsw i32 %3486, 1
  store i32 %3487, ptr @test_count, align 4, !tbaa !5
  %3488 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3343, ptr noundef nonnull @.str.58) #13
  %3489 = icmp eq i32 %3488, -1
  br i1 %3489, label %3490, label %3514

3490:                                             ; preds = %3485
  %3491 = tail call ptr @__errno_location() #14
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = call i32 @s2n_print_stacktrace(ptr noundef %3493) #13
  %3495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3496 = trunc nuw i8 %3495 to i1
  br i1 %3496, label %3497, label %3501

3497:                                             ; preds = %3490
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = call i32 @fileno(ptr noundef %3498) #13
  %3500 = call i32 @isatty(i32 noundef %3499) #13
  %.not848 = icmp eq i32 %3500, 0
  br i1 %.not848, label %3501, label %3502

3501:                                             ; preds = %3497, %3490
  br label %3502

3502:                                             ; preds = %3497, %3501
  %.str.5.sink2218 = phi ptr [ @.str.5, %3501 ], [ @.str.2, %3497 ]
  store i32 %3492, ptr %3491, align 4, !tbaa !5
  %3503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3504 = load i32, ptr @test_count, align 4, !tbaa !5
  %3505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @s2n_strerror(i32 noundef %3506, ptr noundef nonnull @.str.4) #13
  %3508 = load i32, ptr %3505, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror_debug(i32 noundef %3508, ptr noundef nonnull @.str.4) #13
  %3510 = load i32, ptr %3491, align 4, !tbaa !5
  %3511 = call ptr @strerror(i32 noundef %3510) #13
  %3512 = load i32, ptr %3491, align 4, !tbaa !5
  %3513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3503, ptr noundef nonnull %.str.5.sink2218, i32 noundef %3504, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %3507, ptr noundef %3509, ptr noundef %3511, i32 noundef %3512) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3514:                                             ; preds = %3485
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = add nsw i32 %3515, 1
  store i32 %3516, ptr @test_count, align 4, !tbaa !5
  %3517 = call i32 @s2n_client_hello_send(ptr noundef nonnull %3372) #13
  %3518 = icmp eq i32 %3517, -1
  br i1 %3518, label %3519, label %3543

3519:                                             ; preds = %3514
  %3520 = tail call ptr @__errno_location() #14
  %3521 = load i32, ptr %3520, align 4, !tbaa !5
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @s2n_print_stacktrace(ptr noundef %3522) #13
  %3524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3525 = trunc nuw i8 %3524 to i1
  br i1 %3525, label %3526, label %3530

3526:                                             ; preds = %3519
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = call i32 @fileno(ptr noundef %3527) #13
  %3529 = call i32 @isatty(i32 noundef %3528) #13
  %.not847 = icmp eq i32 %3529, 0
  br i1 %.not847, label %3530, label %3531

3530:                                             ; preds = %3526, %3519
  br label %3531

3531:                                             ; preds = %3526, %3530
  %.str.5.sink2229 = phi ptr [ @.str.5, %3530 ], [ @.str.2, %3526 ]
  store i32 %3521, ptr %3520, align 4, !tbaa !5
  %3532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror(i32 noundef %3535, ptr noundef nonnull @.str.4) #13
  %3537 = load i32, ptr %3534, align 4, !tbaa !5
  %3538 = call ptr @s2n_strerror_debug(i32 noundef %3537, ptr noundef nonnull @.str.4) #13
  %3539 = load i32, ptr %3520, align 4, !tbaa !5
  %3540 = call ptr @strerror(i32 noundef %3539) #13
  %3541 = load i32, ptr %3520, align 4, !tbaa !5
  %3542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3532, ptr noundef nonnull %.str.5.sink2229, i32 noundef %3533, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %3536, ptr noundef %3538, ptr noundef %3540, i32 noundef %3541) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3543:                                             ; preds = %3514
  %3544 = load i32, ptr @test_count, align 4, !tbaa !5
  %3545 = add nsw i32 %3544, 1
  store i32 %3545, ptr @test_count, align 4, !tbaa !5
  %3546 = getelementptr inbounds i8, ptr %3343, i64 2016
  %3547 = getelementptr inbounds i8, ptr %3372, i64 2016
  %3548 = call i32 @s2n_stuffer_write(ptr noundef nonnull %3546, ptr noundef nonnull %3547) #13
  %3549 = icmp eq i32 %3548, -1
  br i1 %3549, label %3550, label %3574

3550:                                             ; preds = %3543
  %3551 = tail call ptr @__errno_location() #14
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = call i32 @s2n_print_stacktrace(ptr noundef %3553) #13
  %3555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3556 = trunc nuw i8 %3555 to i1
  br i1 %3556, label %3557, label %3561

3557:                                             ; preds = %3550
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = call i32 @fileno(ptr noundef %3558) #13
  %3560 = call i32 @isatty(i32 noundef %3559) #13
  %.not846 = icmp eq i32 %3560, 0
  br i1 %.not846, label %3561, label %3562

3561:                                             ; preds = %3557, %3550
  br label %3562

3562:                                             ; preds = %3557, %3561
  %.str.5.sink2240 = phi ptr [ @.str.5, %3561 ], [ @.str.2, %3557 ]
  store i32 %3552, ptr %3551, align 4, !tbaa !5
  %3563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3564 = load i32, ptr @test_count, align 4, !tbaa !5
  %3565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3566 = load i32, ptr %3565, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror(i32 noundef %3566, ptr noundef nonnull @.str.4) #13
  %3568 = load i32, ptr %3565, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror_debug(i32 noundef %3568, ptr noundef nonnull @.str.4) #13
  %3570 = load i32, ptr %3551, align 4, !tbaa !5
  %3571 = call ptr @strerror(i32 noundef %3570) #13
  %3572 = load i32, ptr %3551, align 4, !tbaa !5
  %3573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3563, ptr noundef nonnull %.str.5.sink2240, i32 noundef %3564, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %3567, ptr noundef %3569, ptr noundef %3571, i32 noundef %3572) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3574:                                             ; preds = %3543
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = add nsw i32 %3575, 1
  store i32 %3576, ptr @test_count, align 4, !tbaa !5
  %3577 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %3343) #13
  %3578 = icmp eq i32 %3577, -1
  br i1 %3578, label %3579, label %3603

3579:                                             ; preds = %3574
  %3580 = tail call ptr @__errno_location() #14
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3583 = call i32 @s2n_print_stacktrace(ptr noundef %3582) #13
  %3584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3585 = trunc nuw i8 %3584 to i1
  br i1 %3585, label %3586, label %3590

3586:                                             ; preds = %3579
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3588 = call i32 @fileno(ptr noundef %3587) #13
  %3589 = call i32 @isatty(i32 noundef %3588) #13
  %.not845 = icmp eq i32 %3589, 0
  br i1 %.not845, label %3590, label %3591

3590:                                             ; preds = %3586, %3579
  br label %3591

3591:                                             ; preds = %3586, %3590
  %.str.5.sink2251 = phi ptr [ @.str.5, %3590 ], [ @.str.2, %3586 ]
  store i32 %3581, ptr %3580, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror(i32 noundef %3595, ptr noundef nonnull @.str.4) #13
  %3597 = load i32, ptr %3594, align 4, !tbaa !5
  %3598 = call ptr @s2n_strerror_debug(i32 noundef %3597, ptr noundef nonnull @.str.4) #13
  %3599 = load i32, ptr %3580, align 4, !tbaa !5
  %3600 = call ptr @strerror(i32 noundef %3599) #13
  %3601 = load i32, ptr %3580, align 4, !tbaa !5
  %3602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef nonnull %.str.5.sink2251, i32 noundef %3593, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %3596, ptr noundef %3598, ptr noundef %3600, i32 noundef %3601) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3603:                                             ; preds = %3574
  %3604 = load i32, ptr @test_count, align 4, !tbaa !5
  %3605 = add nsw i32 %3604, 1
  store i32 %3605, ptr @test_count, align 4, !tbaa !5
  %3606 = getelementptr inbounds i8, ptr %3343, i64 219
  %3607 = load i8, ptr %3606, align 1, !tbaa !47
  %3608 = icmp eq i8 %3607, 34
  br i1 %3608, label %3633, label %3609

3609:                                             ; preds = %3603
  %3610 = tail call ptr @__errno_location() #14
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @s2n_print_stacktrace(ptr noundef %3612) #13
  %3614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3615 = trunc nuw i8 %3614 to i1
  br i1 %3615, label %3616, label %3620

3616:                                             ; preds = %3609
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = call i32 @fileno(ptr noundef %3617) #13
  %3619 = call i32 @isatty(i32 noundef %3618) #13
  %.not745 = icmp eq i32 %3619, 0
  br i1 %.not745, label %3620, label %3621

3620:                                             ; preds = %3616, %3609
  br label %3621

3621:                                             ; preds = %3616, %3620
  %.str.5.sink2262 = phi ptr [ @.str.5, %3620 ], [ @.str.2, %3616 ]
  store i32 %3611, ptr %3610, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3625, ptr noundef nonnull @.str.4) #13
  %3627 = load i32, ptr %3624, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror_debug(i32 noundef %3627, ptr noundef nonnull @.str.4) #13
  %3629 = load i32, ptr %3610, align 4, !tbaa !5
  %3630 = call ptr @strerror(i32 noundef %3629) #13
  %3631 = load i32, ptr %3610, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3622, ptr noundef nonnull %.str.5.sink2262, i32 noundef %3623, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %3626, ptr noundef %3628, ptr noundef %3630, i32 noundef %3631) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3633:                                             ; preds = %3603
  %3634 = add nsw i32 %3604, 2
  store i32 %3634, ptr @test_count, align 4, !tbaa !5
  %3635 = getelementptr inbounds i8, ptr %3343, i64 220
  %3636 = load i8, ptr %3635, align 4, !tbaa !46
  %3637 = zext i8 %3636 to i32
  %3638 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %3639 = icmp eq i32 %3638, %3637
  br i1 %3639, label %3664, label %3640

3640:                                             ; preds = %3633
  %3641 = tail call ptr @__errno_location() #14
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = call i32 @s2n_print_stacktrace(ptr noundef %3643) #13
  %3645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3646 = trunc nuw i8 %3645 to i1
  br i1 %3646, label %3647, label %3651

3647:                                             ; preds = %3640
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = call i32 @fileno(ptr noundef %3648) #13
  %3650 = call i32 @isatty(i32 noundef %3649) #13
  %.not746 = icmp eq i32 %3650, 0
  br i1 %.not746, label %3651, label %3652

3651:                                             ; preds = %3647, %3640
  br label %3652

3652:                                             ; preds = %3647, %3651
  %.str.5.sink2273 = phi ptr [ @.str.5, %3651 ], [ @.str.2, %3647 ]
  store i32 %3642, ptr %3641, align 4, !tbaa !5
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = load i32, ptr @test_count, align 4, !tbaa !5
  %3655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @s2n_strerror(i32 noundef %3656, ptr noundef nonnull @.str.4) #13
  %3658 = load i32, ptr %3655, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror_debug(i32 noundef %3658, ptr noundef nonnull @.str.4) #13
  %3660 = load i32, ptr %3641, align 4, !tbaa !5
  %3661 = call ptr @strerror(i32 noundef %3660) #13
  %3662 = load i32, ptr %3641, align 4, !tbaa !5
  %3663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3653, ptr noundef nonnull %.str.5.sink2273, i32 noundef %3654, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %3657, ptr noundef %3659, ptr noundef %3661, i32 noundef %3662) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3664:                                             ; preds = %3633
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %3666 = add nsw i32 %3665, 1
  store i32 %3666, ptr @test_count, align 4, !tbaa !5
  %3667 = getelementptr inbounds i8, ptr %3343, i64 218
  %3668 = load i8, ptr %3667, align 2, !tbaa !42
  %3669 = zext i8 %3668 to i32
  %3670 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %3671 = icmp eq i32 %3670, %3669
  br i1 %3671, label %3696, label %3672

3672:                                             ; preds = %3664
  %3673 = tail call ptr @__errno_location() #14
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @s2n_print_stacktrace(ptr noundef %3675) #13
  %3677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3678 = trunc nuw i8 %3677 to i1
  br i1 %3678, label %3679, label %3683

3679:                                             ; preds = %3672
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = call i32 @fileno(ptr noundef %3680) #13
  %3682 = call i32 @isatty(i32 noundef %3681) #13
  %.not747 = icmp eq i32 %3682, 0
  br i1 %.not747, label %3683, label %3684

3683:                                             ; preds = %3679, %3672
  br label %3684

3684:                                             ; preds = %3679, %3683
  %.str.5.sink2284 = phi ptr [ @.str.5, %3683 ], [ @.str.2, %3679 ]
  store i32 %3674, ptr %3673, align 4, !tbaa !5
  %3685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3686 = load i32, ptr @test_count, align 4, !tbaa !5
  %3687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  %3689 = call ptr @s2n_strerror(i32 noundef %3688, ptr noundef nonnull @.str.4) #13
  %3690 = load i32, ptr %3687, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror_debug(i32 noundef %3690, ptr noundef nonnull @.str.4) #13
  %3692 = load i32, ptr %3673, align 4, !tbaa !5
  %3693 = call ptr @strerror(i32 noundef %3692) #13
  %3694 = load i32, ptr %3673, align 4, !tbaa !5
  %3695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3685, ptr noundef nonnull %.str.5.sink2284, i32 noundef %3686, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %3689, ptr noundef %3691, ptr noundef %3693, i32 noundef %3694) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3696:                                             ; preds = %3664
  %3697 = load i32, ptr @test_count, align 4, !tbaa !5
  %3698 = add nsw i32 %3697, 1
  store i32 %3698, ptr @test_count, align 4, !tbaa !5
  %3699 = getelementptr inbounds i8, ptr %3343, i64 217
  %3700 = load i8, ptr %3699, align 1, !tbaa !15
  %3701 = icmp eq i8 %3700, 33
  br i1 %3701, label %3726, label %3702

3702:                                             ; preds = %3696
  %3703 = tail call ptr @__errno_location() #14
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3706 = call i32 @s2n_print_stacktrace(ptr noundef %3705) #13
  %3707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3708 = trunc nuw i8 %3707 to i1
  br i1 %3708, label %3709, label %3713

3709:                                             ; preds = %3702
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @fileno(ptr noundef %3710) #13
  %3712 = call i32 @isatty(i32 noundef %3711) #13
  %.not748 = icmp eq i32 %3712, 0
  br i1 %.not748, label %3713, label %3714

3713:                                             ; preds = %3709, %3702
  br label %3714

3714:                                             ; preds = %3709, %3713
  %.str.5.sink2295 = phi ptr [ @.str.5, %3713 ], [ @.str.2, %3709 ]
  store i32 %3704, ptr %3703, align 4, !tbaa !5
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = load i32, ptr @test_count, align 4, !tbaa !5
  %3717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @s2n_strerror(i32 noundef %3718, ptr noundef nonnull @.str.4) #13
  %3720 = load i32, ptr %3717, align 4, !tbaa !5
  %3721 = call ptr @s2n_strerror_debug(i32 noundef %3720, ptr noundef nonnull @.str.4) #13
  %3722 = load i32, ptr %3703, align 4, !tbaa !5
  %3723 = call ptr @strerror(i32 noundef %3722) #13
  %3724 = load i32, ptr %3703, align 4, !tbaa !5
  %3725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3715, ptr noundef nonnull %.str.5.sink2295, i32 noundef %3716, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %3719, ptr noundef %3721, ptr noundef %3723, i32 noundef %3724) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3726:                                             ; preds = %3696
  %3727 = call i32 @s2n_connection_free(ptr noundef nonnull %3343) #13
  %3728 = call i32 @s2n_connection_free(ptr noundef nonnull %3372) #13
  %3729 = load i32, ptr @test_count, align 4, !tbaa !5
  %3730 = add nsw i32 %3729, 1
  store i32 %3730, ptr @test_count, align 4, !tbaa !5
  %3731 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %3732 = icmp eq i32 %3731, -1
  br i1 %3732, label %3733, label %3757

3733:                                             ; preds = %3726
  %3734 = tail call ptr @__errno_location() #14
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = call i32 @s2n_print_stacktrace(ptr noundef %3736) #13
  %3738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3739 = trunc nuw i8 %3738 to i1
  br i1 %3739, label %3740, label %3744

3740:                                             ; preds = %3733
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = call i32 @fileno(ptr noundef %3741) #13
  %3743 = call i32 @isatty(i32 noundef %3742) #13
  %.not844 = icmp eq i32 %3743, 0
  br i1 %.not844, label %3744, label %3745

3744:                                             ; preds = %3740, %3733
  br label %3745

3745:                                             ; preds = %3740, %3744
  %.str.5.sink2306 = phi ptr [ @.str.5, %3744 ], [ @.str.2, %3740 ]
  store i32 %3735, ptr %3734, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3749, ptr noundef nonnull @.str.4) #13
  %3751 = load i32, ptr %3748, align 4, !tbaa !5
  %3752 = call ptr @s2n_strerror_debug(i32 noundef %3751, ptr noundef nonnull @.str.4) #13
  %3753 = load i32, ptr %3734, align 4, !tbaa !5
  %3754 = call ptr @strerror(i32 noundef %3753) #13
  %3755 = load i32, ptr %3734, align 4, !tbaa !5
  %3756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3746, ptr noundef nonnull %.str.5.sink2306, i32 noundef %3747, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %3750, ptr noundef %3752, ptr noundef %3754, i32 noundef %3755) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3757:                                             ; preds = %3726
  %3758 = load i32, ptr @test_count, align 4, !tbaa !5
  %3759 = add nsw i32 %3758, 1
  store i32 %3759, ptr @test_count, align 4, !tbaa !5
  %3760 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %3761 = icmp eq ptr %3760, null
  br i1 %3761, label %3762, label %3786

3762:                                             ; preds = %3757
  %3763 = tail call ptr @__errno_location() #14
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3766 = call i32 @s2n_print_stacktrace(ptr noundef %3765) #13
  %3767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3768 = trunc nuw i8 %3767 to i1
  br i1 %3768, label %3769, label %3773

3769:                                             ; preds = %3762
  %3770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3771 = call i32 @fileno(ptr noundef %3770) #13
  %3772 = call i32 @isatty(i32 noundef %3771) #13
  %.not843 = icmp eq i32 %3772, 0
  br i1 %.not843, label %3773, label %3774

3773:                                             ; preds = %3769, %3762
  br label %3774

3774:                                             ; preds = %3769, %3773
  %.str.5.sink2317 = phi ptr [ @.str.5, %3773 ], [ @.str.2, %3769 ]
  store i32 %3764, ptr %3763, align 4, !tbaa !5
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = load i32, ptr @test_count, align 4, !tbaa !5
  %3777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call ptr @s2n_strerror(i32 noundef %3778, ptr noundef nonnull @.str.4) #13
  %3780 = load i32, ptr %3777, align 4, !tbaa !5
  %3781 = call ptr @s2n_strerror_debug(i32 noundef %3780, ptr noundef nonnull @.str.4) #13
  %3782 = load i32, ptr %3763, align 4, !tbaa !5
  %3783 = call ptr @strerror(i32 noundef %3782) #13
  %3784 = load i32, ptr %3763, align 4, !tbaa !5
  %3785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3775, ptr noundef nonnull %.str.5.sink2317, i32 noundef %3776, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %3779, ptr noundef %3781, ptr noundef %3783, i32 noundef %3784) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3786:                                             ; preds = %3757
  %3787 = load i32, ptr @test_count, align 4, !tbaa !5
  %3788 = add nsw i32 %3787, 1
  store i32 %3788, ptr @test_count, align 4, !tbaa !5
  %3789 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3760, ptr noundef nonnull %190) #13
  %3790 = icmp eq i32 %3789, -1
  br i1 %3790, label %3791, label %3815

3791:                                             ; preds = %3786
  %3792 = tail call ptr @__errno_location() #14
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3795 = call i32 @s2n_print_stacktrace(ptr noundef %3794) #13
  %3796 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3797 = trunc nuw i8 %3796 to i1
  br i1 %3797, label %3798, label %3802

3798:                                             ; preds = %3791
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = call i32 @fileno(ptr noundef %3799) #13
  %3801 = call i32 @isatty(i32 noundef %3800) #13
  %.not842 = icmp eq i32 %3801, 0
  br i1 %.not842, label %3802, label %3803

3802:                                             ; preds = %3798, %3791
  br label %3803

3803:                                             ; preds = %3798, %3802
  %.str.5.sink2328 = phi ptr [ @.str.5, %3802 ], [ @.str.2, %3798 ]
  store i32 %3793, ptr %3792, align 4, !tbaa !5
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = load i32, ptr @test_count, align 4, !tbaa !5
  %3806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3807 = load i32, ptr %3806, align 4, !tbaa !5
  %3808 = call ptr @s2n_strerror(i32 noundef %3807, ptr noundef nonnull @.str.4) #13
  %3809 = load i32, ptr %3806, align 4, !tbaa !5
  %3810 = call ptr @s2n_strerror_debug(i32 noundef %3809, ptr noundef nonnull @.str.4) #13
  %3811 = load i32, ptr %3792, align 4, !tbaa !5
  %3812 = call ptr @strerror(i32 noundef %3811) #13
  %3813 = load i32, ptr %3792, align 4, !tbaa !5
  %3814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3804, ptr noundef nonnull %.str.5.sink2328, i32 noundef %3805, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %3808, ptr noundef %3810, ptr noundef %3812, i32 noundef %3813) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3815:                                             ; preds = %3786
  %3816 = load i32, ptr @test_count, align 4, !tbaa !5
  %3817 = add nsw i32 %3816, 1
  store i32 %3817, ptr @test_count, align 4, !tbaa !5
  %3818 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %3819 = icmp eq i32 %3818, -1
  br i1 %3819, label %3820, label %3844

3820:                                             ; preds = %3815
  %3821 = tail call ptr @__errno_location() #14
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = call i32 @s2n_print_stacktrace(ptr noundef %3823) #13
  %3825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3826 = trunc nuw i8 %3825 to i1
  br i1 %3826, label %3827, label %3831

3827:                                             ; preds = %3820
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @fileno(ptr noundef %3828) #13
  %3830 = call i32 @isatty(i32 noundef %3829) #13
  %.not841 = icmp eq i32 %3830, 0
  br i1 %.not841, label %3831, label %3832

3831:                                             ; preds = %3827, %3820
  br label %3832

3832:                                             ; preds = %3827, %3831
  %.str.5.sink2339 = phi ptr [ @.str.5, %3831 ], [ @.str.2, %3827 ]
  store i32 %3822, ptr %3821, align 4, !tbaa !5
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = load i32, ptr @test_count, align 4, !tbaa !5
  %3835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call ptr @s2n_strerror(i32 noundef %3836, ptr noundef nonnull @.str.4) #13
  %3838 = load i32, ptr %3835, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror_debug(i32 noundef %3838, ptr noundef nonnull @.str.4) #13
  %3840 = load i32, ptr %3821, align 4, !tbaa !5
  %3841 = call ptr @strerror(i32 noundef %3840) #13
  %3842 = load i32, ptr %3821, align 4, !tbaa !5
  %3843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3833, ptr noundef nonnull %.str.5.sink2339, i32 noundef %3834, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %3837, ptr noundef %3839, ptr noundef %3841, i32 noundef %3842) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3844:                                             ; preds = %3815
  %3845 = load i32, ptr @test_count, align 4, !tbaa !5
  %3846 = add nsw i32 %3845, 1
  store i32 %3846, ptr @test_count, align 4, !tbaa !5
  %3847 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %3848 = icmp eq ptr %3847, null
  br i1 %3848, label %3849, label %3873

3849:                                             ; preds = %3844
  %3850 = tail call ptr @__errno_location() #14
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = call i32 @s2n_print_stacktrace(ptr noundef %3852) #13
  %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 = %3849
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @fileno(ptr noundef %3857) #13
  %3859 = call i32 @isatty(i32 noundef %3858) #13
  %.not840 = icmp eq i32 %3859, 0
  br i1 %.not840, label %3860, label %3861

3860:                                             ; preds = %3856, %3849
  br label %3861

3861:                                             ; preds = %3856, %3860
  %.str.5.sink2350 = phi ptr [ @.str.5, %3860 ], [ @.str.2, %3856 ]
  store i32 %3851, ptr %3850, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef nonnull @.str.4) #13
  %3867 = load i32, ptr %3864, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror_debug(i32 noundef %3867, ptr noundef nonnull @.str.4) #13
  %3869 = load i32, ptr %3850, align 4, !tbaa !5
  %3870 = call ptr @strerror(i32 noundef %3869) #13
  %3871 = load i32, ptr %3850, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3862, ptr noundef nonnull %.str.5.sink2350, i32 noundef %3863, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %3866, ptr noundef %3868, ptr noundef %3870, i32 noundef %3871) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3873:                                             ; preds = %3844
  %3874 = load i32, ptr @test_count, align 4, !tbaa !5
  %3875 = add nsw i32 %3874, 1
  store i32 %3875, ptr @test_count, align 4, !tbaa !5
  %3876 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3847, ptr noundef nonnull %190) #13
  %3877 = icmp eq i32 %3876, -1
  br i1 %3877, label %3878, label %3902

3878:                                             ; preds = %3873
  %3879 = tail call ptr @__errno_location() #14
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3882 = call i32 @s2n_print_stacktrace(ptr noundef %3881) #13
  %3883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3884 = trunc nuw i8 %3883 to i1
  br i1 %3884, label %3885, label %3889

3885:                                             ; preds = %3878
  %3886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3887 = call i32 @fileno(ptr noundef %3886) #13
  %3888 = call i32 @isatty(i32 noundef %3887) #13
  %.not839 = icmp eq i32 %3888, 0
  br i1 %.not839, label %3889, label %3890

3889:                                             ; preds = %3885, %3878
  br label %3890

3890:                                             ; preds = %3885, %3889
  %.str.5.sink2361 = phi ptr [ @.str.5, %3889 ], [ @.str.2, %3885 ]
  store i32 %3880, ptr %3879, align 4, !tbaa !5
  %3891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3892 = load i32, ptr @test_count, align 4, !tbaa !5
  %3893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror(i32 noundef %3894, ptr noundef nonnull @.str.4) #13
  %3896 = load i32, ptr %3893, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror_debug(i32 noundef %3896, ptr noundef nonnull @.str.4) #13
  %3898 = load i32, ptr %3879, align 4, !tbaa !5
  %3899 = call ptr @strerror(i32 noundef %3898) #13
  %3900 = load i32, ptr %3879, align 4, !tbaa !5
  %3901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3891, ptr noundef nonnull %.str.5.sink2361, i32 noundef %3892, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %3895, ptr noundef %3897, ptr noundef %3899, i32 noundef %3900) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3902:                                             ; preds = %3873
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = add nsw i32 %3903, 1
  store i32 %3904, ptr @test_count, align 4, !tbaa !5
  %3905 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %3847, ptr noundef nonnull @.str.58) #13
  %3906 = icmp eq i32 %3905, -1
  br i1 %3906, label %3907, label %3931

3907:                                             ; preds = %3902
  %3908 = tail call ptr @__errno_location() #14
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3911 = call i32 @s2n_print_stacktrace(ptr noundef %3910) #13
  %3912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3913 = trunc nuw i8 %3912 to i1
  br i1 %3913, label %3914, label %3918

3914:                                             ; preds = %3907
  %3915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3916 = call i32 @fileno(ptr noundef %3915) #13
  %3917 = call i32 @isatty(i32 noundef %3916) #13
  %.not838 = icmp eq i32 %3917, 0
  br i1 %.not838, label %3918, label %3919

3918:                                             ; preds = %3914, %3907
  br label %3919

3919:                                             ; preds = %3914, %3918
  %.str.5.sink2372 = phi ptr [ @.str.5, %3918 ], [ @.str.2, %3914 ]
  store i32 %3909, ptr %3908, align 4, !tbaa !5
  %3920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3921 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3923, ptr noundef nonnull @.str.4) #13
  %3925 = load i32, ptr %3922, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror_debug(i32 noundef %3925, ptr noundef nonnull @.str.4) #13
  %3927 = load i32, ptr %3908, align 4, !tbaa !5
  %3928 = call ptr @strerror(i32 noundef %3927) #13
  %3929 = load i32, ptr %3908, align 4, !tbaa !5
  %3930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3920, ptr noundef nonnull %.str.5.sink2372, i32 noundef %3921, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %3924, ptr noundef %3926, ptr noundef %3928, i32 noundef %3929) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3931:                                             ; preds = %3902
  %3932 = getelementptr inbounds i8, ptr %3760, i64 2016
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = add nsw i32 %3933, 1
  store i32 %3934, ptr @test_count, align 4, !tbaa !5
  %3935 = call i32 @s2n_client_hello_send(ptr noundef nonnull %3760) #13
  %3936 = icmp eq i32 %3935, -1
  br i1 %3936, label %3937, label %3961

3937:                                             ; preds = %3931
  %3938 = tail call ptr @__errno_location() #14
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @s2n_print_stacktrace(ptr noundef %3940) #13
  %3942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3943 = trunc nuw i8 %3942 to i1
  br i1 %3943, label %3944, label %3948

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

3948:                                             ; preds = %3944, %3937
  br label %3949

3949:                                             ; preds = %3944, %3948
  %.str.5.sink2383 = phi ptr [ @.str.5, %3948 ], [ @.str.2, %3944 ]
  store i32 %3939, ptr %3938, align 4, !tbaa !5
  %3950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3951 = load i32, ptr @test_count, align 4, !tbaa !5
  %3952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3953 = load i32, ptr %3952, align 4, !tbaa !5
  %3954 = call ptr @s2n_strerror(i32 noundef %3953, ptr noundef nonnull @.str.4) #13
  %3955 = load i32, ptr %3952, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror_debug(i32 noundef %3955, ptr noundef nonnull @.str.4) #13
  %3957 = load i32, ptr %3938, align 4, !tbaa !5
  %3958 = call ptr @strerror(i32 noundef %3957) #13
  %3959 = load i32, ptr %3938, align 4, !tbaa !5
  %3960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3950, ptr noundef nonnull %.str.5.sink2383, i32 noundef %3951, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %3954, ptr noundef %3956, ptr noundef %3958, i32 noundef %3959) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3961:                                             ; preds = %3931
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %6) #13
  store i8 3, ptr %6, align 1, !tbaa !48
  %3962 = getelementptr inbounds i8, ptr %6, i64 1
  store i8 4, ptr %3962, align 1, !tbaa !48
  %3963 = load i32, ptr @test_count, align 4, !tbaa !5
  %3964 = add nsw i32 %3963, 1
  store i32 %3964, ptr @test_count, align 4, !tbaa !5
  %3965 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %3932) #13
  %3966 = icmp eq i32 %3965, -1
  br i1 %3966, label %3967, label %3991

3967:                                             ; preds = %3961
  %3968 = tail call ptr @__errno_location() #14
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3971 = call i32 @s2n_print_stacktrace(ptr noundef %3970) #13
  %3972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3973 = trunc nuw i8 %3972 to i1
  br i1 %3973, label %3974, label %3978

3974:                                             ; preds = %3967
  %3975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3976 = call i32 @fileno(ptr noundef %3975) #13
  %3977 = call i32 @isatty(i32 noundef %3976) #13
  %.not836 = icmp eq i32 %3977, 0
  br i1 %.not836, label %3978, label %3979

3978:                                             ; preds = %3974, %3967
  br label %3979

3979:                                             ; preds = %3974, %3978
  %.str.5.sink2394 = phi ptr [ @.str.5, %3978 ], [ @.str.2, %3974 ]
  store i32 %3969, ptr %3968, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror(i32 noundef %3983, ptr noundef nonnull @.str.4) #13
  %3985 = load i32, ptr %3982, align 4, !tbaa !5
  %3986 = call ptr @s2n_strerror_debug(i32 noundef %3985, ptr noundef nonnull @.str.4) #13
  %3987 = load i32, ptr %3968, align 4, !tbaa !5
  %3988 = call ptr @strerror(i32 noundef %3987) #13
  %3989 = load i32, ptr %3968, align 4, !tbaa !5
  %3990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3980, ptr noundef nonnull %.str.5.sink2394, i32 noundef %3981, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %3984, ptr noundef %3986, ptr noundef %3988, i32 noundef %3989) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3991:                                             ; preds = %3961
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %3932, ptr noundef nonnull %6, i32 noundef 2) #13
  %3995 = icmp eq i32 %3994, -1
  br i1 %3995, label %3996, label %4020

3996:                                             ; preds = %3991
  %3997 = tail call ptr @__errno_location() #14
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4000 = call i32 @s2n_print_stacktrace(ptr noundef %3999) #13
  %4001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4002 = trunc nuw i8 %4001 to i1
  br i1 %4002, label %4003, label %4007

4003:                                             ; preds = %3996
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = call i32 @fileno(ptr noundef %4004) #13
  %4006 = call i32 @isatty(i32 noundef %4005) #13
  %.not835 = icmp eq i32 %4006, 0
  br i1 %.not835, label %4007, label %4008

4007:                                             ; preds = %4003, %3996
  br label %4008

4008:                                             ; preds = %4003, %4007
  %.str.5.sink2405 = phi ptr [ @.str.5, %4007 ], [ @.str.2, %4003 ]
  store i32 %3998, ptr %3997, align 4, !tbaa !5
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = load i32, ptr @test_count, align 4, !tbaa !5
  %4011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4012 = load i32, ptr %4011, align 4, !tbaa !5
  %4013 = call ptr @s2n_strerror(i32 noundef %4012, ptr noundef nonnull @.str.4) #13
  %4014 = load i32, ptr %4011, align 4, !tbaa !5
  %4015 = call ptr @s2n_strerror_debug(i32 noundef %4014, ptr noundef nonnull @.str.4) #13
  %4016 = load i32, ptr %3997, align 4, !tbaa !5
  %4017 = call ptr @strerror(i32 noundef %4016) #13
  %4018 = load i32, ptr %3997, align 4, !tbaa !5
  %4019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4009, ptr noundef nonnull %.str.5.sink2405, i32 noundef %4010, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %4013, ptr noundef %4015, ptr noundef %4017, i32 noundef %4018) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4020:                                             ; preds = %3991
  %4021 = load i32, ptr @test_count, align 4, !tbaa !5
  %4022 = add nsw i32 %4021, 1
  store i32 %4022, ptr @test_count, align 4, !tbaa !5
  %4023 = getelementptr inbounds i8, ptr %3847, i64 2016
  %4024 = call i32 @s2n_stuffer_write(ptr noundef nonnull %4023, ptr noundef nonnull %3932) #13
  %4025 = icmp eq i32 %4024, -1
  br i1 %4025, label %4026, label %4050

4026:                                             ; preds = %4020
  %4027 = tail call ptr @__errno_location() #14
  %4028 = load i32, ptr %4027, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = call i32 @s2n_print_stacktrace(ptr noundef %4029) #13
  %4031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4032 = trunc nuw i8 %4031 to i1
  br i1 %4032, label %4033, label %4037

4033:                                             ; preds = %4026
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = call i32 @fileno(ptr noundef %4034) #13
  %4036 = call i32 @isatty(i32 noundef %4035) #13
  %.not834 = icmp eq i32 %4036, 0
  br i1 %.not834, label %4037, label %4038

4037:                                             ; preds = %4033, %4026
  br label %4038

4038:                                             ; preds = %4033, %4037
  %.str.5.sink2416 = phi ptr [ @.str.5, %4037 ], [ @.str.2, %4033 ]
  store i32 %4028, ptr %4027, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef nonnull @.str.4) #13
  %4044 = load i32, ptr %4041, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror_debug(i32 noundef %4044, ptr noundef nonnull @.str.4) #13
  %4046 = load i32, ptr %4027, align 4, !tbaa !5
  %4047 = call ptr @strerror(i32 noundef %4046) #13
  %4048 = load i32, ptr %4027, align 4, !tbaa !5
  %4049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef nonnull %.str.5.sink2416, i32 noundef %4040, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %4043, ptr noundef %4045, ptr noundef %4047, i32 noundef %4048) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4050:                                             ; preds = %4020
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = add nsw i32 %4051, 1
  store i32 %4052, ptr @test_count, align 4, !tbaa !5
  %4053 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %3847) #13
  %4054 = icmp eq i32 %4053, -1
  br i1 %4054, label %4055, label %4079

4055:                                             ; preds = %4050
  %4056 = tail call ptr @__errno_location() #14
  %4057 = load i32, ptr %4056, align 4, !tbaa !5
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = call i32 @s2n_print_stacktrace(ptr noundef %4058) #13
  %4060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4061 = trunc nuw i8 %4060 to i1
  br i1 %4061, label %4062, label %4066

4062:                                             ; preds = %4055
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = call i32 @fileno(ptr noundef %4063) #13
  %4065 = call i32 @isatty(i32 noundef %4064) #13
  %.not833 = icmp eq i32 %4065, 0
  br i1 %.not833, label %4066, label %4067

4066:                                             ; preds = %4062, %4055
  br label %4067

4067:                                             ; preds = %4062, %4066
  %.str.5.sink2427 = phi ptr [ @.str.5, %4066 ], [ @.str.2, %4062 ]
  store i32 %4057, ptr %4056, align 4, !tbaa !5
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = load i32, ptr @test_count, align 4, !tbaa !5
  %4070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call ptr @s2n_strerror(i32 noundef %4071, ptr noundef nonnull @.str.4) #13
  %4073 = load i32, ptr %4070, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror_debug(i32 noundef %4073, ptr noundef nonnull @.str.4) #13
  %4075 = load i32, ptr %4056, align 4, !tbaa !5
  %4076 = call ptr @strerror(i32 noundef %4075) #13
  %4077 = load i32, ptr %4056, align 4, !tbaa !5
  %4078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4068, ptr noundef nonnull %.str.5.sink2427, i32 noundef %4069, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %4072, ptr noundef %4074, ptr noundef %4076, i32 noundef %4077) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4079:                                             ; preds = %4050
  %4080 = load i32, ptr @test_count, align 4, !tbaa !5
  %4081 = add nsw i32 %4080, 1
  store i32 %4081, ptr @test_count, align 4, !tbaa !5
  %4082 = getelementptr inbounds i8, ptr %3847, i64 219
  %4083 = load i8, ptr %4082, align 1, !tbaa !47
  %4084 = zext i8 %4083 to i32
  %4085 = call i32 (...) @s2n_get_highest_fully_supported_tls_version() #13
  %4086 = icmp eq i32 %4085, %4084
  br i1 %4086, label %4111, label %4087

4087:                                             ; preds = %4079
  %4088 = tail call ptr @__errno_location() #14
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = call i32 @s2n_print_stacktrace(ptr noundef %4090) #13
  %4092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4093 = trunc nuw i8 %4092 to i1
  br i1 %4093, label %4094, label %4098

4094:                                             ; preds = %4087
  %4095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4096 = call i32 @fileno(ptr noundef %4095) #13
  %4097 = call i32 @isatty(i32 noundef %4096) #13
  %.not749 = icmp eq i32 %4097, 0
  br i1 %.not749, label %4098, label %4099

4098:                                             ; preds = %4094, %4087
  br label %4099

4099:                                             ; preds = %4094, %4098
  %.str.5.sink2438 = phi ptr [ @.str.5, %4098 ], [ @.str.2, %4094 ]
  store i32 %4089, ptr %4088, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror(i32 noundef %4103, ptr noundef nonnull @.str.4) #13
  %4105 = load i32, ptr %4102, align 4, !tbaa !5
  %4106 = call ptr @s2n_strerror_debug(i32 noundef %4105, ptr noundef nonnull @.str.4) #13
  %4107 = load i32, ptr %4088, align 4, !tbaa !5
  %4108 = call ptr @strerror(i32 noundef %4107) #13
  %4109 = load i32, ptr %4088, align 4, !tbaa !5
  %4110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4100, ptr noundef nonnull %.str.5.sink2438, i32 noundef %4101, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %4104, ptr noundef %4106, ptr noundef %4108, i32 noundef %4109) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4111:                                             ; preds = %4079
  %4112 = load i32, ptr @test_count, align 4, !tbaa !5
  %4113 = add nsw i32 %4112, 1
  store i32 %4113, ptr @test_count, align 4, !tbaa !5
  %4114 = getelementptr inbounds i8, ptr %3847, i64 220
  %4115 = load i8, ptr %4114, align 4, !tbaa !46
  %4116 = icmp eq i8 %4115, 33
  br i1 %4116, label %4141, label %4117

4117:                                             ; preds = %4111
  %4118 = tail call ptr @__errno_location() #14
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4121 = call i32 @s2n_print_stacktrace(ptr noundef %4120) #13
  %4122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4123 = trunc nuw i8 %4122 to i1
  br i1 %4123, label %4124, label %4128

4124:                                             ; preds = %4117
  %4125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4126 = call i32 @fileno(ptr noundef %4125) #13
  %4127 = call i32 @isatty(i32 noundef %4126) #13
  %.not750 = icmp eq i32 %4127, 0
  br i1 %.not750, label %4128, label %4129

4128:                                             ; preds = %4124, %4117
  br label %4129

4129:                                             ; preds = %4124, %4128
  %.str.5.sink2449 = phi ptr [ @.str.5, %4128 ], [ @.str.2, %4124 ]
  store i32 %4119, ptr %4118, 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 nonnull @.str.4) #13
  %4135 = load i32, ptr %4132, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef nonnull @.str.4) #13
  %4137 = load i32, ptr %4118, align 4, !tbaa !5
  %4138 = call ptr @strerror(i32 noundef %4137) #13
  %4139 = load i32, ptr %4118, align 4, !tbaa !5
  %4140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4130, ptr noundef nonnull %.str.5.sink2449, i32 noundef %4131, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %4134, ptr noundef %4136, ptr noundef %4138, i32 noundef %4139) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4141:                                             ; preds = %4111
  %4142 = add nsw i32 %4112, 2
  store i32 %4142, ptr @test_count, align 4, !tbaa !5
  %4143 = getelementptr inbounds i8, ptr %3847, i64 218
  %4144 = load i8, ptr %4143, align 2, !tbaa !42
  %4145 = icmp eq i8 %4144, 33
  br i1 %4145, label %4170, label %4146

4146:                                             ; preds = %4141
  %4147 = tail call ptr @__errno_location() #14
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @s2n_print_stacktrace(ptr noundef %4149) #13
  %4151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4152 = trunc nuw i8 %4151 to i1
  br i1 %4152, label %4153, label %4157

4153:                                             ; preds = %4146
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = call i32 @fileno(ptr noundef %4154) #13
  %4156 = call i32 @isatty(i32 noundef %4155) #13
  %.not751 = icmp eq i32 %4156, 0
  br i1 %.not751, label %4157, label %4158

4157:                                             ; preds = %4153, %4146
  br label %4158

4158:                                             ; preds = %4153, %4157
  %.str.5.sink2460 = phi ptr [ @.str.5, %4157 ], [ @.str.2, %4153 ]
  store i32 %4148, ptr %4147, align 4, !tbaa !5
  %4159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4160 = load i32, ptr @test_count, align 4, !tbaa !5
  %4161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @s2n_strerror(i32 noundef %4162, ptr noundef nonnull @.str.4) #13
  %4164 = load i32, ptr %4161, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror_debug(i32 noundef %4164, ptr noundef nonnull @.str.4) #13
  %4166 = load i32, ptr %4147, align 4, !tbaa !5
  %4167 = call ptr @strerror(i32 noundef %4166) #13
  %4168 = load i32, ptr %4147, align 4, !tbaa !5
  %4169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4159, ptr noundef nonnull %.str.5.sink2460, i32 noundef %4160, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %4163, ptr noundef %4165, ptr noundef %4167, i32 noundef %4168) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4170:                                             ; preds = %4141
  %4171 = add nsw i32 %4112, 3
  store i32 %4171, ptr @test_count, align 4, !tbaa !5
  %4172 = getelementptr inbounds i8, ptr %3847, i64 217
  %4173 = load i8, ptr %4172, align 1, !tbaa !15
  %4174 = icmp eq i8 %4173, 33
  br i1 %4174, label %4199, label %4175

4175:                                             ; preds = %4170
  %4176 = tail call ptr @__errno_location() #14
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4179 = call i32 @s2n_print_stacktrace(ptr noundef %4178) #13
  %4180 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4181 = trunc nuw i8 %4180 to i1
  br i1 %4181, label %4182, label %4186

4182:                                             ; preds = %4175
  %4183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4184 = call i32 @fileno(ptr noundef %4183) #13
  %4185 = call i32 @isatty(i32 noundef %4184) #13
  %.not752 = icmp eq i32 %4185, 0
  br i1 %.not752, label %4186, label %4187

4186:                                             ; preds = %4182, %4175
  br label %4187

4187:                                             ; preds = %4182, %4186
  %.str.5.sink2471 = phi ptr [ @.str.5, %4186 ], [ @.str.2, %4182 ]
  store i32 %4177, ptr %4176, align 4, !tbaa !5
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = load i32, ptr @test_count, align 4, !tbaa !5
  %4190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @s2n_strerror(i32 noundef %4191, ptr noundef nonnull @.str.4) #13
  %4193 = load i32, ptr %4190, align 4, !tbaa !5
  %4194 = call ptr @s2n_strerror_debug(i32 noundef %4193, ptr noundef nonnull @.str.4) #13
  %4195 = load i32, ptr %4176, align 4, !tbaa !5
  %4196 = call ptr @strerror(i32 noundef %4195) #13
  %4197 = load i32, ptr %4176, align 4, !tbaa !5
  %4198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4188, ptr noundef nonnull %.str.5.sink2471, i32 noundef %4189, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %4192, ptr noundef %4194, ptr noundef %4196, i32 noundef %4197) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4199:                                             ; preds = %4170
  %4200 = call i32 @s2n_connection_free(ptr noundef nonnull %3847) #13
  %4201 = call i32 @s2n_connection_free(ptr noundef nonnull %3760) #13
  %4202 = load i32, ptr @test_count, align 4, !tbaa !5
  %4203 = add nsw i32 %4202, 1
  store i32 %4203, ptr @test_count, align 4, !tbaa !5
  %4204 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %4205 = icmp eq i32 %4204, -1
  br i1 %4205, label %4206, label %4230

4206:                                             ; preds = %4199
  %4207 = tail call ptr @__errno_location() #14
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4210 = call i32 @s2n_print_stacktrace(ptr noundef %4209) #13
  %4211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4212 = trunc nuw i8 %4211 to i1
  br i1 %4212, label %4213, label %4217

4213:                                             ; preds = %4206
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = call i32 @fileno(ptr noundef %4214) #13
  %4216 = call i32 @isatty(i32 noundef %4215) #13
  %.not832 = icmp eq i32 %4216, 0
  br i1 %.not832, label %4217, label %4218

4217:                                             ; preds = %4213, %4206
  br label %4218

4218:                                             ; preds = %4213, %4217
  %.str.5.sink2482 = phi ptr [ @.str.5, %4217 ], [ @.str.2, %4213 ]
  store i32 %4208, ptr %4207, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4222 = load i32, ptr %4221, align 4, !tbaa !5
  %4223 = call ptr @s2n_strerror(i32 noundef %4222, ptr noundef nonnull @.str.4) #13
  %4224 = load i32, ptr %4221, align 4, !tbaa !5
  %4225 = call ptr @s2n_strerror_debug(i32 noundef %4224, ptr noundef nonnull @.str.4) #13
  %4226 = load i32, ptr %4207, align 4, !tbaa !5
  %4227 = call ptr @strerror(i32 noundef %4226) #13
  %4228 = load i32, ptr %4207, align 4, !tbaa !5
  %4229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4219, ptr noundef nonnull %.str.5.sink2482, i32 noundef %4220, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %4223, ptr noundef %4225, ptr noundef %4227, i32 noundef %4228) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4230:                                             ; preds = %4199
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) #13
  %4231 = load i32, ptr @test_count, align 4, !tbaa !5
  %4232 = add nsw i32 %4231, 1
  store i32 %4232, ptr @test_count, align 4, !tbaa !5
  %4233 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4234 = icmp eq ptr %4233, null
  br i1 %4234, label %4235, label %4259

4235:                                             ; preds = %4230
  %4236 = tail call ptr @__errno_location() #14
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4239 = call i32 @s2n_print_stacktrace(ptr noundef %4238) #13
  %4240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4241 = trunc nuw i8 %4240 to i1
  br i1 %4241, label %4242, label %4246

4242:                                             ; preds = %4235
  %4243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4244 = call i32 @fileno(ptr noundef %4243) #13
  %4245 = call i32 @isatty(i32 noundef %4244) #13
  %.not831 = icmp eq i32 %4245, 0
  br i1 %.not831, label %4246, label %4247

4246:                                             ; preds = %4242, %4235
  br label %4247

4247:                                             ; preds = %4242, %4246
  %.str.5.sink2493 = phi ptr [ @.str.5, %4246 ], [ @.str.2, %4242 ]
  store i32 %4237, ptr %4236, align 4, !tbaa !5
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = load i32, ptr @test_count, align 4, !tbaa !5
  %4250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @s2n_strerror(i32 noundef %4251, ptr noundef nonnull @.str.4) #13
  %4253 = load i32, ptr %4250, align 4, !tbaa !5
  %4254 = call ptr @s2n_strerror_debug(i32 noundef %4253, ptr noundef nonnull @.str.4) #13
  %4255 = load i32, ptr %4236, align 4, !tbaa !5
  %4256 = call ptr @strerror(i32 noundef %4255) #13
  %4257 = load i32, ptr %4236, align 4, !tbaa !5
  %4258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4248, ptr noundef nonnull %.str.5.sink2493, i32 noundef %4249, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %4252, ptr noundef %4254, ptr noundef %4256, i32 noundef %4257) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4259:                                             ; preds = %4230
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = add nsw i32 %4260, 1
  store i32 %4261, ptr @test_count, align 4, !tbaa !5
  %4262 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %4263 = icmp eq ptr %4262, null
  br i1 %4263, label %4264, label %4288

4264:                                             ; preds = %4259
  %4265 = tail call ptr @__errno_location() #14
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  %4267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4268 = call i32 @s2n_print_stacktrace(ptr noundef %4267) #13
  %4269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4270 = trunc nuw i8 %4269 to i1
  br i1 %4270, label %4271, label %4275

4271:                                             ; preds = %4264
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4273 = call i32 @fileno(ptr noundef %4272) #13
  %4274 = call i32 @isatty(i32 noundef %4273) #13
  %.not830 = icmp eq i32 %4274, 0
  br i1 %.not830, label %4275, label %4276

4275:                                             ; preds = %4271, %4264
  br label %4276

4276:                                             ; preds = %4271, %4275
  %.str.5.sink2504 = phi ptr [ @.str.5, %4275 ], [ @.str.2, %4271 ]
  store i32 %4266, ptr %4265, align 4, !tbaa !5
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = load i32, ptr @test_count, align 4, !tbaa !5
  %4279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4280 = load i32, ptr %4279, align 4, !tbaa !5
  %4281 = call ptr @s2n_strerror(i32 noundef %4280, ptr noundef nonnull @.str.4) #13
  %4282 = load i32, ptr %4279, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror_debug(i32 noundef %4282, ptr noundef nonnull @.str.4) #13
  %4284 = load i32, ptr %4265, align 4, !tbaa !5
  %4285 = call ptr @strerror(i32 noundef %4284) #13
  %4286 = load i32, ptr %4265, align 4, !tbaa !5
  %4287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4277, ptr noundef nonnull %.str.5.sink2504, i32 noundef %4278, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %4281, ptr noundef %4283, ptr noundef %4285, i32 noundef %4286) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4288:                                             ; preds = %4259
  %4289 = load i32, ptr @test_count, align 4, !tbaa !5
  %4290 = add nsw i32 %4289, 1
  store i32 %4290, ptr @test_count, align 4, !tbaa !5
  %4291 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4233, ptr noundef nonnull %333) #13
  %4292 = icmp eq i32 %4291, -1
  br i1 %4292, label %4293, label %4317

4293:                                             ; preds = %4288
  %4294 = tail call ptr @__errno_location() #14
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = call i32 @s2n_print_stacktrace(ptr noundef %4296) #13
  %4298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4299 = trunc nuw i8 %4298 to i1
  br i1 %4299, label %4300, label %4304

4300:                                             ; preds = %4293
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = call i32 @fileno(ptr noundef %4301) #13
  %4303 = call i32 @isatty(i32 noundef %4302) #13
  %.not829 = icmp eq i32 %4303, 0
  br i1 %.not829, label %4304, label %4305

4304:                                             ; preds = %4300, %4293
  br label %4305

4305:                                             ; preds = %4300, %4304
  %.str.5.sink2515 = phi ptr [ @.str.5, %4304 ], [ @.str.2, %4300 ]
  store i32 %4295, ptr %4294, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = load i32, ptr @test_count, align 4, !tbaa !5
  %4308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call ptr @s2n_strerror(i32 noundef %4309, ptr noundef nonnull @.str.4) #13
  %4311 = load i32, ptr %4308, align 4, !tbaa !5
  %4312 = call ptr @s2n_strerror_debug(i32 noundef %4311, ptr noundef nonnull @.str.4) #13
  %4313 = load i32, ptr %4294, align 4, !tbaa !5
  %4314 = call ptr @strerror(i32 noundef %4313) #13
  %4315 = load i32, ptr %4294, align 4, !tbaa !5
  %4316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4306, ptr noundef nonnull %.str.5.sink2515, i32 noundef %4307, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %4310, ptr noundef %4312, ptr noundef %4314, i32 noundef %4315) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4317:                                             ; preds = %4288
  %4318 = load i32, ptr @test_count, align 4, !tbaa !5
  %4319 = add nsw i32 %4318, 1
  store i32 %4319, ptr @test_count, align 4, !tbaa !5
  %4320 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4233, ptr noundef nonnull @.str.58) #13
  %4321 = icmp eq i32 %4320, -1
  br i1 %4321, label %4322, label %4346

4322:                                             ; preds = %4317
  %4323 = tail call ptr @__errno_location() #14
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4326 = call i32 @s2n_print_stacktrace(ptr noundef %4325) #13
  %4327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4328 = trunc nuw i8 %4327 to i1
  br i1 %4328, label %4329, label %4333

4329:                                             ; preds = %4322
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @fileno(ptr noundef %4330) #13
  %4332 = call i32 @isatty(i32 noundef %4331) #13
  %.not828 = icmp eq i32 %4332, 0
  br i1 %.not828, label %4333, label %4334

4333:                                             ; preds = %4329, %4322
  br label %4334

4334:                                             ; preds = %4329, %4333
  %.str.5.sink2526 = phi ptr [ @.str.5, %4333 ], [ @.str.2, %4329 ]
  store i32 %4324, ptr %4323, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call ptr @s2n_strerror(i32 noundef %4338, ptr noundef nonnull @.str.4) #13
  %4340 = load i32, ptr %4337, align 4, !tbaa !5
  %4341 = call ptr @s2n_strerror_debug(i32 noundef %4340, ptr noundef nonnull @.str.4) #13
  %4342 = load i32, ptr %4323, align 4, !tbaa !5
  %4343 = call ptr @strerror(i32 noundef %4342) #13
  %4344 = load i32, ptr %4323, align 4, !tbaa !5
  %4345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4335, ptr noundef nonnull %.str.5.sink2526, i32 noundef %4336, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %4339, ptr noundef %4341, ptr noundef %4343, i32 noundef %4344) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4346:                                             ; preds = %4317
  %4347 = getelementptr inbounds i8, ptr %4233, i64 2016
  %4348 = load i32, ptr @test_count, align 4, !tbaa !5
  %4349 = add nsw i32 %4348, 1
  store i32 %4349, ptr @test_count, align 4, !tbaa !5
  %4350 = call i32 @s2n_client_hello_send(ptr noundef nonnull %4233) #13
  %4351 = icmp eq i32 %4350, -1
  br i1 %4351, label %4352, label %4376

4352:                                             ; preds = %4346
  %4353 = tail call ptr @__errno_location() #14
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4356 = call i32 @s2n_print_stacktrace(ptr noundef %4355) #13
  %4357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4358 = trunc nuw i8 %4357 to i1
  br i1 %4358, label %4359, label %4363

4359:                                             ; preds = %4352
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = call i32 @fileno(ptr noundef %4360) #13
  %4362 = call i32 @isatty(i32 noundef %4361) #13
  %.not827 = icmp eq i32 %4362, 0
  br i1 %.not827, label %4363, label %4364

4363:                                             ; preds = %4359, %4352
  br label %4364

4364:                                             ; preds = %4359, %4363
  %.str.5.sink2537 = phi ptr [ @.str.5, %4363 ], [ @.str.2, %4359 ]
  store i32 %4354, ptr %4353, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = load i32, ptr @test_count, align 4, !tbaa !5
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror(i32 noundef %4368, ptr noundef nonnull @.str.4) #13
  %4370 = load i32, ptr %4367, align 4, !tbaa !5
  %4371 = call ptr @s2n_strerror_debug(i32 noundef %4370, ptr noundef nonnull @.str.4) #13
  %4372 = load i32, ptr %4353, align 4, !tbaa !5
  %4373 = call ptr @strerror(i32 noundef %4372) #13
  %4374 = load i32, ptr %4353, align 4, !tbaa !5
  %4375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4365, ptr noundef nonnull %.str.5.sink2537, i32 noundef %4366, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %4369, ptr noundef %4371, ptr noundef %4373, i32 noundef %4374) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4376:                                             ; preds = %4346
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %7) #13
  store i16 0, ptr %7, align 2
  %4377 = load i32, ptr @test_count, align 4, !tbaa !5
  %4378 = add nsw i32 %4377, 1
  store i32 %4378, ptr @test_count, align 4, !tbaa !5
  %4379 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %4347) #13
  %4380 = icmp eq i32 %4379, -1
  br i1 %4380, label %4381, label %4405

4381:                                             ; preds = %4376
  %4382 = tail call ptr @__errno_location() #14
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = call i32 @s2n_print_stacktrace(ptr noundef %4384) #13
  %4386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4387 = trunc nuw i8 %4386 to i1
  br i1 %4387, label %4388, label %4392

4388:                                             ; preds = %4381
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4390 = call i32 @fileno(ptr noundef %4389) #13
  %4391 = call i32 @isatty(i32 noundef %4390) #13
  %.not826 = icmp eq i32 %4391, 0
  br i1 %.not826, label %4392, label %4393

4392:                                             ; preds = %4388, %4381
  br label %4393

4393:                                             ; preds = %4388, %4392
  %.str.5.sink2548 = phi ptr [ @.str.5, %4392 ], [ @.str.2, %4388 ]
  store i32 %4383, ptr %4382, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef nonnull @.str.4) #13
  %4399 = load i32, ptr %4396, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror_debug(i32 noundef %4399, ptr noundef nonnull @.str.4) #13
  %4401 = load i32, ptr %4382, align 4, !tbaa !5
  %4402 = call ptr @strerror(i32 noundef %4401) #13
  %4403 = load i32, ptr %4382, align 4, !tbaa !5
  %4404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef nonnull %.str.5.sink2548, i32 noundef %4395, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %4398, ptr noundef %4400, ptr noundef %4402, i32 noundef %4403) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4405:                                             ; preds = %4376
  %4406 = load i32, ptr @test_count, align 4, !tbaa !5
  %4407 = add nsw i32 %4406, 1
  store i32 %4407, ptr @test_count, align 4, !tbaa !5
  %4408 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %4347, i32 noundef 35) #13
  %4409 = icmp eq i32 %4408, -1
  br i1 %4409, label %4410, label %4434

4410:                                             ; preds = %4405
  %4411 = tail call ptr @__errno_location() #14
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = call i32 @s2n_print_stacktrace(ptr noundef %4413) #13
  %4415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4416 = trunc nuw i8 %4415 to i1
  br i1 %4416, label %4417, label %4421

4417:                                             ; preds = %4410
  %4418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4419 = call i32 @fileno(ptr noundef %4418) #13
  %4420 = call i32 @isatty(i32 noundef %4419) #13
  %.not825 = icmp eq i32 %4420, 0
  br i1 %.not825, label %4421, label %4422

4421:                                             ; preds = %4417, %4410
  br label %4422

4422:                                             ; preds = %4417, %4421
  %.str.5.sink2559 = phi ptr [ @.str.5, %4421 ], [ @.str.2, %4417 ]
  store i32 %4412, ptr %4411, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = load i32, ptr @test_count, align 4, !tbaa !5
  %4425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror(i32 noundef %4426, ptr noundef nonnull @.str.4) #13
  %4428 = load i32, ptr %4425, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror_debug(i32 noundef %4428, ptr noundef nonnull @.str.4) #13
  %4430 = load i32, ptr %4411, align 4, !tbaa !5
  %4431 = call ptr @strerror(i32 noundef %4430) #13
  %4432 = load i32, ptr %4411, align 4, !tbaa !5
  %4433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4423, ptr noundef nonnull %.str.5.sink2559, i32 noundef %4424, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %4427, ptr noundef %4429, ptr noundef %4431, i32 noundef %4432) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4434:                                             ; preds = %4405
  %4435 = load i32, ptr @test_count, align 4, !tbaa !5
  %4436 = add nsw i32 %4435, 1
  store i32 %4436, ptr @test_count, align 4, !tbaa !5
  %4437 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %4347, ptr noundef nonnull %7, i32 noundef 2) #13
  %4438 = icmp eq i32 %4437, -1
  br i1 %4438, label %4439, label %4463

4439:                                             ; preds = %4434
  %4440 = tail call ptr @__errno_location() #14
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = call i32 @s2n_print_stacktrace(ptr noundef %4442) #13
  %4444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4445 = trunc nuw i8 %4444 to i1
  br i1 %4445, label %4446, label %4450

4446:                                             ; preds = %4439
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @fileno(ptr noundef %4447) #13
  %4449 = call i32 @isatty(i32 noundef %4448) #13
  %.not824 = icmp eq i32 %4449, 0
  br i1 %.not824, label %4450, label %4451

4450:                                             ; preds = %4446, %4439
  br label %4451

4451:                                             ; preds = %4446, %4450
  %.str.5.sink2570 = phi ptr [ @.str.5, %4450 ], [ @.str.2, %4446 ]
  store i32 %4441, ptr %4440, align 4, !tbaa !5
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror(i32 noundef %4455, ptr noundef nonnull @.str.4) #13
  %4457 = load i32, ptr %4454, align 4, !tbaa !5
  %4458 = call ptr @s2n_strerror_debug(i32 noundef %4457, ptr noundef nonnull @.str.4) #13
  %4459 = load i32, ptr %4440, align 4, !tbaa !5
  %4460 = call ptr @strerror(i32 noundef %4459) #13
  %4461 = load i32, ptr %4440, align 4, !tbaa !5
  %4462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4452, ptr noundef nonnull %.str.5.sink2570, i32 noundef %4453, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %4456, ptr noundef %4458, ptr noundef %4460, i32 noundef %4461) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4463:                                             ; preds = %4434
  %4464 = load i32, ptr @test_count, align 4, !tbaa !5
  %4465 = add nsw i32 %4464, 1
  store i32 %4465, ptr @test_count, align 4, !tbaa !5
  %4466 = getelementptr inbounds i8, ptr %4262, i64 2016
  %4467 = call i32 @s2n_stuffer_write(ptr noundef nonnull %4466, ptr noundef nonnull %4347) #13
  %4468 = icmp eq i32 %4467, -1
  br i1 %4468, label %4469, label %4493

4469:                                             ; preds = %4463
  %4470 = tail call ptr @__errno_location() #14
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4473 = call i32 @s2n_print_stacktrace(ptr noundef %4472) #13
  %4474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4475 = trunc nuw i8 %4474 to i1
  br i1 %4475, label %4476, label %4480

4476:                                             ; preds = %4469
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = call i32 @fileno(ptr noundef %4477) #13
  %4479 = call i32 @isatty(i32 noundef %4478) #13
  %.not823 = icmp eq i32 %4479, 0
  br i1 %.not823, label %4480, label %4481

4480:                                             ; preds = %4476, %4469
  br label %4481

4481:                                             ; preds = %4476, %4480
  %.str.5.sink2581 = phi ptr [ @.str.5, %4480 ], [ @.str.2, %4476 ]
  store i32 %4471, ptr %4470, align 4, !tbaa !5
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = load i32, ptr @test_count, align 4, !tbaa !5
  %4484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  %4486 = call ptr @s2n_strerror(i32 noundef %4485, ptr noundef nonnull @.str.4) #13
  %4487 = load i32, ptr %4484, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror_debug(i32 noundef %4487, ptr noundef nonnull @.str.4) #13
  %4489 = load i32, ptr %4470, align 4, !tbaa !5
  %4490 = call ptr @strerror(i32 noundef %4489) #13
  %4491 = load i32, ptr %4470, align 4, !tbaa !5
  %4492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4482, ptr noundef nonnull %.str.5.sink2581, i32 noundef %4483, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %4486, ptr noundef %4488, ptr noundef %4490, i32 noundef %4491) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4493:                                             ; preds = %4463
  %4494 = load i32, ptr @test_count, align 4, !tbaa !5
  %4495 = add nsw i32 %4494, 1
  store i32 %4495, ptr @test_count, align 4, !tbaa !5
  %4496 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %4262) #13
  %4497 = icmp eq i32 %4496, -1
  br i1 %4497, label %4522, label %4498

4498:                                             ; preds = %4493
  %4499 = tail call ptr @__errno_location() #14
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = call i32 @s2n_print_stacktrace(ptr noundef %4501) #13
  %4503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4504 = trunc nuw i8 %4503 to i1
  br i1 %4504, label %4505, label %4509

4505:                                             ; preds = %4498
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = call i32 @fileno(ptr noundef %4506) #13
  %4508 = call i32 @isatty(i32 noundef %4507) #13
  %.not753 = icmp eq i32 %4508, 0
  br i1 %.not753, label %4509, label %4510

4509:                                             ; preds = %4505, %4498
  br label %4510

4510:                                             ; preds = %4505, %4509
  %.str.5.sink2592 = phi ptr [ @.str.5, %4509 ], [ @.str.2, %4505 ]
  store i32 %4500, ptr %4499, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = load i32, ptr @test_count, align 4, !tbaa !5
  %4513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @s2n_strerror(i32 noundef %4514, ptr noundef nonnull @.str.4) #13
  %4516 = load i32, ptr %4513, align 4, !tbaa !5
  %4517 = call ptr @s2n_strerror_debug(i32 noundef %4516, ptr noundef nonnull @.str.4) #13
  %4518 = load i32, ptr %4499, align 4, !tbaa !5
  %4519 = call ptr @strerror(i32 noundef %4518) #13
  %4520 = load i32, ptr %4499, align 4, !tbaa !5
  %4521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4511, ptr noundef nonnull %.str.5.sink2592, i32 noundef %4512, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %4515, ptr noundef %4517, ptr noundef %4519, i32 noundef %4520) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4522:                                             ; preds = %4493
  %4523 = load i32, ptr @test_count, align 4, !tbaa !5
  %4524 = add nsw i32 %4523, 1
  store i32 %4524, ptr @test_count, align 4, !tbaa !5
  %4525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = icmp eq i32 %4526, 335544322
  br i1 %4527, label %4551, label %4528

4528:                                             ; preds = %4522
  %4529 = tail call ptr @__errno_location() #14
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4532 = call i32 @s2n_print_stacktrace(ptr noundef %4531) #13
  %4533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4534 = trunc nuw i8 %4533 to i1
  br i1 %4534, label %4535, label %4539

4535:                                             ; preds = %4528
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = call i32 @fileno(ptr noundef %4536) #13
  %4538 = call i32 @isatty(i32 noundef %4537) #13
  %.not754 = icmp eq i32 %4538, 0
  br i1 %.not754, label %4539, label %4540

4539:                                             ; preds = %4535, %4528
  br label %4540

4540:                                             ; preds = %4535, %4539
  %.str.5.sink2603 = phi ptr [ @.str.5, %4539 ], [ @.str.2, %4535 ]
  store i32 %4530, ptr %4529, align 4, !tbaa !5
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4542 = load i32, ptr @test_count, align 4, !tbaa !5
  %4543 = load i32, ptr %4525, align 4, !tbaa !5
  %4544 = call ptr @s2n_strerror(i32 noundef %4543, ptr noundef nonnull @.str.4) #13
  %4545 = load i32, ptr %4525, align 4, !tbaa !5
  %4546 = call ptr @s2n_strerror_debug(i32 noundef %4545, ptr noundef nonnull @.str.4) #13
  %4547 = load i32, ptr %4529, align 4, !tbaa !5
  %4548 = call ptr @strerror(i32 noundef %4547) #13
  %4549 = load i32, ptr %4529, align 4, !tbaa !5
  %4550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4541, ptr noundef nonnull %.str.5.sink2603, i32 noundef %4542, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %4544, ptr noundef %4546, ptr noundef %4548, i32 noundef %4549) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4551:                                             ; preds = %4522
  %4552 = add nsw i32 %4523, 2
  store i32 %4552, ptr @test_count, align 4, !tbaa !5
  %4553 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #13
  %4554 = icmp eq ptr %4553, null
  br i1 %4554, label %4555, label %4578

4555:                                             ; preds = %4551
  %4556 = tail call ptr @__errno_location() #14
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4559 = call i32 @s2n_print_stacktrace(ptr noundef %4558) #13
  %4560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4561 = trunc nuw i8 %4560 to i1
  br i1 %4561, label %4562, label %4566

4562:                                             ; preds = %4555
  %4563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4564 = call i32 @fileno(ptr noundef %4563) #13
  %4565 = call i32 @isatty(i32 noundef %4564) #13
  %.not822 = icmp eq i32 %4565, 0
  br i1 %.not822, label %4566, label %4567

4566:                                             ; preds = %4562, %4555
  br label %4567

4567:                                             ; preds = %4562, %4566
  %.str.5.sink2612 = phi ptr [ @.str.5, %4566 ], [ @.str.2, %4562 ]
  store i32 %4557, ptr %4556, align 4, !tbaa !5
  %4568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4569 = load i32, ptr @test_count, align 4, !tbaa !5
  %4570 = load i32, ptr %4525, align 4, !tbaa !5
  %4571 = call ptr @s2n_strerror(i32 noundef %4570, ptr noundef nonnull @.str.4) #13
  %4572 = load i32, ptr %4525, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror_debug(i32 noundef %4572, ptr noundef nonnull @.str.4) #13
  %4574 = load i32, ptr %4556, align 4, !tbaa !5
  %4575 = call ptr @strerror(i32 noundef %4574) #13
  %4576 = load i32, ptr %4556, align 4, !tbaa !5
  %4577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4568, ptr noundef nonnull %.str.5.sink2612, i32 noundef %4569, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %4571, ptr noundef %4573, ptr noundef %4575, i32 noundef %4576) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4578:                                             ; preds = %4551
  store i32 0, ptr %4525, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %4579 = tail call ptr @__errno_location() #14
  store i32 0, ptr %4579, align 4, !tbaa !5
  %4580 = call i32 @s2n_connection_free(ptr noundef nonnull %4262) #13
  %4581 = call i32 @s2n_connection_free(ptr noundef nonnull %4233) #13
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #13
  %4582 = load i32, ptr @test_count, align 4, !tbaa !5
  %4583 = add nsw i32 %4582, 1
  store i32 %4583, ptr @test_count, align 4, !tbaa !5
  %4584 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %4585 = icmp eq ptr %4584, null
  br i1 %4585, label %4586, label %4608

4586:                                             ; preds = %4578
  %4587 = load i32, ptr %4579, align 4, !tbaa !5
  %4588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4589 = call i32 @s2n_print_stacktrace(ptr noundef %4588) #13
  %4590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4591 = trunc nuw i8 %4590 to i1
  br i1 %4591, label %4592, label %4596

4592:                                             ; preds = %4586
  %4593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4594 = call i32 @fileno(ptr noundef %4593) #13
  %4595 = call i32 @isatty(i32 noundef %4594) #13
  %.not821 = icmp eq i32 %4595, 0
  br i1 %.not821, label %4596, label %4597

4596:                                             ; preds = %4592, %4586
  br label %4597

4597:                                             ; preds = %4592, %4596
  %.str.5.sink2621 = phi ptr [ @.str.5, %4596 ], [ @.str.2, %4592 ]
  store i32 %4587, ptr %4579, align 4, !tbaa !5
  %4598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4599 = load i32, ptr @test_count, align 4, !tbaa !5
  %4600 = load i32, ptr %4525, align 4, !tbaa !5
  %4601 = call ptr @s2n_strerror(i32 noundef %4600, ptr noundef nonnull @.str.4) #13
  %4602 = load i32, ptr %4525, align 4, !tbaa !5
  %4603 = call ptr @s2n_strerror_debug(i32 noundef %4602, ptr noundef nonnull @.str.4) #13
  %4604 = load i32, ptr %4579, align 4, !tbaa !5
  %4605 = call ptr @strerror(i32 noundef %4604) #13
  %4606 = load i32, ptr %4579, align 4, !tbaa !5
  %4607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4598, ptr noundef nonnull %.str.5.sink2621, i32 noundef %4599, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %4601, ptr noundef %4603, ptr noundef %4605, i32 noundef %4606) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4608:                                             ; preds = %4578
  %4609 = load i32, ptr @test_count, align 4, !tbaa !5
  %4610 = add nsw i32 %4609, 1
  store i32 %4610, ptr @test_count, align 4, !tbaa !5
  %4611 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4584, ptr noundef nonnull %190) #13
  %4612 = icmp eq i32 %4611, -1
  br i1 %4612, label %4613, label %4635

4613:                                             ; preds = %4608
  %4614 = load i32, ptr %4579, align 4, !tbaa !5
  %4615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4616 = call i32 @s2n_print_stacktrace(ptr noundef %4615) #13
  %4617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4618 = trunc nuw i8 %4617 to i1
  br i1 %4618, label %4619, label %4623

4619:                                             ; preds = %4613
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = call i32 @fileno(ptr noundef %4620) #13
  %4622 = call i32 @isatty(i32 noundef %4621) #13
  %.not820 = icmp eq i32 %4622, 0
  br i1 %.not820, label %4623, label %4624

4623:                                             ; preds = %4619, %4613
  br label %4624

4624:                                             ; preds = %4619, %4623
  %.str.5.sink2630 = phi ptr [ @.str.5, %4623 ], [ @.str.2, %4619 ]
  store i32 %4614, ptr %4579, align 4, !tbaa !5
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = load i32, ptr @test_count, align 4, !tbaa !5
  %4627 = load i32, ptr %4525, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror(i32 noundef %4627, ptr noundef nonnull @.str.4) #13
  %4629 = load i32, ptr %4525, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror_debug(i32 noundef %4629, ptr noundef nonnull @.str.4) #13
  %4631 = load i32, ptr %4579, align 4, !tbaa !5
  %4632 = call ptr @strerror(i32 noundef %4631) #13
  %4633 = load i32, ptr %4579, align 4, !tbaa !5
  %4634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4625, ptr noundef nonnull %.str.5.sink2630, i32 noundef %4626, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %4628, ptr noundef %4630, ptr noundef %4632, i32 noundef %4633) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4635:                                             ; preds = %4608
  %4636 = getelementptr inbounds i8, ptr %4584, i64 217
  store i8 20, ptr %4636, align 1, !tbaa !15
  %4637 = getelementptr inbounds i8, ptr %4584, i64 218
  store i8 33, ptr %4637, align 2, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 176, ptr nonnull %8) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(176) %8, ptr noundef nonnull align 16 dereferenceable(176) @__const.main.sslv2_client_hello.75, i64 176, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #13
  store ptr %8, ptr %9, align 8, !tbaa !43
  %4638 = getelementptr inbounds i8, ptr %9, i64 8
  store i32 176, ptr %4638, align 8, !tbaa !44
  %4639 = getelementptr inbounds i8, ptr %9, i64 12
  store i32 0, ptr %4639, align 4, !tbaa !45
  %4640 = getelementptr inbounds i8, ptr %9, i64 16
  %4641 = load i8, ptr %4640, align 8
  %4642 = and i8 %4641, -2
  store i8 %4642, ptr %4640, align 8
  %4643 = load i32, ptr @test_count, align 4, !tbaa !5
  %4644 = add nsw i32 %4643, 1
  store i32 %4644, ptr @test_count, align 4, !tbaa !5
  %4645 = getelementptr inbounds i8, ptr %4584, i64 2016
  %4646 = call i32 @s2n_stuffer_write(ptr noundef nonnull %4645, ptr noundef nonnull %9) #13
  %4647 = icmp eq i32 %4646, -1
  br i1 %4647, label %4648, label %4670

4648:                                             ; preds = %4635
  %4649 = load i32, ptr %4579, align 4, !tbaa !5
  %4650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4651 = call i32 @s2n_print_stacktrace(ptr noundef %4650) #13
  %4652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4653 = trunc nuw i8 %4652 to i1
  br i1 %4653, label %4654, label %4658

4654:                                             ; preds = %4648
  %4655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4656 = call i32 @fileno(ptr noundef %4655) #13
  %4657 = call i32 @isatty(i32 noundef %4656) #13
  %.not819 = icmp eq i32 %4657, 0
  br i1 %.not819, label %4658, label %4659

4658:                                             ; preds = %4654, %4648
  br label %4659

4659:                                             ; preds = %4654, %4658
  %.str.5.sink2639 = phi ptr [ @.str.5, %4658 ], [ @.str.2, %4654 ]
  store i32 %4649, ptr %4579, align 4, !tbaa !5
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = load i32, ptr %4525, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror(i32 noundef %4662, ptr noundef nonnull @.str.4) #13
  %4664 = load i32, ptr %4525, align 4, !tbaa !5
  %4665 = call ptr @s2n_strerror_debug(i32 noundef %4664, ptr noundef nonnull @.str.4) #13
  %4666 = load i32, ptr %4579, align 4, !tbaa !5
  %4667 = call ptr @strerror(i32 noundef %4666) #13
  %4668 = load i32, ptr %4579, align 4, !tbaa !5
  %4669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4660, ptr noundef nonnull %.str.5.sink2639, i32 noundef %4661, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %4663, ptr noundef %4665, ptr noundef %4667, i32 noundef %4668) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4670:                                             ; preds = %4635
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = add nsw i32 %4671, 1
  store i32 %4672, ptr @test_count, align 4, !tbaa !5
  %4673 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %4584) #13
  %4674 = icmp eq i32 %4673, -1
  br i1 %4674, label %4697, label %4675

4675:                                             ; preds = %4670
  %4676 = load i32, ptr %4579, align 4, !tbaa !5
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = call i32 @s2n_print_stacktrace(ptr noundef %4677) #13
  %4679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4680 = trunc nuw i8 %4679 to i1
  br i1 %4680, label %4681, label %4685

4681:                                             ; preds = %4675
  %4682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4683 = call i32 @fileno(ptr noundef %4682) #13
  %4684 = call i32 @isatty(i32 noundef %4683) #13
  %.not755 = icmp eq i32 %4684, 0
  br i1 %.not755, label %4685, label %4686

4685:                                             ; preds = %4681, %4675
  br label %4686

4686:                                             ; preds = %4681, %4685
  %.str.5.sink2648 = phi ptr [ @.str.5, %4685 ], [ @.str.2, %4681 ]
  store i32 %4676, ptr %4579, align 4, !tbaa !5
  %4687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4688 = load i32, ptr @test_count, align 4, !tbaa !5
  %4689 = load i32, ptr %4525, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror(i32 noundef %4689, ptr noundef nonnull @.str.4) #13
  %4691 = load i32, ptr %4525, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror_debug(i32 noundef %4691, ptr noundef nonnull @.str.4) #13
  %4693 = load i32, ptr %4579, align 4, !tbaa !5
  %4694 = call ptr @strerror(i32 noundef %4693) #13
  %4695 = load i32, ptr %4579, align 4, !tbaa !5
  %4696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4687, ptr noundef nonnull %.str.5.sink2648, i32 noundef %4688, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %4690, ptr noundef %4692, ptr noundef %4694, i32 noundef %4695) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4697:                                             ; preds = %4670
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = add nsw i32 %4698, 1
  store i32 %4699, ptr @test_count, align 4, !tbaa !5
  %4700 = load i32, ptr %4525, align 4, !tbaa !5
  %4701 = icmp eq i32 %4700, 335544322
  br i1 %4701, label %4724, label %4702

4702:                                             ; preds = %4697
  %4703 = load i32, ptr %4579, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = call i32 @s2n_print_stacktrace(ptr noundef %4704) #13
  %4706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4707 = trunc nuw i8 %4706 to i1
  br i1 %4707, label %4708, label %4712

4708:                                             ; preds = %4702
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = call i32 @fileno(ptr noundef %4709) #13
  %4711 = call i32 @isatty(i32 noundef %4710) #13
  %.not756 = icmp eq i32 %4711, 0
  br i1 %.not756, label %4712, label %4713

4712:                                             ; preds = %4708, %4702
  br label %4713

4713:                                             ; preds = %4708, %4712
  %.str.5.sink2657 = phi ptr [ @.str.5, %4712 ], [ @.str.2, %4708 ]
  store i32 %4703, ptr %4579, align 4, !tbaa !5
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = load i32, ptr @test_count, align 4, !tbaa !5
  %4716 = load i32, ptr %4525, align 4, !tbaa !5
  %4717 = call ptr @s2n_strerror(i32 noundef %4716, ptr noundef nonnull @.str.4) #13
  %4718 = load i32, ptr %4525, align 4, !tbaa !5
  %4719 = call ptr @s2n_strerror_debug(i32 noundef %4718, ptr noundef nonnull @.str.4) #13
  %4720 = load i32, ptr %4579, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #13
  %4722 = load i32, ptr %4579, align 4, !tbaa !5
  %4723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4714, ptr noundef nonnull %.str.5.sink2657, i32 noundef %4715, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %4717, ptr noundef %4719, ptr noundef %4721, i32 noundef %4722) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4724:                                             ; preds = %4697
  %4725 = add nsw i32 %4698, 2
  store i32 %4725, ptr @test_count, align 4, !tbaa !5
  %4726 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #13
  %4727 = icmp eq ptr %4726, null
  br i1 %4727, label %4728, label %4750

4728:                                             ; preds = %4724
  %4729 = load i32, ptr %4579, align 4, !tbaa !5
  %4730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4731 = call i32 @s2n_print_stacktrace(ptr noundef %4730) #13
  %4732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4733 = trunc nuw i8 %4732 to i1
  br i1 %4733, label %4734, label %4738

4734:                                             ; preds = %4728
  %4735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4736 = call i32 @fileno(ptr noundef %4735) #13
  %4737 = call i32 @isatty(i32 noundef %4736) #13
  %.not818 = icmp eq i32 %4737, 0
  br i1 %.not818, label %4738, label %4739

4738:                                             ; preds = %4734, %4728
  br label %4739

4739:                                             ; preds = %4734, %4738
  %.str.5.sink2666 = phi ptr [ @.str.5, %4738 ], [ @.str.2, %4734 ]
  store i32 %4729, ptr %4579, align 4, !tbaa !5
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = load i32, ptr @test_count, align 4, !tbaa !5
  %4742 = load i32, ptr %4525, align 4, !tbaa !5
  %4743 = call ptr @s2n_strerror(i32 noundef %4742, ptr noundef nonnull @.str.4) #13
  %4744 = load i32, ptr %4525, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror_debug(i32 noundef %4744, ptr noundef nonnull @.str.4) #13
  %4746 = load i32, ptr %4579, align 4, !tbaa !5
  %4747 = call ptr @strerror(i32 noundef %4746) #13
  %4748 = load i32, ptr %4579, align 4, !tbaa !5
  %4749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4740, ptr noundef nonnull %.str.5.sink2666, i32 noundef %4741, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %4743, ptr noundef %4745, ptr noundef %4747, i32 noundef %4748) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4750:                                             ; preds = %4724
  store i32 0, ptr %4525, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %4579, align 4, !tbaa !5
  %4751 = call i32 @s2n_connection_free(ptr noundef nonnull %4584) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %8) #13
  %4752 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #13
  br i1 %4752, label %4753, label %5287

4753:                                             ; preds = %4750
  %4754 = load i32, ptr @test_count, align 4, !tbaa !5
  %4755 = add nsw i32 %4754, 1
  store i32 %4755, ptr @test_count, align 4, !tbaa !5
  %4756 = call i32 (...) @s2n_reset_tls13_in_test() #13
  %4757 = icmp eq i32 %4756, -1
  br i1 %4757, label %4758, label %4780

4758:                                             ; preds = %4753
  %4759 = load i32, ptr %4579, align 4, !tbaa !5
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @s2n_print_stacktrace(ptr noundef %4760) #13
  %4762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4763 = trunc nuw i8 %4762 to i1
  br i1 %4763, label %4764, label %4768

4764:                                             ; preds = %4758
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = call i32 @fileno(ptr noundef %4765) #13
  %4767 = call i32 @isatty(i32 noundef %4766) #13
  %.not817 = icmp eq i32 %4767, 0
  br i1 %.not817, label %4768, label %4769

4768:                                             ; preds = %4764, %4758
  br label %4769

4769:                                             ; preds = %4764, %4768
  %.str.5.sink2675 = phi ptr [ @.str.5, %4768 ], [ @.str.2, %4764 ]
  store i32 %4759, ptr %4579, align 4, !tbaa !5
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = load i32, ptr @test_count, align 4, !tbaa !5
  %4772 = load i32, ptr %4525, align 4, !tbaa !5
  %4773 = call ptr @s2n_strerror(i32 noundef %4772, ptr noundef nonnull @.str.4) #13
  %4774 = load i32, ptr %4525, align 4, !tbaa !5
  %4775 = call ptr @s2n_strerror_debug(i32 noundef %4774, ptr noundef nonnull @.str.4) #13
  %4776 = load i32, ptr %4579, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #13
  %4778 = load i32, ptr %4579, align 4, !tbaa !5
  %4779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4770, ptr noundef nonnull %.str.5.sink2675, i32 noundef %4771, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %4773, ptr noundef %4775, ptr noundef %4777, i32 noundef %4778) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4780:                                             ; preds = %4753
  %4781 = load i32, ptr @test_count, align 4, !tbaa !5
  %4782 = add nsw i32 %4781, 1
  store i32 %4782, ptr @test_count, align 4, !tbaa !5
  %4783 = call ptr @s2n_config_new() #13
  %4784 = icmp eq ptr %4783, null
  br i1 %4784, label %4785, label %4807

4785:                                             ; preds = %4780
  %4786 = load i32, ptr %4579, align 4, !tbaa !5
  %4787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4788 = call i32 @s2n_print_stacktrace(ptr noundef %4787) #13
  %4789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4790 = trunc nuw i8 %4789 to i1
  br i1 %4790, label %4791, label %4795

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

4795:                                             ; preds = %4791, %4785
  br label %4796

4796:                                             ; preds = %4791, %4795
  %.str.5.sink2684 = phi ptr [ @.str.5, %4795 ], [ @.str.2, %4791 ]
  store i32 %4786, ptr %4579, align 4, !tbaa !5
  %4797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4798 = load i32, ptr @test_count, align 4, !tbaa !5
  %4799 = load i32, ptr %4525, align 4, !tbaa !5
  %4800 = call ptr @s2n_strerror(i32 noundef %4799, ptr noundef nonnull @.str.4) #13
  %4801 = load i32, ptr %4525, align 4, !tbaa !5
  %4802 = call ptr @s2n_strerror_debug(i32 noundef %4801, ptr noundef nonnull @.str.4) #13
  %4803 = load i32, ptr %4579, align 4, !tbaa !5
  %4804 = call ptr @strerror(i32 noundef %4803) #13
  %4805 = load i32, ptr %4579, align 4, !tbaa !5
  %4806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4797, ptr noundef nonnull %.str.5.sink2684, i32 noundef %4798, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %4800, ptr noundef %4802, ptr noundef %4804, i32 noundef %4805) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4807:                                             ; preds = %4780
  %4808 = load i32, ptr @test_count, align 4, !tbaa !5
  %4809 = add nsw i32 %4808, 1
  store i32 %4809, ptr @test_count, align 4, !tbaa !5
  %4810 = call i32 @s2n_config_enable_quic(ptr noundef nonnull %4783) #13
  %4811 = icmp eq i32 %4810, -1
  br i1 %4811, label %4812, label %4834

4812:                                             ; preds = %4807
  %4813 = load i32, ptr %4579, align 4, !tbaa !5
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = call i32 @s2n_print_stacktrace(ptr noundef %4814) #13
  %4816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4817 = trunc nuw i8 %4816 to i1
  br i1 %4817, label %4818, label %4822

4818:                                             ; preds = %4812
  %4819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4820 = call i32 @fileno(ptr noundef %4819) #13
  %4821 = call i32 @isatty(i32 noundef %4820) #13
  %.not815 = icmp eq i32 %4821, 0
  br i1 %.not815, label %4822, label %4823

4822:                                             ; preds = %4818, %4812
  br label %4823

4823:                                             ; preds = %4818, %4822
  %.str.5.sink2693 = phi ptr [ @.str.5, %4822 ], [ @.str.2, %4818 ]
  store i32 %4813, ptr %4579, align 4, !tbaa !5
  %4824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4825 = load i32, ptr @test_count, align 4, !tbaa !5
  %4826 = load i32, ptr %4525, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror(i32 noundef %4826, ptr noundef nonnull @.str.4) #13
  %4828 = load i32, ptr %4525, align 4, !tbaa !5
  %4829 = call ptr @s2n_strerror_debug(i32 noundef %4828, ptr noundef nonnull @.str.4) #13
  %4830 = load i32, ptr %4579, align 4, !tbaa !5
  %4831 = call ptr @strerror(i32 noundef %4830) #13
  %4832 = load i32, ptr %4579, align 4, !tbaa !5
  %4833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4824, ptr noundef nonnull %.str.5.sink2693, i32 noundef %4825, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %4827, ptr noundef %4829, ptr noundef %4831, i32 noundef %4832) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4834:                                             ; preds = %4807
  %4835 = load i32, ptr @test_count, align 4, !tbaa !5
  %4836 = add nsw i32 %4835, 1
  store i32 %4836, ptr @test_count, align 4, !tbaa !5
  %4837 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %4783, ptr noundef nonnull %362) #13
  %4838 = icmp eq i32 %4837, -1
  br i1 %4838, label %4839, label %4861

4839:                                             ; preds = %4834
  %4840 = load i32, ptr %4579, align 4, !tbaa !5
  %4841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4842 = call i32 @s2n_print_stacktrace(ptr noundef %4841) #13
  %4843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4844 = trunc nuw i8 %4843 to i1
  br i1 %4844, label %4845, label %4849

4845:                                             ; preds = %4839
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = call i32 @fileno(ptr noundef %4846) #13
  %4848 = call i32 @isatty(i32 noundef %4847) #13
  %.not814 = icmp eq i32 %4848, 0
  br i1 %.not814, label %4849, label %4850

4849:                                             ; preds = %4845, %4839
  br label %4850

4850:                                             ; preds = %4845, %4849
  %.str.5.sink2702 = phi ptr [ @.str.5, %4849 ], [ @.str.2, %4845 ]
  store i32 %4840, ptr %4579, align 4, !tbaa !5
  %4851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4852 = load i32, ptr @test_count, align 4, !tbaa !5
  %4853 = load i32, ptr %4525, align 4, !tbaa !5
  %4854 = call ptr @s2n_strerror(i32 noundef %4853, ptr noundef nonnull @.str.4) #13
  %4855 = load i32, ptr %4525, align 4, !tbaa !5
  %4856 = call ptr @s2n_strerror_debug(i32 noundef %4855, ptr noundef nonnull @.str.4) #13
  %4857 = load i32, ptr %4579, align 4, !tbaa !5
  %4858 = call ptr @strerror(i32 noundef %4857) #13
  %4859 = load i32, ptr %4579, align 4, !tbaa !5
  %4860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4851, ptr noundef nonnull %.str.5.sink2702, i32 noundef %4852, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %4854, ptr noundef %4856, ptr noundef %4858, i32 noundef %4859) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4861:                                             ; preds = %4834
  %4862 = load i32, ptr @test_count, align 4, !tbaa !5
  %4863 = add nsw i32 %4862, 1
  store i32 %4863, ptr @test_count, align 4, !tbaa !5
  %4864 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %4783, ptr noundef nonnull @.str.58) #13
  %4865 = icmp eq i32 %4864, -1
  br i1 %4865, label %4866, label %4888

4866:                                             ; preds = %4861
  %4867 = load i32, ptr %4579, align 4, !tbaa !5
  %4868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4869 = call i32 @s2n_print_stacktrace(ptr noundef %4868) #13
  %4870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4871 = trunc nuw i8 %4870 to i1
  br i1 %4871, label %4872, label %4876

4872:                                             ; preds = %4866
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = call i32 @fileno(ptr noundef %4873) #13
  %4875 = call i32 @isatty(i32 noundef %4874) #13
  %.not813 = icmp eq i32 %4875, 0
  br i1 %.not813, label %4876, label %4877

4876:                                             ; preds = %4872, %4866
  br label %4877

4877:                                             ; preds = %4872, %4876
  %.str.5.sink2711 = phi ptr [ @.str.5, %4876 ], [ @.str.2, %4872 ]
  store i32 %4867, ptr %4579, align 4, !tbaa !5
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = load i32, ptr %4525, align 4, !tbaa !5
  %4881 = call ptr @s2n_strerror(i32 noundef %4880, ptr noundef nonnull @.str.4) #13
  %4882 = load i32, ptr %4525, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror_debug(i32 noundef %4882, ptr noundef nonnull @.str.4) #13
  %4884 = load i32, ptr %4579, align 4, !tbaa !5
  %4885 = call ptr @strerror(i32 noundef %4884) #13
  %4886 = load i32, ptr %4579, align 4, !tbaa !5
  %4887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4878, ptr noundef nonnull %.str.5.sink2711, i32 noundef %4879, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %4881, ptr noundef %4883, ptr noundef %4885, i32 noundef %4886) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4888:                                             ; preds = %4861
  %4889 = load i32, ptr @test_count, align 4, !tbaa !5
  %4890 = add nsw i32 %4889, 1
  store i32 %4890, ptr @test_count, align 4, !tbaa !5
  %4891 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %4892 = icmp eq ptr %4891, null
  br i1 %4892, label %4893, label %4915

4893:                                             ; preds = %4888
  %4894 = load i32, ptr %4579, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = call i32 @s2n_print_stacktrace(ptr noundef %4895) #13
  %4897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4898 = trunc nuw i8 %4897 to i1
  br i1 %4898, label %4899, label %4903

4899:                                             ; preds = %4893
  %4900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4901 = call i32 @fileno(ptr noundef %4900) #13
  %4902 = call i32 @isatty(i32 noundef %4901) #13
  %.not812 = icmp eq i32 %4902, 0
  br i1 %.not812, label %4903, label %4904

4903:                                             ; preds = %4899, %4893
  br label %4904

4904:                                             ; preds = %4899, %4903
  %.str.5.sink2720 = phi ptr [ @.str.5, %4903 ], [ @.str.2, %4899 ]
  store i32 %4894, ptr %4579, align 4, !tbaa !5
  %4905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4906 = load i32, ptr @test_count, align 4, !tbaa !5
  %4907 = load i32, ptr %4525, align 4, !tbaa !5
  %4908 = call ptr @s2n_strerror(i32 noundef %4907, ptr noundef nonnull @.str.4) #13
  %4909 = load i32, ptr %4525, align 4, !tbaa !5
  %4910 = call ptr @s2n_strerror_debug(i32 noundef %4909, ptr noundef nonnull @.str.4) #13
  %4911 = load i32, ptr %4579, align 4, !tbaa !5
  %4912 = call ptr @strerror(i32 noundef %4911) #13
  %4913 = load i32, ptr %4579, align 4, !tbaa !5
  %4914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4905, ptr noundef nonnull %.str.5.sink2720, i32 noundef %4906, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %4908, ptr noundef %4910, ptr noundef %4912, i32 noundef %4913) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4915:                                             ; preds = %4888
  %4916 = load i32, ptr @test_count, align 4, !tbaa !5
  %4917 = add nsw i32 %4916, 1
  store i32 %4917, ptr @test_count, align 4, !tbaa !5
  %4918 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4891, ptr noundef nonnull %4783) #13
  %4919 = icmp eq i32 %4918, -1
  br i1 %4919, label %4920, label %4942

4920:                                             ; preds = %4915
  %4921 = load i32, ptr %4579, align 4, !tbaa !5
  %4922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4923 = call i32 @s2n_print_stacktrace(ptr noundef %4922) #13
  %4924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4925 = trunc nuw i8 %4924 to i1
  br i1 %4925, label %4926, label %4930

4926:                                             ; preds = %4920
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @fileno(ptr noundef %4927) #13
  %4929 = call i32 @isatty(i32 noundef %4928) #13
  %.not811 = icmp eq i32 %4929, 0
  br i1 %.not811, label %4930, label %4931

4930:                                             ; preds = %4926, %4920
  br label %4931

4931:                                             ; preds = %4926, %4930
  %.str.5.sink2729 = phi ptr [ @.str.5, %4930 ], [ @.str.2, %4926 ]
  store i32 %4921, ptr %4579, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = load i32, ptr %4525, align 4, !tbaa !5
  %4935 = call ptr @s2n_strerror(i32 noundef %4934, ptr noundef nonnull @.str.4) #13
  %4936 = load i32, ptr %4525, align 4, !tbaa !5
  %4937 = call ptr @s2n_strerror_debug(i32 noundef %4936, ptr noundef nonnull @.str.4) #13
  %4938 = load i32, ptr %4579, align 4, !tbaa !5
  %4939 = call ptr @strerror(i32 noundef %4938) #13
  %4940 = load i32, ptr %4579, align 4, !tbaa !5
  %4941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4932, ptr noundef nonnull %.str.5.sink2729, i32 noundef %4933, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 399, ptr noundef %4935, ptr noundef %4937, ptr noundef %4939, i32 noundef %4940) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4942:                                             ; preds = %4915
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = add nsw i32 %4943, 1
  store i32 %4944, ptr @test_count, align 4, !tbaa !5
  %4945 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %4946 = icmp eq ptr %4945, null
  br i1 %4946, label %4947, label %4969

4947:                                             ; preds = %4942
  %4948 = load i32, ptr %4579, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = call i32 @s2n_print_stacktrace(ptr noundef %4949) #13
  %4951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4952 = trunc nuw i8 %4951 to i1
  br i1 %4952, label %4953, label %4957

4953:                                             ; preds = %4947
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = call i32 @fileno(ptr noundef %4954) #13
  %4956 = call i32 @isatty(i32 noundef %4955) #13
  %.not810 = icmp eq i32 %4956, 0
  br i1 %.not810, label %4957, label %4958

4957:                                             ; preds = %4953, %4947
  br label %4958

4958:                                             ; preds = %4953, %4957
  %.str.5.sink2738 = phi ptr [ @.str.5, %4957 ], [ @.str.2, %4953 ]
  store i32 %4948, ptr %4579, align 4, !tbaa !5
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = load i32, ptr %4525, align 4, !tbaa !5
  %4962 = call ptr @s2n_strerror(i32 noundef %4961, ptr noundef nonnull @.str.4) #13
  %4963 = load i32, ptr %4525, align 4, !tbaa !5
  %4964 = call ptr @s2n_strerror_debug(i32 noundef %4963, ptr noundef nonnull @.str.4) #13
  %4965 = load i32, ptr %4579, align 4, !tbaa !5
  %4966 = call ptr @strerror(i32 noundef %4965) #13
  %4967 = load i32, ptr %4579, align 4, !tbaa !5
  %4968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4959, ptr noundef nonnull %.str.5.sink2738, i32 noundef %4960, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %4962, ptr noundef %4964, ptr noundef %4966, i32 noundef %4967) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4969:                                             ; preds = %4942
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = add nsw i32 %4970, 1
  store i32 %4971, ptr @test_count, align 4, !tbaa !5
  %4972 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4945, ptr noundef nonnull %4783) #13
  %4973 = icmp eq i32 %4972, -1
  br i1 %4973, label %4974, label %4996

4974:                                             ; preds = %4969
  %4975 = load i32, ptr %4579, align 4, !tbaa !5
  %4976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4977 = call i32 @s2n_print_stacktrace(ptr noundef %4976) #13
  %4978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4979 = trunc nuw i8 %4978 to i1
  br i1 %4979, label %4980, label %4984

4980:                                             ; preds = %4974
  %4981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4982 = call i32 @fileno(ptr noundef %4981) #13
  %4983 = call i32 @isatty(i32 noundef %4982) #13
  %.not809 = icmp eq i32 %4983, 0
  br i1 %.not809, label %4984, label %4985

4984:                                             ; preds = %4980, %4974
  br label %4985

4985:                                             ; preds = %4980, %4984
  %.str.5.sink2747 = phi ptr [ @.str.5, %4984 ], [ @.str.2, %4980 ]
  store i32 %4975, ptr %4579, align 4, !tbaa !5
  %4986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4987 = load i32, ptr @test_count, align 4, !tbaa !5
  %4988 = load i32, ptr %4525, align 4, !tbaa !5
  %4989 = call ptr @s2n_strerror(i32 noundef %4988, ptr noundef nonnull @.str.4) #13
  %4990 = load i32, ptr %4525, align 4, !tbaa !5
  %4991 = call ptr @s2n_strerror_debug(i32 noundef %4990, ptr noundef nonnull @.str.4) #13
  %4992 = load i32, ptr %4579, align 4, !tbaa !5
  %4993 = call ptr @strerror(i32 noundef %4992) #13
  %4994 = load i32, ptr %4579, align 4, !tbaa !5
  %4995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4986, ptr noundef nonnull %.str.5.sink2747, i32 noundef %4987, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 402, ptr noundef %4989, ptr noundef %4991, ptr noundef %4993, i32 noundef %4994) #15
  call void @exit(i32 noundef 1) #16
  unreachable

4996:                                             ; preds = %4969
  %4997 = load i32, ptr @test_count, align 4, !tbaa !5
  %4998 = add nsw i32 %4997, 1
  store i32 %4998, ptr @test_count, align 4, !tbaa !5
  %4999 = call i32 @s2n_client_hello_send(ptr noundef nonnull %4945) #13
  %5000 = icmp eq i32 %4999, -1
  br i1 %5000, label %5001, label %5023

5001:                                             ; preds = %4996
  %5002 = load i32, ptr %4579, align 4, !tbaa !5
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = call i32 @s2n_print_stacktrace(ptr noundef %5003) #13
  %5005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5006 = trunc nuw i8 %5005 to i1
  br i1 %5006, label %5007, label %5011

5007:                                             ; preds = %5001
  %5008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5009 = call i32 @fileno(ptr noundef %5008) #13
  %5010 = call i32 @isatty(i32 noundef %5009) #13
  %.not808 = icmp eq i32 %5010, 0
  br i1 %.not808, label %5011, label %5012

5011:                                             ; preds = %5007, %5001
  br label %5012

5012:                                             ; preds = %5007, %5011
  %.str.5.sink2756 = phi ptr [ @.str.5, %5011 ], [ @.str.2, %5007 ]
  store i32 %5002, ptr %4579, align 4, !tbaa !5
  %5013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5014 = load i32, ptr @test_count, align 4, !tbaa !5
  %5015 = load i32, ptr %4525, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror(i32 noundef %5015, ptr noundef nonnull @.str.4) #13
  %5017 = load i32, ptr %4525, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror_debug(i32 noundef %5017, ptr noundef nonnull @.str.4) #13
  %5019 = load i32, ptr %4579, align 4, !tbaa !5
  %5020 = call ptr @strerror(i32 noundef %5019) #13
  %5021 = load i32, ptr %4579, align 4, !tbaa !5
  %5022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5013, ptr noundef nonnull %.str.5.sink2756, i32 noundef %5014, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %5016, ptr noundef %5018, ptr noundef %5020, i32 noundef %5021) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5023:                                             ; preds = %4996
  %5024 = load i32, ptr @test_count, align 4, !tbaa !5
  %5025 = add nsw i32 %5024, 1
  store i32 %5025, ptr @test_count, align 4, !tbaa !5
  %5026 = getelementptr inbounds i8, ptr %4945, i64 2016
  %5027 = getelementptr inbounds i8, ptr %4891, i64 2016
  %5028 = getelementptr inbounds i8, ptr %4945, i64 2044
  %5029 = load i32, ptr %5028, align 4, !tbaa !49
  %5030 = getelementptr inbounds i8, ptr %4945, i64 2040
  %5031 = load i32, ptr %5030, align 8, !tbaa !50
  %5032 = sub i32 %5029, %5031
  %5033 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5026, ptr noundef nonnull %5027, i32 noundef %5032) #13
  %5034 = icmp eq i32 %5033, -1
  br i1 %5034, label %5035, label %5057

5035:                                             ; preds = %5023
  %5036 = load i32, ptr %4579, align 4, !tbaa !5
  %5037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5038 = call i32 @s2n_print_stacktrace(ptr noundef %5037) #13
  %5039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5040 = trunc nuw i8 %5039 to i1
  br i1 %5040, label %5041, label %5045

5041:                                             ; preds = %5035
  %5042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5043 = call i32 @fileno(ptr noundef %5042) #13
  %5044 = call i32 @isatty(i32 noundef %5043) #13
  %.not807 = icmp eq i32 %5044, 0
  br i1 %.not807, label %5045, label %5046

5045:                                             ; preds = %5041, %5035
  br label %5046

5046:                                             ; preds = %5041, %5045
  %.str.5.sink2765 = phi ptr [ @.str.5, %5045 ], [ @.str.2, %5041 ]
  store i32 %5036, ptr %4579, align 4, !tbaa !5
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = load i32, ptr @test_count, align 4, !tbaa !5
  %5049 = load i32, ptr %4525, align 4, !tbaa !5
  %5050 = call ptr @s2n_strerror(i32 noundef %5049, ptr noundef nonnull @.str.4) #13
  %5051 = load i32, ptr %4525, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror_debug(i32 noundef %5051, ptr noundef nonnull @.str.4) #13
  %5053 = load i32, ptr %4579, align 4, !tbaa !5
  %5054 = call ptr @strerror(i32 noundef %5053) #13
  %5055 = load i32, ptr %4579, align 4, !tbaa !5
  %5056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5047, ptr noundef nonnull %.str.5.sink2765, i32 noundef %5048, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %5050, ptr noundef %5052, ptr noundef %5054, i32 noundef %5055) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5057:                                             ; preds = %5023
  %5058 = load i32, ptr @test_count, align 4, !tbaa !5
  %5059 = add nsw i32 %5058, 1
  store i32 %5059, ptr @test_count, align 4, !tbaa !5
  %5060 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %4891) #13
  %5061 = icmp eq i32 %5060, -1
  br i1 %5061, label %5062, label %5084

5062:                                             ; preds = %5057
  %5063 = load i32, ptr %4579, align 4, !tbaa !5
  %5064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5065 = call i32 @s2n_print_stacktrace(ptr noundef %5064) #13
  %5066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5067 = trunc nuw i8 %5066 to i1
  br i1 %5067, label %5068, label %5072

5068:                                             ; preds = %5062
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = call i32 @fileno(ptr noundef %5069) #13
  %5071 = call i32 @isatty(i32 noundef %5070) #13
  %.not806 = icmp eq i32 %5071, 0
  br i1 %.not806, label %5072, label %5073

5072:                                             ; preds = %5068, %5062
  br label %5073

5073:                                             ; preds = %5068, %5072
  %.str.5.sink2774 = phi ptr [ @.str.5, %5072 ], [ @.str.2, %5068 ]
  store i32 %5063, ptr %4579, align 4, !tbaa !5
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = load i32, ptr @test_count, align 4, !tbaa !5
  %5076 = load i32, ptr %4525, align 4, !tbaa !5
  %5077 = call ptr @s2n_strerror(i32 noundef %5076, ptr noundef nonnull @.str.4) #13
  %5078 = load i32, ptr %4525, align 4, !tbaa !5
  %5079 = call ptr @s2n_strerror_debug(i32 noundef %5078, ptr noundef nonnull @.str.4) #13
  %5080 = load i32, ptr %4579, align 4, !tbaa !5
  %5081 = call ptr @strerror(i32 noundef %5080) #13
  %5082 = load i32, ptr %4579, align 4, !tbaa !5
  %5083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5074, ptr noundef nonnull %.str.5.sink2774, i32 noundef %5075, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %5077, ptr noundef %5079, ptr noundef %5081, i32 noundef %5082) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5084:                                             ; preds = %5057
  %5085 = call i32 @s2n_connection_free(ptr noundef nonnull %4945) #13
  %5086 = call i32 @s2n_connection_free(ptr noundef nonnull %4891) #13
  %5087 = load i32, ptr @test_count, align 4, !tbaa !5
  %5088 = add nsw i32 %5087, 1
  store i32 %5088, ptr @test_count, align 4, !tbaa !5
  %5089 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %5090 = icmp eq ptr %5089, null
  br i1 %5090, label %5091, label %5113

5091:                                             ; preds = %5084
  %5092 = load i32, ptr %4579, align 4, !tbaa !5
  %5093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5094 = call i32 @s2n_print_stacktrace(ptr noundef %5093) #13
  %5095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5096 = trunc nuw i8 %5095 to i1
  br i1 %5096, label %5097, label %5101

5097:                                             ; preds = %5091
  %5098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5099 = call i32 @fileno(ptr noundef %5098) #13
  %5100 = call i32 @isatty(i32 noundef %5099) #13
  %.not805 = icmp eq i32 %5100, 0
  br i1 %.not805, label %5101, label %5102

5101:                                             ; preds = %5097, %5091
  br label %5102

5102:                                             ; preds = %5097, %5101
  %.str.5.sink2783 = phi ptr [ @.str.5, %5101 ], [ @.str.2, %5097 ]
  store i32 %5092, ptr %4579, align 4, !tbaa !5
  %5103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5104 = load i32, ptr @test_count, align 4, !tbaa !5
  %5105 = load i32, ptr %4525, align 4, !tbaa !5
  %5106 = call ptr @s2n_strerror(i32 noundef %5105, ptr noundef nonnull @.str.4) #13
  %5107 = load i32, ptr %4525, align 4, !tbaa !5
  %5108 = call ptr @s2n_strerror_debug(i32 noundef %5107, ptr noundef nonnull @.str.4) #13
  %5109 = load i32, ptr %4579, align 4, !tbaa !5
  %5110 = call ptr @strerror(i32 noundef %5109) #13
  %5111 = load i32, ptr %4579, align 4, !tbaa !5
  %5112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5103, ptr noundef nonnull %.str.5.sink2783, i32 noundef %5104, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %5106, ptr noundef %5108, ptr noundef %5110, i32 noundef %5111) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5113:                                             ; preds = %5084
  %5114 = load i32, ptr @test_count, align 4, !tbaa !5
  %5115 = add nsw i32 %5114, 1
  store i32 %5115, ptr @test_count, align 4, !tbaa !5
  %5116 = call i32 @s2n_connection_set_config(ptr noundef nonnull %5089, ptr noundef nonnull %4783) #13
  %5117 = icmp eq i32 %5116, -1
  br i1 %5117, label %5118, label %5140

5118:                                             ; preds = %5113
  %5119 = load i32, ptr %4579, align 4, !tbaa !5
  %5120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5121 = call i32 @s2n_print_stacktrace(ptr noundef %5120) #13
  %5122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5123 = trunc nuw i8 %5122 to i1
  br i1 %5123, label %5124, label %5128

5124:                                             ; preds = %5118
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = call i32 @fileno(ptr noundef %5125) #13
  %5127 = call i32 @isatty(i32 noundef %5126) #13
  %.not804 = icmp eq i32 %5127, 0
  br i1 %.not804, label %5128, label %5129

5128:                                             ; preds = %5124, %5118
  br label %5129

5129:                                             ; preds = %5124, %5128
  %.str.5.sink2792 = phi ptr [ @.str.5, %5128 ], [ @.str.2, %5124 ]
  store i32 %5119, ptr %4579, align 4, !tbaa !5
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = load i32, ptr @test_count, align 4, !tbaa !5
  %5132 = load i32, ptr %4525, align 4, !tbaa !5
  %5133 = call ptr @s2n_strerror(i32 noundef %5132, ptr noundef nonnull @.str.4) #13
  %5134 = load i32, ptr %4525, align 4, !tbaa !5
  %5135 = call ptr @s2n_strerror_debug(i32 noundef %5134, ptr noundef nonnull @.str.4) #13
  %5136 = load i32, ptr %4579, align 4, !tbaa !5
  %5137 = call ptr @strerror(i32 noundef %5136) #13
  %5138 = load i32, ptr %4579, align 4, !tbaa !5
  %5139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5130, ptr noundef nonnull %.str.5.sink2792, i32 noundef %5131, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 416, ptr noundef %5133, ptr noundef %5135, ptr noundef %5137, i32 noundef %5138) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5140:                                             ; preds = %5113
  %5141 = load i32, ptr @test_count, align 4, !tbaa !5
  %5142 = add nsw i32 %5141, 1
  store i32 %5142, ptr @test_count, align 4, !tbaa !5
  %5143 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5144 = icmp eq ptr %5143, null
  br i1 %5144, label %5145, label %5167

5145:                                             ; preds = %5140
  %5146 = load i32, ptr %4579, align 4, !tbaa !5
  %5147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5148 = call i32 @s2n_print_stacktrace(ptr noundef %5147) #13
  %5149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5150 = trunc nuw i8 %5149 to i1
  br i1 %5150, label %5151, label %5155

5151:                                             ; preds = %5145
  %5152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5153 = call i32 @fileno(ptr noundef %5152) #13
  %5154 = call i32 @isatty(i32 noundef %5153) #13
  %.not803 = icmp eq i32 %5154, 0
  br i1 %.not803, label %5155, label %5156

5155:                                             ; preds = %5151, %5145
  br label %5156

5156:                                             ; preds = %5151, %5155
  %.str.5.sink2801 = phi ptr [ @.str.5, %5155 ], [ @.str.2, %5151 ]
  store i32 %5146, ptr %4579, align 4, !tbaa !5
  %5157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5158 = load i32, ptr @test_count, align 4, !tbaa !5
  %5159 = load i32, ptr %4525, align 4, !tbaa !5
  %5160 = call ptr @s2n_strerror(i32 noundef %5159, ptr noundef nonnull @.str.4) #13
  %5161 = load i32, ptr %4525, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror_debug(i32 noundef %5161, ptr noundef nonnull @.str.4) #13
  %5163 = load i32, ptr %4579, align 4, !tbaa !5
  %5164 = call ptr @strerror(i32 noundef %5163) #13
  %5165 = load i32, ptr %4579, align 4, !tbaa !5
  %5166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5157, ptr noundef nonnull %.str.5.sink2801, i32 noundef %5158, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %5160, ptr noundef %5162, ptr noundef %5164, i32 noundef %5165) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5167:                                             ; preds = %5140
  %5168 = load i32, ptr @test_count, align 4, !tbaa !5
  %5169 = add nsw i32 %5168, 1
  store i32 %5169, ptr @test_count, align 4, !tbaa !5
  %5170 = call i32 @s2n_connection_set_config(ptr noundef nonnull %5143, ptr noundef nonnull %4783) #13
  %5171 = icmp eq i32 %5170, -1
  br i1 %5171, label %5172, label %5194

5172:                                             ; preds = %5167
  %5173 = load i32, ptr %4579, align 4, !tbaa !5
  %5174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5175 = call i32 @s2n_print_stacktrace(ptr noundef %5174) #13
  %5176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5177 = trunc nuw i8 %5176 to i1
  br i1 %5177, label %5178, label %5182

5178:                                             ; preds = %5172
  %5179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5180 = call i32 @fileno(ptr noundef %5179) #13
  %5181 = call i32 @isatty(i32 noundef %5180) #13
  %.not802 = icmp eq i32 %5181, 0
  br i1 %.not802, label %5182, label %5183

5182:                                             ; preds = %5178, %5172
  br label %5183

5183:                                             ; preds = %5178, %5182
  %.str.5.sink2810 = phi ptr [ @.str.5, %5182 ], [ @.str.2, %5178 ]
  store i32 %5173, ptr %4579, align 4, !tbaa !5
  %5184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5185 = load i32, ptr @test_count, align 4, !tbaa !5
  %5186 = load i32, ptr %4525, align 4, !tbaa !5
  %5187 = call ptr @s2n_strerror(i32 noundef %5186, ptr noundef nonnull @.str.4) #13
  %5188 = load i32, ptr %4525, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror_debug(i32 noundef %5188, ptr noundef nonnull @.str.4) #13
  %5190 = load i32, ptr %4579, align 4, !tbaa !5
  %5191 = call ptr @strerror(i32 noundef %5190) #13
  %5192 = load i32, ptr %4579, align 4, !tbaa !5
  %5193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5184, ptr noundef nonnull %.str.5.sink2810, i32 noundef %5185, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 419, ptr noundef %5187, ptr noundef %5189, ptr noundef %5191, i32 noundef %5192) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5194:                                             ; preds = %5167
  %5195 = getelementptr inbounds i8, ptr %5143, i64 216
  store i8 10, ptr %5195, align 8, !tbaa !51
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = add nsw i32 %5196, 1
  store i32 %5197, ptr @test_count, align 4, !tbaa !5
  %5198 = call i32 @s2n_client_hello_send(ptr noundef nonnull %5143) #13
  %5199 = icmp eq i32 %5198, -1
  br i1 %5199, label %5200, label %5222

5200:                                             ; preds = %5194
  %5201 = load i32, ptr %4579, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = call i32 @s2n_print_stacktrace(ptr noundef %5202) #13
  %5204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5205 = trunc nuw i8 %5204 to i1
  br i1 %5205, label %5206, label %5210

5206:                                             ; preds = %5200
  %5207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5208 = call i32 @fileno(ptr noundef %5207) #13
  %5209 = call i32 @isatty(i32 noundef %5208) #13
  %.not801 = icmp eq i32 %5209, 0
  br i1 %.not801, label %5210, label %5211

5210:                                             ; preds = %5206, %5200
  br label %5211

5211:                                             ; preds = %5206, %5210
  %.str.5.sink2819 = phi ptr [ @.str.5, %5210 ], [ @.str.2, %5206 ]
  store i32 %5201, ptr %4579, align 4, !tbaa !5
  %5212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5213 = load i32, ptr @test_count, align 4, !tbaa !5
  %5214 = load i32, ptr %4525, align 4, !tbaa !5
  %5215 = call ptr @s2n_strerror(i32 noundef %5214, ptr noundef nonnull @.str.4) #13
  %5216 = load i32, ptr %4525, align 4, !tbaa !5
  %5217 = call ptr @s2n_strerror_debug(i32 noundef %5216, ptr noundef nonnull @.str.4) #13
  %5218 = load i32, ptr %4579, align 4, !tbaa !5
  %5219 = call ptr @strerror(i32 noundef %5218) #13
  %5220 = load i32, ptr %4579, align 4, !tbaa !5
  %5221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef nonnull %.str.5.sink2819, i32 noundef %5213, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %5215, ptr noundef %5217, ptr noundef %5219, i32 noundef %5220) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5222:                                             ; preds = %5194
  %5223 = load i32, ptr @test_count, align 4, !tbaa !5
  %5224 = add nsw i32 %5223, 1
  store i32 %5224, ptr @test_count, align 4, !tbaa !5
  %5225 = getelementptr inbounds i8, ptr %5143, i64 2016
  %5226 = getelementptr inbounds i8, ptr %5089, i64 2016
  %5227 = getelementptr inbounds i8, ptr %5143, i64 2044
  %5228 = load i32, ptr %5227, align 4, !tbaa !49
  %5229 = getelementptr inbounds i8, ptr %5143, i64 2040
  %5230 = load i32, ptr %5229, align 8, !tbaa !50
  %5231 = sub i32 %5228, %5230
  %5232 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5225, ptr noundef nonnull %5226, i32 noundef %5231) #13
  %5233 = icmp eq i32 %5232, -1
  br i1 %5233, label %5234, label %5256

5234:                                             ; preds = %5222
  %5235 = load i32, ptr %4579, align 4, !tbaa !5
  %5236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5237 = call i32 @s2n_print_stacktrace(ptr noundef %5236) #13
  %5238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5239 = trunc nuw i8 %5238 to i1
  br i1 %5239, label %5240, label %5244

5240:                                             ; preds = %5234
  %5241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5242 = call i32 @fileno(ptr noundef %5241) #13
  %5243 = call i32 @isatty(i32 noundef %5242) #13
  %.not800 = icmp eq i32 %5243, 0
  br i1 %.not800, label %5244, label %5245

5244:                                             ; preds = %5240, %5234
  br label %5245

5245:                                             ; preds = %5240, %5244
  %.str.5.sink2828 = phi ptr [ @.str.5, %5244 ], [ @.str.2, %5240 ]
  store i32 %5235, ptr %4579, align 4, !tbaa !5
  %5246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5247 = load i32, ptr @test_count, align 4, !tbaa !5
  %5248 = load i32, ptr %4525, align 4, !tbaa !5
  %5249 = call ptr @s2n_strerror(i32 noundef %5248, ptr noundef nonnull @.str.4) #13
  %5250 = load i32, ptr %4525, align 4, !tbaa !5
  %5251 = call ptr @s2n_strerror_debug(i32 noundef %5250, ptr noundef nonnull @.str.4) #13
  %5252 = load i32, ptr %4579, align 4, !tbaa !5
  %5253 = call ptr @strerror(i32 noundef %5252) #13
  %5254 = load i32, ptr %4579, align 4, !tbaa !5
  %5255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5246, ptr noundef nonnull %.str.5.sink2828, i32 noundef %5247, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 426, ptr noundef %5249, ptr noundef %5251, ptr noundef %5253, i32 noundef %5254) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5256:                                             ; preds = %5222
  %5257 = load i32, ptr @test_count, align 4, !tbaa !5
  %5258 = add nsw i32 %5257, 1
  store i32 %5258, ptr @test_count, align 4, !tbaa !5
  %5259 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %5089) #13
  %5260 = icmp eq i32 %5259, -1
  br i1 %5260, label %5261, label %5283

5261:                                             ; preds = %5256
  %5262 = load i32, ptr %4579, align 4, !tbaa !5
  %5263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5264 = call i32 @s2n_print_stacktrace(ptr noundef %5263) #13
  %5265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5266 = trunc nuw i8 %5265 to i1
  br i1 %5266, label %5267, label %5271

5267:                                             ; preds = %5261
  %5268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5269 = call i32 @fileno(ptr noundef %5268) #13
  %5270 = call i32 @isatty(i32 noundef %5269) #13
  %.not799 = icmp eq i32 %5270, 0
  br i1 %.not799, label %5271, label %5272

5271:                                             ; preds = %5267, %5261
  br label %5272

5272:                                             ; preds = %5267, %5271
  %.str.5.sink2837 = phi ptr [ @.str.5, %5271 ], [ @.str.2, %5267 ]
  store i32 %5262, ptr %4579, align 4, !tbaa !5
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = load i32, ptr @test_count, align 4, !tbaa !5
  %5275 = load i32, ptr %4525, align 4, !tbaa !5
  %5276 = call ptr @s2n_strerror(i32 noundef %5275, ptr noundef nonnull @.str.4) #13
  %5277 = load i32, ptr %4525, align 4, !tbaa !5
  %5278 = call ptr @s2n_strerror_debug(i32 noundef %5277, ptr noundef nonnull @.str.4) #13
  %5279 = load i32, ptr %4579, align 4, !tbaa !5
  %5280 = call ptr @strerror(i32 noundef %5279) #13
  %5281 = load i32, ptr %4579, align 4, !tbaa !5
  %5282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5273, ptr noundef nonnull %.str.5.sink2837, i32 noundef %5274, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %5276, ptr noundef %5278, ptr noundef %5280, i32 noundef %5281) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5283:                                             ; preds = %5256
  %5284 = call i32 @s2n_connection_free(ptr noundef nonnull %5143) #13
  %5285 = call i32 @s2n_connection_free(ptr noundef nonnull %5089) #13
  %5286 = call i32 @s2n_config_free(ptr noundef nonnull %4783) #13
  br label %5287

5287:                                             ; preds = %4750, %5283
  %5288 = load i32, ptr @test_count, align 4, !tbaa !5
  %5289 = add nsw i32 %5288, 1
  store i32 %5289, ptr @test_count, align 4, !tbaa !5
  %5290 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %5291 = icmp eq ptr %5290, null
  br i1 %5291, label %5292, label %5314

5292:                                             ; preds = %5287
  %5293 = load i32, ptr %4579, align 4, !tbaa !5
  %5294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5295 = call i32 @s2n_print_stacktrace(ptr noundef %5294) #13
  %5296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5297 = trunc nuw i8 %5296 to i1
  br i1 %5297, label %5298, label %5302

5298:                                             ; preds = %5292
  %5299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5300 = call i32 @fileno(ptr noundef %5299) #13
  %5301 = call i32 @isatty(i32 noundef %5300) #13
  %.not798 = icmp eq i32 %5301, 0
  br i1 %.not798, label %5302, label %5303

5302:                                             ; preds = %5298, %5292
  br label %5303

5303:                                             ; preds = %5298, %5302
  %.str.5.sink2846 = phi ptr [ @.str.5, %5302 ], [ @.str.2, %5298 ]
  store i32 %5293, ptr %4579, align 4, !tbaa !5
  %5304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5305 = load i32, ptr @test_count, align 4, !tbaa !5
  %5306 = load i32, ptr %4525, align 4, !tbaa !5
  %5307 = call ptr @s2n_strerror(i32 noundef %5306, ptr noundef nonnull @.str.4) #13
  %5308 = load i32, ptr %4525, align 4, !tbaa !5
  %5309 = call ptr @s2n_strerror_debug(i32 noundef %5308, ptr noundef nonnull @.str.4) #13
  %5310 = load i32, ptr %4579, align 4, !tbaa !5
  %5311 = call ptr @strerror(i32 noundef %5310) #13
  %5312 = load i32, ptr %4579, align 4, !tbaa !5
  %5313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5304, ptr noundef nonnull %.str.5.sink2846, i32 noundef %5305, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %5307, ptr noundef %5309, ptr noundef %5311, i32 noundef %5312) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5314:                                             ; preds = %5287
  %5315 = load i32, ptr @test_count, align 4, !tbaa !5
  %5316 = add nsw i32 %5315, 1
  store i32 %5316, ptr @test_count, align 4, !tbaa !5
  %5317 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %5318 = icmp eq ptr %5317, null
  br i1 %5318, label %5319, label %5341

5319:                                             ; preds = %5314
  %5320 = load i32, ptr %4579, align 4, !tbaa !5
  %5321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5322 = call i32 @s2n_print_stacktrace(ptr noundef %5321) #13
  %5323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5324 = trunc nuw i8 %5323 to i1
  br i1 %5324, label %5325, label %5329

5325:                                             ; preds = %5319
  %5326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5327 = call i32 @fileno(ptr noundef %5326) #13
  %5328 = call i32 @isatty(i32 noundef %5327) #13
  %.not797 = icmp eq i32 %5328, 0
  br i1 %.not797, label %5329, label %5330

5329:                                             ; preds = %5325, %5319
  br label %5330

5330:                                             ; preds = %5325, %5329
  %.str.5.sink2855 = phi ptr [ @.str.5, %5329 ], [ @.str.2, %5325 ]
  store i32 %5320, ptr %4579, align 4, !tbaa !5
  %5331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5332 = load i32, ptr @test_count, align 4, !tbaa !5
  %5333 = load i32, ptr %4525, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror(i32 noundef %5333, ptr noundef nonnull @.str.4) #13
  %5335 = load i32, ptr %4525, align 4, !tbaa !5
  %5336 = call ptr @s2n_strerror_debug(i32 noundef %5335, ptr noundef nonnull @.str.4) #13
  %5337 = load i32, ptr %4579, align 4, !tbaa !5
  %5338 = call ptr @strerror(i32 noundef %5337) #13
  %5339 = load i32, ptr %4579, align 4, !tbaa !5
  %5340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5331, ptr noundef nonnull %.str.5.sink2855, i32 noundef %5332, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 439, ptr noundef %5334, ptr noundef %5336, ptr noundef %5338, i32 noundef %5339) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5341:                                             ; preds = %5314
  %5342 = load i32, ptr @test_count, align 4, !tbaa !5
  %5343 = add nsw i32 %5342, 1
  store i32 %5343, ptr @test_count, align 4, !tbaa !5
  %5344 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %5290, ptr noundef nonnull @.str.58) #13
  %5345 = icmp eq i32 %5344, -1
  br i1 %5345, label %5346, label %5368

5346:                                             ; preds = %5341
  %5347 = load i32, ptr %4579, align 4, !tbaa !5
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = call i32 @s2n_print_stacktrace(ptr noundef %5348) #13
  %5350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5351 = trunc nuw i8 %5350 to i1
  br i1 %5351, label %5352, label %5356

5352:                                             ; preds = %5346
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = call i32 @fileno(ptr noundef %5353) #13
  %5355 = call i32 @isatty(i32 noundef %5354) #13
  %.not796 = icmp eq i32 %5355, 0
  br i1 %.not796, label %5356, label %5357

5356:                                             ; preds = %5352, %5346
  br label %5357

5357:                                             ; preds = %5352, %5356
  %.str.5.sink2864 = phi ptr [ @.str.5, %5356 ], [ @.str.2, %5352 ]
  store i32 %5347, ptr %4579, align 4, !tbaa !5
  %5358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5359 = load i32, ptr @test_count, align 4, !tbaa !5
  %5360 = load i32, ptr %4525, align 4, !tbaa !5
  %5361 = call ptr @s2n_strerror(i32 noundef %5360, ptr noundef nonnull @.str.4) #13
  %5362 = load i32, ptr %4525, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror_debug(i32 noundef %5362, ptr noundef nonnull @.str.4) #13
  %5364 = load i32, ptr %4579, align 4, !tbaa !5
  %5365 = call ptr @strerror(i32 noundef %5364) #13
  %5366 = load i32, ptr %4579, align 4, !tbaa !5
  %5367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5358, ptr noundef nonnull %.str.5.sink2864, i32 noundef %5359, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %5361, ptr noundef %5363, ptr noundef %5365, i32 noundef %5366) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5368:                                             ; preds = %5341
  %5369 = load i32, ptr @test_count, align 4, !tbaa !5
  %5370 = add nsw i32 %5369, 1
  store i32 %5370, ptr @test_count, align 4, !tbaa !5
  %5371 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %5317, ptr noundef nonnull @.str.58) #13
  %5372 = icmp eq i32 %5371, -1
  br i1 %5372, label %5373, label %5395

5373:                                             ; preds = %5368
  %5374 = load i32, ptr %4579, align 4, !tbaa !5
  %5375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5376 = call i32 @s2n_print_stacktrace(ptr noundef %5375) #13
  %5377 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5378 = trunc nuw i8 %5377 to i1
  br i1 %5378, label %5379, label %5383

5379:                                             ; preds = %5373
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @fileno(ptr noundef %5380) #13
  %5382 = call i32 @isatty(i32 noundef %5381) #13
  %.not795 = icmp eq i32 %5382, 0
  br i1 %.not795, label %5383, label %5384

5383:                                             ; preds = %5379, %5373
  br label %5384

5384:                                             ; preds = %5379, %5383
  %.str.5.sink2873 = phi ptr [ @.str.5, %5383 ], [ @.str.2, %5379 ]
  store i32 %5374, ptr %4579, align 4, !tbaa !5
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = load i32, ptr @test_count, align 4, !tbaa !5
  %5387 = load i32, ptr %4525, align 4, !tbaa !5
  %5388 = call ptr @s2n_strerror(i32 noundef %5387, ptr noundef nonnull @.str.4) #13
  %5389 = load i32, ptr %4525, align 4, !tbaa !5
  %5390 = call ptr @s2n_strerror_debug(i32 noundef %5389, ptr noundef nonnull @.str.4) #13
  %5391 = load i32, ptr %4579, align 4, !tbaa !5
  %5392 = call ptr @strerror(i32 noundef %5391) #13
  %5393 = load i32, ptr %4579, align 4, !tbaa !5
  %5394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5385, ptr noundef nonnull %.str.5.sink2873, i32 noundef %5386, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %5388, ptr noundef %5390, ptr noundef %5392, i32 noundef %5393) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5395:                                             ; preds = %5368
  %5396 = load i32, ptr @test_count, align 4, !tbaa !5
  %5397 = add nsw i32 %5396, 1
  store i32 %5397, ptr @test_count, align 4, !tbaa !5
  %5398 = call i32 @s2n_connection_set_config(ptr noundef nonnull %5290, ptr noundef nonnull %333) #13
  %5399 = icmp eq i32 %5398, -1
  br i1 %5399, label %5400, label %5422

5400:                                             ; preds = %5395
  %5401 = load i32, ptr %4579, align 4, !tbaa !5
  %5402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5403 = call i32 @s2n_print_stacktrace(ptr noundef %5402) #13
  %5404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5405 = trunc nuw i8 %5404 to i1
  br i1 %5405, label %5406, label %5410

5406:                                             ; preds = %5400
  %5407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5408 = call i32 @fileno(ptr noundef %5407) #13
  %5409 = call i32 @isatty(i32 noundef %5408) #13
  %.not794 = icmp eq i32 %5409, 0
  br i1 %.not794, label %5410, label %5411

5410:                                             ; preds = %5406, %5400
  br label %5411

5411:                                             ; preds = %5406, %5410
  %.str.5.sink2882 = phi ptr [ @.str.5, %5410 ], [ @.str.2, %5406 ]
  store i32 %5401, ptr %4579, align 4, !tbaa !5
  %5412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5413 = load i32, ptr @test_count, align 4, !tbaa !5
  %5414 = load i32, ptr %4525, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror(i32 noundef %5414, ptr noundef nonnull @.str.4) #13
  %5416 = load i32, ptr %4525, align 4, !tbaa !5
  %5417 = call ptr @s2n_strerror_debug(i32 noundef %5416, ptr noundef nonnull @.str.4) #13
  %5418 = load i32, ptr %4579, align 4, !tbaa !5
  %5419 = call ptr @strerror(i32 noundef %5418) #13
  %5420 = load i32, ptr %4579, align 4, !tbaa !5
  %5421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5412, ptr noundef nonnull %.str.5.sink2882, i32 noundef %5413, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %5415, ptr noundef %5417, ptr noundef %5419, i32 noundef %5420) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5422:                                             ; preds = %5395
  %5423 = load i32, ptr @test_count, align 4, !tbaa !5
  %5424 = add nsw i32 %5423, 1
  store i32 %5424, ptr @test_count, align 4, !tbaa !5
  %5425 = call i32 @s2n_connection_set_config(ptr noundef nonnull %5317, ptr noundef nonnull %333) #13
  %5426 = icmp eq i32 %5425, -1
  br i1 %5426, label %5427, label %5449

5427:                                             ; preds = %5422
  %5428 = load i32, ptr %4579, align 4, !tbaa !5
  %5429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5430 = call i32 @s2n_print_stacktrace(ptr noundef %5429) #13
  %5431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5432 = trunc nuw i8 %5431 to i1
  br i1 %5432, label %5433, label %5437

5433:                                             ; preds = %5427
  %5434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5435 = call i32 @fileno(ptr noundef %5434) #13
  %5436 = call i32 @isatty(i32 noundef %5435) #13
  %.not793 = icmp eq i32 %5436, 0
  br i1 %.not793, label %5437, label %5438

5437:                                             ; preds = %5433, %5427
  br label %5438

5438:                                             ; preds = %5433, %5437
  %.str.5.sink2891 = phi ptr [ @.str.5, %5437 ], [ @.str.2, %5433 ]
  store i32 %5428, ptr %4579, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = load i32, ptr %4525, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef nonnull @.str.4) #13
  %5443 = load i32, ptr %4525, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef nonnull @.str.4) #13
  %5445 = load i32, ptr %4579, align 4, !tbaa !5
  %5446 = call ptr @strerror(i32 noundef %5445) #13
  %5447 = load i32, ptr %4579, align 4, !tbaa !5
  %5448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5439, ptr noundef nonnull %.str.5.sink2891, i32 noundef %5440, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %5442, ptr noundef %5444, ptr noundef %5446, i32 noundef %5447) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5449:                                             ; preds = %5422
  %5450 = load i32, ptr @test_count, align 4, !tbaa !5
  %5451 = add nsw i32 %5450, 1
  store i32 %5451, ptr @test_count, align 4, !tbaa !5
  %5452 = call i32 @s2n_client_hello_send(ptr noundef nonnull %5290) #13
  %5453 = icmp eq i32 %5452, -1
  br i1 %5453, label %5454, label %5476

5454:                                             ; preds = %5449
  %5455 = load i32, ptr %4579, align 4, !tbaa !5
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = call i32 @s2n_print_stacktrace(ptr noundef %5456) #13
  %5458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5459 = trunc nuw i8 %5458 to i1
  br i1 %5459, label %5460, label %5464

5460:                                             ; preds = %5454
  %5461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5462 = call i32 @fileno(ptr noundef %5461) #13
  %5463 = call i32 @isatty(i32 noundef %5462) #13
  %.not792 = icmp eq i32 %5463, 0
  br i1 %.not792, label %5464, label %5465

5464:                                             ; preds = %5460, %5454
  br label %5465

5465:                                             ; preds = %5460, %5464
  %.str.5.sink2900 = phi ptr [ @.str.5, %5464 ], [ @.str.2, %5460 ]
  store i32 %5455, ptr %4579, align 4, !tbaa !5
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = load i32, ptr @test_count, align 4, !tbaa !5
  %5468 = load i32, ptr %4525, align 4, !tbaa !5
  %5469 = call ptr @s2n_strerror(i32 noundef %5468, ptr noundef nonnull @.str.4) #13
  %5470 = load i32, ptr %4525, align 4, !tbaa !5
  %5471 = call ptr @s2n_strerror_debug(i32 noundef %5470, ptr noundef nonnull @.str.4) #13
  %5472 = load i32, ptr %4579, align 4, !tbaa !5
  %5473 = call ptr @strerror(i32 noundef %5472) #13
  %5474 = load i32, ptr %4579, align 4, !tbaa !5
  %5475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5466, ptr noundef nonnull %.str.5.sink2900, i32 noundef %5467, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %5469, ptr noundef %5471, ptr noundef %5473, i32 noundef %5474) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5476:                                             ; preds = %5449
  %5477 = load i32, ptr @test_count, align 4, !tbaa !5
  %5478 = add nsw i32 %5477, 1
  store i32 %5478, ptr @test_count, align 4, !tbaa !5
  %5479 = getelementptr inbounds i8, ptr %5290, i64 2016
  %5480 = getelementptr inbounds i8, ptr %5317, i64 2016
  %5481 = getelementptr inbounds i8, ptr %5290, i64 2044
  %5482 = load i32, ptr %5481, align 4, !tbaa !49
  %5483 = getelementptr inbounds i8, ptr %5290, i64 2040
  %5484 = load i32, ptr %5483, align 8, !tbaa !50
  %5485 = sub i32 %5482, %5484
  %5486 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %5479, ptr noundef nonnull %5480, i32 noundef %5485) #13
  %5487 = icmp eq i32 %5486, -1
  br i1 %5487, label %5488, label %5510

5488:                                             ; preds = %5476
  %5489 = load i32, ptr %4579, align 4, !tbaa !5
  %5490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5491 = call i32 @s2n_print_stacktrace(ptr noundef %5490) #13
  %5492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5493 = trunc nuw i8 %5492 to i1
  br i1 %5493, label %5494, label %5498

5494:                                             ; preds = %5488
  %5495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5496 = call i32 @fileno(ptr noundef %5495) #13
  %5497 = call i32 @isatty(i32 noundef %5496) #13
  %.not791 = icmp eq i32 %5497, 0
  br i1 %.not791, label %5498, label %5499

5498:                                             ; preds = %5494, %5488
  br label %5499

5499:                                             ; preds = %5494, %5498
  %.str.5.sink2909 = phi ptr [ @.str.5, %5498 ], [ @.str.2, %5494 ]
  store i32 %5489, ptr %4579, align 4, !tbaa !5
  %5500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5501 = load i32, ptr @test_count, align 4, !tbaa !5
  %5502 = load i32, ptr %4525, align 4, !tbaa !5
  %5503 = call ptr @s2n_strerror(i32 noundef %5502, ptr noundef nonnull @.str.4) #13
  %5504 = load i32, ptr %4525, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror_debug(i32 noundef %5504, ptr noundef nonnull @.str.4) #13
  %5506 = load i32, ptr %4579, align 4, !tbaa !5
  %5507 = call ptr @strerror(i32 noundef %5506) #13
  %5508 = load i32, ptr %4579, align 4, !tbaa !5
  %5509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5500, ptr noundef nonnull %.str.5.sink2909, i32 noundef %5501, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %5503, ptr noundef %5505, ptr noundef %5507, i32 noundef %5508) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5510:                                             ; preds = %5476
  call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %10) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(168) %10, i8 0, i64 168, i1 false)
  %5511 = getelementptr inbounds i8, ptr %10, i64 56
  store i32 4, ptr %5511, align 8, !tbaa !52
  %5512 = getelementptr inbounds i8, ptr %5317, i64 1736
  store ptr %10, ptr %5512, align 8, !tbaa !55
  %5513 = load i32, ptr @test_count, align 4, !tbaa !5
  %5514 = add nsw i32 %5513, 1
  store i32 %5514, ptr @test_count, align 4, !tbaa !5
  %5515 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %5317) #13
  %5516 = icmp eq i32 %5515, -1
  br i1 %5516, label %5517, label %5539

5517:                                             ; preds = %5510
  %5518 = load i32, ptr %4579, align 4, !tbaa !5
  %5519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5520 = call i32 @s2n_print_stacktrace(ptr noundef %5519) #13
  %5521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5522 = trunc nuw i8 %5521 to i1
  br i1 %5522, label %5523, label %5527

5523:                                             ; preds = %5517
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @fileno(ptr noundef %5524) #13
  %5526 = call i32 @isatty(i32 noundef %5525) #13
  %.not790 = icmp eq i32 %5526, 0
  br i1 %.not790, label %5527, label %5528

5527:                                             ; preds = %5523, %5517
  br label %5528

5528:                                             ; preds = %5523, %5527
  %.str.5.sink2918 = phi ptr [ @.str.5, %5527 ], [ @.str.2, %5523 ]
  store i32 %5518, ptr %4579, align 4, !tbaa !5
  %5529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5530 = load i32, ptr @test_count, align 4, !tbaa !5
  %5531 = load i32, ptr %4525, align 4, !tbaa !5
  %5532 = call ptr @s2n_strerror(i32 noundef %5531, ptr noundef nonnull @.str.4) #13
  %5533 = load i32, ptr %4525, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror_debug(i32 noundef %5533, ptr noundef nonnull @.str.4) #13
  %5535 = load i32, ptr %4579, align 4, !tbaa !5
  %5536 = call ptr @strerror(i32 noundef %5535) #13
  %5537 = load i32, ptr %4579, align 4, !tbaa !5
  %5538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5529, ptr noundef nonnull %.str.5.sink2918, i32 noundef %5530, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %5532, ptr noundef %5534, ptr noundef %5536, i32 noundef %5537) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5539:                                             ; preds = %5510
  %5540 = load i32, ptr @test_count, align 4, !tbaa !5
  %5541 = add nsw i32 %5540, 1
  store i32 %5541, ptr @test_count, align 4, !tbaa !5
  %5542 = getelementptr inbounds i8, ptr %5317, i64 1528
  %5543 = load ptr, ptr %5542, align 8, !tbaa !56
  %5544 = load i16, ptr %5543, align 8, !tbaa !57
  %5545 = icmp eq i16 %5544, 0
  br i1 %5545, label %5568, label %5546

5546:                                             ; preds = %5539
  %5547 = load i32, ptr %4579, align 4, !tbaa !5
  %5548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5549 = call i32 @s2n_print_stacktrace(ptr noundef %5548) #13
  %5550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5551 = trunc nuw i8 %5550 to i1
  br i1 %5551, label %5552, label %5556

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

5556:                                             ; preds = %5552, %5546
  br label %5557

5557:                                             ; preds = %5552, %5556
  %.str.5.sink2927 = phi ptr [ @.str.5, %5556 ], [ @.str.2, %5552 ]
  store i32 %5547, ptr %4579, align 4, !tbaa !5
  %5558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5559 = load i32, ptr @test_count, align 4, !tbaa !5
  %5560 = load i32, ptr %4525, align 4, !tbaa !5
  %5561 = call ptr @s2n_strerror(i32 noundef %5560, ptr noundef nonnull @.str.4) #13
  %5562 = load i32, ptr %4525, align 4, !tbaa !5
  %5563 = call ptr @s2n_strerror_debug(i32 noundef %5562, ptr noundef nonnull @.str.4) #13
  %5564 = load i32, ptr %4579, align 4, !tbaa !5
  %5565 = call ptr @strerror(i32 noundef %5564) #13
  %5566 = load i32, ptr %4579, align 4, !tbaa !5
  %5567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5558, ptr noundef nonnull %.str.5.sink2927, i32 noundef %5559, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %5561, ptr noundef %5563, ptr noundef %5565, i32 noundef %5566) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5568:                                             ; preds = %5539
  %5569 = add nsw i32 %5540, 2
  store i32 %5569, ptr @test_count, align 4, !tbaa !5
  %5570 = getelementptr inbounds i8, ptr %5317, i64 1544
  %5571 = load ptr, ptr %5570, align 8, !tbaa !59
  %5572 = icmp eq ptr %5571, null
  br i1 %5572, label %5595, label %5573

5573:                                             ; preds = %5568
  %5574 = load i32, ptr %4579, align 4, !tbaa !5
  %5575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5576 = call i32 @s2n_print_stacktrace(ptr noundef %5575) #13
  %5577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5578 = trunc nuw i8 %5577 to i1
  br i1 %5578, label %5579, label %5583

5579:                                             ; preds = %5573
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = call i32 @fileno(ptr noundef %5580) #13
  %5582 = call i32 @isatty(i32 noundef %5581) #13
  %.not758 = icmp eq i32 %5582, 0
  br i1 %.not758, label %5583, label %5584

5583:                                             ; preds = %5579, %5573
  br label %5584

5584:                                             ; preds = %5579, %5583
  %.str.5.sink2936 = phi ptr [ @.str.5, %5583 ], [ @.str.2, %5579 ]
  store i32 %5574, ptr %4579, align 4, !tbaa !5
  %5585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5586 = load i32, ptr @test_count, align 4, !tbaa !5
  %5587 = load i32, ptr %4525, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror(i32 noundef %5587, ptr noundef nonnull @.str.4) #13
  %5589 = load i32, ptr %4525, align 4, !tbaa !5
  %5590 = call ptr @s2n_strerror_debug(i32 noundef %5589, ptr noundef nonnull @.str.4) #13
  %5591 = load i32, ptr %4579, align 4, !tbaa !5
  %5592 = call ptr @strerror(i32 noundef %5591) #13
  %5593 = load i32, ptr %4579, align 4, !tbaa !5
  %5594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5585, ptr noundef nonnull %.str.5.sink2936, i32 noundef %5586, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 455, ptr noundef %5588, ptr noundef %5590, ptr noundef %5592, i32 noundef %5593) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5595:                                             ; preds = %5568
  %5596 = add nsw i32 %5540, 3
  store i32 %5596, ptr @test_count, align 4, !tbaa !5
  %5597 = call i32 @s2n_connection_free(ptr noundef nonnull %5290) #13
  %5598 = icmp eq i32 %5597, -1
  br i1 %5598, label %5599, label %5621

5599:                                             ; preds = %5595
  %5600 = load i32, ptr %4579, align 4, !tbaa !5
  %5601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5602 = call i32 @s2n_print_stacktrace(ptr noundef %5601) #13
  %5603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5604 = trunc nuw i8 %5603 to i1
  br i1 %5604, label %5605, label %5609

5605:                                             ; preds = %5599
  %5606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5607 = call i32 @fileno(ptr noundef %5606) #13
  %5608 = call i32 @isatty(i32 noundef %5607) #13
  %.not789 = icmp eq i32 %5608, 0
  br i1 %.not789, label %5609, label %5610

5609:                                             ; preds = %5605, %5599
  br label %5610

5610:                                             ; preds = %5605, %5609
  %.str.5.sink2945 = phi ptr [ @.str.5, %5609 ], [ @.str.2, %5605 ]
  store i32 %5600, ptr %4579, align 4, !tbaa !5
  %5611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5612 = load i32, ptr @test_count, align 4, !tbaa !5
  %5613 = load i32, ptr %4525, align 4, !tbaa !5
  %5614 = call ptr @s2n_strerror(i32 noundef %5613, ptr noundef nonnull @.str.4) #13
  %5615 = load i32, ptr %4525, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror_debug(i32 noundef %5615, ptr noundef nonnull @.str.4) #13
  %5617 = load i32, ptr %4579, align 4, !tbaa !5
  %5618 = call ptr @strerror(i32 noundef %5617) #13
  %5619 = load i32, ptr %4579, align 4, !tbaa !5
  %5620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5611, ptr noundef nonnull %.str.5.sink2945, i32 noundef %5612, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %5614, ptr noundef %5616, ptr noundef %5618, i32 noundef %5619) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5621:                                             ; preds = %5595
  %5622 = load i32, ptr @test_count, align 4, !tbaa !5
  %5623 = add nsw i32 %5622, 1
  store i32 %5623, ptr @test_count, align 4, !tbaa !5
  %5624 = call i32 @s2n_connection_free(ptr noundef nonnull %5317) #13
  %5625 = icmp eq i32 %5624, -1
  br i1 %5625, label %5626, label %5648

5626:                                             ; preds = %5621
  %5627 = load i32, ptr %4579, align 4, !tbaa !5
  %5628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5629 = call i32 @s2n_print_stacktrace(ptr noundef %5628) #13
  %5630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5631 = trunc nuw i8 %5630 to i1
  br i1 %5631, label %5632, label %5636

5632:                                             ; preds = %5626
  %5633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5634 = call i32 @fileno(ptr noundef %5633) #13
  %5635 = call i32 @isatty(i32 noundef %5634) #13
  %.not788 = icmp eq i32 %5635, 0
  br i1 %.not788, label %5636, label %5637

5636:                                             ; preds = %5632, %5626
  br label %5637

5637:                                             ; preds = %5632, %5636
  %.str.5.sink2954 = phi ptr [ @.str.5, %5636 ], [ @.str.2, %5632 ]
  store i32 %5627, ptr %4579, align 4, !tbaa !5
  %5638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5639 = load i32, ptr @test_count, align 4, !tbaa !5
  %5640 = load i32, ptr %4525, align 4, !tbaa !5
  %5641 = call ptr @s2n_strerror(i32 noundef %5640, ptr noundef nonnull @.str.4) #13
  %5642 = load i32, ptr %4525, align 4, !tbaa !5
  %5643 = call ptr @s2n_strerror_debug(i32 noundef %5642, ptr noundef nonnull @.str.4) #13
  %5644 = load i32, ptr %4579, align 4, !tbaa !5
  %5645 = call ptr @strerror(i32 noundef %5644) #13
  %5646 = load i32, ptr %4579, align 4, !tbaa !5
  %5647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5638, ptr noundef nonnull %.str.5.sink2954, i32 noundef %5639, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %5641, ptr noundef %5643, ptr noundef %5645, i32 noundef %5646) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5648:                                             ; preds = %5621
  call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %10) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false)
  %5649 = call i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef nonnull %11, ptr noundef nonnull @.str.87) #13
  %5650 = call zeroext i1 @s2n_result_is_ok(i32 %5649)
  br i1 %5650, label %5651, label %5951

5651:                                             ; preds = %5648
  %5652 = load i32, ptr @test_count, align 4, !tbaa !5
  %5653 = add nsw i32 %5652, 1
  store i32 %5653, ptr @test_count, align 4, !tbaa !5
  %5654 = call i32 (...) @s2n_enable_tls13_in_test() #13
  %5655 = icmp eq i32 %5654, -1
  br i1 %5655, label %5656, label %5678

5656:                                             ; preds = %5651
  %5657 = load i32, ptr %4579, align 4, !tbaa !5
  %5658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5659 = call i32 @s2n_print_stacktrace(ptr noundef %5658) #13
  %5660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5661 = trunc nuw i8 %5660 to i1
  br i1 %5661, label %5662, label %5666

5662:                                             ; preds = %5656
  %5663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5664 = call i32 @fileno(ptr noundef %5663) #13
  %5665 = call i32 @isatty(i32 noundef %5664) #13
  %.not787 = icmp eq i32 %5665, 0
  br i1 %.not787, label %5666, label %5667

5666:                                             ; preds = %5662, %5656
  br label %5667

5667:                                             ; preds = %5662, %5666
  %.str.5.sink2963 = phi ptr [ @.str.5, %5666 ], [ @.str.2, %5662 ]
  store i32 %5657, ptr %4579, align 4, !tbaa !5
  %5668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5669 = load i32, ptr @test_count, align 4, !tbaa !5
  %5670 = load i32, ptr %4525, align 4, !tbaa !5
  %5671 = call ptr @s2n_strerror(i32 noundef %5670, ptr noundef nonnull @.str.4) #13
  %5672 = load i32, ptr %4525, align 4, !tbaa !5
  %5673 = call ptr @s2n_strerror_debug(i32 noundef %5672, ptr noundef nonnull @.str.4) #13
  %5674 = load i32, ptr %4579, align 4, !tbaa !5
  %5675 = call ptr @strerror(i32 noundef %5674) #13
  %5676 = load i32, ptr %4579, align 4, !tbaa !5
  %5677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5668, ptr noundef nonnull %.str.5.sink2963, i32 noundef %5669, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %5671, ptr noundef %5673, ptr noundef %5675, i32 noundef %5676) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5678:                                             ; preds = %5651
  %5679 = load i32, ptr @test_count, align 4, !tbaa !5
  %5680 = add nsw i32 %5679, 1
  store i32 %5680, ptr @test_count, align 4, !tbaa !5
  %5681 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %5682 = icmp eq ptr %5681, null
  br i1 %5682, label %5683, label %5705

5683:                                             ; preds = %5678
  %5684 = load i32, ptr %4579, align 4, !tbaa !5
  %5685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5686 = call i32 @s2n_print_stacktrace(ptr noundef %5685) #13
  %5687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5688 = trunc nuw i8 %5687 to i1
  br i1 %5688, label %5689, label %5693

5689:                                             ; preds = %5683
  %5690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5691 = call i32 @fileno(ptr noundef %5690) #13
  %5692 = call i32 @isatty(i32 noundef %5691) #13
  %.not786 = icmp eq i32 %5692, 0
  br i1 %.not786, label %5693, label %5694

5693:                                             ; preds = %5689, %5683
  br label %5694

5694:                                             ; preds = %5689, %5693
  %.str.5.sink2972 = phi ptr [ @.str.5, %5693 ], [ @.str.2, %5689 ]
  store i32 %5684, ptr %4579, align 4, !tbaa !5
  %5695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = load i32, ptr %4525, align 4, !tbaa !5
  %5698 = call ptr @s2n_strerror(i32 noundef %5697, ptr noundef nonnull @.str.4) #13
  %5699 = load i32, ptr %4525, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef nonnull @.str.4) #13
  %5701 = load i32, ptr %4579, align 4, !tbaa !5
  %5702 = call ptr @strerror(i32 noundef %5701) #13
  %5703 = load i32, ptr %4579, align 4, !tbaa !5
  %5704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5695, ptr noundef nonnull %.str.5.sink2972, i32 noundef %5696, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %5698, ptr noundef %5700, ptr noundef %5702, i32 noundef %5703) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5705:                                             ; preds = %5678
  %5706 = load i32, ptr @test_count, align 4, !tbaa !5
  %5707 = add nsw i32 %5706, 1
  store i32 %5707, ptr @test_count, align 4, !tbaa !5
  %5708 = call i32 @s2n_connection_set_config(ptr noundef nonnull %5681, ptr noundef nonnull %333) #13
  %5709 = icmp eq i32 %5708, -1
  br i1 %5709, label %5710, label %5732

5710:                                             ; preds = %5705
  %5711 = load i32, ptr %4579, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = call i32 @s2n_print_stacktrace(ptr noundef %5712) #13
  %5714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5715 = trunc nuw i8 %5714 to i1
  br i1 %5715, label %5716, label %5720

5716:                                             ; preds = %5710
  %5717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5718 = call i32 @fileno(ptr noundef %5717) #13
  %5719 = call i32 @isatty(i32 noundef %5718) #13
  %.not785 = icmp eq i32 %5719, 0
  br i1 %.not785, label %5720, label %5721

5720:                                             ; preds = %5716, %5710
  br label %5721

5721:                                             ; preds = %5716, %5720
  %.str.5.sink2981 = phi ptr [ @.str.5, %5720 ], [ @.str.2, %5716 ]
  store i32 %5711, ptr %4579, align 4, !tbaa !5
  %5722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = load i32, ptr %4525, align 4, !tbaa !5
  %5725 = call ptr @s2n_strerror(i32 noundef %5724, ptr noundef nonnull @.str.4) #13
  %5726 = load i32, ptr %4525, align 4, !tbaa !5
  %5727 = call ptr @s2n_strerror_debug(i32 noundef %5726, ptr noundef nonnull @.str.4) #13
  %5728 = load i32, ptr %4579, align 4, !tbaa !5
  %5729 = call ptr @strerror(i32 noundef %5728) #13
  %5730 = load i32, ptr %4579, align 4, !tbaa !5
  %5731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5722, ptr noundef nonnull %.str.5.sink2981, i32 noundef %5723, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %5725, ptr noundef %5727, ptr noundef %5729, i32 noundef %5730) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5732:                                             ; preds = %5705
  %5733 = load i32, ptr @test_count, align 4, !tbaa !5
  %5734 = add nsw i32 %5733, 1
  store i32 %5734, ptr @test_count, align 4, !tbaa !5
  %5735 = getelementptr inbounds i8, ptr %5681, i64 2016
  %5736 = call i32 @s2n_stuffer_write(ptr noundef nonnull %5735, ptr noundef nonnull %11) #13
  %5737 = icmp eq i32 %5736, -1
  br i1 %5737, label %5738, label %5760

5738:                                             ; preds = %5732
  %5739 = load i32, ptr %4579, align 4, !tbaa !5
  %5740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5741 = call i32 @s2n_print_stacktrace(ptr noundef %5740) #13
  %5742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5743 = trunc nuw i8 %5742 to i1
  br i1 %5743, label %5744, label %5748

5744:                                             ; preds = %5738
  %5745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5746 = call i32 @fileno(ptr noundef %5745) #13
  %5747 = call i32 @isatty(i32 noundef %5746) #13
  %.not784 = icmp eq i32 %5747, 0
  br i1 %.not784, label %5748, label %5749

5748:                                             ; preds = %5744, %5738
  br label %5749

5749:                                             ; preds = %5744, %5748
  %.str.5.sink2990 = phi ptr [ @.str.5, %5748 ], [ @.str.2, %5744 ]
  store i32 %5739, ptr %4579, align 4, !tbaa !5
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = load i32, ptr @test_count, align 4, !tbaa !5
  %5752 = load i32, ptr %4525, align 4, !tbaa !5
  %5753 = call ptr @s2n_strerror(i32 noundef %5752, ptr noundef nonnull @.str.4) #13
  %5754 = load i32, ptr %4525, align 4, !tbaa !5
  %5755 = call ptr @s2n_strerror_debug(i32 noundef %5754, ptr noundef nonnull @.str.4) #13
  %5756 = load i32, ptr %4579, align 4, !tbaa !5
  %5757 = call ptr @strerror(i32 noundef %5756) #13
  %5758 = load i32, ptr %4579, align 4, !tbaa !5
  %5759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5750, ptr noundef nonnull %.str.5.sink2990, i32 noundef %5751, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %5753, ptr noundef %5755, ptr noundef %5757, i32 noundef %5758) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5760:                                             ; preds = %5732
  %5761 = load i32, ptr @test_count, align 4, !tbaa !5
  %5762 = add nsw i32 %5761, 1
  store i32 %5762, ptr @test_count, align 4, !tbaa !5
  %5763 = call i32 @s2n_client_hello_recv(ptr noundef nonnull %5681) #13
  %5764 = icmp eq i32 %5763, -1
  br i1 %5764, label %5765, label %5787

5765:                                             ; preds = %5760
  %5766 = load i32, ptr %4579, align 4, !tbaa !5
  %5767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5768 = call i32 @s2n_print_stacktrace(ptr noundef %5767) #13
  %5769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5770 = trunc nuw i8 %5769 to i1
  br i1 %5770, label %5771, label %5775

5771:                                             ; preds = %5765
  %5772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5773 = call i32 @fileno(ptr noundef %5772) #13
  %5774 = call i32 @isatty(i32 noundef %5773) #13
  %.not783 = icmp eq i32 %5774, 0
  br i1 %.not783, label %5775, label %5776

5775:                                             ; preds = %5771, %5765
  br label %5776

5776:                                             ; preds = %5771, %5775
  %.str.5.sink2999 = phi ptr [ @.str.5, %5775 ], [ @.str.2, %5771 ]
  store i32 %5766, ptr %4579, align 4, !tbaa !5
  %5777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5778 = load i32, ptr @test_count, align 4, !tbaa !5
  %5779 = load i32, ptr %4525, align 4, !tbaa !5
  %5780 = call ptr @s2n_strerror(i32 noundef %5779, ptr noundef nonnull @.str.4) #13
  %5781 = load i32, ptr %4525, align 4, !tbaa !5
  %5782 = call ptr @s2n_strerror_debug(i32 noundef %5781, ptr noundef nonnull @.str.4) #13
  %5783 = load i32, ptr %4579, align 4, !tbaa !5
  %5784 = call ptr @strerror(i32 noundef %5783) #13
  %5785 = load i32, ptr %4579, align 4, !tbaa !5
  %5786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5777, ptr noundef nonnull %.str.5.sink2999, i32 noundef %5778, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %5780, ptr noundef %5782, ptr noundef %5784, i32 noundef %5785) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5787:                                             ; preds = %5760
  %5788 = load i32, ptr @test_count, align 4, !tbaa !5
  %5789 = add nsw i32 %5788, 1
  store i32 %5789, ptr @test_count, align 4, !tbaa !5
  %5790 = getelementptr inbounds i8, ptr %5681, i64 656
  %5791 = load ptr, ptr %5790, align 8, !tbaa !60
  %5792 = icmp eq ptr %5791, @s2n_ecc_curve_secp256r1
  br i1 %5792, label %5815, label %5793

5793:                                             ; preds = %5787
  %5794 = load i32, ptr %4579, align 4, !tbaa !5
  %5795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5796 = call i32 @s2n_print_stacktrace(ptr noundef %5795) #13
  %5797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5798 = trunc nuw i8 %5797 to i1
  br i1 %5798, label %5799, label %5803

5799:                                             ; preds = %5793
  %5800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5801 = call i32 @fileno(ptr noundef %5800) #13
  %5802 = call i32 @isatty(i32 noundef %5801) #13
  %.not759 = icmp eq i32 %5802, 0
  br i1 %.not759, label %5803, label %5804

5803:                                             ; preds = %5799, %5793
  br label %5804

5804:                                             ; preds = %5799, %5803
  %.str.5.sink3008 = phi ptr [ @.str.5, %5803 ], [ @.str.2, %5799 ]
  store i32 %5794, ptr %4579, align 4, !tbaa !5
  %5805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5806 = load i32, ptr @test_count, align 4, !tbaa !5
  %5807 = load i32, ptr %4525, align 4, !tbaa !5
  %5808 = call ptr @s2n_strerror(i32 noundef %5807, ptr noundef nonnull @.str.4) #13
  %5809 = load i32, ptr %4525, align 4, !tbaa !5
  %5810 = call ptr @s2n_strerror_debug(i32 noundef %5809, ptr noundef nonnull @.str.4) #13
  %5811 = load i32, ptr %4579, align 4, !tbaa !5
  %5812 = call ptr @strerror(i32 noundef %5811) #13
  %5813 = load i32, ptr %4579, align 4, !tbaa !5
  %5814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5805, ptr noundef nonnull %.str.5.sink3008, i32 noundef %5806, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %5808, ptr noundef %5810, ptr noundef %5812, i32 noundef %5813) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5815:                                             ; preds = %5787
  %5816 = add nsw i32 %5788, 2
  store i32 %5816, ptr @test_count, align 4, !tbaa !5
  %5817 = getelementptr inbounds i8, ptr %5681, i64 219
  %5818 = load i8, ptr %5817, align 1, !tbaa !47
  %5819 = icmp eq i8 %5818, 34
  br i1 %5819, label %5842, label %5820

5820:                                             ; preds = %5815
  %5821 = load i32, ptr %4579, align 4, !tbaa !5
  %5822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5823 = call i32 @s2n_print_stacktrace(ptr noundef %5822) #13
  %5824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5825 = trunc nuw i8 %5824 to i1
  br i1 %5825, label %5826, label %5830

5826:                                             ; preds = %5820
  %5827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5828 = call i32 @fileno(ptr noundef %5827) #13
  %5829 = call i32 @isatty(i32 noundef %5828) #13
  %.not760 = icmp eq i32 %5829, 0
  br i1 %.not760, label %5830, label %5831

5830:                                             ; preds = %5826, %5820
  br label %5831

5831:                                             ; preds = %5826, %5830
  %.str.5.sink3017 = phi ptr [ @.str.5, %5830 ], [ @.str.2, %5826 ]
  store i32 %5821, ptr %4579, align 4, !tbaa !5
  %5832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5833 = load i32, ptr @test_count, align 4, !tbaa !5
  %5834 = load i32, ptr %4525, align 4, !tbaa !5
  %5835 = call ptr @s2n_strerror(i32 noundef %5834, ptr noundef nonnull @.str.4) #13
  %5836 = load i32, ptr %4525, align 4, !tbaa !5
  %5837 = call ptr @s2n_strerror_debug(i32 noundef %5836, ptr noundef nonnull @.str.4) #13
  %5838 = load i32, ptr %4579, align 4, !tbaa !5
  %5839 = call ptr @strerror(i32 noundef %5838) #13
  %5840 = load i32, ptr %4579, align 4, !tbaa !5
  %5841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5832, ptr noundef nonnull %.str.5.sink3017, i32 noundef %5833, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %5835, ptr noundef %5837, ptr noundef %5839, i32 noundef %5840) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5842:                                             ; preds = %5815
  %5843 = add nsw i32 %5788, 3
  store i32 %5843, ptr @test_count, align 4, !tbaa !5
  %5844 = getelementptr inbounds i8, ptr %5681, i64 220
  %5845 = load i8, ptr %5844, align 4, !tbaa !46
  %5846 = icmp eq i8 %5845, 33
  br i1 %5846, label %5869, label %5847

5847:                                             ; preds = %5842
  %5848 = load i32, ptr %4579, align 4, !tbaa !5
  %5849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5850 = call i32 @s2n_print_stacktrace(ptr noundef %5849) #13
  %5851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5852 = trunc nuw i8 %5851 to i1
  br i1 %5852, label %5853, label %5857

5853:                                             ; preds = %5847
  %5854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5855 = call i32 @fileno(ptr noundef %5854) #13
  %5856 = call i32 @isatty(i32 noundef %5855) #13
  %.not761 = icmp eq i32 %5856, 0
  br i1 %.not761, label %5857, label %5858

5857:                                             ; preds = %5853, %5847
  br label %5858

5858:                                             ; preds = %5853, %5857
  %.str.5.sink3026 = phi ptr [ @.str.5, %5857 ], [ @.str.2, %5853 ]
  store i32 %5848, ptr %4579, align 4, !tbaa !5
  %5859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5860 = load i32, ptr @test_count, align 4, !tbaa !5
  %5861 = load i32, ptr %4525, align 4, !tbaa !5
  %5862 = call ptr @s2n_strerror(i32 noundef %5861, ptr noundef nonnull @.str.4) #13
  %5863 = load i32, ptr %4525, align 4, !tbaa !5
  %5864 = call ptr @s2n_strerror_debug(i32 noundef %5863, ptr noundef nonnull @.str.4) #13
  %5865 = load i32, ptr %4579, align 4, !tbaa !5
  %5866 = call ptr @strerror(i32 noundef %5865) #13
  %5867 = load i32, ptr %4579, align 4, !tbaa !5
  %5868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5859, ptr noundef nonnull %.str.5.sink3026, i32 noundef %5860, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %5862, ptr noundef %5864, ptr noundef %5866, i32 noundef %5867) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5869:                                             ; preds = %5842
  %5870 = add nsw i32 %5788, 4
  store i32 %5870, ptr @test_count, align 4, !tbaa !5
  %5871 = getelementptr inbounds i8, ptr %5681, i64 218
  %5872 = load i8, ptr %5871, align 2, !tbaa !42
  %5873 = icmp eq i8 %5872, 33
  br i1 %5873, label %5896, label %5874

5874:                                             ; preds = %5869
  %5875 = load i32, ptr %4579, align 4, !tbaa !5
  %5876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5877 = call i32 @s2n_print_stacktrace(ptr noundef %5876) #13
  %5878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5879 = trunc nuw i8 %5878 to i1
  br i1 %5879, label %5880, label %5884

5880:                                             ; preds = %5874
  %5881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5882 = call i32 @fileno(ptr noundef %5881) #13
  %5883 = call i32 @isatty(i32 noundef %5882) #13
  %.not762 = icmp eq i32 %5883, 0
  br i1 %.not762, label %5884, label %5885

5884:                                             ; preds = %5880, %5874
  br label %5885

5885:                                             ; preds = %5880, %5884
  %.str.5.sink3035 = phi ptr [ @.str.5, %5884 ], [ @.str.2, %5880 ]
  store i32 %5875, ptr %4579, align 4, !tbaa !5
  %5886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5887 = load i32, ptr @test_count, align 4, !tbaa !5
  %5888 = load i32, ptr %4525, align 4, !tbaa !5
  %5889 = call ptr @s2n_strerror(i32 noundef %5888, ptr noundef nonnull @.str.4) #13
  %5890 = load i32, ptr %4525, align 4, !tbaa !5
  %5891 = call ptr @s2n_strerror_debug(i32 noundef %5890, ptr noundef nonnull @.str.4) #13
  %5892 = load i32, ptr %4579, align 4, !tbaa !5
  %5893 = call ptr @strerror(i32 noundef %5892) #13
  %5894 = load i32, ptr %4579, align 4, !tbaa !5
  %5895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5886, ptr noundef nonnull %.str.5.sink3035, i32 noundef %5887, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %5889, ptr noundef %5891, ptr noundef %5893, i32 noundef %5894) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5896:                                             ; preds = %5869
  %5897 = add nsw i32 %5788, 5
  store i32 %5897, ptr @test_count, align 4, !tbaa !5
  %5898 = getelementptr inbounds i8, ptr %5681, i64 217
  %5899 = load i8, ptr %5898, align 1, !tbaa !15
  %5900 = icmp eq i8 %5899, 33
  br i1 %5900, label %5923, label %5901

5901:                                             ; preds = %5896
  %5902 = load i32, ptr %4579, align 4, !tbaa !5
  %5903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5904 = call i32 @s2n_print_stacktrace(ptr noundef %5903) #13
  %5905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5906 = trunc nuw i8 %5905 to i1
  br i1 %5906, label %5907, label %5911

5907:                                             ; preds = %5901
  %5908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5909 = call i32 @fileno(ptr noundef %5908) #13
  %5910 = call i32 @isatty(i32 noundef %5909) #13
  %.not763 = icmp eq i32 %5910, 0
  br i1 %.not763, label %5911, label %5912

5911:                                             ; preds = %5907, %5901
  br label %5912

5912:                                             ; preds = %5907, %5911
  %.str.5.sink3044 = phi ptr [ @.str.5, %5911 ], [ @.str.2, %5907 ]
  store i32 %5902, ptr %4579, align 4, !tbaa !5
  %5913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5914 = load i32, ptr @test_count, align 4, !tbaa !5
  %5915 = load i32, ptr %4525, align 4, !tbaa !5
  %5916 = call ptr @s2n_strerror(i32 noundef %5915, ptr noundef nonnull @.str.4) #13
  %5917 = load i32, ptr %4525, align 4, !tbaa !5
  %5918 = call ptr @s2n_strerror_debug(i32 noundef %5917, ptr noundef nonnull @.str.4) #13
  %5919 = load i32, ptr %4579, align 4, !tbaa !5
  %5920 = call ptr @strerror(i32 noundef %5919) #13
  %5921 = load i32, ptr %4579, align 4, !tbaa !5
  %5922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5913, ptr noundef nonnull %.str.5.sink3044, i32 noundef %5914, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %5916, ptr noundef %5918, ptr noundef %5920, i32 noundef %5921) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5923:                                             ; preds = %5896
  %5924 = call i32 @s2n_connection_free(ptr noundef nonnull %5681) #13
  %5925 = load i32, ptr @test_count, align 4, !tbaa !5
  %5926 = add nsw i32 %5925, 1
  store i32 %5926, ptr @test_count, align 4, !tbaa !5
  %5927 = call i32 (...) @s2n_disable_tls13_in_test() #13
  %5928 = icmp eq i32 %5927, -1
  br i1 %5928, label %5929, label %5953

5929:                                             ; preds = %5923
  %5930 = load i32, ptr %4579, align 4, !tbaa !5
  %5931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5932 = call i32 @s2n_print_stacktrace(ptr noundef %5931) #13
  %5933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5934 = trunc nuw i8 %5933 to i1
  br i1 %5934, label %5935, label %5939

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

5939:                                             ; preds = %5935, %5929
  br label %5940

5940:                                             ; preds = %5935, %5939
  %.str.5.sink3053 = phi ptr [ @.str.5, %5939 ], [ @.str.2, %5935 ]
  store i32 %5930, ptr %4579, align 4, !tbaa !5
  %5941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5942 = load i32, ptr @test_count, align 4, !tbaa !5
  %5943 = load i32, ptr %4525, align 4, !tbaa !5
  %5944 = call ptr @s2n_strerror(i32 noundef %5943, ptr noundef nonnull @.str.4) #13
  %5945 = load i32, ptr %4525, align 4, !tbaa !5
  %5946 = call ptr @s2n_strerror_debug(i32 noundef %5945, ptr noundef nonnull @.str.4) #13
  %5947 = load i32, ptr %4579, align 4, !tbaa !5
  %5948 = call ptr @strerror(i32 noundef %5947) #13
  %5949 = load i32, ptr %4579, align 4, !tbaa !5
  %5950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5941, ptr noundef nonnull %.str.5.sink3053, i32 noundef %5942, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 507, ptr noundef %5944, ptr noundef %5946, ptr noundef %5948, i32 noundef %5949) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5951:                                             ; preds = %5648
  %5952 = call i32 @s2n_free(ptr noundef nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #13
  br label %6357

5953:                                             ; preds = %5923
  %5954 = call i32 @s2n_free(ptr noundef nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #13
  %5955 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %5955, ptr %12, align 8, !tbaa !9
  %5956 = load i32, ptr @test_count, align 4, !tbaa !5
  %5957 = add nsw i32 %5956, 1
  store i32 %5957, ptr @test_count, align 4, !tbaa !5
  %5958 = call i32 @s2n_connection_set_config(ptr noundef %5955, ptr noundef nonnull %190) #13
  %5959 = icmp eq i32 %5958, -1
  br i1 %5959, label %5960, label %5982

5960:                                             ; preds = %5953
  %5961 = load i32, ptr %4579, align 4, !tbaa !5
  %5962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5963 = call i32 @s2n_print_stacktrace(ptr noundef %5962) #13
  %5964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5965 = trunc nuw i8 %5964 to i1
  br i1 %5965, label %5966, label %5970

5966:                                             ; preds = %5960
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = call i32 @fileno(ptr noundef %5967) #13
  %5969 = call i32 @isatty(i32 noundef %5968) #13
  %.not781 = icmp eq i32 %5969, 0
  br i1 %.not781, label %5970, label %5971

5970:                                             ; preds = %5966, %5960
  br label %5971

5971:                                             ; preds = %5966, %5970
  %.str.5.sink3062 = phi ptr [ @.str.5, %5970 ], [ @.str.2, %5966 ]
  store i32 %5961, ptr %4579, align 4, !tbaa !5
  %5972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5973 = load i32, ptr @test_count, align 4, !tbaa !5
  %5974 = load i32, ptr %4525, align 4, !tbaa !5
  %5975 = call ptr @s2n_strerror(i32 noundef %5974, ptr noundef nonnull @.str.4) #13
  %5976 = load i32, ptr %4525, align 4, !tbaa !5
  %5977 = call ptr @s2n_strerror_debug(i32 noundef %5976, ptr noundef nonnull @.str.4) #13
  %5978 = load i32, ptr %4579, align 4, !tbaa !5
  %5979 = call ptr @strerror(i32 noundef %5978) #13
  %5980 = load i32, ptr %4579, align 4, !tbaa !5
  %5981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5972, ptr noundef nonnull %.str.5.sink3062, i32 noundef %5973, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %5975, ptr noundef %5977, ptr noundef %5979, i32 noundef %5980) #15
  call void @exit(i32 noundef 1) #16
  unreachable

5982:                                             ; preds = %5953
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 181, ptr nonnull %14) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(181) %14, ptr noundef nonnull align 16 dereferenceable(181) @__const.main.sslv2_client_hello_bytes, i64 181, i1 false)
  %5983 = load i32, ptr @test_count, align 4, !tbaa !5
  %5984 = add nsw i32 %5983, 1
  store i32 %5984, ptr @test_count, align 4, !tbaa !5
  %5985 = call i32 @s2n_blob_init(ptr noundef nonnull %13, ptr noundef nonnull %14, i32 noundef 181) #13
  %5986 = icmp eq i32 %5985, -1
  br i1 %5986, label %5987, label %6009

5987:                                             ; preds = %5982
  %5988 = load i32, ptr %4579, align 4, !tbaa !5
  %5989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5990 = call i32 @s2n_print_stacktrace(ptr noundef %5989) #13
  %5991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5992 = trunc nuw i8 %5991 to i1
  br i1 %5992, label %5993, label %5997

5993:                                             ; preds = %5987
  %5994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5995 = call i32 @fileno(ptr noundef %5994) #13
  %5996 = call i32 @isatty(i32 noundef %5995) #13
  %.not780 = icmp eq i32 %5996, 0
  br i1 %.not780, label %5997, label %5998

5997:                                             ; preds = %5993, %5987
  br label %5998

5998:                                             ; preds = %5993, %5997
  %.str.5.sink3071 = phi ptr [ @.str.5, %5997 ], [ @.str.2, %5993 ]
  store i32 %5988, ptr %4579, align 4, !tbaa !5
  %5999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6000 = load i32, ptr @test_count, align 4, !tbaa !5
  %6001 = load i32, ptr %4525, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror(i32 noundef %6001, ptr noundef nonnull @.str.4) #13
  %6003 = load i32, ptr %4525, align 4, !tbaa !5
  %6004 = call ptr @s2n_strerror_debug(i32 noundef %6003, ptr noundef nonnull @.str.4) #13
  %6005 = load i32, ptr %4579, align 4, !tbaa !5
  %6006 = call ptr @strerror(i32 noundef %6005) #13
  %6007 = load i32, ptr %4579, align 4, !tbaa !5
  %6008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5999, ptr noundef nonnull %.str.5.sink3071, i32 noundef %6000, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 529, ptr noundef %6002, ptr noundef %6004, ptr noundef %6006, i32 noundef %6007) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6009:                                             ; preds = %5982
  %6010 = load i32, ptr @test_count, align 4, !tbaa !5
  %6011 = add nsw i32 %6010, 1
  store i32 %6011, ptr @test_count, align 4, !tbaa !5
  %6012 = call i32 @s2n_connection_set_recv_io_stuffer(ptr noundef nonnull %13, ptr noundef %5955) #13
  %6013 = icmp eq i32 %6012, -1
  br i1 %6013, label %6014, label %6036

6014:                                             ; preds = %6009
  %6015 = load i32, ptr %4579, align 4, !tbaa !5
  %6016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6017 = call i32 @s2n_print_stacktrace(ptr noundef %6016) #13
  %6018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6019 = trunc nuw i8 %6018 to i1
  br i1 %6019, label %6020, label %6024

6020:                                             ; preds = %6014
  %6021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6022 = call i32 @fileno(ptr noundef %6021) #13
  %6023 = call i32 @isatty(i32 noundef %6022) #13
  %.not779 = icmp eq i32 %6023, 0
  br i1 %.not779, label %6024, label %6025

6024:                                             ; preds = %6020, %6014
  br label %6025

6025:                                             ; preds = %6020, %6024
  %.str.5.sink3080 = phi ptr [ @.str.5, %6024 ], [ @.str.2, %6020 ]
  store i32 %6015, ptr %4579, align 4, !tbaa !5
  %6026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6027 = load i32, ptr @test_count, align 4, !tbaa !5
  %6028 = load i32, ptr %4525, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror(i32 noundef %6028, ptr noundef nonnull @.str.4) #13
  %6030 = load i32, ptr %4525, align 4, !tbaa !5
  %6031 = call ptr @s2n_strerror_debug(i32 noundef %6030, ptr noundef nonnull @.str.4) #13
  %6032 = load i32, ptr %4579, align 4, !tbaa !5
  %6033 = call ptr @strerror(i32 noundef %6032) #13
  %6034 = load i32, ptr %4579, align 4, !tbaa !5
  %6035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6026, ptr noundef nonnull %.str.5.sink3080, i32 noundef %6027, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %6029, ptr noundef %6031, ptr noundef %6033, i32 noundef %6034) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6036:                                             ; preds = %6009
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #13
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %6044

6037:                                             ; preds = %6151
  %6038 = add nuw nsw i64 %.0676937, 1
  %exitcond.not = icmp eq i64 %6038, 181
  br i1 %exitcond.not, label %6039, label %6044, !llvm.loop !61

6039:                                             ; preds = %6037
  %6040 = load i32, ptr @test_count, align 4, !tbaa !5
  %6041 = add nsw i32 %6040, 1
  store i32 %6041, ptr @test_count, align 4, !tbaa !5
  %6042 = call i32 @s2n_negotiate_until_message(ptr noundef %5955, ptr noundef nonnull %15, i32 noundef 1) #13
  %6043 = call zeroext i1 @s2n_result_is_ok(i32 %6042)
  br i1 %6043, label %6199, label %6177

6044:                                             ; preds = %6036, %6037
  %.0676937 = phi i64 [ 0, %6036 ], [ %6038, %6037 ]
  %6045 = load i32, ptr @test_count, align 4, !tbaa !5
  %6046 = add nsw i32 %6045, 1
  store i32 %6046, ptr @test_count, align 4, !tbaa !5
  %6047 = call i32 @s2n_negotiate_until_message(ptr noundef %5955, ptr noundef nonnull %15, i32 noundef 1) #13
  %6048 = call zeroext i1 @s2n_result_is_error(i32 %6047)
  br i1 %6048, label %6071, label %6049

6049:                                             ; preds = %6044
  %6050 = load i32, ptr %4579, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = call i32 @s2n_print_stacktrace(ptr noundef %6051) #13
  %6053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6054 = trunc nuw i8 %6053 to i1
  br i1 %6054, label %6055, label %6059

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

6059:                                             ; preds = %6055, %6049
  br label %6060

6060:                                             ; preds = %6055, %6059
  %.str.5.sink3089 = phi ptr [ @.str.5, %6059 ], [ @.str.2, %6055 ]
  store i32 %6050, ptr %4579, align 4, !tbaa !5
  %6061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6062 = load i32, ptr @test_count, align 4, !tbaa !5
  %6063 = load i32, ptr %4525, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror(i32 noundef %6063, ptr noundef nonnull @.str.4) #13
  %6065 = load i32, ptr %4525, align 4, !tbaa !5
  %6066 = call ptr @s2n_strerror_debug(i32 noundef %6065, ptr noundef nonnull @.str.4) #13
  %6067 = load i32, ptr %4579, align 4, !tbaa !5
  %6068 = call ptr @strerror(i32 noundef %6067) #13
  %6069 = load i32, ptr %4579, align 4, !tbaa !5
  %6070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6061, ptr noundef nonnull %.str.5.sink3089, i32 noundef %6062, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %6064, ptr noundef %6066, ptr noundef %6068, i32 noundef %6069) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6071:                                             ; preds = %6044
  %6072 = load i32, ptr @test_count, align 4, !tbaa !5
  %6073 = add nsw i32 %6072, 1
  store i32 %6073, ptr @test_count, align 4, !tbaa !5
  %6074 = load i32, ptr %4525, align 4, !tbaa !5
  %6075 = icmp eq i32 %6074, 201326592
  br i1 %6075, label %6098, label %6076

6076:                                             ; preds = %6071
  %6077 = load i32, ptr %4579, align 4, !tbaa !5
  %6078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6079 = call i32 @s2n_print_stacktrace(ptr noundef %6078) #13
  %6080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6081 = trunc nuw i8 %6080 to i1
  br i1 %6081, label %6082, label %6086

6082:                                             ; preds = %6076
  %6083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6084 = call i32 @fileno(ptr noundef %6083) #13
  %6085 = call i32 @isatty(i32 noundef %6084) #13
  %.not775 = icmp eq i32 %6085, 0
  br i1 %.not775, label %6086, label %6087

6086:                                             ; preds = %6082, %6076
  br label %6087

6087:                                             ; preds = %6082, %6086
  %.str.5.sink3098 = phi ptr [ @.str.5, %6086 ], [ @.str.2, %6082 ]
  store i32 %6077, ptr %4579, align 4, !tbaa !5
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = load i32, ptr @test_count, align 4, !tbaa !5
  %6090 = load i32, ptr %4525, align 4, !tbaa !5
  %6091 = call ptr @s2n_strerror(i32 noundef %6090, ptr noundef nonnull @.str.4) #13
  %6092 = load i32, ptr %4525, align 4, !tbaa !5
  %6093 = call ptr @s2n_strerror_debug(i32 noundef %6092, ptr noundef nonnull @.str.4) #13
  %6094 = load i32, ptr %4579, align 4, !tbaa !5
  %6095 = call ptr @strerror(i32 noundef %6094) #13
  %6096 = load i32, ptr %4579, align 4, !tbaa !5
  %6097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6088, ptr noundef nonnull %.str.5.sink3098, i32 noundef %6089, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %6091, ptr noundef %6093, ptr noundef %6095, i32 noundef %6096) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6098:                                             ; preds = %6071
  %6099 = add nsw i32 %6072, 2
  store i32 %6099, ptr @test_count, align 4, !tbaa !5
  %6100 = call ptr @s2n_strerror_debug(i32 noundef 201326592, ptr noundef nonnull @.str.4) #13
  %6101 = icmp eq ptr %6100, null
  br i1 %6101, label %6102, label %6124

6102:                                             ; preds = %6098
  %6103 = load i32, ptr %4579, align 4, !tbaa !5
  %6104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6105 = call i32 @s2n_print_stacktrace(ptr noundef %6104) #13
  %6106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6107 = trunc nuw i8 %6106 to i1
  br i1 %6107, label %6108, label %6112

6108:                                             ; preds = %6102
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = call i32 @fileno(ptr noundef %6109) #13
  %6111 = call i32 @isatty(i32 noundef %6110) #13
  %.not778 = icmp eq i32 %6111, 0
  br i1 %.not778, label %6112, label %6113

6112:                                             ; preds = %6108, %6102
  br label %6113

6113:                                             ; preds = %6108, %6112
  %.str.5.sink3107 = phi ptr [ @.str.5, %6112 ], [ @.str.2, %6108 ]
  store i32 %6103, ptr %4579, align 4, !tbaa !5
  %6114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6115 = load i32, ptr @test_count, align 4, !tbaa !5
  %6116 = load i32, ptr %4525, align 4, !tbaa !5
  %6117 = call ptr @s2n_strerror(i32 noundef %6116, ptr noundef nonnull @.str.4) #13
  %6118 = load i32, ptr %4525, align 4, !tbaa !5
  %6119 = call ptr @s2n_strerror_debug(i32 noundef %6118, ptr noundef nonnull @.str.4) #13
  %6120 = load i32, ptr %4579, align 4, !tbaa !5
  %6121 = call ptr @strerror(i32 noundef %6120) #13
  %6122 = load i32, ptr %4579, align 4, !tbaa !5
  %6123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6114, ptr noundef nonnull %.str.5.sink3107, i32 noundef %6115, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 537, ptr noundef %6117, ptr noundef %6119, ptr noundef %6121, i32 noundef %6122) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6124:                                             ; preds = %6098
  store i32 0, ptr %4525, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %4579, align 4, !tbaa !5
  %6125 = load i32, ptr @test_count, align 4, !tbaa !5
  %6126 = add nsw i32 %6125, 1
  store i32 %6126, ptr @test_count, align 4, !tbaa !5
  %6127 = load i32, ptr %15, align 4, !tbaa !5
  %6128 = icmp eq i32 %6127, 1
  br i1 %6128, label %6151, label %6129

6129:                                             ; preds = %6124
  %6130 = load i32, ptr %4579, align 4, !tbaa !5
  %6131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6132 = call i32 @s2n_print_stacktrace(ptr noundef %6131) #13
  %6133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6134 = trunc nuw i8 %6133 to i1
  br i1 %6134, label %6135, label %6139

6135:                                             ; preds = %6129
  %6136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6137 = call i32 @fileno(ptr noundef %6136) #13
  %6138 = call i32 @isatty(i32 noundef %6137) #13
  %.not776 = icmp eq i32 %6138, 0
  br i1 %.not776, label %6139, label %6140

6139:                                             ; preds = %6135, %6129
  br label %6140

6140:                                             ; preds = %6135, %6139
  %.str.5.sink3116 = phi ptr [ @.str.5, %6139 ], [ @.str.2, %6135 ]
  store i32 %6130, ptr %4579, align 4, !tbaa !5
  %6141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6142 = load i32, ptr @test_count, align 4, !tbaa !5
  %6143 = load i32, ptr %4525, align 4, !tbaa !5
  %6144 = call ptr @s2n_strerror(i32 noundef %6143, ptr noundef nonnull @.str.4) #13
  %6145 = load i32, ptr %4525, align 4, !tbaa !5
  %6146 = call ptr @s2n_strerror_debug(i32 noundef %6145, ptr noundef nonnull @.str.4) #13
  %6147 = load i32, ptr %4579, align 4, !tbaa !5
  %6148 = call ptr @strerror(i32 noundef %6147) #13
  %6149 = load i32, ptr %4579, align 4, !tbaa !5
  %6150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6141, ptr noundef nonnull %.str.5.sink3116, i32 noundef %6142, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %6144, ptr noundef %6146, ptr noundef %6148, i32 noundef %6149) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6151:                                             ; preds = %6124
  %6152 = add nsw i32 %6125, 2
  store i32 %6152, ptr @test_count, align 4, !tbaa !5
  %6153 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %13, i32 noundef 1) #13
  %6154 = icmp eq i32 %6153, -1
  br i1 %6154, label %6155, label %6037

6155:                                             ; preds = %6151
  %6156 = load i32, ptr %4579, align 4, !tbaa !5
  %6157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6158 = call i32 @s2n_print_stacktrace(ptr noundef %6157) #13
  %6159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6160 = trunc nuw i8 %6159 to i1
  br i1 %6160, label %6161, label %6165

6161:                                             ; preds = %6155
  %6162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6163 = call i32 @fileno(ptr noundef %6162) #13
  %6164 = call i32 @isatty(i32 noundef %6163) #13
  %.not777 = icmp eq i32 %6164, 0
  br i1 %.not777, label %6165, label %6166

6165:                                             ; preds = %6161, %6155
  br label %6166

6166:                                             ; preds = %6161, %6165
  %.str.5.sink3125 = phi ptr [ @.str.5, %6165 ], [ @.str.2, %6161 ]
  store i32 %6156, ptr %4579, align 4, !tbaa !5
  %6167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6168 = load i32, ptr @test_count, align 4, !tbaa !5
  %6169 = load i32, ptr %4525, align 4, !tbaa !5
  %6170 = call ptr @s2n_strerror(i32 noundef %6169, ptr noundef nonnull @.str.4) #13
  %6171 = load i32, ptr %4525, align 4, !tbaa !5
  %6172 = call ptr @s2n_strerror_debug(i32 noundef %6171, ptr noundef nonnull @.str.4) #13
  %6173 = load i32, ptr %4579, align 4, !tbaa !5
  %6174 = call ptr @strerror(i32 noundef %6173) #13
  %6175 = load i32, ptr %4579, align 4, !tbaa !5
  %6176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6167, ptr noundef nonnull %.str.5.sink3125, i32 noundef %6168, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %6170, ptr noundef %6172, ptr noundef %6174, i32 noundef %6175) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6177:                                             ; preds = %6039
  %6178 = load i32, ptr %4579, align 4, !tbaa !5
  %6179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6180 = call i32 @s2n_print_stacktrace(ptr noundef %6179) #13
  %6181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6182 = trunc nuw i8 %6181 to i1
  br i1 %6182, label %6183, label %6187

6183:                                             ; preds = %6177
  %6184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6185 = call i32 @fileno(ptr noundef %6184) #13
  %6186 = call i32 @isatty(i32 noundef %6185) #13
  %.not764 = icmp eq i32 %6186, 0
  br i1 %.not764, label %6187, label %6188

6187:                                             ; preds = %6183, %6177
  br label %6188

6188:                                             ; preds = %6183, %6187
  %.str.5.sink3134 = phi ptr [ @.str.5, %6187 ], [ @.str.2, %6183 ]
  store i32 %6178, ptr %4579, align 4, !tbaa !5
  %6189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6190 = load i32, ptr @test_count, align 4, !tbaa !5
  %6191 = load i32, ptr %4525, align 4, !tbaa !5
  %6192 = call ptr @s2n_strerror(i32 noundef %6191, ptr noundef nonnull @.str.4) #13
  %6193 = load i32, ptr %4525, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror_debug(i32 noundef %6193, ptr noundef nonnull @.str.4) #13
  %6195 = load i32, ptr %4579, align 4, !tbaa !5
  %6196 = call ptr @strerror(i32 noundef %6195) #13
  %6197 = load i32, ptr %4579, align 4, !tbaa !5
  %6198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6189, ptr noundef nonnull %.str.5.sink3134, i32 noundef %6190, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 543, ptr noundef %6192, ptr noundef %6194, ptr noundef %6196, i32 noundef %6197) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6199:                                             ; preds = %6039
  %6200 = load i32, ptr @test_count, align 4, !tbaa !5
  %6201 = add nsw i32 %6200, 1
  store i32 %6201, ptr @test_count, align 4, !tbaa !5
  %6202 = getelementptr inbounds i8, ptr %5955, i64 218
  %6203 = load i8, ptr %6202, align 2, !tbaa !42
  %6204 = icmp eq i8 %6203, 33
  br i1 %6204, label %6227, label %6205

6205:                                             ; preds = %6199
  %6206 = load i32, ptr %4579, align 4, !tbaa !5
  %6207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6208 = call i32 @s2n_print_stacktrace(ptr noundef %6207) #13
  %6209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6210 = trunc nuw i8 %6209 to i1
  br i1 %6210, label %6211, label %6215

6211:                                             ; preds = %6205
  %6212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6213 = call i32 @fileno(ptr noundef %6212) #13
  %6214 = call i32 @isatty(i32 noundef %6213) #13
  %.not765 = icmp eq i32 %6214, 0
  br i1 %.not765, label %6215, label %6216

6215:                                             ; preds = %6211, %6205
  br label %6216

6216:                                             ; preds = %6211, %6215
  %.str.5.sink3143 = phi ptr [ @.str.5, %6215 ], [ @.str.2, %6211 ]
  store i32 %6206, ptr %4579, align 4, !tbaa !5
  %6217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6218 = load i32, ptr @test_count, align 4, !tbaa !5
  %6219 = load i32, ptr %4525, align 4, !tbaa !5
  %6220 = call ptr @s2n_strerror(i32 noundef %6219, ptr noundef nonnull @.str.4) #13
  %6221 = load i32, ptr %4525, align 4, !tbaa !5
  %6222 = call ptr @s2n_strerror_debug(i32 noundef %6221, ptr noundef nonnull @.str.4) #13
  %6223 = load i32, ptr %4579, align 4, !tbaa !5
  %6224 = call ptr @strerror(i32 noundef %6223) #13
  %6225 = load i32, ptr %4579, align 4, !tbaa !5
  %6226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6217, ptr noundef nonnull %.str.5.sink3143, i32 noundef %6218, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 544, ptr noundef %6220, ptr noundef %6222, ptr noundef %6224, i32 noundef %6225) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6227:                                             ; preds = %6199
  %6228 = add nsw i32 %6200, 2
  store i32 %6228, ptr @test_count, align 4, !tbaa !5
  %6229 = getelementptr inbounds i8, ptr %5955, i64 217
  %6230 = load i8, ptr %6229, align 1, !tbaa !15
  %6231 = icmp eq i8 %6230, 20
  br i1 %6231, label %6254, label %6232

6232:                                             ; preds = %6227
  %6233 = load i32, ptr %4579, align 4, !tbaa !5
  %6234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6235 = call i32 @s2n_print_stacktrace(ptr noundef %6234) #13
  %6236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6237 = trunc nuw i8 %6236 to i1
  br i1 %6237, label %6238, label %6242

6238:                                             ; preds = %6232
  %6239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6240 = call i32 @fileno(ptr noundef %6239) #13
  %6241 = call i32 @isatty(i32 noundef %6240) #13
  %.not766 = icmp eq i32 %6241, 0
  br i1 %.not766, label %6242, label %6243

6242:                                             ; preds = %6238, %6232
  br label %6243

6243:                                             ; preds = %6238, %6242
  %.str.5.sink3152 = phi ptr [ @.str.5, %6242 ], [ @.str.2, %6238 ]
  store i32 %6233, ptr %4579, align 4, !tbaa !5
  %6244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6245 = load i32, ptr @test_count, align 4, !tbaa !5
  %6246 = load i32, ptr %4525, align 4, !tbaa !5
  %6247 = call ptr @s2n_strerror(i32 noundef %6246, ptr noundef nonnull @.str.4) #13
  %6248 = load i32, ptr %4525, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror_debug(i32 noundef %6248, ptr noundef nonnull @.str.4) #13
  %6250 = load i32, ptr %4579, align 4, !tbaa !5
  %6251 = call ptr @strerror(i32 noundef %6250) #13
  %6252 = load i32, ptr %4579, align 4, !tbaa !5
  %6253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6244, ptr noundef nonnull %.str.5.sink3152, i32 noundef %6245, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %6247, ptr noundef %6249, ptr noundef %6251, i32 noundef %6252) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6254:                                             ; preds = %6227
  %6255 = add nsw i32 %6200, 3
  store i32 %6255, ptr @test_count, align 4, !tbaa !5
  %6256 = getelementptr inbounds i8, ptr %5955, i64 3698
  %6257 = load i8, ptr %6256, align 2
  %6258 = and i8 %6257, 32
  %.not767 = icmp eq i8 %6258, 0
  br i1 %.not767, label %6259, label %6281

6259:                                             ; preds = %6254
  %6260 = load i32, ptr %4579, align 4, !tbaa !5
  %6261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6262 = call i32 @s2n_print_stacktrace(ptr noundef %6261) #13
  %6263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6264 = trunc nuw i8 %6263 to i1
  br i1 %6264, label %6265, label %6269

6265:                                             ; preds = %6259
  %6266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6267 = call i32 @fileno(ptr noundef %6266) #13
  %6268 = call i32 @isatty(i32 noundef %6267) #13
  %.not768 = icmp eq i32 %6268, 0
  br i1 %.not768, label %6269, label %6270

6269:                                             ; preds = %6265, %6259
  br label %6270

6270:                                             ; preds = %6265, %6269
  %.str.5.sink3161 = phi ptr [ @.str.5, %6269 ], [ @.str.2, %6265 ]
  store i32 %6260, ptr %4579, align 4, !tbaa !5
  %6271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6272 = load i32, ptr @test_count, align 4, !tbaa !5
  %6273 = load i32, ptr %4525, align 4, !tbaa !5
  %6274 = call ptr @s2n_strerror(i32 noundef %6273, ptr noundef nonnull @.str.4) #13
  %6275 = load i32, ptr %4525, align 4, !tbaa !5
  %6276 = call ptr @s2n_strerror_debug(i32 noundef %6275, ptr noundef nonnull @.str.4) #13
  %6277 = load i32, ptr %4579, align 4, !tbaa !5
  %6278 = call ptr @strerror(i32 noundef %6277) #13
  %6279 = load i32, ptr %4579, align 4, !tbaa !5
  %6280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6271, ptr noundef nonnull %.str.5.sink3161, i32 noundef %6272, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 546, ptr noundef %6274, ptr noundef %6276, ptr noundef %6278, i32 noundef %6279) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6281:                                             ; preds = %6254
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 181, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #13
  %6282 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #13
  %6283 = call i32 @s2n_config_free(ptr noundef nonnull %190) #13
  %6284 = call i32 @s2n_config_free(ptr noundef nonnull %333) #13
  %6285 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %219) #13
  call void @free(ptr noundef %134) #13
  call void @free(ptr noundef %162) #13
  %6286 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %362) #13
  call void @free(ptr noundef %277) #13
  call void @free(ptr noundef %305) #13
  %6287 = call i32 @s2n_cleanup() #13
  %6288 = icmp eq i32 %6287, -1
  br i1 %6288, label %6289, label %6311

6289:                                             ; preds = %6281
  %6290 = load i32, ptr %4579, align 4, !tbaa !5
  %6291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6292 = call i32 @s2n_print_stacktrace(ptr noundef %6291) #13
  %6293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6294 = trunc nuw i8 %6293 to i1
  br i1 %6294, label %6295, label %6299

6295:                                             ; preds = %6289
  %6296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6297 = call i32 @fileno(ptr noundef %6296) #13
  %6298 = call i32 @isatty(i32 noundef %6297) #13
  %.not773 = icmp eq i32 %6298, 0
  br i1 %.not773, label %6299, label %6300

6299:                                             ; preds = %6295, %6289
  br label %6300

6300:                                             ; preds = %6295, %6299
  %.str.5.sink3170 = phi ptr [ @.str.5, %6299 ], [ @.str.2, %6295 ]
  store i32 %6290, ptr %4579, align 4, !tbaa !5
  %6301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6302 = load i32, ptr @test_count, align 4, !tbaa !5
  %6303 = load i32, ptr %4525, align 4, !tbaa !5
  %6304 = call ptr @s2n_strerror(i32 noundef %6303, ptr noundef nonnull @.str.4) #13
  %6305 = load i32, ptr %4525, align 4, !tbaa !5
  %6306 = call ptr @s2n_strerror_debug(i32 noundef %6305, ptr noundef nonnull @.str.4) #13
  %6307 = load i32, ptr %4579, align 4, !tbaa !5
  %6308 = call ptr @strerror(i32 noundef %6307) #13
  %6309 = load i32, ptr %4579, align 4, !tbaa !5
  %6310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6301, ptr noundef nonnull %.str.5.sink3170, i32 noundef %6302, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %6304, ptr noundef %6306, ptr noundef %6308, i32 noundef %6309) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6311:                                             ; preds = %6281
  %6312 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %6313 = icmp eq i32 %6312, -1
  br i1 %6313, label %6314, label %6336

6314:                                             ; preds = %6311
  %6315 = load i32, ptr %4579, align 4, !tbaa !5
  %6316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6317 = call i32 @s2n_print_stacktrace(ptr noundef %6316) #13
  %6318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6319 = trunc nuw i8 %6318 to i1
  br i1 %6319, label %6320, label %6324

6320:                                             ; preds = %6314
  %6321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6322 = call i32 @fileno(ptr noundef %6321) #13
  %6323 = call i32 @isatty(i32 noundef %6322) #13
  %.not772 = icmp eq i32 %6323, 0
  br i1 %.not772, label %6324, label %6325

6324:                                             ; preds = %6320, %6314
  br label %6325

6325:                                             ; preds = %6320, %6324
  %.str.5.sink3179 = phi ptr [ @.str.5, %6324 ], [ @.str.2, %6320 ]
  store i32 %6315, ptr %4579, align 4, !tbaa !5
  %6326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6327 = load i32, ptr @test_count, align 4, !tbaa !5
  %6328 = load i32, ptr %4525, align 4, !tbaa !5
  %6329 = call ptr @s2n_strerror(i32 noundef %6328, ptr noundef nonnull @.str.4) #13
  %6330 = load i32, ptr %4525, align 4, !tbaa !5
  %6331 = call ptr @s2n_strerror_debug(i32 noundef %6330, ptr noundef nonnull @.str.4) #13
  %6332 = load i32, ptr %4579, align 4, !tbaa !5
  %6333 = call ptr @strerror(i32 noundef %6332) #13
  %6334 = load i32, ptr %4579, align 4, !tbaa !5
  %6335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6326, ptr noundef nonnull %.str.5.sink3179, i32 noundef %6327, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %6329, ptr noundef %6331, ptr noundef %6333, i32 noundef %6334) #15
  call void @exit(i32 noundef 1) #16
  unreachable

6336:                                             ; preds = %6311
  %6337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6338 = trunc nuw i8 %6337 to i1
  br i1 %6338, label %6339, label %6350

6339:                                             ; preds = %6336
  %6340 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6341 = call i32 @fileno(ptr noundef %6340) #13
  %6342 = call i32 @isatty(i32 noundef %6341) #13
  %.not769 = icmp eq i32 %6342, 0
  br i1 %.not769, label %6350, label %6343

6343:                                             ; preds = %6339
  %6344 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not771 = icmp eq i32 %6344, 0
  %6345 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not771, label %6348, label %6346

6346:                                             ; preds = %6343
  %6347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6345, ptr noundef nonnull @.str.103, i32 noundef %6344) #13
  br label %6357

6348:                                             ; preds = %6343
  %6349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6345, ptr noundef nonnull @.str.104) #13
  br label %6357

6350:                                             ; preds = %6339, %6336
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not770 = icmp eq i32 %6351, 0
  %6352 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not770, label %6355, label %6353

6353:                                             ; preds = %6350
  %6354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6352, ptr noundef nonnull @.str.105, i32 noundef %6351) #13
  br label %6357

6355:                                             ; preds = %6350
  %6356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6352, ptr noundef nonnull @.str.106) #13
  br label %6357

6357:                                             ; preds = %5951, %6348, %6346, %6355, %6353
  %.1 = phi i32 [ -1, %5951 ], [ 0, %6353 ], [ 0, %6355 ], [ 0, %6346 ], [ 0, %6348 ]
  ret i32 %.1
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

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

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8

declare ptr @s2n_config_new() local_unnamed_addr #3

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_reset_tls13_in_test(...) local_unnamed_addr #3

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

; 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 i32 @s2n_stuffer_write(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #3

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_rewrite(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_get_highest_fully_supported_tls_version(...) local_unnamed_addr #3

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

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #3

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #3

declare i32 @s2n_config_enable_quic(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #11

declare i32 @s2n_blob_alloc_from_hex_with_whitespace(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_recv_io_stuffer(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #11

declare i32 @s2n_negotiate_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #12

declare i32 @s2n_cleanup() local_unnamed_addr #3

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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { 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 #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { nounwind allocsize(0) }

!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 217}
!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 = !{!16, !7, i64 218}
!43 = !{!25, !10, i64 0}
!44 = !{!25, !6, i64 8}
!45 = !{!25, !6, i64 12}
!46 = !{!16, !7, i64 220}
!47 = !{!16, !7, i64 219}
!48 = !{!7, !7, i64 0}
!49 = !{!16, !6, i64 2044}
!50 = !{!16, !6, i64 2040}
!51 = !{!16, !7, i64 216}
!52 = !{!53, !6, i64 56}
!53 = !{!"s2n_psk", !6, i64 0, !25, i64 8, !25, i64 32, !6, i64 56, !6, i64 60, !18, i64 64, !25, i64 72, !54, i64 96, !18, i64 160}
!54 = !{!"s2n_early_data_config", !6, i64 0, !7, i64 4, !10, i64 8, !25, i64 16, !25, i64 40}
!55 = !{!16, !10, i64 1736}
!56 = !{!16, !10, i64 1528}
!57 = !{!58, !31, i64 0}
!58 = !{!"s2n_signature_scheme", !31, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !31, i64 26, !10, i64 32}
!59 = !{!16, !10, i64 1544}
!60 = !{!16, !10, i64 656}
!61 = distinct !{!61, !62}
!62 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass