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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [88 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@main.chain_and_key = external hidden global ptr, align 8
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [75 x i8], align 1
@__const.main.ctx = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.57 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [37 x i8], align 1
@__const.main.ctx.64 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@__const.main.ctx.65 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.66 = external hidden unnamed_addr constant [37 x i8], align 1
@__const.main.ctx.67 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.68 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [48 x i8], align 1
@__const.main.ctx.70 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.71 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %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 ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_test_io_pair, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_result, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_result, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_result, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_test_io_pair, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca %struct.s2n_result, align 4
  %54 = alloca i32, align 4
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca i32, align 4
  %57 = alloca %struct.s2n_result, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %struct.s2n_result, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca ptr, align 8
  %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 ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_test_io_pair, align 4
  %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 %struct.s2n_result, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca i32, align 4
  %90 = alloca %struct.s2n_result, align 4
  %91 = alloca i32, align 4
  %92 = alloca i64, align 8
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca i32, align 4
  %95 = alloca %struct.s2n_result, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca %struct.s2n_result, align 4
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca %struct.s2n_result, align 4
  %101 = alloca ptr, align 8
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_test_io_pair, 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 %struct.s2n_result, align 4
  %115 = alloca i32, align 4
  %116 = alloca %struct.s2n_result, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca %struct.s2n_test_reneg_req_ctx, align 4
  %124 = alloca ptr, align 8
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca %struct.s2n_test_io_pair, 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 %struct.s2n_result, align 4
  %138 = alloca i32, align 4
  %139 = alloca %struct.s2n_result, align 4
  %140 = alloca i32, align 4
  %141 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %149 = alloca %struct.s2n_result, align 4
  %150 = alloca %struct.s2n_test_reneg_req_ctx, align 4
  %151 = alloca ptr, align 8
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca ptr, align 8
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca %struct.s2n_test_io_pair, 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 %struct.s2n_result, align 4
  %165 = alloca i32, align 4
  %166 = alloca %struct.s2n_result, align 4
  %167 = alloca i32, align 4
  %168 = alloca %struct.s2n_result, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca %struct.s2n_result, align 4
  %173 = alloca %struct.s2n_result, align 4
  %174 = alloca %struct.s2n_test_reneg_req_ctx, align 4
  %175 = alloca ptr, align 8
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca ptr, align 8
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca %struct.s2n_test_io_pair, align 4
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca %struct.s2n_result, align 4
  %189 = alloca i32, align 4
  %190 = alloca %struct.s2n_result, align 4
  %191 = alloca i32, align 4
  %192 = alloca %struct.s2n_result, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca %struct.s2n_result, align 4
  %197 = alloca %struct.s2n_result, align 4
  %198 = alloca %struct.s2n_test_reneg_req_ctx, align 4
  %199 = alloca ptr, align 8
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca i32, align 4
  %203 = alloca ptr, align 8
  %204 = alloca i32, align 4
  %205 = alloca i32, align 4
  %206 = alloca %struct.s2n_test_io_pair, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca i32, align 4
  %210 = alloca i32, align 4
  %211 = alloca %struct.s2n_result, align 4
  %212 = alloca i32, align 4
  %213 = alloca %struct.s2n_result, align 4
  %214 = alloca i32, align 4
  %215 = alloca %struct.s2n_result, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca i32, align 4
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca i32, align 4
  %222 = alloca %struct.s2n_result, align 4
  %223 = alloca %struct.s2n_result, align 4
  %224 = alloca %struct.s2n_test_reneg_req_ctx, align 4
  %225 = alloca ptr, align 8
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca i32, align 4
  %229 = alloca ptr, align 8
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca %struct.s2n_test_io_pair, align 4
  %233 = alloca i32, align 4
  %234 = alloca i32, align 4
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca %struct.s2n_result, align 4
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca %struct.s2n_result, align 4
  %241 = alloca i32, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca %struct.s2n_result, align 4
  %245 = alloca %struct.s2n_result, align 4
  %246 = alloca %struct.s2n_test_reneg_req_ctx, align 4
  %247 = alloca ptr, align 8
  %248 = alloca i32, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, align 4
  %251 = alloca i32, align 4
  %252 = alloca i32, align 4
  %253 = alloca ptr, align 8
  %254 = alloca i32, align 4
  %255 = alloca i32, align 4
  %256 = alloca i32, align 4
  %257 = alloca %struct.s2n_test_io_pair, align 4
  %258 = alloca i32, align 4
  %259 = alloca i32, align 4
  %260 = alloca [1 x i8], align 1
  %261 = alloca i32, align 4
  %262 = alloca i32, align 4
  %263 = alloca i32, align 4
  %264 = alloca i32, align 4
  %265 = alloca %struct.s2n_result, align 4
  %266 = alloca i32, align 4
  %267 = alloca i32, align 4
  %268 = alloca i32, align 4
  %269 = alloca i32, align 4
  %270 = alloca i32, align 4
  %271 = alloca i32, align 4
  %272 = alloca i32, align 4
  %273 = alloca i32, align 4
  %274 = alloca i32, align 4
  %275 = alloca i32, align 4
  %276 = alloca i32, align 4
  %277 = alloca i32, align 4
  %278 = alloca i32, align 4
  %279 = alloca i32, align 4
  %280 = alloca %struct.s2n_result, align 4
  %281 = alloca %struct.s2n_result, align 4
  %282 = alloca i32, align 4
  %283 = alloca i32, align 4
  %284 = alloca i32, align 4
  %285 = alloca i32, align 4
  %286 = alloca %struct.s2n_result, align 4
  %287 = alloca %struct.s2n_result, align 4
  %288 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %289

289:                                              ; preds = %2
  br label %290

290:                                              ; preds = %289
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %291 = load ptr, ptr @stdout, align 8, !tbaa !9
  %292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %291, ptr noundef @.str, ptr noundef @.str.1) #10
  %293 = load ptr, ptr @stdout, align 8, !tbaa !9
  %294 = call i32 @fflush(ptr noundef %293)
  br label %295

295:                                              ; preds = %290
  %296 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %298, label %349

298:                                              ; preds = %295
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %301 = call ptr @__errno_location() #11
  %302 = load i32, ptr %301, align 4, !tbaa !5
  store i32 %302, ptr %6, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = call i32 @s2n_print_stacktrace(ptr noundef %303)
  %305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %306 = trunc i8 %305 to i1
  br i1 %306, label %307, label %329

307:                                              ; preds = %300
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = call i32 @fileno(ptr noundef %308) #10
  %310 = call i32 @isatty(i32 noundef %309) #10
  %311 = icmp ne i32 %310, 0
  br i1 %311, label %312, label %329

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

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

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

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

348:                                              ; No predecessors!
  br label %349

349:                                              ; preds = %348, %295
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = call i32 @s2n_enable_atexit()
  %355 = icmp eq i32 %354, -1
  br i1 %355, label %356, label %407

356:                                              ; preds = %351
  br label %357

357:                                              ; preds = %356
  br label %358

358:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %359 = call ptr @__errno_location() #11
  %360 = load i32, ptr %359, align 4, !tbaa !5
  store i32 %360, ptr %7, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @s2n_print_stacktrace(ptr noundef %361)
  %363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %364 = trunc i8 %363 to i1
  br i1 %364, label %365, label %387

365:                                              ; preds = %358
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @fileno(ptr noundef %366) #10
  %368 = call i32 @isatty(i32 noundef %367) #10
  %369 = icmp ne i32 %368, 0
  br i1 %369, label %370, label %387

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

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

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

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

406:                                              ; No predecessors!
  br label %407

407:                                              ; preds = %406, %351
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409
  %411 = call i32 @s2n_init()
  %412 = icmp eq i32 %411, -1
  br i1 %412, label %413, label %464

413:                                              ; preds = %410
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %416 = call ptr @__errno_location() #11
  %417 = load i32, ptr %416, align 4, !tbaa !5
  store i32 %417, ptr %8, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418)
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc i8 %420 to i1
  br i1 %421, label %422, label %444

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #10
  %425 = call i32 @isatty(i32 noundef %424) #10
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %444

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

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

461:                                              ; preds = %444, %427
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %462

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

463:                                              ; No predecessors!
  br label %464

464:                                              ; preds = %463, %410
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465
  br label %467

467:                                              ; preds = %466
  %468 = load i32, ptr @test_count, align 4, !tbaa !5
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr @test_count, align 4, !tbaa !5
  %470 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef @main.chain_and_key, ptr noundef @.str.8, ptr noundef @.str.9)
  %471 = icmp eq i32 %470, -1
  br i1 %471, label %472, label %523

472:                                              ; preds = %467
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  %475 = call ptr @__errno_location() #11
  %476 = load i32, ptr %475, align 4, !tbaa !5
  store i32 %476, ptr %9, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = call i32 @s2n_print_stacktrace(ptr noundef %477)
  %479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %480 = trunc i8 %479 to i1
  br i1 %480, label %481, label %503

481:                                              ; preds = %474
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @fileno(ptr noundef %482) #10
  %484 = call i32 @isatty(i32 noundef %483) #10
  %485 = icmp ne i32 %484, 0
  br i1 %485, label %486, label %503

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

503:                                              ; preds = %481, %474
  %504 = load i32, ptr %9, align 4, !tbaa !5
  %505 = call ptr @__errno_location() #11
  store i32 %504, ptr %505, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror(i32 noundef %509, ptr noundef @.str.4)
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror_debug(i32 noundef %512, ptr noundef @.str.4)
  %514 = call ptr @__errno_location() #11
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #10
  %517 = call ptr @__errno_location() #11
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef @.str.5, i32 noundef %507, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 71, ptr noundef %510, ptr noundef %513, ptr noundef %516, i32 noundef %518) #10
  br label %520

520:                                              ; preds = %503, %486
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %521

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

522:                                              ; No predecessors!
  br label %523

523:                                              ; preds = %522, %467
  br label %524

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

525:                                              ; preds = %524
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = add nsw i32 %526, 1
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.11, ptr noundef @.str.12)
  %529 = icmp eq i32 %528, -1
  br i1 %529, label %530, label %583

530:                                              ; preds = %525
  br label %531

531:                                              ; preds = %530
  br label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %533 = call ptr @__errno_location() #11
  %534 = load i32, ptr %533, align 4, !tbaa !5
  store i32 %534, ptr %11, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = call i32 @s2n_print_stacktrace(ptr noundef %535)
  %537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %538 = trunc i8 %537 to i1
  br i1 %538, label %539, label %561

539:                                              ; preds = %532
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @fileno(ptr noundef %540) #10
  %542 = call i32 @isatty(i32 noundef %541) #10
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %561

544:                                              ; preds = %539
  %545 = load i32, ptr %11, align 4, !tbaa !5
  %546 = call ptr @__errno_location() #11
  store i32 %545, ptr %546, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %550, ptr noundef @.str.4)
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef @.str.4)
  %555 = call ptr @__errno_location() #11
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #10
  %558 = call ptr @__errno_location() #11
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef @.str.2, i32 noundef %548, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 75, ptr noundef %551, ptr noundef %554, ptr noundef %557, i32 noundef %559) #10
  br label %578

561:                                              ; preds = %539, %532
  %562 = load i32, ptr %11, align 4, !tbaa !5
  %563 = call ptr @__errno_location() #11
  store i32 %562, ptr %563, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror(i32 noundef %567, ptr noundef @.str.4)
  %569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @s2n_strerror_debug(i32 noundef %570, ptr noundef @.str.4)
  %572 = call ptr @__errno_location() #11
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #10
  %575 = call ptr @__errno_location() #11
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef @.str.5, i32 noundef %565, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 75, ptr noundef %568, ptr noundef %571, ptr noundef %574, i32 noundef %576) #10
  br label %578

578:                                              ; preds = %561, %544
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %579

579:                                              ; preds = %578
  br label %580

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

581:                                              ; No predecessors!
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582, %525
  br label %584

584:                                              ; preds = %583
  br label %585

585:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %586 = call ptr @s2n_config_new()
  store ptr %586, ptr %12, align 8, !tbaa !9
  br label %587

587:                                              ; preds = %585
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = add nsw i32 %588, 1
  store i32 %589, ptr @test_count, align 4, !tbaa !5
  %590 = load ptr, ptr %12, align 8, !tbaa !9
  %591 = icmp eq ptr %590, null
  br i1 %591, label %592, label %645

592:                                              ; preds = %587
  br label %593

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %595 = call ptr @__errno_location() #11
  %596 = load i32, ptr %595, align 4, !tbaa !5
  store i32 %596, ptr %13, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @s2n_print_stacktrace(ptr noundef %597)
  %599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %600 = trunc i8 %599 to i1
  br i1 %600, label %601, label %623

601:                                              ; preds = %594
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @fileno(ptr noundef %602) #10
  %604 = call i32 @isatty(i32 noundef %603) #10
  %605 = icmp ne i32 %604, 0
  br i1 %605, label %606, label %623

606:                                              ; preds = %601
  %607 = load i32, ptr %13, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #11
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef @.str.4)
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef @.str.4)
  %617 = call ptr @__errno_location() #11
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #10
  %620 = call ptr @__errno_location() #11
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.2, i32 noundef %610, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 78, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #10
  br label %640

623:                                              ; preds = %601, %594
  %624 = load i32, ptr %13, align 4, !tbaa !5
  %625 = call ptr @__errno_location() #11
  store i32 %624, ptr %625, align 4, !tbaa !5
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @s2n_strerror(i32 noundef %629, ptr noundef @.str.4)
  %631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef @.str.4)
  %634 = call ptr @__errno_location() #11
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = call ptr @strerror(i32 noundef %635) #10
  %637 = call ptr @__errno_location() #11
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.5, i32 noundef %627, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 78, ptr noundef %630, ptr noundef %633, ptr noundef %636, i32 noundef %638) #10
  br label %640

640:                                              ; preds = %623, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %641

641:                                              ; preds = %640
  br label %642

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

643:                                              ; No predecessors!
  br label %644

644:                                              ; preds = %643
  br label %645

645:                                              ; preds = %644, %587
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr @test_count, align 4, !tbaa !5
  %651 = load ptr, ptr %12, align 8, !tbaa !9
  %652 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %651, ptr noundef @.str.15)
  %653 = icmp eq i32 %652, -1
  br i1 %653, label %654, label %707

654:                                              ; preds = %648
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %657 = call ptr @__errno_location() #11
  %658 = load i32, ptr %657, align 4, !tbaa !5
  store i32 %658, ptr %14, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659)
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc i8 %661 to i1
  br i1 %662, label %663, label %685

663:                                              ; preds = %656
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #10
  %666 = call i32 @isatty(i32 noundef %665) #10
  %667 = icmp ne i32 %666, 0
  br i1 %667, label %668, label %685

668:                                              ; preds = %663
  %669 = load i32, ptr %14, align 4, !tbaa !5
  %670 = call ptr @__errno_location() #11
  store i32 %669, ptr %670, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror(i32 noundef %674, ptr noundef @.str.4)
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef @.str.4)
  %679 = call ptr @__errno_location() #11
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @strerror(i32 noundef %680) #10
  %682 = call ptr @__errno_location() #11
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef @.str.2, i32 noundef %672, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 79, ptr noundef %675, ptr noundef %678, ptr noundef %681, i32 noundef %683) #10
  br label %702

685:                                              ; preds = %663, %656
  %686 = load i32, ptr %14, align 4, !tbaa !5
  %687 = call ptr @__errno_location() #11
  store i32 %686, ptr %687, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror(i32 noundef %691, ptr noundef @.str.4)
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror_debug(i32 noundef %694, ptr noundef @.str.4)
  %696 = call ptr @__errno_location() #11
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @strerror(i32 noundef %697) #10
  %699 = call ptr @__errno_location() #11
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %688, ptr noundef @.str.5, i32 noundef %689, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 79, ptr noundef %692, ptr noundef %695, ptr noundef %698, i32 noundef %700) #10
  br label %702

702:                                              ; preds = %685, %668
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %703

703:                                              ; preds = %702
  br label %704

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

705:                                              ; No predecessors!
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706, %648
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = add nsw i32 %711, 1
  store i32 %712, ptr @test_count, align 4, !tbaa !5
  %713 = load ptr, ptr %12, align 8, !tbaa !9
  %714 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %713)
  %715 = icmp eq i32 %714, -1
  br i1 %715, label %716, label %769

716:                                              ; preds = %710
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %719 = call ptr @__errno_location() #11
  %720 = load i32, ptr %719, align 4, !tbaa !5
  store i32 %720, ptr %15, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @s2n_print_stacktrace(ptr noundef %721)
  %723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %724 = trunc i8 %723 to i1
  br i1 %724, label %725, label %747

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

730:                                              ; preds = %725
  %731 = load i32, ptr %15, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #11
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.4)
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef @.str.4)
  %741 = call ptr @__errno_location() #11
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #10
  %744 = call ptr @__errno_location() #11
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str.2, i32 noundef %734, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 80, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #10
  br label %764

747:                                              ; preds = %725, %718
  %748 = load i32, ptr %15, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #11
  store i32 %748, ptr %749, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef @.str.4)
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef @.str.4)
  %758 = call ptr @__errno_location() #11
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #10
  %761 = call ptr @__errno_location() #11
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str.5, i32 noundef %751, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 80, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #10
  br label %764

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %765

765:                                              ; preds = %764
  br label %766

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

767:                                              ; No predecessors!
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768, %710
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load ptr, ptr %12, align 8, !tbaa !9
  %776 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %777 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %775, ptr noundef %776)
  %778 = icmp eq i32 %777, -1
  br i1 %778, label %779, label %832

779:                                              ; preds = %772
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %782 = call ptr @__errno_location() #11
  %783 = load i32, ptr %782, align 4, !tbaa !5
  store i32 %783, ptr %16, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @s2n_print_stacktrace(ptr noundef %784)
  %786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %787 = trunc i8 %786 to i1
  br i1 %787, label %788, label %810

788:                                              ; preds = %781
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @fileno(ptr noundef %789) #10
  %791 = call i32 @isatty(i32 noundef %790) #10
  %792 = icmp ne i32 %791, 0
  br i1 %792, label %793, label %810

793:                                              ; preds = %788
  %794 = load i32, ptr %16, align 4, !tbaa !5
  %795 = call ptr @__errno_location() #11
  store i32 %794, ptr %795, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = load i32, ptr @test_count, align 4, !tbaa !5
  %798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror(i32 noundef %799, ptr noundef @.str.4)
  %801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror_debug(i32 noundef %802, ptr noundef @.str.4)
  %804 = call ptr @__errno_location() #11
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = call ptr @strerror(i32 noundef %805) #10
  %807 = call ptr @__errno_location() #11
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %796, ptr noundef @.str.2, i32 noundef %797, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 81, ptr noundef %800, ptr noundef %803, ptr noundef %806, i32 noundef %808) #10
  br label %827

810:                                              ; preds = %788, %781
  %811 = load i32, ptr %16, align 4, !tbaa !5
  %812 = call ptr @__errno_location() #11
  store i32 %811, ptr %812, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef @.str.4)
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror_debug(i32 noundef %819, ptr noundef @.str.4)
  %821 = call ptr @__errno_location() #11
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @strerror(i32 noundef %822) #10
  %824 = call ptr @__errno_location() #11
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef @.str.5, i32 noundef %814, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 81, ptr noundef %817, ptr noundef %820, ptr noundef %823, i32 noundef %825) #10
  br label %827

827:                                              ; preds = %810, %793
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %828

828:                                              ; preds = %827
  br label %829

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

830:                                              ; No predecessors!
  br label %831

831:                                              ; preds = %830
  br label %832

832:                                              ; preds = %831, %772
  br label %833

833:                                              ; preds = %832
  br label %834

834:                                              ; preds = %833
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %835 = call ptr @s2n_config_new()
  store ptr %835, ptr %17, align 8, !tbaa !9
  br label %836

836:                                              ; preds = %834
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = load ptr, ptr %17, align 8, !tbaa !9
  %840 = icmp eq ptr %839, null
  br i1 %840, label %841, label %894

841:                                              ; preds = %836
  br label %842

842:                                              ; preds = %841
  br label %843

843:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %844 = call ptr @__errno_location() #11
  %845 = load i32, ptr %844, align 4, !tbaa !5
  store i32 %845, ptr %18, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @s2n_print_stacktrace(ptr noundef %846)
  %848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %849 = trunc i8 %848 to i1
  br i1 %849, label %850, label %872

850:                                              ; preds = %843
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @fileno(ptr noundef %851) #10
  %853 = call i32 @isatty(i32 noundef %852) #10
  %854 = icmp ne i32 %853, 0
  br i1 %854, label %855, label %872

855:                                              ; preds = %850
  %856 = load i32, ptr %18, align 4, !tbaa !5
  %857 = call ptr @__errno_location() #11
  store i32 %856, ptr %857, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror(i32 noundef %861, ptr noundef @.str.4)
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef @.str.4)
  %866 = call ptr @__errno_location() #11
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @strerror(i32 noundef %867) #10
  %869 = call ptr @__errno_location() #11
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %858, ptr noundef @.str.2, i32 noundef %859, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 84, ptr noundef %862, ptr noundef %865, ptr noundef %868, i32 noundef %870) #10
  br label %889

872:                                              ; preds = %850, %843
  %873 = load i32, ptr %18, align 4, !tbaa !5
  %874 = call ptr @__errno_location() #11
  store i32 %873, ptr %874, 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 @.str.4)
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef @.str.4)
  %883 = call ptr @__errno_location() #11
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #10
  %886 = call ptr @__errno_location() #11
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef @.str.5, i32 noundef %876, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 84, ptr noundef %879, ptr noundef %882, ptr noundef %885, i32 noundef %887) #10
  br label %889

889:                                              ; preds = %872, %855
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %890

890:                                              ; preds = %889
  br label %891

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

892:                                              ; No predecessors!
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893, %836
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr @test_count, align 4, !tbaa !5
  %900 = load ptr, ptr %17, align 8, !tbaa !9
  %901 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %900, ptr noundef @.str.15)
  %902 = icmp eq i32 %901, -1
  br i1 %902, label %903, label %956

903:                                              ; preds = %897
  br label %904

904:                                              ; preds = %903
  br label %905

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

912:                                              ; preds = %905
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @fileno(ptr noundef %913) #10
  %915 = call i32 @isatty(i32 noundef %914) #10
  %916 = icmp ne i32 %915, 0
  br i1 %916, label %917, label %934

917:                                              ; preds = %912
  %918 = load i32, ptr %19, align 4, !tbaa !5
  %919 = call ptr @__errno_location() #11
  store i32 %918, ptr %919, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror(i32 noundef %923, ptr noundef @.str.4)
  %925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror_debug(i32 noundef %926, ptr noundef @.str.4)
  %928 = call ptr @__errno_location() #11
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #10
  %931 = call ptr @__errno_location() #11
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %920, ptr noundef @.str.2, i32 noundef %921, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 85, ptr noundef %924, ptr noundef %927, ptr noundef %930, i32 noundef %932) #10
  br label %951

934:                                              ; preds = %912, %905
  %935 = load i32, ptr %19, align 4, !tbaa !5
  %936 = call ptr @__errno_location() #11
  store i32 %935, ptr %936, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef @.str.4)
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror_debug(i32 noundef %943, ptr noundef @.str.4)
  %945 = call ptr @__errno_location() #11
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #10
  %948 = call ptr @__errno_location() #11
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %937, ptr noundef @.str.5, i32 noundef %938, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 85, ptr noundef %941, ptr noundef %944, ptr noundef %947, i32 noundef %949) #10
  br label %951

951:                                              ; preds = %934, %917
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %952

952:                                              ; preds = %951
  br label %953

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

954:                                              ; No predecessors!
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955, %897
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = add nsw i32 %960, 1
  store i32 %961, ptr @test_count, align 4, !tbaa !5
  %962 = load ptr, ptr %17, align 8, !tbaa !9
  %963 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %962)
  %964 = icmp eq i32 %963, -1
  br i1 %964, label %965, label %1018

965:                                              ; preds = %959
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %968 = call ptr @__errno_location() #11
  %969 = load i32, ptr %968, align 4, !tbaa !5
  store i32 %969, ptr %20, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @s2n_print_stacktrace(ptr noundef %970)
  %972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %973 = trunc i8 %972 to i1
  br i1 %973, label %974, label %996

974:                                              ; preds = %967
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @fileno(ptr noundef %975) #10
  %977 = call i32 @isatty(i32 noundef %976) #10
  %978 = icmp ne i32 %977, 0
  br i1 %978, label %979, label %996

979:                                              ; preds = %974
  %980 = load i32, ptr %20, align 4, !tbaa !5
  %981 = call ptr @__errno_location() #11
  store i32 %980, ptr %981, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror(i32 noundef %985, ptr noundef @.str.4)
  %987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror_debug(i32 noundef %988, ptr noundef @.str.4)
  %990 = call ptr @__errno_location() #11
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #10
  %993 = call ptr @__errno_location() #11
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef @.str.2, i32 noundef %983, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 86, ptr noundef %986, ptr noundef %989, ptr noundef %992, i32 noundef %994) #10
  br label %1013

996:                                              ; preds = %974, %967
  %997 = load i32, ptr %20, align 4, !tbaa !5
  %998 = call ptr @__errno_location() #11
  store i32 %997, ptr %998, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef @.str.4)
  %1004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef @.str.4)
  %1007 = call ptr @__errno_location() #11
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call ptr @strerror(i32 noundef %1008) #10
  %1010 = call ptr @__errno_location() #11
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef @.str.5, i32 noundef %1000, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1003, ptr noundef %1006, ptr noundef %1009, i32 noundef %1011) #10
  br label %1013

1013:                                             ; preds = %996, %979
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

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

1016:                                             ; No predecessors!
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017, %959
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr @test_count, align 4, !tbaa !5
  %1024 = load ptr, ptr %17, align 8, !tbaa !9
  %1025 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %1026 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1024, ptr noundef %1025)
  %1027 = icmp eq i32 %1026, -1
  br i1 %1027, label %1028, label %1081

1028:                                             ; preds = %1021
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %1031 = call ptr @__errno_location() #11
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  store i32 %1032, ptr %21, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033)
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc i8 %1035 to i1
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #10
  %1040 = call i32 @isatty(i32 noundef %1039) #10
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1059

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %21, align 4, !tbaa !5
  %1044 = call ptr @__errno_location() #11
  store i32 %1043, ptr %1044, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef @.str.4)
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef @.str.4)
  %1053 = call ptr @__errno_location() #11
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #10
  %1056 = call ptr @__errno_location() #11
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef @.str.2, i32 noundef %1046, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1049, ptr noundef %1052, ptr noundef %1055, i32 noundef %1057) #10
  br label %1076

1059:                                             ; preds = %1037, %1030
  %1060 = load i32, ptr %21, align 4, !tbaa !5
  %1061 = call ptr @__errno_location() #11
  store i32 %1060, ptr %1061, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef @.str.4)
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef @.str.4)
  %1070 = call ptr @__errno_location() #11
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #10
  %1073 = call ptr @__errno_location() #11
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef @.str.5, i32 noundef %1063, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1066, ptr noundef %1069, ptr noundef %1072, i32 noundef %1074) #10
  br label %1076

1076:                                             ; preds = %1059, %1042
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

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

1079:                                             ; No predecessors!
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080, %1021
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = load ptr, ptr %17, align 8, !tbaa !9
  %1088 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %1087, ptr noundef @s2n_test_reneg_req_cb, ptr noundef null)
  %1089 = icmp eq i32 %1088, -1
  br i1 %1089, label %1090, label %1143

1090:                                             ; preds = %1084
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %1093 = call ptr @__errno_location() #11
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  store i32 %1094, ptr %22, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095)
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc i8 %1097 to i1
  br i1 %1098, label %1099, label %1121

1099:                                             ; preds = %1092
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #10
  %1102 = call i32 @isatty(i32 noundef %1101) #10
  %1103 = icmp ne i32 %1102, 0
  br i1 %1103, label %1104, label %1121

1104:                                             ; preds = %1099
  %1105 = load i32, ptr %22, align 4, !tbaa !5
  %1106 = call ptr @__errno_location() #11
  store i32 %1105, ptr %1106, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef @.str.4)
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef @.str.4)
  %1115 = call ptr @__errno_location() #11
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #10
  %1118 = call ptr @__errno_location() #11
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef @.str.2, i32 noundef %1108, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1111, ptr noundef %1114, ptr noundef %1117, i32 noundef %1119) #10
  br label %1138

1121:                                             ; preds = %1099, %1092
  %1122 = load i32, ptr %22, align 4, !tbaa !5
  %1123 = call ptr @__errno_location() #11
  store i32 %1122, ptr %1123, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = load i32, ptr @test_count, align 4, !tbaa !5
  %1126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror(i32 noundef %1127, ptr noundef @.str.4)
  %1129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef @.str.4)
  %1132 = call ptr @__errno_location() #11
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #10
  %1135 = call ptr @__errno_location() #11
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1124, ptr noundef @.str.5, i32 noundef %1125, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1128, ptr noundef %1131, ptr noundef %1134, i32 noundef %1136) #10
  br label %1138

1138:                                             ; preds = %1121, %1104
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

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

1141:                                             ; No predecessors!
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142, %1084
  br label %1144

1144:                                             ; preds = %1143
  br label %1145

1145:                                             ; preds = %1144
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %1146 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1146, ptr %23, align 8, !tbaa !9
  br label %1147

1147:                                             ; preds = %1145
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = add nsw i32 %1148, 1
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  %1150 = load ptr, ptr %23, align 8, !tbaa !9
  %1151 = icmp eq ptr %1150, null
  br i1 %1151, label %1152, label %1205

1152:                                             ; preds = %1147
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %1155 = call ptr @__errno_location() #11
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  store i32 %1156, ptr %24, align 4, !tbaa !5
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @s2n_print_stacktrace(ptr noundef %1157)
  %1159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1160 = trunc i8 %1159 to i1
  br i1 %1160, label %1161, label %1183

1161:                                             ; preds = %1154
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @fileno(ptr noundef %1162) #10
  %1164 = call i32 @isatty(i32 noundef %1163) #10
  %1165 = icmp ne i32 %1164, 0
  br i1 %1165, label %1166, label %1183

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

1183:                                             ; preds = %1161, %1154
  %1184 = load i32, ptr %24, align 4, !tbaa !5
  %1185 = call ptr @__errno_location() #11
  store i32 %1184, ptr %1185, align 4, !tbaa !5
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = load i32, ptr @test_count, align 4, !tbaa !5
  %1188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror(i32 noundef %1189, ptr noundef @.str.4)
  %1191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1192 = load i32, ptr %1191, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror_debug(i32 noundef %1192, ptr noundef @.str.4)
  %1194 = call ptr @__errno_location() #11
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @strerror(i32 noundef %1195) #10
  %1197 = call ptr @__errno_location() #11
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1186, ptr noundef @.str.5, i32 noundef %1187, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1190, ptr noundef %1193, ptr noundef %1196, i32 noundef %1198) #10
  br label %1200

1200:                                             ; preds = %1183, %1166
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

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

1203:                                             ; No predecessors!
  br label %1204

1204:                                             ; preds = %1203
  br label %1205

1205:                                             ; preds = %1204, %1147
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  %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 = load ptr, ptr %23, align 8, !tbaa !9
  %1212 = load ptr, ptr %12, align 8, !tbaa !9
  %1213 = call i32 @s2n_connection_set_config(ptr noundef %1211, ptr noundef %1212)
  %1214 = icmp eq i32 %1213, -1
  br i1 %1214, label %1215, label %1268

1215:                                             ; preds = %1208
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %1218 = call ptr @__errno_location() #11
  %1219 = load i32, ptr %1218, align 4, !tbaa !5
  store i32 %1219, ptr %25, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @s2n_print_stacktrace(ptr noundef %1220)
  %1222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1223 = trunc i8 %1222 to i1
  br i1 %1223, label %1224, label %1246

1224:                                             ; preds = %1217
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @fileno(ptr noundef %1225) #10
  %1227 = call i32 @isatty(i32 noundef %1226) #10
  %1228 = icmp ne i32 %1227, 0
  br i1 %1228, label %1229, label %1246

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

1246:                                             ; preds = %1224, %1217
  %1247 = load i32, ptr %25, align 4, !tbaa !5
  %1248 = call ptr @__errno_location() #11
  store i32 %1247, ptr %1248, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @s2n_strerror(i32 noundef %1252, ptr noundef @.str.4)
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror_debug(i32 noundef %1255, ptr noundef @.str.4)
  %1257 = call ptr @__errno_location() #11
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #10
  %1260 = call ptr @__errno_location() #11
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1249, ptr noundef @.str.5, i32 noundef %1250, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1253, ptr noundef %1256, ptr noundef %1259, i32 noundef %1261) #10
  br label %1263

1263:                                             ; preds = %1246, %1229
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

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

1266:                                             ; No predecessors!
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267, %1208
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %1271 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1271, ptr %26, align 8, !tbaa !9
  br label %1272

1272:                                             ; preds = %1270
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr @test_count, align 4, !tbaa !5
  %1275 = load ptr, ptr %26, align 8, !tbaa !9
  %1276 = icmp eq ptr %1275, null
  br i1 %1276, label %1277, label %1330

1277:                                             ; preds = %1272
  br label %1278

1278:                                             ; preds = %1277
  br label %1279

1279:                                             ; preds = %1278
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %1280 = call ptr @__errno_location() #11
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  store i32 %1281, ptr %27, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @s2n_print_stacktrace(ptr noundef %1282)
  %1284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1285 = trunc i8 %1284 to i1
  br i1 %1285, label %1286, label %1308

1286:                                             ; preds = %1279
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #10
  %1289 = call i32 @isatty(i32 noundef %1288) #10
  %1290 = icmp ne i32 %1289, 0
  br i1 %1290, label %1291, label %1308

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

1308:                                             ; preds = %1286, %1279
  %1309 = load i32, ptr %27, align 4, !tbaa !5
  %1310 = call ptr @__errno_location() #11
  store i32 %1309, ptr %1310, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef @.str.4)
  %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_debug(i32 noundef %1317, ptr noundef @.str.4)
  %1319 = call ptr @__errno_location() #11
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @strerror(i32 noundef %1320) #10
  %1322 = call ptr @__errno_location() #11
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1311, ptr noundef @.str.5, i32 noundef %1312, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1315, ptr noundef %1318, ptr noundef %1321, i32 noundef %1323) #10
  br label %1325

1325:                                             ; preds = %1308, %1291
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

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

1328:                                             ; No predecessors!
  br label %1329

1329:                                             ; preds = %1328
  br label %1330

1330:                                             ; preds = %1329, %1272
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

1333:                                             ; preds = %1332
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = load ptr, ptr %26, align 8, !tbaa !9
  %1337 = load ptr, ptr %12, align 8, !tbaa !9
  %1338 = call i32 @s2n_connection_set_config(ptr noundef %1336, ptr noundef %1337)
  %1339 = icmp eq i32 %1338, -1
  br i1 %1339, label %1340, label %1393

1340:                                             ; preds = %1333
  br label %1341

1341:                                             ; preds = %1340
  br label %1342

1342:                                             ; preds = %1341
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %1343 = call ptr @__errno_location() #11
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  store i32 %1344, ptr %28, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 @s2n_print_stacktrace(ptr noundef %1345)
  %1347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1348 = trunc i8 %1347 to i1
  br i1 %1348, label %1349, label %1371

1349:                                             ; preds = %1342
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @fileno(ptr noundef %1350) #10
  %1352 = call i32 @isatty(i32 noundef %1351) #10
  %1353 = icmp ne i32 %1352, 0
  br i1 %1353, label %1354, label %1371

1354:                                             ; preds = %1349
  %1355 = load i32, ptr %28, align 4, !tbaa !5
  %1356 = call ptr @__errno_location() #11
  store i32 %1355, ptr %1356, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror(i32 noundef %1360, ptr noundef @.str.4)
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror_debug(i32 noundef %1363, ptr noundef @.str.4)
  %1365 = call ptr @__errno_location() #11
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @strerror(i32 noundef %1366) #10
  %1368 = call ptr @__errno_location() #11
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef @.str.2, i32 noundef %1358, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1361, ptr noundef %1364, ptr noundef %1367, i32 noundef %1369) #10
  br label %1388

1371:                                             ; preds = %1349, %1342
  %1372 = load i32, ptr %28, align 4, !tbaa !5
  %1373 = call ptr @__errno_location() #11
  store i32 %1372, ptr %1373, 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 @.str.4)
  %1379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror_debug(i32 noundef %1380, ptr noundef @.str.4)
  %1382 = call ptr @__errno_location() #11
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @strerror(i32 noundef %1383) #10
  %1385 = call ptr @__errno_location() #11
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1374, ptr noundef @.str.5, i32 noundef %1375, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1378, ptr noundef %1381, ptr noundef %1384, i32 noundef %1386) #10
  br label %1388

1388:                                             ; preds = %1371, %1354
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

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

1391:                                             ; No predecessors!
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392, %1333
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  call void @llvm.memset.p0.i64(ptr align 4 %29, i8 0, i64 8, i1 false)
  br label %1396

1396:                                             ; preds = %1395
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = add nsw i32 %1397, 1
  store i32 %1398, ptr @test_count, align 4, !tbaa !5
  %1399 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %29)
  %1400 = icmp eq i32 %1399, -1
  br i1 %1400, label %1401, label %1454

1401:                                             ; preds = %1396
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1404 = call ptr @__errno_location() #11
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  store i32 %1405, ptr %30, align 4, !tbaa !5
  %1406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1407 = call i32 @s2n_print_stacktrace(ptr noundef %1406)
  %1408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1409 = trunc i8 %1408 to i1
  br i1 %1409, label %1410, label %1432

1410:                                             ; preds = %1403
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @fileno(ptr noundef %1411) #10
  %1413 = call i32 @isatty(i32 noundef %1412) #10
  %1414 = icmp ne i32 %1413, 0
  br i1 %1414, label %1415, label %1432

1415:                                             ; preds = %1410
  %1416 = load i32, ptr %30, align 4, !tbaa !5
  %1417 = call ptr @__errno_location() #11
  store i32 %1416, ptr %1417, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = load i32, ptr @test_count, align 4, !tbaa !5
  %1420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror(i32 noundef %1421, ptr noundef @.str.4)
  %1423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef @.str.4)
  %1426 = call ptr @__errno_location() #11
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @strerror(i32 noundef %1427) #10
  %1429 = call ptr @__errno_location() #11
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.2, i32 noundef %1419, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1422, ptr noundef %1425, ptr noundef %1428, i32 noundef %1430) #10
  br label %1449

1432:                                             ; preds = %1410, %1403
  %1433 = load i32, ptr %30, align 4, !tbaa !5
  %1434 = call ptr @__errno_location() #11
  store i32 %1433, ptr %1434, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = load i32, ptr @test_count, align 4, !tbaa !5
  %1437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1438 = load i32, ptr %1437, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror(i32 noundef %1438, ptr noundef @.str.4)
  %1440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1441 = load i32, ptr %1440, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror_debug(i32 noundef %1441, ptr noundef @.str.4)
  %1443 = call ptr @__errno_location() #11
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @strerror(i32 noundef %1444) #10
  %1446 = call ptr @__errno_location() #11
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1435, ptr noundef @.str.5, i32 noundef %1436, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1439, ptr noundef %1442, ptr noundef %1445, i32 noundef %1447) #10
  br label %1449

1449:                                             ; preds = %1432, %1415
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1450

1450:                                             ; preds = %1449
  br label %1451

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

1452:                                             ; No predecessors!
  br label %1453

1453:                                             ; preds = %1452
  br label %1454

1454:                                             ; preds = %1453, %1396
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = add nsw i32 %1458, 1
  store i32 %1459, ptr @test_count, align 4, !tbaa !5
  %1460 = load ptr, ptr %23, align 8, !tbaa !9
  %1461 = call i32 @s2n_connection_set_io_pair(ptr noundef %1460, ptr noundef %29)
  %1462 = icmp eq i32 %1461, -1
  br i1 %1462, label %1463, label %1516

1463:                                             ; preds = %1457
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %1466 = call ptr @__errno_location() #11
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  store i32 %1467, ptr %31, align 4, !tbaa !5
  %1468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1469 = call i32 @s2n_print_stacktrace(ptr noundef %1468)
  %1470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1471 = trunc i8 %1470 to i1
  br i1 %1471, label %1472, label %1494

1472:                                             ; preds = %1465
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @fileno(ptr noundef %1473) #10
  %1475 = call i32 @isatty(i32 noundef %1474) #10
  %1476 = icmp ne i32 %1475, 0
  br i1 %1476, label %1477, label %1494

1477:                                             ; preds = %1472
  %1478 = load i32, ptr %31, align 4, !tbaa !5
  %1479 = call ptr @__errno_location() #11
  store i32 %1478, ptr %1479, align 4, !tbaa !5
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef @.str.4)
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror_debug(i32 noundef %1486, ptr noundef @.str.4)
  %1488 = call ptr @__errno_location() #11
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #10
  %1491 = call ptr @__errno_location() #11
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1480, ptr noundef @.str.2, i32 noundef %1481, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1484, ptr noundef %1487, ptr noundef %1490, i32 noundef %1492) #10
  br label %1511

1494:                                             ; preds = %1472, %1465
  %1495 = load i32, ptr %31, align 4, !tbaa !5
  %1496 = call ptr @__errno_location() #11
  store i32 %1495, ptr %1496, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror(i32 noundef %1500, ptr noundef @.str.4)
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror_debug(i32 noundef %1503, ptr noundef @.str.4)
  %1505 = call ptr @__errno_location() #11
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @strerror(i32 noundef %1506) #10
  %1508 = call ptr @__errno_location() #11
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef @.str.5, i32 noundef %1498, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1501, ptr noundef %1504, ptr noundef %1507, i32 noundef %1509) #10
  br label %1511

1511:                                             ; preds = %1494, %1477
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

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

1514:                                             ; No predecessors!
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515, %1457
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr @test_count, align 4, !tbaa !5
  %1522 = load ptr, ptr %26, align 8, !tbaa !9
  %1523 = call i32 @s2n_connection_set_io_pair(ptr noundef %1522, ptr noundef %29)
  %1524 = icmp eq i32 %1523, -1
  br i1 %1524, label %1525, label %1578

1525:                                             ; preds = %1519
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1528 = call ptr @__errno_location() #11
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  store i32 %1529, ptr %32, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530)
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc i8 %1532 to i1
  br i1 %1533, label %1534, label %1556

1534:                                             ; preds = %1527
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #10
  %1537 = call i32 @isatty(i32 noundef %1536) #10
  %1538 = icmp ne i32 %1537, 0
  br i1 %1538, label %1539, label %1556

1539:                                             ; preds = %1534
  %1540 = load i32, ptr %32, align 4, !tbaa !5
  %1541 = call ptr @__errno_location() #11
  store i32 %1540, ptr %1541, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror(i32 noundef %1545, ptr noundef @.str.4)
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef @.str.4)
  %1550 = call ptr @__errno_location() #11
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @strerror(i32 noundef %1551) #10
  %1553 = call ptr @__errno_location() #11
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1542, ptr noundef @.str.2, i32 noundef %1543, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1546, ptr noundef %1549, ptr noundef %1552, i32 noundef %1554) #10
  br label %1573

1556:                                             ; preds = %1534, %1527
  %1557 = load i32, ptr %32, align 4, !tbaa !5
  %1558 = call ptr @__errno_location() #11
  store i32 %1557, ptr %1558, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef @.str.4)
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror_debug(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call ptr @__errno_location() #11
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @strerror(i32 noundef %1568) #10
  %1570 = call ptr @__errno_location() #11
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1559, ptr noundef @.str.5, i32 noundef %1560, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1563, ptr noundef %1566, ptr noundef %1569, i32 noundef %1571) #10
  br label %1573

1573:                                             ; preds = %1556, %1539
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

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

1576:                                             ; No predecessors!
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

1578:                                             ; preds = %1577, %1519
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = load ptr, ptr %26, align 8, !tbaa !9
  %1585 = load ptr, ptr %23, align 8, !tbaa !9
  %1586 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1584, ptr noundef %1585, i32 noundef 7)
  %1587 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %1586, ptr %1587, align 4
  %1588 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  %1589 = load i32, ptr %1588, align 4
  %1590 = call zeroext i1 @s2n_result_is_ok(i32 %1589)
  br i1 %1590, label %1644, label %1591

1591:                                             ; preds = %1581
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1594 = call ptr @__errno_location() #11
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  store i32 %1595, ptr %34, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = call i32 @s2n_print_stacktrace(ptr noundef %1596)
  %1598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1599 = trunc i8 %1598 to i1
  br i1 %1599, label %1600, label %1622

1600:                                             ; preds = %1593
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = call i32 @fileno(ptr noundef %1601) #10
  %1603 = call i32 @isatty(i32 noundef %1602) #10
  %1604 = icmp ne i32 %1603, 0
  br i1 %1604, label %1605, label %1622

1605:                                             ; preds = %1600
  %1606 = load i32, ptr %34, align 4, !tbaa !5
  %1607 = call ptr @__errno_location() #11
  store i32 %1606, ptr %1607, 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 @.str.4)
  %1613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef @.str.4)
  %1616 = call ptr @__errno_location() #11
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @strerror(i32 noundef %1617) #10
  %1619 = call ptr @__errno_location() #11
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef @.str.2, i32 noundef %1609, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1612, ptr noundef %1615, ptr noundef %1618, i32 noundef %1620) #10
  br label %1639

1622:                                             ; preds = %1600, %1593
  %1623 = load i32, ptr %34, align 4, !tbaa !5
  %1624 = call ptr @__errno_location() #11
  store i32 %1623, ptr %1624, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror(i32 noundef %1628, ptr noundef @.str.4)
  %1630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror_debug(i32 noundef %1631, ptr noundef @.str.4)
  %1633 = call ptr @__errno_location() #11
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @strerror(i32 noundef %1634) #10
  %1636 = call ptr @__errno_location() #11
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef @.str.5, i32 noundef %1626, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 110, ptr noundef %1629, ptr noundef %1632, ptr noundef %1635, i32 noundef %1637) #10
  br label %1639

1639:                                             ; preds = %1622, %1605
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

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

1642:                                             ; No predecessors!
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

1644:                                             ; preds = %1643, %1581
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = add nsw i32 %1648, 1
  store i32 %1649, ptr @test_count, align 4, !tbaa !5
  %1650 = load ptr, ptr %26, align 8, !tbaa !9
  %1651 = getelementptr inbounds %struct.s2n_connection, ptr %1650, i32 0, i32 30
  %1652 = load ptr, ptr %1651, align 8, !tbaa !15
  %1653 = load ptr, ptr %26, align 8, !tbaa !9
  %1654 = getelementptr inbounds %struct.s2n_connection, ptr %1653, i32 0, i32 26
  %1655 = load ptr, ptr %1654, align 8, !tbaa !42
  %1656 = icmp eq ptr %1652, %1655
  br i1 %1656, label %1710, label %1657

1657:                                             ; preds = %1647
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

1659:                                             ; preds = %1658
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1660 = call ptr @__errno_location() #11
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  store i32 %1661, ptr %35, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @s2n_print_stacktrace(ptr noundef %1662)
  %1664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1665 = trunc i8 %1664 to i1
  br i1 %1665, label %1666, label %1688

1666:                                             ; preds = %1659
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @fileno(ptr noundef %1667) #10
  %1669 = call i32 @isatty(i32 noundef %1668) #10
  %1670 = icmp ne i32 %1669, 0
  br i1 %1670, label %1671, label %1688

1671:                                             ; preds = %1666
  %1672 = load i32, ptr %35, align 4, !tbaa !5
  %1673 = call ptr @__errno_location() #11
  store i32 %1672, ptr %1673, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call ptr @s2n_strerror(i32 noundef %1677, ptr noundef @.str.4)
  %1679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror_debug(i32 noundef %1680, ptr noundef @.str.4)
  %1682 = call ptr @__errno_location() #11
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call ptr @strerror(i32 noundef %1683) #10
  %1685 = call ptr @__errno_location() #11
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef @.str.2, i32 noundef %1675, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1678, ptr noundef %1681, ptr noundef %1684, i32 noundef %1686) #10
  br label %1705

1688:                                             ; preds = %1666, %1659
  %1689 = load i32, ptr %35, align 4, !tbaa !5
  %1690 = call ptr @__errno_location() #11
  store i32 %1689, ptr %1690, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror(i32 noundef %1694, ptr noundef @.str.4)
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror_debug(i32 noundef %1697, ptr noundef @.str.4)
  %1699 = call ptr @__errno_location() #11
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @strerror(i32 noundef %1700) #10
  %1702 = call ptr @__errno_location() #11
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1691, ptr noundef @.str.5, i32 noundef %1692, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1695, ptr noundef %1698, ptr noundef %1701, i32 noundef %1703) #10
  br label %1705

1705:                                             ; preds = %1688, %1671
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1706

1706:                                             ; preds = %1705
  br label %1707

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

1708:                                             ; No predecessors!
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709, %1647
  br label %1711

1711:                                             ; preds = %1710
  br label %1712

1712:                                             ; preds = %1711
  br label %1713

1713:                                             ; preds = %1712
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = add nsw i32 %1714, 1
  store i32 %1715, ptr @test_count, align 4, !tbaa !5
  %1716 = load ptr, ptr %26, align 8, !tbaa !9
  %1717 = call i32 @s2n_send_client_hello_request(ptr noundef %1716)
  %1718 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1717, ptr %1718, align 4
  %1719 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1720 = load i32, ptr %1719, align 4
  %1721 = call zeroext i1 @s2n_result_is_ok(i32 %1720)
  br i1 %1721, label %1775, label %1722

1722:                                             ; preds = %1713
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

1724:                                             ; preds = %1723
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1725 = call ptr @__errno_location() #11
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  store i32 %1726, ptr %37, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @s2n_print_stacktrace(ptr noundef %1727)
  %1729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1730 = trunc i8 %1729 to i1
  br i1 %1730, label %1731, label %1753

1731:                                             ; preds = %1724
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = call i32 @fileno(ptr noundef %1732) #10
  %1734 = call i32 @isatty(i32 noundef %1733) #10
  %1735 = icmp ne i32 %1734, 0
  br i1 %1735, label %1736, label %1753

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

1753:                                             ; preds = %1731, %1724
  %1754 = load i32, ptr %37, align 4, !tbaa !5
  %1755 = call ptr @__errno_location() #11
  store i32 %1754, ptr %1755, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef @.str.4)
  %1761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror_debug(i32 noundef %1762, ptr noundef @.str.4)
  %1764 = call ptr @__errno_location() #11
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = call ptr @strerror(i32 noundef %1765) #10
  %1767 = call ptr @__errno_location() #11
  %1768 = load i32, ptr %1767, align 4, !tbaa !5
  %1769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1756, ptr noundef @.str.5, i32 noundef %1757, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 114, ptr noundef %1760, ptr noundef %1763, ptr noundef %1766, i32 noundef %1768) #10
  br label %1770

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

1771:                                             ; preds = %1770
  br label %1772

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

1773:                                             ; No predecessors!
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774, %1713
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = add nsw i32 %1779, 1
  store i32 %1780, ptr @test_count, align 4, !tbaa !5
  %1781 = load ptr, ptr %26, align 8, !tbaa !9
  %1782 = load ptr, ptr %23, align 8, !tbaa !9
  %1783 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1781, ptr noundef %1782)
  %1784 = icmp eq i32 %1783, -1
  br i1 %1784, label %1785, label %1838

1785:                                             ; preds = %1778
  br label %1786

1786:                                             ; preds = %1785
  br label %1787

1787:                                             ; preds = %1786
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1788 = call ptr @__errno_location() #11
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  store i32 %1789, ptr %38, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @s2n_print_stacktrace(ptr noundef %1790)
  %1792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1793 = trunc i8 %1792 to i1
  br i1 %1793, label %1794, label %1816

1794:                                             ; preds = %1787
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @fileno(ptr noundef %1795) #10
  %1797 = call i32 @isatty(i32 noundef %1796) #10
  %1798 = icmp ne i32 %1797, 0
  br i1 %1798, label %1799, label %1816

1799:                                             ; preds = %1794
  %1800 = load i32, ptr %38, align 4, !tbaa !5
  %1801 = call ptr @__errno_location() #11
  store i32 %1800, ptr %1801, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror(i32 noundef %1805, ptr noundef @.str.4)
  %1807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror_debug(i32 noundef %1808, ptr noundef @.str.4)
  %1810 = call ptr @__errno_location() #11
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @strerror(i32 noundef %1811) #10
  %1813 = call ptr @__errno_location() #11
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1802, ptr noundef @.str.2, i32 noundef %1803, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1806, ptr noundef %1809, ptr noundef %1812, i32 noundef %1814) #10
  br label %1833

1816:                                             ; preds = %1794, %1787
  %1817 = load i32, ptr %38, align 4, !tbaa !5
  %1818 = call ptr @__errno_location() #11
  store i32 %1817, ptr %1818, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1822 = load i32, ptr %1821, align 4, !tbaa !5
  %1823 = call ptr @s2n_strerror(i32 noundef %1822, ptr noundef @.str.4)
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef @.str.4)
  %1827 = call ptr @__errno_location() #11
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @strerror(i32 noundef %1828) #10
  %1830 = call ptr @__errno_location() #11
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef @.str.5, i32 noundef %1820, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1823, ptr noundef %1826, ptr noundef %1829, i32 noundef %1831) #10
  br label %1833

1833:                                             ; preds = %1816, %1799
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

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

1836:                                             ; No predecessors!
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

1838:                                             ; preds = %1837, %1778
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  %1841 = call i32 @s2n_io_pair_close(ptr noundef %29)
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  %1842 = call i32 @s2n_connection_ptr_free(ptr noundef %26)
  %1843 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1842, ptr %1843, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  %1844 = call i32 @s2n_connection_ptr_free(ptr noundef %23)
  %1845 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1844, ptr %1845, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  %1846 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %1846, label %1847, label %3001

1847:                                             ; preds = %1840
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %1848 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1848, ptr %41, align 8, !tbaa !9
  br label %1849

1849:                                             ; preds = %1847
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = add nsw i32 %1850, 1
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %1852 = load ptr, ptr %41, align 8, !tbaa !9
  %1853 = icmp eq ptr %1852, null
  br i1 %1853, label %1854, label %1907

1854:                                             ; preds = %1849
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %1857 = call ptr @__errno_location() #11
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  store i32 %1858, ptr %42, align 4, !tbaa !5
  %1859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1860 = call i32 @s2n_print_stacktrace(ptr noundef %1859)
  %1861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1862 = trunc i8 %1861 to i1
  br i1 %1862, label %1863, label %1885

1863:                                             ; preds = %1856
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @fileno(ptr noundef %1864) #10
  %1866 = call i32 @isatty(i32 noundef %1865) #10
  %1867 = icmp ne i32 %1866, 0
  br i1 %1867, label %1868, label %1885

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

1885:                                             ; preds = %1863, %1856
  %1886 = load i32, ptr %42, align 4, !tbaa !5
  %1887 = call ptr @__errno_location() #11
  store i32 %1886, ptr %1887, align 4, !tbaa !5
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror(i32 noundef %1891, ptr noundef @.str.4)
  %1893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  %1895 = call ptr @s2n_strerror_debug(i32 noundef %1894, ptr noundef @.str.4)
  %1896 = call ptr @__errno_location() #11
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @strerror(i32 noundef %1897) #10
  %1899 = call ptr @__errno_location() #11
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1888, ptr noundef @.str.5, i32 noundef %1889, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1892, ptr noundef %1895, ptr noundef %1898, i32 noundef %1900) #10
  br label %1902

1902:                                             ; preds = %1885, %1868
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1903

1903:                                             ; preds = %1902
  br label %1904

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

1905:                                             ; No predecessors!
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

1907:                                             ; preds = %1906, %1849
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

1910:                                             ; preds = %1909
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = add nsw i32 %1911, 1
  store i32 %1912, ptr @test_count, align 4, !tbaa !5
  %1913 = load ptr, ptr %41, align 8, !tbaa !9
  %1914 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %1913, ptr noundef @.str.35)
  %1915 = icmp eq i32 %1914, -1
  br i1 %1915, label %1916, label %1969

1916:                                             ; preds = %1910
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1919 = call ptr @__errno_location() #11
  %1920 = load i32, ptr %1919, align 4, !tbaa !5
  store i32 %1920, ptr %43, align 4, !tbaa !5
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = call i32 @s2n_print_stacktrace(ptr noundef %1921)
  %1923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1924 = trunc i8 %1923 to i1
  br i1 %1924, label %1925, label %1947

1925:                                             ; preds = %1918
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = call i32 @fileno(ptr noundef %1926) #10
  %1928 = call i32 @isatty(i32 noundef %1927) #10
  %1929 = icmp ne i32 %1928, 0
  br i1 %1929, label %1930, label %1947

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

1947:                                             ; preds = %1925, %1918
  %1948 = load i32, ptr %43, align 4, !tbaa !5
  %1949 = call ptr @__errno_location() #11
  store i32 %1948, ptr %1949, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call ptr @s2n_strerror(i32 noundef %1953, ptr noundef @.str.4)
  %1955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror_debug(i32 noundef %1956, ptr noundef @.str.4)
  %1958 = call ptr @__errno_location() #11
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @strerror(i32 noundef %1959) #10
  %1961 = call ptr @__errno_location() #11
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1950, ptr noundef @.str.5, i32 noundef %1951, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 125, ptr noundef %1954, ptr noundef %1957, ptr noundef %1960, i32 noundef %1962) #10
  br label %1964

1964:                                             ; preds = %1947, %1930
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1965

1965:                                             ; preds = %1964
  br label %1966

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

1967:                                             ; No predecessors!
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968, %1910
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = add nsw i32 %1973, 1
  store i32 %1974, ptr @test_count, align 4, !tbaa !5
  %1975 = load ptr, ptr %41, align 8, !tbaa !9
  %1976 = load ptr, ptr %12, align 8, !tbaa !9
  %1977 = call i32 @s2n_connection_set_config(ptr noundef %1975, ptr noundef %1976)
  %1978 = icmp eq i32 %1977, -1
  br i1 %1978, label %1979, label %2032

1979:                                             ; preds = %1972
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

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

1988:                                             ; preds = %1981
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @fileno(ptr noundef %1989) #10
  %1991 = call i32 @isatty(i32 noundef %1990) #10
  %1992 = icmp ne i32 %1991, 0
  br i1 %1992, label %1993, label %2010

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

2010:                                             ; preds = %1988, %1981
  %2011 = load i32, ptr %44, align 4, !tbaa !5
  %2012 = call ptr @__errno_location() #11
  store i32 %2011, ptr %2012, align 4, !tbaa !5
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef @.str.4)
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef @.str.4)
  %2021 = call ptr @__errno_location() #11
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #10
  %2024 = call ptr @__errno_location() #11
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2013, ptr noundef @.str.5, i32 noundef %2014, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2017, ptr noundef %2020, ptr noundef %2023, i32 noundef %2025) #10
  br label %2027

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

2028:                                             ; preds = %2027
  br label %2029

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

2030:                                             ; No predecessors!
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031, %1972
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %2035 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2035, ptr %45, align 8, !tbaa !9
  br label %2036

2036:                                             ; preds = %2034
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = load ptr, ptr %45, align 8, !tbaa !9
  %2040 = icmp eq ptr %2039, null
  br i1 %2040, label %2041, label %2094

2041:                                             ; preds = %2036
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %2044 = call ptr @__errno_location() #11
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  store i32 %2045, ptr %46, align 4, !tbaa !5
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = call i32 @s2n_print_stacktrace(ptr noundef %2046)
  %2048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2049 = trunc i8 %2048 to i1
  br i1 %2049, label %2050, label %2072

2050:                                             ; preds = %2043
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = call i32 @fileno(ptr noundef %2051) #10
  %2053 = call i32 @isatty(i32 noundef %2052) #10
  %2054 = icmp ne i32 %2053, 0
  br i1 %2054, label %2055, label %2072

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

2072:                                             ; preds = %2050, %2043
  %2073 = load i32, ptr %46, align 4, !tbaa !5
  %2074 = call ptr @__errno_location() #11
  store i32 %2073, ptr %2074, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef @.str.4)
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror_debug(i32 noundef %2081, ptr noundef @.str.4)
  %2083 = call ptr @__errno_location() #11
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @strerror(i32 noundef %2084) #10
  %2086 = call ptr @__errno_location() #11
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef @.str.5, i32 noundef %2076, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2079, ptr noundef %2082, ptr noundef %2085, i32 noundef %2087) #10
  br label %2089

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

2090:                                             ; preds = %2089
  br label %2091

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

2092:                                             ; No predecessors!
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093, %2036
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

2097:                                             ; preds = %2096
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = add nsw i32 %2098, 1
  store i32 %2099, ptr @test_count, align 4, !tbaa !5
  %2100 = load ptr, ptr %45, align 8, !tbaa !9
  %2101 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %2100, ptr noundef @.str.35)
  %2102 = icmp eq i32 %2101, -1
  br i1 %2102, label %2103, label %2156

2103:                                             ; preds = %2097
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %2106 = call ptr @__errno_location() #11
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  store i32 %2107, ptr %47, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = call i32 @s2n_print_stacktrace(ptr noundef %2108)
  %2110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2111 = trunc i8 %2110 to i1
  br i1 %2111, label %2112, label %2134

2112:                                             ; preds = %2105
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = call i32 @fileno(ptr noundef %2113) #10
  %2115 = call i32 @isatty(i32 noundef %2114) #10
  %2116 = icmp ne i32 %2115, 0
  br i1 %2116, label %2117, label %2134

2117:                                             ; preds = %2112
  %2118 = load i32, ptr %47, align 4, !tbaa !5
  %2119 = call ptr @__errno_location() #11
  store i32 %2118, ptr %2119, align 4, !tbaa !5
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = load i32, ptr @test_count, align 4, !tbaa !5
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef @.str.4)
  %2125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror_debug(i32 noundef %2126, ptr noundef @.str.4)
  %2128 = call ptr @__errno_location() #11
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @strerror(i32 noundef %2129) #10
  %2131 = call ptr @__errno_location() #11
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2120, ptr noundef @.str.2, i32 noundef %2121, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2124, ptr noundef %2127, ptr noundef %2130, i32 noundef %2132) #10
  br label %2151

2134:                                             ; preds = %2112, %2105
  %2135 = load i32, ptr %47, align 4, !tbaa !5
  %2136 = call ptr @__errno_location() #11
  store i32 %2135, ptr %2136, align 4, !tbaa !5
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror(i32 noundef %2140, ptr noundef @.str.4)
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror_debug(i32 noundef %2143, ptr noundef @.str.4)
  %2145 = call ptr @__errno_location() #11
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #10
  %2148 = call ptr @__errno_location() #11
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2137, ptr noundef @.str.5, i32 noundef %2138, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2141, ptr noundef %2144, ptr noundef %2147, i32 noundef %2149) #10
  br label %2151

2151:                                             ; preds = %2134, %2117
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2152

2152:                                             ; preds = %2151
  br label %2153

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

2154:                                             ; No predecessors!
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155, %2097
  br label %2157

2157:                                             ; preds = %2156
  br label %2158

2158:                                             ; preds = %2157
  br label %2159

2159:                                             ; preds = %2158
  %2160 = load i32, ptr @test_count, align 4, !tbaa !5
  %2161 = add nsw i32 %2160, 1
  store i32 %2161, ptr @test_count, align 4, !tbaa !5
  %2162 = load ptr, ptr %45, align 8, !tbaa !9
  %2163 = load ptr, ptr %12, align 8, !tbaa !9
  %2164 = call i32 @s2n_connection_set_config(ptr noundef %2162, ptr noundef %2163)
  %2165 = icmp eq i32 %2164, -1
  br i1 %2165, label %2166, label %2219

2166:                                             ; preds = %2159
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %2169 = call ptr @__errno_location() #11
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  store i32 %2170, ptr %48, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = call i32 @s2n_print_stacktrace(ptr noundef %2171)
  %2173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2174 = trunc i8 %2173 to i1
  br i1 %2174, label %2175, label %2197

2175:                                             ; preds = %2168
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = call i32 @fileno(ptr noundef %2176) #10
  %2178 = call i32 @isatty(i32 noundef %2177) #10
  %2179 = icmp ne i32 %2178, 0
  br i1 %2179, label %2180, label %2197

2180:                                             ; preds = %2175
  %2181 = load i32, ptr %48, align 4, !tbaa !5
  %2182 = call ptr @__errno_location() #11
  store i32 %2181, ptr %2182, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror(i32 noundef %2186, ptr noundef @.str.4)
  %2188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror_debug(i32 noundef %2189, ptr noundef @.str.4)
  %2191 = call ptr @__errno_location() #11
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @strerror(i32 noundef %2192) #10
  %2194 = call ptr @__errno_location() #11
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2183, ptr noundef @.str.2, i32 noundef %2184, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2187, ptr noundef %2190, ptr noundef %2193, i32 noundef %2195) #10
  br label %2214

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

2214:                                             ; preds = %2197, %2180
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

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

2217:                                             ; No predecessors!
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218, %2159
  br label %2220

2220:                                             ; preds = %2219
  br label %2221

2221:                                             ; preds = %2220
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  call void @llvm.memset.p0.i64(ptr align 4 %49, i8 0, i64 8, i1 false)
  br label %2222

2222:                                             ; preds = %2221
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = add nsw i32 %2223, 1
  store i32 %2224, ptr @test_count, align 4, !tbaa !5
  %2225 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %49)
  %2226 = icmp eq i32 %2225, -1
  br i1 %2226, label %2227, label %2280

2227:                                             ; preds = %2222
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2230 = call ptr @__errno_location() #11
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  store i32 %2231, ptr %50, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @s2n_print_stacktrace(ptr noundef %2232)
  %2234 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2235 = trunc i8 %2234 to i1
  br i1 %2235, label %2236, label %2258

2236:                                             ; preds = %2229
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @fileno(ptr noundef %2237) #10
  %2239 = call i32 @isatty(i32 noundef %2238) #10
  %2240 = icmp ne i32 %2239, 0
  br i1 %2240, label %2241, label %2258

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

2258:                                             ; preds = %2236, %2229
  %2259 = load i32, ptr %50, align 4, !tbaa !5
  %2260 = call ptr @__errno_location() #11
  store i32 %2259, ptr %2260, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef @.str.4)
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef @.str.4)
  %2269 = call ptr @__errno_location() #11
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @strerror(i32 noundef %2270) #10
  %2272 = call ptr @__errno_location() #11
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef @.str.5, i32 noundef %2262, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2265, ptr noundef %2268, ptr noundef %2271, i32 noundef %2273) #10
  br label %2275

2275:                                             ; preds = %2258, %2241
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

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

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278
  br label %2280

2280:                                             ; preds = %2279, %2222
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  br label %2283

2283:                                             ; preds = %2282
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = add nsw i32 %2284, 1
  store i32 %2285, ptr @test_count, align 4, !tbaa !5
  %2286 = load ptr, ptr %41, align 8, !tbaa !9
  %2287 = call i32 @s2n_connection_set_io_pair(ptr noundef %2286, ptr noundef %49)
  %2288 = icmp eq i32 %2287, -1
  br i1 %2288, label %2289, label %2342

2289:                                             ; preds = %2283
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2292 = call ptr @__errno_location() #11
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  store i32 %2293, ptr %51, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = call i32 @s2n_print_stacktrace(ptr noundef %2294)
  %2296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2297 = trunc i8 %2296 to i1
  br i1 %2297, label %2298, label %2320

2298:                                             ; preds = %2291
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = call i32 @fileno(ptr noundef %2299) #10
  %2301 = call i32 @isatty(i32 noundef %2300) #10
  %2302 = icmp ne i32 %2301, 0
  br i1 %2302, label %2303, label %2320

2303:                                             ; preds = %2298
  %2304 = load i32, ptr %51, align 4, !tbaa !5
  %2305 = call ptr @__errno_location() #11
  store i32 %2304, ptr %2305, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2309, ptr noundef @.str.4)
  %2311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror_debug(i32 noundef %2312, ptr noundef @.str.4)
  %2314 = call ptr @__errno_location() #11
  %2315 = load i32, ptr %2314, align 4, !tbaa !5
  %2316 = call ptr @strerror(i32 noundef %2315) #10
  %2317 = call ptr @__errno_location() #11
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2306, ptr noundef @.str.2, i32 noundef %2307, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2310, ptr noundef %2313, ptr noundef %2316, i32 noundef %2318) #10
  br label %2337

2320:                                             ; preds = %2298, %2291
  %2321 = load i32, ptr %51, align 4, !tbaa !5
  %2322 = call ptr @__errno_location() #11
  store i32 %2321, ptr %2322, align 4, !tbaa !5
  %2323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2324 = load i32, ptr @test_count, align 4, !tbaa !5
  %2325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror(i32 noundef %2326, ptr noundef @.str.4)
  %2328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror_debug(i32 noundef %2329, ptr noundef @.str.4)
  %2331 = call ptr @__errno_location() #11
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @strerror(i32 noundef %2332) #10
  %2334 = call ptr @__errno_location() #11
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2323, ptr noundef @.str.5, i32 noundef %2324, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2327, ptr noundef %2330, ptr noundef %2333, i32 noundef %2335) #10
  br label %2337

2337:                                             ; preds = %2320, %2303
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2338

2338:                                             ; preds = %2337
  br label %2339

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

2340:                                             ; No predecessors!
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

2342:                                             ; preds = %2341, %2283
  br label %2343

2343:                                             ; preds = %2342
  br label %2344

2344:                                             ; preds = %2343
  br label %2345

2345:                                             ; preds = %2344
  %2346 = load i32, ptr @test_count, align 4, !tbaa !5
  %2347 = add nsw i32 %2346, 1
  store i32 %2347, ptr @test_count, align 4, !tbaa !5
  %2348 = load ptr, ptr %45, align 8, !tbaa !9
  %2349 = call i32 @s2n_connection_set_io_pair(ptr noundef %2348, ptr noundef %49)
  %2350 = icmp eq i32 %2349, -1
  br i1 %2350, label %2351, label %2404

2351:                                             ; preds = %2345
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2354 = call ptr @__errno_location() #11
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  store i32 %2355, ptr %52, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @s2n_print_stacktrace(ptr noundef %2356)
  %2358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2359 = trunc i8 %2358 to i1
  br i1 %2359, label %2360, label %2382

2360:                                             ; preds = %2353
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @fileno(ptr noundef %2361) #10
  %2363 = call i32 @isatty(i32 noundef %2362) #10
  %2364 = icmp ne i32 %2363, 0
  br i1 %2364, label %2365, label %2382

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

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

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

2400:                                             ; preds = %2399
  br label %2401

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

2402:                                             ; No predecessors!
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

2404:                                             ; preds = %2403, %2345
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

2407:                                             ; preds = %2406
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = load ptr, ptr %45, align 8, !tbaa !9
  %2411 = load ptr, ptr %41, align 8, !tbaa !9
  %2412 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %2410, ptr noundef %2411, i32 noundef 1)
  %2413 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  store i32 %2412, ptr %2413, align 4
  %2414 = getelementptr inbounds %struct.s2n_result, ptr %53, i32 0, i32 0
  %2415 = load i32, ptr %2414, align 4
  %2416 = call zeroext i1 @s2n_result_is_ok(i32 %2415)
  br i1 %2416, label %2470, label %2417

2417:                                             ; preds = %2407
  br label %2418

2418:                                             ; preds = %2417
  br label %2419

2419:                                             ; preds = %2418
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2420 = call ptr @__errno_location() #11
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  store i32 %2421, ptr %54, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @s2n_print_stacktrace(ptr noundef %2422)
  %2424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2425 = trunc i8 %2424 to i1
  br i1 %2425, label %2426, label %2448

2426:                                             ; preds = %2419
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = call i32 @fileno(ptr noundef %2427) #10
  %2429 = call i32 @isatty(i32 noundef %2428) #10
  %2430 = icmp ne i32 %2429, 0
  br i1 %2430, label %2431, label %2448

2431:                                             ; preds = %2426
  %2432 = load i32, ptr %54, align 4, !tbaa !5
  %2433 = call ptr @__errno_location() #11
  store i32 %2432, ptr %2433, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @s2n_strerror(i32 noundef %2437, ptr noundef @.str.4)
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror_debug(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call ptr @__errno_location() #11
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #10
  %2445 = call ptr @__errno_location() #11
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2434, ptr noundef @.str.2, i32 noundef %2435, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2438, ptr noundef %2441, ptr noundef %2444, i32 noundef %2446) #10
  br label %2465

2448:                                             ; preds = %2426, %2419
  %2449 = load i32, ptr %54, align 4, !tbaa !5
  %2450 = call ptr @__errno_location() #11
  store i32 %2449, ptr %2450, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef @.str.4)
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call ptr @__errno_location() #11
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @strerror(i32 noundef %2460) #10
  %2462 = call ptr @__errno_location() #11
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2451, ptr noundef @.str.5, i32 noundef %2452, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2455, ptr noundef %2458, ptr noundef %2461, i32 noundef %2463) #10
  br label %2465

2465:                                             ; preds = %2448, %2431
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

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

2468:                                             ; No predecessors!
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

2470:                                             ; preds = %2469, %2407
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472
  %2474 = load i32, ptr @test_count, align 4, !tbaa !5
  %2475 = add nsw i32 %2474, 1
  store i32 %2475, ptr @test_count, align 4, !tbaa !5
  %2476 = load ptr, ptr %45, align 8, !tbaa !9
  %2477 = call i32 @s2n_send_client_hello_request(ptr noundef %2476)
  %2478 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2477, ptr %2478, align 4
  %2479 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  %2480 = load i32, ptr %2479, align 4
  %2481 = call zeroext i1 @s2n_result_is_ok(i32 %2480)
  br i1 %2481, label %2535, label %2482

2482:                                             ; preds = %2473
  br label %2483

2483:                                             ; preds = %2482
  br label %2484

2484:                                             ; preds = %2483
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2485 = call ptr @__errno_location() #11
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  store i32 %2486, ptr %56, align 4, !tbaa !5
  %2487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2488 = call i32 @s2n_print_stacktrace(ptr noundef %2487)
  %2489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2490 = trunc i8 %2489 to i1
  br i1 %2490, label %2491, label %2513

2491:                                             ; preds = %2484
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = call i32 @fileno(ptr noundef %2492) #10
  %2494 = call i32 @isatty(i32 noundef %2493) #10
  %2495 = icmp ne i32 %2494, 0
  br i1 %2495, label %2496, label %2513

2496:                                             ; preds = %2491
  %2497 = load i32, ptr %56, align 4, !tbaa !5
  %2498 = call ptr @__errno_location() #11
  store i32 %2497, ptr %2498, align 4, !tbaa !5
  %2499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %2501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror(i32 noundef %2502, ptr noundef @.str.4)
  %2504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @s2n_strerror_debug(i32 noundef %2505, ptr noundef @.str.4)
  %2507 = call ptr @__errno_location() #11
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call ptr @strerror(i32 noundef %2508) #10
  %2510 = call ptr @__errno_location() #11
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2499, ptr noundef @.str.2, i32 noundef %2500, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2503, ptr noundef %2506, ptr noundef %2509, i32 noundef %2511) #10
  br label %2530

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

2530:                                             ; preds = %2513, %2496
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

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

2533:                                             ; No predecessors!
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534, %2473
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

2538:                                             ; preds = %2537
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = add nsw i32 %2539, 1
  store i32 %2540, ptr @test_count, align 4, !tbaa !5
  %2541 = load ptr, ptr %45, align 8, !tbaa !9
  %2542 = load ptr, ptr %41, align 8, !tbaa !9
  %2543 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %2541, ptr noundef %2542, i32 noundef 16)
  %2544 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %2543, ptr %2544, align 4
  %2545 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %2546 = load i32, ptr %2545, align 4
  %2547 = call zeroext i1 @s2n_result_is_ok(i32 %2546)
  br i1 %2547, label %2601, label %2548

2548:                                             ; preds = %2538
  br label %2549

2549:                                             ; preds = %2548
  br label %2550

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

2557:                                             ; preds = %2550
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @fileno(ptr noundef %2558) #10
  %2560 = call i32 @isatty(i32 noundef %2559) #10
  %2561 = icmp ne i32 %2560, 0
  br i1 %2561, label %2562, label %2579

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

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

2596:                                             ; preds = %2579, %2562
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2597

2597:                                             ; preds = %2596
  br label %2598

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

2599:                                             ; No predecessors!
  br label %2600

2600:                                             ; preds = %2599
  br label %2601

2601:                                             ; preds = %2600, %2538
  br label %2602

2602:                                             ; preds = %2601
  br label %2603

2603:                                             ; preds = %2602
  br label %2604

2604:                                             ; preds = %2603
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = add nsw i32 %2605, 1
  store i32 %2606, ptr @test_count, align 4, !tbaa !5
  %2607 = load ptr, ptr %45, align 8, !tbaa !9
  %2608 = getelementptr inbounds %struct.s2n_connection, ptr %2607, i32 0, i32 23
  %2609 = load i8, ptr %2608, align 4, !tbaa !43
  %2610 = zext i8 %2609 to i32
  %2611 = icmp eq i32 %2610, 34
  br i1 %2611, label %2665, label %2612

2612:                                             ; preds = %2604
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

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

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

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

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

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

2661:                                             ; preds = %2660
  br label %2662

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

2663:                                             ; No predecessors!
  br label %2664

2664:                                             ; preds = %2663
  br label %2665

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

2666:                                             ; preds = %2665
  br label %2667

2667:                                             ; preds = %2666
  br label %2668

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

2676:                                             ; preds = %2668
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

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

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

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

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

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

2725:                                             ; preds = %2724
  br label %2726

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

2727:                                             ; No predecessors!
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

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

2730:                                             ; preds = %2729
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = add nsw i32 %2733, 1
  store i32 %2734, ptr @test_count, align 4, !tbaa !5
  %2735 = load ptr, ptr %45, align 8, !tbaa !9
  %2736 = call i32 @s2n_send_client_hello_request(ptr noundef %2735)
  %2737 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  store i32 %2736, ptr %2737, align 4
  %2738 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  %2739 = load i32, ptr %2738, align 4
  %2740 = call zeroext i1 @s2n_result_is_ok(i32 %2739)
  br i1 %2740, label %2794, label %2741

2741:                                             ; preds = %2732
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

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

2750:                                             ; preds = %2743
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @fileno(ptr noundef %2751) #10
  %2753 = call i32 @isatty(i32 noundef %2752) #10
  %2754 = icmp ne i32 %2753, 0
  br i1 %2754, label %2755, label %2772

2755:                                             ; preds = %2750
  %2756 = load i32, ptr %62, align 4, !tbaa !5
  %2757 = call ptr @__errno_location() #11
  store i32 %2756, ptr %2757, align 4, !tbaa !5
  %2758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2759 = load i32, ptr @test_count, align 4, !tbaa !5
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror(i32 noundef %2761, ptr noundef @.str.4)
  %2763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @s2n_strerror_debug(i32 noundef %2764, ptr noundef @.str.4)
  %2766 = call ptr @__errno_location() #11
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @strerror(i32 noundef %2767) #10
  %2769 = call ptr @__errno_location() #11
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2758, ptr noundef @.str.2, i32 noundef %2759, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2762, ptr noundef %2765, ptr noundef %2768, i32 noundef %2770) #10
  br label %2789

2772:                                             ; preds = %2750, %2743
  %2773 = load i32, ptr %62, align 4, !tbaa !5
  %2774 = call ptr @__errno_location() #11
  store i32 %2773, ptr %2774, align 4, !tbaa !5
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = load i32, ptr @test_count, align 4, !tbaa !5
  %2777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call ptr @s2n_strerror(i32 noundef %2778, ptr noundef @.str.4)
  %2780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call ptr @s2n_strerror_debug(i32 noundef %2781, ptr noundef @.str.4)
  %2783 = call ptr @__errno_location() #11
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @strerror(i32 noundef %2784) #10
  %2786 = call ptr @__errno_location() #11
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2775, ptr noundef @.str.5, i32 noundef %2776, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 155, ptr noundef %2779, ptr noundef %2782, ptr noundef %2785, i32 noundef %2787) #10
  br label %2789

2789:                                             ; preds = %2772, %2755
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2790

2790:                                             ; preds = %2789
  br label %2791

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

2792:                                             ; No predecessors!
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793, %2732
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

2799:                                             ; preds = %2798
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = add nsw i32 %2800, 1
  store i32 %2801, ptr @test_count, align 4, !tbaa !5
  %2802 = load ptr, ptr %45, align 8, !tbaa !9
  %2803 = load ptr, ptr %41, align 8, !tbaa !9
  %2804 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2802, ptr noundef %2803)
  %2805 = icmp eq i32 %2804, -1
  br i1 %2805, label %2859, label %2806

2806:                                             ; preds = %2799
  br label %2807

2807:                                             ; preds = %2806
  br label %2808

2808:                                             ; preds = %2807
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2809 = call ptr @__errno_location() #11
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  store i32 %2810, ptr %63, align 4, !tbaa !5
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = call i32 @s2n_print_stacktrace(ptr noundef %2811)
  %2813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2814 = trunc i8 %2813 to i1
  br i1 %2814, label %2815, label %2837

2815:                                             ; preds = %2808
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = call i32 @fileno(ptr noundef %2816) #10
  %2818 = call i32 @isatty(i32 noundef %2817) #10
  %2819 = icmp ne i32 %2818, 0
  br i1 %2819, label %2820, label %2837

2820:                                             ; preds = %2815
  %2821 = load i32, ptr %63, align 4, !tbaa !5
  %2822 = call ptr @__errno_location() #11
  store i32 %2821, ptr %2822, align 4, !tbaa !5
  %2823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2824 = load i32, ptr @test_count, align 4, !tbaa !5
  %2825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror(i32 noundef %2826, ptr noundef @.str.4)
  %2828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror_debug(i32 noundef %2829, ptr noundef @.str.4)
  %2831 = call ptr @__errno_location() #11
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @strerror(i32 noundef %2832) #10
  %2834 = call ptr @__errno_location() #11
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2823, ptr noundef @.str.2, i32 noundef %2824, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2827, ptr noundef %2830, ptr noundef %2833, i32 noundef %2835) #10
  br label %2854

2837:                                             ; preds = %2815, %2808
  %2838 = load i32, ptr %63, align 4, !tbaa !5
  %2839 = call ptr @__errno_location() #11
  store i32 %2838, ptr %2839, align 4, !tbaa !5
  %2840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2841 = load i32, ptr @test_count, align 4, !tbaa !5
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror(i32 noundef %2843, ptr noundef @.str.4)
  %2845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @s2n_strerror_debug(i32 noundef %2846, ptr noundef @.str.4)
  %2848 = call ptr @__errno_location() #11
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call ptr @strerror(i32 noundef %2849) #10
  %2851 = call ptr @__errno_location() #11
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2840, ptr noundef @.str.5, i32 noundef %2841, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2844, ptr noundef %2847, ptr noundef %2850, i32 noundef %2852) #10
  br label %2854

2854:                                             ; preds = %2837, %2820
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

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

2857:                                             ; No predecessors!
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858, %2799
  br label %2860

2860:                                             ; preds = %2859
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

2862:                                             ; preds = %2861
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = add nsw i32 %2863, 1
  store i32 %2864, ptr @test_count, align 4, !tbaa !5
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = icmp eq i32 %2866, 335544322
  br i1 %2867, label %2921, label %2868

2868:                                             ; preds = %2862
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2871 = call ptr @__errno_location() #11
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  store i32 %2872, ptr %64, align 4, !tbaa !5
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = call i32 @s2n_print_stacktrace(ptr noundef %2873)
  %2875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2876 = trunc i8 %2875 to i1
  br i1 %2876, label %2877, label %2899

2877:                                             ; preds = %2870
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @fileno(ptr noundef %2878) #10
  %2880 = call i32 @isatty(i32 noundef %2879) #10
  %2881 = icmp ne i32 %2880, 0
  br i1 %2881, label %2882, label %2899

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

2899:                                             ; preds = %2877, %2870
  %2900 = load i32, ptr %64, align 4, !tbaa !5
  %2901 = call ptr @__errno_location() #11
  store i32 %2900, ptr %2901, align 4, !tbaa !5
  %2902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2903 = load i32, ptr @test_count, align 4, !tbaa !5
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror(i32 noundef %2905, ptr noundef @.str.4)
  %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_debug(i32 noundef %2908, ptr noundef @.str.4)
  %2910 = call ptr @__errno_location() #11
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @strerror(i32 noundef %2911) #10
  %2913 = call ptr @__errno_location() #11
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2902, ptr noundef @.str.5, i32 noundef %2903, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2906, ptr noundef %2909, ptr noundef %2912, i32 noundef %2914) #10
  br label %2916

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

2917:                                             ; preds = %2916
  br label %2918

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

2919:                                             ; No predecessors!
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920, %2862
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922
  br label %2924

2924:                                             ; preds = %2923
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr @test_count, align 4, !tbaa !5
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = icmp eq ptr %2929, null
  br i1 %2930, label %2931, label %2984

2931:                                             ; preds = %2924
  br label %2932

2932:                                             ; preds = %2931
  br label %2933

2933:                                             ; preds = %2932
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2934 = call ptr @__errno_location() #11
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  store i32 %2935, ptr %65, align 4, !tbaa !5
  %2936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2937 = call i32 @s2n_print_stacktrace(ptr noundef %2936)
  %2938 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2939 = trunc i8 %2938 to i1
  br i1 %2939, label %2940, label %2962

2940:                                             ; preds = %2933
  %2941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2942 = call i32 @fileno(ptr noundef %2941) #10
  %2943 = call i32 @isatty(i32 noundef %2942) #10
  %2944 = icmp ne i32 %2943, 0
  br i1 %2944, label %2945, label %2962

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

2962:                                             ; preds = %2940, %2933
  %2963 = load i32, ptr %65, align 4, !tbaa !5
  %2964 = call ptr @__errno_location() #11
  store i32 %2963, ptr %2964, 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 @.str.4)
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror_debug(i32 noundef %2971, ptr noundef @.str.4)
  %2973 = call ptr @__errno_location() #11
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @strerror(i32 noundef %2974) #10
  %2976 = call ptr @__errno_location() #11
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2965, ptr noundef @.str.5, i32 noundef %2966, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2969, ptr noundef %2972, ptr noundef %2975, i32 noundef %2977) #10
  br label %2979

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

2980:                                             ; preds = %2979
  br label %2981

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

2982:                                             ; No predecessors!
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

2984:                                             ; preds = %2983, %2924
  br label %2985

2985:                                             ; preds = %2984
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2990, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2991 = call ptr @__errno_location() #11
  store i32 0, ptr %2991, align 4, !tbaa !5
  br label %2992

2992:                                             ; preds = %2989
  br label %2993

2993:                                             ; preds = %2992
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  %2996 = call i32 @s2n_io_pair_close(ptr noundef %49)
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  %2997 = call i32 @s2n_connection_ptr_free(ptr noundef %45)
  %2998 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %2997, ptr %2998, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  %2999 = call i32 @s2n_connection_ptr_free(ptr noundef %41)
  %3000 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %2999, ptr %3000, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %3001

3001:                                             ; preds = %2995, %1840
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %3002 = call ptr @s2n_config_new()
  store ptr %3002, ptr %68, align 8, !tbaa !9
  br label %3003

3003:                                             ; preds = %3001
  %3004 = load i32, ptr @test_count, align 4, !tbaa !5
  %3005 = add nsw i32 %3004, 1
  store i32 %3005, ptr @test_count, align 4, !tbaa !5
  %3006 = load ptr, ptr %68, align 8, !tbaa !9
  %3007 = icmp eq ptr %3006, null
  br i1 %3007, label %3008, label %3061

3008:                                             ; preds = %3003
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

3010:                                             ; preds = %3009
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %3011 = call ptr @__errno_location() #11
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  store i32 %3012, ptr %69, align 4, !tbaa !5
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @s2n_print_stacktrace(ptr noundef %3013)
  %3015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3016 = trunc i8 %3015 to i1
  br i1 %3016, label %3017, label %3039

3017:                                             ; preds = %3010
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = call i32 @fileno(ptr noundef %3018) #10
  %3020 = call i32 @isatty(i32 noundef %3019) #10
  %3021 = icmp ne i32 %3020, 0
  br i1 %3021, label %3022, label %3039

3022:                                             ; preds = %3017
  %3023 = load i32, ptr %69, align 4, !tbaa !5
  %3024 = call ptr @__errno_location() #11
  store i32 %3023, ptr %3024, align 4, !tbaa !5
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = load i32, ptr @test_count, align 4, !tbaa !5
  %3027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror(i32 noundef %3028, ptr noundef @.str.4)
  %3030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror_debug(i32 noundef %3031, ptr noundef @.str.4)
  %3033 = call ptr @__errno_location() #11
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @strerror(i32 noundef %3034) #10
  %3036 = call ptr @__errno_location() #11
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3025, ptr noundef @.str.2, i32 noundef %3026, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3029, ptr noundef %3032, ptr noundef %3035, i32 noundef %3037) #10
  br label %3056

3039:                                             ; preds = %3017, %3010
  %3040 = load i32, ptr %69, align 4, !tbaa !5
  %3041 = call ptr @__errno_location() #11
  store i32 %3040, ptr %3041, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = load i32, ptr @test_count, align 4, !tbaa !5
  %3044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror(i32 noundef %3045, ptr noundef @.str.4)
  %3047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @s2n_strerror_debug(i32 noundef %3048, ptr noundef @.str.4)
  %3050 = call ptr @__errno_location() #11
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @strerror(i32 noundef %3051) #10
  %3053 = call ptr @__errno_location() #11
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3042, ptr noundef @.str.5, i32 noundef %3043, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3046, ptr noundef %3049, ptr noundef %3052, i32 noundef %3054) #10
  br label %3056

3056:                                             ; preds = %3039, %3022
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

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

3059:                                             ; No predecessors!
  br label %3060

3060:                                             ; preds = %3059
  br label %3061

3061:                                             ; preds = %3060, %3003
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063
  %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 = load ptr, ptr %68, align 8, !tbaa !9
  %3068 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3067, ptr noundef @.str.15)
  %3069 = icmp eq i32 %3068, -1
  br i1 %3069, label %3070, label %3123

3070:                                             ; preds = %3064
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %3073 = call ptr @__errno_location() #11
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  store i32 %3074, ptr %70, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075)
  %3077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3078 = trunc i8 %3077 to i1
  br i1 %3078, label %3079, label %3101

3079:                                             ; preds = %3072
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @fileno(ptr noundef %3080) #10
  %3082 = call i32 @isatty(i32 noundef %3081) #10
  %3083 = icmp ne i32 %3082, 0
  br i1 %3083, label %3084, label %3101

3084:                                             ; preds = %3079
  %3085 = load i32, ptr %70, align 4, !tbaa !5
  %3086 = call ptr @__errno_location() #11
  store i32 %3085, ptr %3086, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror(i32 noundef %3090, ptr noundef @.str.4)
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror_debug(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call ptr @__errno_location() #11
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #10
  %3098 = call ptr @__errno_location() #11
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3087, ptr noundef @.str.2, i32 noundef %3088, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3091, ptr noundef %3094, ptr noundef %3097, i32 noundef %3099) #10
  br label %3118

3101:                                             ; preds = %3079, %3072
  %3102 = load i32, ptr %70, align 4, !tbaa !5
  %3103 = call ptr @__errno_location() #11
  store i32 %3102, ptr %3103, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = load i32, ptr @test_count, align 4, !tbaa !5
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror(i32 noundef %3107, ptr noundef @.str.4)
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror_debug(i32 noundef %3110, ptr noundef @.str.4)
  %3112 = call ptr @__errno_location() #11
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @strerror(i32 noundef %3113) #10
  %3115 = call ptr @__errno_location() #11
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3104, ptr noundef @.str.5, i32 noundef %3105, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 170, ptr noundef %3108, ptr noundef %3111, ptr noundef %3114, i32 noundef %3116) #10
  br label %3118

3118:                                             ; preds = %3101, %3084
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

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

3121:                                             ; No predecessors!
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122, %3064
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = add nsw i32 %3127, 1
  store i32 %3128, ptr @test_count, align 4, !tbaa !5
  %3129 = load ptr, ptr %68, align 8, !tbaa !9
  %3130 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3129)
  %3131 = icmp eq i32 %3130, -1
  br i1 %3131, label %3132, label %3185

3132:                                             ; preds = %3126
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

3134:                                             ; preds = %3133
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3135 = call ptr @__errno_location() #11
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  store i32 %3136, ptr %71, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @s2n_print_stacktrace(ptr noundef %3137)
  %3139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3140 = trunc i8 %3139 to i1
  br i1 %3140, label %3141, label %3163

3141:                                             ; preds = %3134
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @fileno(ptr noundef %3142) #10
  %3144 = call i32 @isatty(i32 noundef %3143) #10
  %3145 = icmp ne i32 %3144, 0
  br i1 %3145, label %3146, label %3163

3146:                                             ; preds = %3141
  %3147 = load i32, ptr %71, align 4, !tbaa !5
  %3148 = call ptr @__errno_location() #11
  store i32 %3147, ptr %3148, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror(i32 noundef %3152, ptr noundef @.str.4)
  %3154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror_debug(i32 noundef %3155, ptr noundef @.str.4)
  %3157 = call ptr @__errno_location() #11
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @strerror(i32 noundef %3158) #10
  %3160 = call ptr @__errno_location() #11
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3149, ptr noundef @.str.2, i32 noundef %3150, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3153, ptr noundef %3156, ptr noundef %3159, i32 noundef %3161) #10
  br label %3180

3163:                                             ; preds = %3141, %3134
  %3164 = load i32, ptr %71, align 4, !tbaa !5
  %3165 = call ptr @__errno_location() #11
  store i32 %3164, ptr %3165, align 4, !tbaa !5
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = load i32, ptr @test_count, align 4, !tbaa !5
  %3168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call ptr @s2n_strerror(i32 noundef %3169, ptr noundef @.str.4)
  %3171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror_debug(i32 noundef %3172, ptr noundef @.str.4)
  %3174 = call ptr @__errno_location() #11
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @strerror(i32 noundef %3175) #10
  %3177 = call ptr @__errno_location() #11
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3166, ptr noundef @.str.5, i32 noundef %3167, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3170, ptr noundef %3173, ptr noundef %3176, i32 noundef %3178) #10
  br label %3180

3180:                                             ; preds = %3163, %3146
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

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

3183:                                             ; No predecessors!
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

3185:                                             ; preds = %3184, %3126
  br label %3186

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

3188:                                             ; preds = %3187
  %3189 = load i32, ptr @test_count, align 4, !tbaa !5
  %3190 = add nsw i32 %3189, 1
  store i32 %3190, ptr @test_count, align 4, !tbaa !5
  %3191 = load ptr, ptr %68, align 8, !tbaa !9
  %3192 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %3193 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3191, ptr noundef %3192)
  %3194 = icmp eq i32 %3193, -1
  br i1 %3194, label %3195, label %3248

3195:                                             ; preds = %3188
  br label %3196

3196:                                             ; preds = %3195
  br label %3197

3197:                                             ; preds = %3196
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %3198 = call ptr @__errno_location() #11
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  store i32 %3199, ptr %72, align 4, !tbaa !5
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = call i32 @s2n_print_stacktrace(ptr noundef %3200)
  %3202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3203 = trunc i8 %3202 to i1
  br i1 %3203, label %3204, label %3226

3204:                                             ; preds = %3197
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = call i32 @fileno(ptr noundef %3205) #10
  %3207 = call i32 @isatty(i32 noundef %3206) #10
  %3208 = icmp ne i32 %3207, 0
  br i1 %3208, label %3209, label %3226

3209:                                             ; preds = %3204
  %3210 = load i32, ptr %72, align 4, !tbaa !5
  %3211 = call ptr @__errno_location() #11
  store i32 %3210, ptr %3211, align 4, !tbaa !5
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = load i32, ptr @test_count, align 4, !tbaa !5
  %3214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3215 = load i32, ptr %3214, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror(i32 noundef %3215, ptr noundef @.str.4)
  %3217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror_debug(i32 noundef %3218, ptr noundef @.str.4)
  %3220 = call ptr @__errno_location() #11
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = call ptr @strerror(i32 noundef %3221) #10
  %3223 = call ptr @__errno_location() #11
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3212, ptr noundef @.str.2, i32 noundef %3213, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3216, ptr noundef %3219, ptr noundef %3222, i32 noundef %3224) #10
  br label %3243

3226:                                             ; preds = %3204, %3197
  %3227 = load i32, ptr %72, align 4, !tbaa !5
  %3228 = call ptr @__errno_location() #11
  store i32 %3227, ptr %3228, align 4, !tbaa !5
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = load i32, ptr @test_count, align 4, !tbaa !5
  %3231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror(i32 noundef %3232, ptr noundef @.str.4)
  %3234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror_debug(i32 noundef %3235, ptr noundef @.str.4)
  %3237 = call ptr @__errno_location() #11
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call ptr @strerror(i32 noundef %3238) #10
  %3240 = call ptr @__errno_location() #11
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3229, ptr noundef @.str.5, i32 noundef %3230, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3233, ptr noundef %3236, ptr noundef %3239, i32 noundef %3241) #10
  br label %3243

3243:                                             ; preds = %3226, %3209
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

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

3246:                                             ; No predecessors!
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247, %3188
  br label %3249

3249:                                             ; preds = %3248
  br label %3250

3250:                                             ; preds = %3249
  br label %3251

3251:                                             ; preds = %3250
  %3252 = load i32, ptr @test_count, align 4, !tbaa !5
  %3253 = add nsw i32 %3252, 1
  store i32 %3253, ptr @test_count, align 4, !tbaa !5
  %3254 = load ptr, ptr %68, align 8, !tbaa !9
  %3255 = call i32 @s2n_config_set_alert_behavior(ptr noundef %3254, i32 noundef 1)
  %3256 = icmp eq i32 %3255, -1
  br i1 %3256, label %3257, label %3310

3257:                                             ; preds = %3251
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

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

3266:                                             ; preds = %3259
  %3267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3268 = call i32 @fileno(ptr noundef %3267) #10
  %3269 = call i32 @isatty(i32 noundef %3268) #10
  %3270 = icmp ne i32 %3269, 0
  br i1 %3270, label %3271, label %3288

3271:                                             ; preds = %3266
  %3272 = load i32, ptr %73, align 4, !tbaa !5
  %3273 = call ptr @__errno_location() #11
  store i32 %3272, ptr %3273, align 4, !tbaa !5
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = load i32, ptr @test_count, align 4, !tbaa !5
  %3276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @s2n_strerror(i32 noundef %3277, ptr noundef @.str.4)
  %3279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call ptr @s2n_strerror_debug(i32 noundef %3280, ptr noundef @.str.4)
  %3282 = call ptr @__errno_location() #11
  %3283 = load i32, ptr %3282, align 4, !tbaa !5
  %3284 = call ptr @strerror(i32 noundef %3283) #10
  %3285 = call ptr @__errno_location() #11
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  %3287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3274, ptr noundef @.str.2, i32 noundef %3275, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3278, ptr noundef %3281, ptr noundef %3284, i32 noundef %3286) #10
  br label %3305

3288:                                             ; preds = %3266, %3259
  %3289 = load i32, ptr %73, align 4, !tbaa !5
  %3290 = call ptr @__errno_location() #11
  store i32 %3289, ptr %3290, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror(i32 noundef %3294, ptr noundef @.str.4)
  %3296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef @.str.4)
  %3299 = call ptr @__errno_location() #11
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #10
  %3302 = call ptr @__errno_location() #11
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef @.str.5, i32 noundef %3292, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3295, ptr noundef %3298, ptr noundef %3301, i32 noundef %3303) #10
  br label %3305

3305:                                             ; preds = %3288, %3271
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

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

3308:                                             ; No predecessors!
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309, %3251
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %3313 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3313, ptr %74, align 8, !tbaa !9
  br label %3314

3314:                                             ; preds = %3312
  %3315 = load i32, ptr @test_count, align 4, !tbaa !5
  %3316 = add nsw i32 %3315, 1
  store i32 %3316, ptr @test_count, align 4, !tbaa !5
  %3317 = load ptr, ptr %74, align 8, !tbaa !9
  %3318 = icmp eq ptr %3317, null
  br i1 %3318, label %3319, label %3372

3319:                                             ; preds = %3314
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %3322 = call ptr @__errno_location() #11
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  store i32 %3323, ptr %75, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @s2n_print_stacktrace(ptr noundef %3324)
  %3326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3327 = trunc i8 %3326 to i1
  br i1 %3327, label %3328, label %3350

3328:                                             ; preds = %3321
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = call i32 @fileno(ptr noundef %3329) #10
  %3331 = call i32 @isatty(i32 noundef %3330) #10
  %3332 = icmp ne i32 %3331, 0
  br i1 %3332, label %3333, label %3350

3333:                                             ; preds = %3328
  %3334 = load i32, ptr %75, align 4, !tbaa !5
  %3335 = call ptr @__errno_location() #11
  store i32 %3334, ptr %3335, align 4, !tbaa !5
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = load i32, ptr @test_count, align 4, !tbaa !5
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror(i32 noundef %3339, ptr noundef @.str.4)
  %3341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror_debug(i32 noundef %3342, ptr noundef @.str.4)
  %3344 = call ptr @__errno_location() #11
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call ptr @strerror(i32 noundef %3345) #10
  %3347 = call ptr @__errno_location() #11
  %3348 = load i32, ptr %3347, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3336, ptr noundef @.str.2, i32 noundef %3337, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3340, ptr noundef %3343, ptr noundef %3346, i32 noundef %3348) #10
  br label %3367

3350:                                             ; preds = %3328, %3321
  %3351 = load i32, ptr %75, align 4, !tbaa !5
  %3352 = call ptr @__errno_location() #11
  store i32 %3351, ptr %3352, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef @.str.4)
  %3358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @s2n_strerror_debug(i32 noundef %3359, ptr noundef @.str.4)
  %3361 = call ptr @__errno_location() #11
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call ptr @strerror(i32 noundef %3362) #10
  %3364 = call ptr @__errno_location() #11
  %3365 = load i32, ptr %3364, align 4, !tbaa !5
  %3366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef @.str.5, i32 noundef %3354, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3357, ptr noundef %3360, ptr noundef %3363, i32 noundef %3365) #10
  br label %3367

3367:                                             ; preds = %3350, %3333
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

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

3370:                                             ; No predecessors!
  br label %3371

3371:                                             ; preds = %3370
  br label %3372

3372:                                             ; preds = %3371, %3314
  br label %3373

3373:                                             ; preds = %3372
  br label %3374

3374:                                             ; preds = %3373
  br label %3375

3375:                                             ; preds = %3374
  %3376 = load i32, ptr @test_count, align 4, !tbaa !5
  %3377 = add nsw i32 %3376, 1
  store i32 %3377, ptr @test_count, align 4, !tbaa !5
  %3378 = load ptr, ptr %74, align 8, !tbaa !9
  %3379 = load ptr, ptr %68, align 8, !tbaa !9
  %3380 = call i32 @s2n_connection_set_config(ptr noundef %3378, ptr noundef %3379)
  %3381 = icmp eq i32 %3380, -1
  br i1 %3381, label %3382, label %3435

3382:                                             ; preds = %3375
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

3384:                                             ; preds = %3383
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3385 = call ptr @__errno_location() #11
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  store i32 %3386, ptr %76, align 4, !tbaa !5
  %3387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3388 = call i32 @s2n_print_stacktrace(ptr noundef %3387)
  %3389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3390 = trunc i8 %3389 to i1
  br i1 %3390, label %3391, label %3413

3391:                                             ; preds = %3384
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = call i32 @fileno(ptr noundef %3392) #10
  %3394 = call i32 @isatty(i32 noundef %3393) #10
  %3395 = icmp ne i32 %3394, 0
  br i1 %3395, label %3396, label %3413

3396:                                             ; preds = %3391
  %3397 = load i32, ptr %76, align 4, !tbaa !5
  %3398 = call ptr @__errno_location() #11
  store i32 %3397, ptr %3398, align 4, !tbaa !5
  %3399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3400 = load i32, ptr @test_count, align 4, !tbaa !5
  %3401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror(i32 noundef %3402, ptr noundef @.str.4)
  %3404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror_debug(i32 noundef %3405, ptr noundef @.str.4)
  %3407 = call ptr @__errno_location() #11
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @strerror(i32 noundef %3408) #10
  %3410 = call ptr @__errno_location() #11
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3399, ptr noundef @.str.2, i32 noundef %3400, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3403, ptr noundef %3406, ptr noundef %3409, i32 noundef %3411) #10
  br label %3430

3413:                                             ; preds = %3391, %3384
  %3414 = load i32, ptr %76, align 4, !tbaa !5
  %3415 = call ptr @__errno_location() #11
  store i32 %3414, ptr %3415, 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 @.str.4)
  %3421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @s2n_strerror_debug(i32 noundef %3422, ptr noundef @.str.4)
  %3424 = call ptr @__errno_location() #11
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call ptr @strerror(i32 noundef %3425) #10
  %3427 = call ptr @__errno_location() #11
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3416, ptr noundef @.str.5, i32 noundef %3417, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3420, ptr noundef %3423, ptr noundef %3426, i32 noundef %3428) #10
  br label %3430

3430:                                             ; preds = %3413, %3396
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

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

3433:                                             ; No predecessors!
  br label %3434

3434:                                             ; preds = %3433
  br label %3435

3435:                                             ; preds = %3434, %3375
  br label %3436

3436:                                             ; preds = %3435
  br label %3437

3437:                                             ; preds = %3436
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #10
  %3438 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3438, ptr %77, align 8, !tbaa !9
  br label %3439

3439:                                             ; preds = %3437
  %3440 = load i32, ptr @test_count, align 4, !tbaa !5
  %3441 = add nsw i32 %3440, 1
  store i32 %3441, ptr @test_count, align 4, !tbaa !5
  %3442 = load ptr, ptr %77, align 8, !tbaa !9
  %3443 = icmp eq ptr %3442, null
  br i1 %3443, label %3444, label %3497

3444:                                             ; preds = %3439
  br label %3445

3445:                                             ; preds = %3444
  br label %3446

3446:                                             ; preds = %3445
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %3447 = call ptr @__errno_location() #11
  %3448 = load i32, ptr %3447, align 4, !tbaa !5
  store i32 %3448, ptr %78, align 4, !tbaa !5
  %3449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3450 = call i32 @s2n_print_stacktrace(ptr noundef %3449)
  %3451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3452 = trunc i8 %3451 to i1
  br i1 %3452, label %3453, label %3475

3453:                                             ; preds = %3446
  %3454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3455 = call i32 @fileno(ptr noundef %3454) #10
  %3456 = call i32 @isatty(i32 noundef %3455) #10
  %3457 = icmp ne i32 %3456, 0
  br i1 %3457, label %3458, label %3475

3458:                                             ; preds = %3453
  %3459 = load i32, ptr %78, align 4, !tbaa !5
  %3460 = call ptr @__errno_location() #11
  store i32 %3459, ptr %3460, align 4, !tbaa !5
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = load i32, ptr @test_count, align 4, !tbaa !5
  %3463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror(i32 noundef %3464, ptr noundef @.str.4)
  %3466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef @.str.4)
  %3469 = call ptr @__errno_location() #11
  %3470 = load i32, ptr %3469, align 4, !tbaa !5
  %3471 = call ptr @strerror(i32 noundef %3470) #10
  %3472 = call ptr @__errno_location() #11
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  %3474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3461, ptr noundef @.str.2, i32 noundef %3462, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3465, ptr noundef %3468, ptr noundef %3471, i32 noundef %3473) #10
  br label %3492

3475:                                             ; preds = %3453, %3446
  %3476 = load i32, ptr %78, align 4, !tbaa !5
  %3477 = call ptr @__errno_location() #11
  store i32 %3476, ptr %3477, align 4, !tbaa !5
  %3478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3479 = load i32, ptr @test_count, align 4, !tbaa !5
  %3480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @s2n_strerror(i32 noundef %3481, ptr noundef @.str.4)
  %3483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call ptr @s2n_strerror_debug(i32 noundef %3484, ptr noundef @.str.4)
  %3486 = call ptr @__errno_location() #11
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = call ptr @strerror(i32 noundef %3487) #10
  %3489 = call ptr @__errno_location() #11
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3478, ptr noundef @.str.5, i32 noundef %3479, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3482, ptr noundef %3485, ptr noundef %3488, i32 noundef %3490) #10
  br label %3492

3492:                                             ; preds = %3475, %3458
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3493

3493:                                             ; preds = %3492
  br label %3494

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

3495:                                             ; No predecessors!
  br label %3496

3496:                                             ; preds = %3495
  br label %3497

3497:                                             ; preds = %3496, %3439
  br label %3498

3498:                                             ; preds = %3497
  br label %3499

3499:                                             ; preds = %3498
  br label %3500

3500:                                             ; preds = %3499
  %3501 = load i32, ptr @test_count, align 4, !tbaa !5
  %3502 = add nsw i32 %3501, 1
  store i32 %3502, ptr @test_count, align 4, !tbaa !5
  %3503 = load ptr, ptr %77, align 8, !tbaa !9
  %3504 = load ptr, ptr %68, align 8, !tbaa !9
  %3505 = call i32 @s2n_connection_set_config(ptr noundef %3503, ptr noundef %3504)
  %3506 = icmp eq i32 %3505, -1
  br i1 %3506, label %3507, label %3560

3507:                                             ; preds = %3500
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3510 = call ptr @__errno_location() #11
  %3511 = load i32, ptr %3510, align 4, !tbaa !5
  store i32 %3511, ptr %79, align 4, !tbaa !5
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @s2n_print_stacktrace(ptr noundef %3512)
  %3514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3515 = trunc i8 %3514 to i1
  br i1 %3515, label %3516, label %3538

3516:                                             ; preds = %3509
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @fileno(ptr noundef %3517) #10
  %3519 = call i32 @isatty(i32 noundef %3518) #10
  %3520 = icmp ne i32 %3519, 0
  br i1 %3520, label %3521, label %3538

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

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

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

3556:                                             ; preds = %3555
  br label %3557

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

3558:                                             ; No predecessors!
  br label %3559

3559:                                             ; preds = %3558
  br label %3560

3560:                                             ; preds = %3559, %3500
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #10
  call void @llvm.memset.p0.i64(ptr align 4 %80, i8 0, i64 8, i1 false)
  br label %3563

3563:                                             ; preds = %3562
  %3564 = load i32, ptr @test_count, align 4, !tbaa !5
  %3565 = add nsw i32 %3564, 1
  store i32 %3565, ptr @test_count, align 4, !tbaa !5
  %3566 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %80)
  %3567 = icmp eq i32 %3566, -1
  br i1 %3567, label %3568, label %3621

3568:                                             ; preds = %3563
  br label %3569

3569:                                             ; preds = %3568
  br label %3570

3570:                                             ; preds = %3569
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3571 = call ptr @__errno_location() #11
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  store i32 %3572, ptr %81, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @s2n_print_stacktrace(ptr noundef %3573)
  %3575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3576 = trunc i8 %3575 to i1
  br i1 %3576, label %3577, label %3599

3577:                                             ; preds = %3570
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = call i32 @fileno(ptr noundef %3578) #10
  %3580 = call i32 @isatty(i32 noundef %3579) #10
  %3581 = icmp ne i32 %3580, 0
  br i1 %3581, label %3582, label %3599

3582:                                             ; preds = %3577
  %3583 = load i32, ptr %81, align 4, !tbaa !5
  %3584 = call ptr @__errno_location() #11
  store i32 %3583, ptr %3584, align 4, !tbaa !5
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = load i32, ptr @test_count, align 4, !tbaa !5
  %3587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3588 = load i32, ptr %3587, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror(i32 noundef %3588, ptr noundef @.str.4)
  %3590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  %3592 = call ptr @s2n_strerror_debug(i32 noundef %3591, ptr noundef @.str.4)
  %3593 = call ptr @__errno_location() #11
  %3594 = load i32, ptr %3593, align 4, !tbaa !5
  %3595 = call ptr @strerror(i32 noundef %3594) #10
  %3596 = call ptr @__errno_location() #11
  %3597 = load i32, ptr %3596, align 4, !tbaa !5
  %3598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3585, ptr noundef @.str.2, i32 noundef %3586, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 186, ptr noundef %3589, ptr noundef %3592, ptr noundef %3595, i32 noundef %3597) #10
  br label %3616

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

3616:                                             ; preds = %3599, %3582
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3617

3617:                                             ; preds = %3616
  br label %3618

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

3619:                                             ; No predecessors!
  br label %3620

3620:                                             ; preds = %3619
  br label %3621

3621:                                             ; preds = %3620, %3563
  br label %3622

3622:                                             ; preds = %3621
  br label %3623

3623:                                             ; preds = %3622
  br label %3624

3624:                                             ; preds = %3623
  %3625 = load i32, ptr @test_count, align 4, !tbaa !5
  %3626 = add nsw i32 %3625, 1
  store i32 %3626, ptr @test_count, align 4, !tbaa !5
  %3627 = load ptr, ptr %74, align 8, !tbaa !9
  %3628 = call i32 @s2n_connection_set_io_pair(ptr noundef %3627, ptr noundef %80)
  %3629 = icmp eq i32 %3628, -1
  br i1 %3629, label %3630, label %3683

3630:                                             ; preds = %3624
  br label %3631

3631:                                             ; preds = %3630
  br label %3632

3632:                                             ; preds = %3631
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3633 = call ptr @__errno_location() #11
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  store i32 %3634, ptr %82, align 4, !tbaa !5
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = call i32 @s2n_print_stacktrace(ptr noundef %3635)
  %3637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3638 = trunc i8 %3637 to i1
  br i1 %3638, label %3639, label %3661

3639:                                             ; preds = %3632
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = call i32 @fileno(ptr noundef %3640) #10
  %3642 = call i32 @isatty(i32 noundef %3641) #10
  %3643 = icmp ne i32 %3642, 0
  br i1 %3643, label %3644, label %3661

3644:                                             ; preds = %3639
  %3645 = load i32, ptr %82, align 4, !tbaa !5
  %3646 = call ptr @__errno_location() #11
  store i32 %3645, ptr %3646, align 4, !tbaa !5
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = load i32, ptr @test_count, align 4, !tbaa !5
  %3649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3650 = load i32, ptr %3649, align 4, !tbaa !5
  %3651 = call ptr @s2n_strerror(i32 noundef %3650, ptr noundef @.str.4)
  %3652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror_debug(i32 noundef %3653, ptr noundef @.str.4)
  %3655 = call ptr @__errno_location() #11
  %3656 = load i32, ptr %3655, align 4, !tbaa !5
  %3657 = call ptr @strerror(i32 noundef %3656) #10
  %3658 = call ptr @__errno_location() #11
  %3659 = load i32, ptr %3658, align 4, !tbaa !5
  %3660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3647, ptr noundef @.str.2, i32 noundef %3648, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3651, ptr noundef %3654, ptr noundef %3657, i32 noundef %3659) #10
  br label %3678

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

3678:                                             ; preds = %3661, %3644
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3679

3679:                                             ; preds = %3678
  br label %3680

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

3681:                                             ; No predecessors!
  br label %3682

3682:                                             ; preds = %3681
  br label %3683

3683:                                             ; preds = %3682, %3624
  br label %3684

3684:                                             ; preds = %3683
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  %3687 = load i32, ptr @test_count, align 4, !tbaa !5
  %3688 = add nsw i32 %3687, 1
  store i32 %3688, ptr @test_count, align 4, !tbaa !5
  %3689 = load ptr, ptr %77, align 8, !tbaa !9
  %3690 = call i32 @s2n_connection_set_io_pair(ptr noundef %3689, ptr noundef %80)
  %3691 = icmp eq i32 %3690, -1
  br i1 %3691, label %3692, label %3745

3692:                                             ; preds = %3686
  br label %3693

3693:                                             ; preds = %3692
  br label %3694

3694:                                             ; preds = %3693
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %3695 = call ptr @__errno_location() #11
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  store i32 %3696, ptr %83, align 4, !tbaa !5
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = call i32 @s2n_print_stacktrace(ptr noundef %3697)
  %3699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3700 = trunc i8 %3699 to i1
  br i1 %3700, label %3701, label %3723

3701:                                             ; preds = %3694
  %3702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3703 = call i32 @fileno(ptr noundef %3702) #10
  %3704 = call i32 @isatty(i32 noundef %3703) #10
  %3705 = icmp ne i32 %3704, 0
  br i1 %3705, label %3706, label %3723

3706:                                             ; preds = %3701
  %3707 = load i32, ptr %83, align 4, !tbaa !5
  %3708 = call ptr @__errno_location() #11
  store i32 %3707, ptr %3708, align 4, !tbaa !5
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = load i32, ptr @test_count, align 4, !tbaa !5
  %3711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call ptr @s2n_strerror(i32 noundef %3712, ptr noundef @.str.4)
  %3714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call ptr @s2n_strerror_debug(i32 noundef %3715, ptr noundef @.str.4)
  %3717 = call ptr @__errno_location() #11
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @strerror(i32 noundef %3718) #10
  %3720 = call ptr @__errno_location() #11
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3709, ptr noundef @.str.2, i32 noundef %3710, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3713, ptr noundef %3716, ptr noundef %3719, i32 noundef %3721) #10
  br label %3740

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

3740:                                             ; preds = %3723, %3706
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

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

3743:                                             ; No predecessors!
  br label %3744

3744:                                             ; preds = %3743
  br label %3745

3745:                                             ; preds = %3744, %3686
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

3747:                                             ; preds = %3746
  br label %3748

3748:                                             ; preds = %3747
  %3749 = load i32, ptr @test_count, align 4, !tbaa !5
  %3750 = add nsw i32 %3749, 1
  store i32 %3750, ptr @test_count, align 4, !tbaa !5
  %3751 = load ptr, ptr %77, align 8, !tbaa !9
  %3752 = load ptr, ptr %74, align 8, !tbaa !9
  %3753 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3751, ptr noundef %3752)
  %3754 = icmp eq i32 %3753, -1
  br i1 %3754, label %3755, label %3808

3755:                                             ; preds = %3748
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3758 = call ptr @__errno_location() #11
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  store i32 %3759, ptr %84, align 4, !tbaa !5
  %3760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3761 = call i32 @s2n_print_stacktrace(ptr noundef %3760)
  %3762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3763 = trunc i8 %3762 to i1
  br i1 %3763, label %3764, label %3786

3764:                                             ; preds = %3757
  %3765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3766 = call i32 @fileno(ptr noundef %3765) #10
  %3767 = call i32 @isatty(i32 noundef %3766) #10
  %3768 = icmp ne i32 %3767, 0
  br i1 %3768, label %3769, label %3786

3769:                                             ; preds = %3764
  %3770 = load i32, ptr %84, align 4, !tbaa !5
  %3771 = call ptr @__errno_location() #11
  store i32 %3770, ptr %3771, align 4, !tbaa !5
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = load i32, ptr @test_count, align 4, !tbaa !5
  %3774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror(i32 noundef %3775, ptr noundef @.str.4)
  %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_debug(i32 noundef %3778, ptr noundef @.str.4)
  %3780 = call ptr @__errno_location() #11
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @strerror(i32 noundef %3781) #10
  %3783 = call ptr @__errno_location() #11
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3772, ptr noundef @.str.2, i32 noundef %3773, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 191, ptr noundef %3776, ptr noundef %3779, ptr noundef %3782, i32 noundef %3784) #10
  br label %3803

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

3803:                                             ; preds = %3786, %3769
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3804

3804:                                             ; preds = %3803
  br label %3805

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

3806:                                             ; No predecessors!
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

3808:                                             ; preds = %3807, %3748
  br label %3809

3809:                                             ; preds = %3808
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

3811:                                             ; preds = %3810
  %3812 = load i32, ptr @test_count, align 4, !tbaa !5
  %3813 = add nsw i32 %3812, 1
  store i32 %3813, ptr @test_count, align 4, !tbaa !5
  %3814 = load ptr, ptr %74, align 8, !tbaa !9
  %3815 = load i32, ptr %3814, align 8
  %3816 = lshr i32 %3815, 3
  %3817 = and i32 %3816, 1
  %3818 = icmp ne i32 %3817, 0
  br i1 %3818, label %3872, label %3819

3819:                                             ; preds = %3811
  br label %3820

3820:                                             ; preds = %3819
  br label %3821

3821:                                             ; preds = %3820
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %3822 = call ptr @__errno_location() #11
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  store i32 %3823, ptr %85, align 4, !tbaa !5
  %3824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3825 = call i32 @s2n_print_stacktrace(ptr noundef %3824)
  %3826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3827 = trunc i8 %3826 to i1
  br i1 %3827, label %3828, label %3850

3828:                                             ; preds = %3821
  %3829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3830 = call i32 @fileno(ptr noundef %3829) #10
  %3831 = call i32 @isatty(i32 noundef %3830) #10
  %3832 = icmp ne i32 %3831, 0
  br i1 %3832, label %3833, label %3850

3833:                                             ; preds = %3828
  %3834 = load i32, ptr %85, align 4, !tbaa !5
  %3835 = call ptr @__errno_location() #11
  store i32 %3834, ptr %3835, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call ptr @s2n_strerror(i32 noundef %3839, ptr noundef @.str.4)
  %3841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3842 = load i32, ptr %3841, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef @.str.4)
  %3844 = call ptr @__errno_location() #11
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @strerror(i32 noundef %3845) #10
  %3847 = call ptr @__errno_location() #11
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3836, ptr noundef @.str.2, i32 noundef %3837, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 192, ptr noundef %3840, ptr noundef %3843, ptr noundef %3846, i32 noundef %3848) #10
  br label %3867

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

3867:                                             ; preds = %3850, %3833
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

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

3870:                                             ; No predecessors!
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

3872:                                             ; preds = %3871, %3811
  br label %3873

3873:                                             ; preds = %3872
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874
  %3876 = load i32, ptr @test_count, align 4, !tbaa !5
  %3877 = add nsw i32 %3876, 1
  store i32 %3877, ptr @test_count, align 4, !tbaa !5
  %3878 = load ptr, ptr %77, align 8, !tbaa !9
  %3879 = load ptr, ptr %74, align 8, !tbaa !9
  %3880 = call i32 @s2n_send_and_recv_test(ptr noundef %3878, ptr noundef %3879)
  %3881 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %3880, ptr %3881, align 4
  %3882 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  %3883 = load i32, ptr %3882, align 4
  %3884 = call zeroext i1 @s2n_result_is_ok(i32 %3883)
  br i1 %3884, label %3938, label %3885

3885:                                             ; preds = %3875
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

3887:                                             ; preds = %3886
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %3888 = call ptr @__errno_location() #11
  %3889 = load i32, ptr %3888, align 4, !tbaa !5
  store i32 %3889, ptr %87, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = call i32 @s2n_print_stacktrace(ptr noundef %3890)
  %3892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3893 = trunc i8 %3892 to i1
  br i1 %3893, label %3894, label %3916

3894:                                             ; preds = %3887
  %3895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3896 = call i32 @fileno(ptr noundef %3895) #10
  %3897 = call i32 @isatty(i32 noundef %3896) #10
  %3898 = icmp ne i32 %3897, 0
  br i1 %3898, label %3899, label %3916

3899:                                             ; preds = %3894
  %3900 = load i32, ptr %87, align 4, !tbaa !5
  %3901 = call ptr @__errno_location() #11
  store i32 %3900, ptr %3901, align 4, !tbaa !5
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = load i32, ptr @test_count, align 4, !tbaa !5
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror(i32 noundef %3905, ptr noundef @.str.4)
  %3907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef %3908, ptr noundef @.str.4)
  %3910 = call ptr @__errno_location() #11
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @strerror(i32 noundef %3911) #10
  %3913 = call ptr @__errno_location() #11
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3902, ptr noundef @.str.2, i32 noundef %3903, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3906, ptr noundef %3909, ptr noundef %3912, i32 noundef %3914) #10
  br label %3933

3916:                                             ; preds = %3894, %3887
  %3917 = load i32, ptr %87, align 4, !tbaa !5
  %3918 = call ptr @__errno_location() #11
  store i32 %3917, ptr %3918, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = load i32, ptr @test_count, align 4, !tbaa !5
  %3921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror(i32 noundef %3922, ptr noundef @.str.4)
  %3924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror_debug(i32 noundef %3925, ptr noundef @.str.4)
  %3927 = call ptr @__errno_location() #11
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call ptr @strerror(i32 noundef %3928) #10
  %3930 = call ptr @__errno_location() #11
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3919, ptr noundef @.str.5, i32 noundef %3920, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3923, ptr noundef %3926, ptr noundef %3929, i32 noundef %3931) #10
  br label %3933

3933:                                             ; preds = %3916, %3899
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

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

3936:                                             ; No predecessors!
  br label %3937

3937:                                             ; preds = %3936
  br label %3938

3938:                                             ; preds = %3937, %3875
  br label %3939

3939:                                             ; preds = %3938
  br label %3940

3940:                                             ; preds = %3939
  br label %3941

3941:                                             ; preds = %3940
  %3942 = load i32, ptr @test_count, align 4, !tbaa !5
  %3943 = add nsw i32 %3942, 1
  store i32 %3943, ptr @test_count, align 4, !tbaa !5
  %3944 = load ptr, ptr %74, align 8, !tbaa !9
  %3945 = load ptr, ptr %77, align 8, !tbaa !9
  %3946 = call i32 @s2n_send_and_recv_test(ptr noundef %3944, ptr noundef %3945)
  %3947 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %3946, ptr %3947, align 4
  %3948 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  %3949 = load i32, ptr %3948, align 4
  %3950 = call zeroext i1 @s2n_result_is_ok(i32 %3949)
  br i1 %3950, label %4004, label %3951

3951:                                             ; preds = %3941
  br label %3952

3952:                                             ; preds = %3951
  br label %3953

3953:                                             ; preds = %3952
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3954 = call ptr @__errno_location() #11
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  store i32 %3955, ptr %89, align 4, !tbaa !5
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = call i32 @s2n_print_stacktrace(ptr noundef %3956)
  %3958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3959 = trunc i8 %3958 to i1
  br i1 %3959, label %3960, label %3982

3960:                                             ; preds = %3953
  %3961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3962 = call i32 @fileno(ptr noundef %3961) #10
  %3963 = call i32 @isatty(i32 noundef %3962) #10
  %3964 = icmp ne i32 %3963, 0
  br i1 %3964, label %3965, label %3982

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

3982:                                             ; preds = %3960, %3953
  %3983 = load i32, ptr %89, align 4, !tbaa !5
  %3984 = call ptr @__errno_location() #11
  store i32 %3983, ptr %3984, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = load i32, ptr @test_count, align 4, !tbaa !5
  %3987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3988 = load i32, ptr %3987, align 4, !tbaa !5
  %3989 = call ptr @s2n_strerror(i32 noundef %3988, ptr noundef @.str.4)
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror_debug(i32 noundef %3991, ptr noundef @.str.4)
  %3993 = call ptr @__errno_location() #11
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @strerror(i32 noundef %3994) #10
  %3996 = call ptr @__errno_location() #11
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3985, ptr noundef @.str.5, i32 noundef %3986, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 196, ptr noundef %3989, ptr noundef %3992, ptr noundef %3995, i32 noundef %3997) #10
  br label %3999

3999:                                             ; preds = %3982, %3965
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %4000

4000:                                             ; preds = %3999
  br label %4001

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

4002:                                             ; No predecessors!
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003, %3941
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = add nsw i32 %4008, 1
  store i32 %4009, ptr @test_count, align 4, !tbaa !5
  %4010 = load ptr, ptr %77, align 8, !tbaa !9
  %4011 = call i32 @s2n_send_client_hello_request(ptr noundef %4010)
  %4012 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %4011, ptr %4012, align 4
  %4013 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  %4014 = load i32, ptr %4013, align 4
  %4015 = call zeroext i1 @s2n_result_is_ok(i32 %4014)
  br i1 %4015, label %4069, label %4016

4016:                                             ; preds = %4007
  br label %4017

4017:                                             ; preds = %4016
  br label %4018

4018:                                             ; preds = %4017
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %4019 = call ptr @__errno_location() #11
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  store i32 %4020, ptr %91, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = call i32 @s2n_print_stacktrace(ptr noundef %4021)
  %4023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4024 = trunc i8 %4023 to i1
  br i1 %4024, label %4025, label %4047

4025:                                             ; preds = %4018
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = call i32 @fileno(ptr noundef %4026) #10
  %4028 = call i32 @isatty(i32 noundef %4027) #10
  %4029 = icmp ne i32 %4028, 0
  br i1 %4029, label %4030, label %4047

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

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

4064:                                             ; preds = %4047, %4030
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %4065

4065:                                             ; preds = %4064
  br label %4066

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

4067:                                             ; No predecessors!
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

4069:                                             ; preds = %4068, %4007
  br label %4070

4070:                                             ; preds = %4069
  br label %4071

4071:                                             ; preds = %4070
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  store i64 0, ptr %92, align 8, !tbaa !44
  br label %4072

4072:                                             ; preds = %4270, %4071
  %4073 = load i64, ptr %92, align 8, !tbaa !44
  %4074 = icmp ult i64 %4073, 10
  br i1 %4074, label %4076, label %4075

4075:                                             ; preds = %4072
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %4273

4076:                                             ; preds = %4072
  br label %4077

4077:                                             ; preds = %4076
  %4078 = load i32, ptr @test_count, align 4, !tbaa !5
  %4079 = add nsw i32 %4078, 1
  store i32 %4079, ptr @test_count, align 4, !tbaa !5
  %4080 = load ptr, ptr %77, align 8, !tbaa !9
  %4081 = load ptr, ptr %74, align 8, !tbaa !9
  %4082 = call i32 @s2n_send_and_recv_test(ptr noundef %4080, ptr noundef %4081)
  %4083 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %4082, ptr %4083, align 4
  %4084 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %4085 = load i32, ptr %4084, align 4
  %4086 = call zeroext i1 @s2n_result_is_ok(i32 %4085)
  br i1 %4086, label %4140, label %4087

4087:                                             ; preds = %4077
  br label %4088

4088:                                             ; preds = %4087
  br label %4089

4089:                                             ; preds = %4088
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %4090 = call ptr @__errno_location() #11
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  store i32 %4091, ptr %94, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = call i32 @s2n_print_stacktrace(ptr noundef %4092)
  %4094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4095 = trunc i8 %4094 to i1
  br i1 %4095, label %4096, label %4118

4096:                                             ; preds = %4089
  %4097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4098 = call i32 @fileno(ptr noundef %4097) #10
  %4099 = call i32 @isatty(i32 noundef %4098) #10
  %4100 = icmp ne i32 %4099, 0
  br i1 %4100, label %4101, label %4118

4101:                                             ; preds = %4096
  %4102 = load i32, ptr %94, align 4, !tbaa !5
  %4103 = call ptr @__errno_location() #11
  store i32 %4102, ptr %4103, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror(i32 noundef %4107, ptr noundef @.str.4)
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror_debug(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call ptr @__errno_location() #11
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @strerror(i32 noundef %4113) #10
  %4115 = call ptr @__errno_location() #11
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4104, ptr noundef @.str.2, i32 noundef %4105, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4108, ptr noundef %4111, ptr noundef %4114, i32 noundef %4116) #10
  br label %4135

4118:                                             ; preds = %4096, %4089
  %4119 = load i32, ptr %94, align 4, !tbaa !5
  %4120 = call ptr @__errno_location() #11
  store i32 %4119, ptr %4120, align 4, !tbaa !5
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror(i32 noundef %4124, ptr noundef @.str.4)
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror_debug(i32 noundef %4127, ptr noundef @.str.4)
  %4129 = call ptr @__errno_location() #11
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @strerror(i32 noundef %4130) #10
  %4132 = call ptr @__errno_location() #11
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4121, ptr noundef @.str.5, i32 noundef %4122, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4125, ptr noundef %4128, ptr noundef %4131, i32 noundef %4133) #10
  br label %4135

4135:                                             ; preds = %4118, %4101
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

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

4138:                                             ; No predecessors!
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139, %4077
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = add nsw i32 %4144, 1
  store i32 %4145, ptr @test_count, align 4, !tbaa !5
  %4146 = load ptr, ptr %74, align 8, !tbaa !9
  %4147 = load ptr, ptr %77, align 8, !tbaa !9
  %4148 = call i32 @s2n_send_and_recv_test(ptr noundef %4146, ptr noundef %4147)
  %4149 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %4148, ptr %4149, align 4
  %4150 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  %4151 = load i32, ptr %4150, align 4
  %4152 = call zeroext i1 @s2n_result_is_ok(i32 %4151)
  br i1 %4152, label %4206, label %4153

4153:                                             ; preds = %4143
  br label %4154

4154:                                             ; preds = %4153
  br label %4155

4155:                                             ; preds = %4154
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #10
  %4156 = call ptr @__errno_location() #11
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  store i32 %4157, ptr %96, align 4, !tbaa !5
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @s2n_print_stacktrace(ptr noundef %4158)
  %4160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4161 = trunc i8 %4160 to i1
  br i1 %4161, label %4162, label %4184

4162:                                             ; preds = %4155
  %4163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4164 = call i32 @fileno(ptr noundef %4163) #10
  %4165 = call i32 @isatty(i32 noundef %4164) #10
  %4166 = icmp ne i32 %4165, 0
  br i1 %4166, label %4167, label %4184

4167:                                             ; preds = %4162
  %4168 = load i32, ptr %96, align 4, !tbaa !5
  %4169 = call ptr @__errno_location() #11
  store i32 %4168, ptr %4169, align 4, !tbaa !5
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = load i32, ptr @test_count, align 4, !tbaa !5
  %4172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror(i32 noundef %4173, ptr noundef @.str.4)
  %4175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call ptr @s2n_strerror_debug(i32 noundef %4176, ptr noundef @.str.4)
  %4178 = call ptr @__errno_location() #11
  %4179 = load i32, ptr %4178, align 4, !tbaa !5
  %4180 = call ptr @strerror(i32 noundef %4179) #10
  %4181 = call ptr @__errno_location() #11
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4170, ptr noundef @.str.2, i32 noundef %4171, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4174, ptr noundef %4177, ptr noundef %4180, i32 noundef %4182) #10
  br label %4201

4184:                                             ; preds = %4162, %4155
  %4185 = load i32, ptr %96, align 4, !tbaa !5
  %4186 = call ptr @__errno_location() #11
  store i32 %4185, ptr %4186, align 4, !tbaa !5
  %4187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4188 = load i32, ptr @test_count, align 4, !tbaa !5
  %4189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4190 = load i32, ptr %4189, align 4, !tbaa !5
  %4191 = call ptr @s2n_strerror(i32 noundef %4190, ptr noundef @.str.4)
  %4192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  %4194 = call ptr @s2n_strerror_debug(i32 noundef %4193, ptr noundef @.str.4)
  %4195 = call ptr @__errno_location() #11
  %4196 = load i32, ptr %4195, align 4, !tbaa !5
  %4197 = call ptr @strerror(i32 noundef %4196) #10
  %4198 = call ptr @__errno_location() #11
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4187, ptr noundef @.str.5, i32 noundef %4188, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4191, ptr noundef %4194, ptr noundef %4197, i32 noundef %4199) #10
  br label %4201

4201:                                             ; preds = %4184, %4167
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

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

4204:                                             ; No predecessors!
  br label %4205

4205:                                             ; preds = %4204
  br label %4206

4206:                                             ; preds = %4205, %4143
  br label %4207

4207:                                             ; preds = %4206
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208
  %4210 = load i32, ptr @test_count, align 4, !tbaa !5
  %4211 = add nsw i32 %4210, 1
  store i32 %4211, ptr @test_count, align 4, !tbaa !5
  %4212 = load ptr, ptr %74, align 8, !tbaa !9
  %4213 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %4212, i32 noundef 2)
  br i1 %4213, label %4267, label %4214

4214:                                             ; preds = %4209
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

4216:                                             ; preds = %4215
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #10
  %4217 = call ptr @__errno_location() #11
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  store i32 %4218, ptr %97, align 4, !tbaa !5
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @s2n_print_stacktrace(ptr noundef %4219)
  %4221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4222 = trunc i8 %4221 to i1
  br i1 %4222, label %4223, label %4245

4223:                                             ; preds = %4216
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @fileno(ptr noundef %4224) #10
  %4226 = call i32 @isatty(i32 noundef %4225) #10
  %4227 = icmp ne i32 %4226, 0
  br i1 %4227, label %4228, label %4245

4228:                                             ; preds = %4223
  %4229 = load i32, ptr %97, align 4, !tbaa !5
  %4230 = call ptr @__errno_location() #11
  store i32 %4229, ptr %4230, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = load i32, ptr @test_count, align 4, !tbaa !5
  %4233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4234 = load i32, ptr %4233, align 4, !tbaa !5
  %4235 = call ptr @s2n_strerror(i32 noundef %4234, ptr noundef @.str.4)
  %4236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror_debug(i32 noundef %4237, ptr noundef @.str.4)
  %4239 = call ptr @__errno_location() #11
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  %4241 = call ptr @strerror(i32 noundef %4240) #10
  %4242 = call ptr @__errno_location() #11
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4231, ptr noundef @.str.2, i32 noundef %4232, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4235, ptr noundef %4238, ptr noundef %4241, i32 noundef %4243) #10
  br label %4262

4245:                                             ; preds = %4223, %4216
  %4246 = load i32, ptr %97, align 4, !tbaa !5
  %4247 = call ptr @__errno_location() #11
  store i32 %4246, ptr %4247, 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 @.str.4)
  %4253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call ptr @s2n_strerror_debug(i32 noundef %4254, ptr noundef @.str.4)
  %4256 = call ptr @__errno_location() #11
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  %4258 = call ptr @strerror(i32 noundef %4257) #10
  %4259 = call ptr @__errno_location() #11
  %4260 = load i32, ptr %4259, align 4, !tbaa !5
  %4261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4248, ptr noundef @.str.5, i32 noundef %4249, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4252, ptr noundef %4255, ptr noundef %4258, i32 noundef %4260) #10
  br label %4262

4262:                                             ; preds = %4245, %4228
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #10
  br label %4263

4263:                                             ; preds = %4262
  br label %4264

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

4265:                                             ; No predecessors!
  br label %4266

4266:                                             ; preds = %4265
  br label %4267

4267:                                             ; preds = %4266, %4209
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

4269:                                             ; preds = %4268
  br label %4270

4270:                                             ; preds = %4269
  %4271 = load i64, ptr %92, align 8, !tbaa !44
  %4272 = add i64 %4271, 1
  store i64 %4272, ptr %92, align 8, !tbaa !44
  br label %4072, !llvm.loop !45

4273:                                             ; preds = %4075
  %4274 = call i32 @s2n_io_pair_close(ptr noundef %80)
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #10
  %4275 = call i32 @s2n_connection_ptr_free(ptr noundef %77)
  %4276 = getelementptr inbounds %struct.s2n_result, ptr %98, i32 0, i32 0
  store i32 %4275, ptr %4276, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #10
  %4277 = call i32 @s2n_connection_ptr_free(ptr noundef %74)
  %4278 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4277, ptr %4278, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  %4279 = call i32 @s2n_config_ptr_free(ptr noundef %68)
  %4280 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %4279, ptr %4280, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  %4281 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4281, ptr %101, align 8, !tbaa !9
  br label %4282

4282:                                             ; preds = %4273
  %4283 = load i32, ptr @test_count, align 4, !tbaa !5
  %4284 = add nsw i32 %4283, 1
  store i32 %4284, ptr @test_count, align 4, !tbaa !5
  %4285 = load ptr, ptr %101, align 8, !tbaa !9
  %4286 = icmp eq ptr %4285, null
  br i1 %4286, label %4287, label %4340

4287:                                             ; preds = %4282
  br label %4288

4288:                                             ; preds = %4287
  br label %4289

4289:                                             ; preds = %4288
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4290 = call ptr @__errno_location() #11
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  store i32 %4291, ptr %102, align 4, !tbaa !5
  %4292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4293 = call i32 @s2n_print_stacktrace(ptr noundef %4292)
  %4294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4295 = trunc i8 %4294 to i1
  br i1 %4295, label %4296, label %4318

4296:                                             ; preds = %4289
  %4297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4298 = call i32 @fileno(ptr noundef %4297) #10
  %4299 = call i32 @isatty(i32 noundef %4298) #10
  %4300 = icmp ne i32 %4299, 0
  br i1 %4300, label %4301, label %4318

4301:                                             ; preds = %4296
  %4302 = load i32, ptr %102, align 4, !tbaa !5
  %4303 = call ptr @__errno_location() #11
  store i32 %4302, ptr %4303, align 4, !tbaa !5
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = load i32, ptr @test_count, align 4, !tbaa !5
  %4306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call ptr @s2n_strerror(i32 noundef %4307, ptr noundef @.str.4)
  %4309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror_debug(i32 noundef %4310, ptr noundef @.str.4)
  %4312 = call ptr @__errno_location() #11
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @strerror(i32 noundef %4313) #10
  %4315 = call ptr @__errno_location() #11
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4304, ptr noundef @.str.2, i32 noundef %4305, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4308, ptr noundef %4311, ptr noundef %4314, i32 noundef %4316) #10
  br label %4335

4318:                                             ; preds = %4296, %4289
  %4319 = load i32, ptr %102, align 4, !tbaa !5
  %4320 = call ptr @__errno_location() #11
  store i32 %4319, ptr %4320, align 4, !tbaa !5
  %4321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4322 = load i32, ptr @test_count, align 4, !tbaa !5
  %4323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call ptr @s2n_strerror(i32 noundef %4324, ptr noundef @.str.4)
  %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_debug(i32 noundef %4327, ptr noundef @.str.4)
  %4329 = call ptr @__errno_location() #11
  %4330 = load i32, ptr %4329, align 4, !tbaa !5
  %4331 = call ptr @strerror(i32 noundef %4330) #10
  %4332 = call ptr @__errno_location() #11
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4321, ptr noundef @.str.5, i32 noundef %4322, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4325, ptr noundef %4328, ptr noundef %4331, i32 noundef %4333) #10
  br label %4335

4335:                                             ; preds = %4318, %4301
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

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

4338:                                             ; No predecessors!
  br label %4339

4339:                                             ; preds = %4338
  br label %4340

4340:                                             ; preds = %4339, %4282
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342
  %4344 = load i32, ptr @test_count, align 4, !tbaa !5
  %4345 = add nsw i32 %4344, 1
  store i32 %4345, ptr @test_count, align 4, !tbaa !5
  %4346 = load ptr, ptr %101, align 8, !tbaa !9
  %4347 = load ptr, ptr %12, align 8, !tbaa !9
  %4348 = call i32 @s2n_connection_set_config(ptr noundef %4346, ptr noundef %4347)
  %4349 = icmp eq i32 %4348, -1
  br i1 %4349, label %4350, label %4403

4350:                                             ; preds = %4343
  br label %4351

4351:                                             ; preds = %4350
  br label %4352

4352:                                             ; preds = %4351
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #10
  %4353 = call ptr @__errno_location() #11
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  store i32 %4354, ptr %103, align 4, !tbaa !5
  %4355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4356 = call i32 @s2n_print_stacktrace(ptr noundef %4355)
  %4357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4358 = trunc i8 %4357 to i1
  br i1 %4358, label %4359, label %4381

4359:                                             ; preds = %4352
  %4360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4361 = call i32 @fileno(ptr noundef %4360) #10
  %4362 = call i32 @isatty(i32 noundef %4361) #10
  %4363 = icmp ne i32 %4362, 0
  br i1 %4363, label %4364, label %4381

4364:                                             ; preds = %4359
  %4365 = load i32, ptr %103, align 4, !tbaa !5
  %4366 = call ptr @__errno_location() #11
  store i32 %4365, ptr %4366, align 4, !tbaa !5
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = load i32, ptr @test_count, align 4, !tbaa !5
  %4369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4370 = load i32, ptr %4369, align 4, !tbaa !5
  %4371 = call ptr @s2n_strerror(i32 noundef %4370, ptr noundef @.str.4)
  %4372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4373 = load i32, ptr %4372, align 4, !tbaa !5
  %4374 = call ptr @s2n_strerror_debug(i32 noundef %4373, ptr noundef @.str.4)
  %4375 = call ptr @__errno_location() #11
  %4376 = load i32, ptr %4375, align 4, !tbaa !5
  %4377 = call ptr @strerror(i32 noundef %4376) #10
  %4378 = call ptr @__errno_location() #11
  %4379 = load i32, ptr %4378, align 4, !tbaa !5
  %4380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4367, ptr noundef @.str.2, i32 noundef %4368, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4371, ptr noundef %4374, ptr noundef %4377, i32 noundef %4379) #10
  br label %4398

4381:                                             ; preds = %4359, %4352
  %4382 = load i32, ptr %103, align 4, !tbaa !5
  %4383 = call ptr @__errno_location() #11
  store i32 %4382, ptr %4383, align 4, !tbaa !5
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = load i32, ptr @test_count, align 4, !tbaa !5
  %4386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror(i32 noundef %4387, ptr noundef @.str.4)
  %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_debug(i32 noundef %4390, ptr noundef @.str.4)
  %4392 = call ptr @__errno_location() #11
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @strerror(i32 noundef %4393) #10
  %4395 = call ptr @__errno_location() #11
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4384, ptr noundef @.str.5, i32 noundef %4385, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 222, ptr noundef %4388, ptr noundef %4391, ptr noundef %4394, i32 noundef %4396) #10
  br label %4398

4398:                                             ; preds = %4381, %4364
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4399

4399:                                             ; preds = %4398
  br label %4400

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

4401:                                             ; No predecessors!
  br label %4402

4402:                                             ; preds = %4401
  br label %4403

4403:                                             ; preds = %4402, %4343
  br label %4404

4404:                                             ; preds = %4403
  br label %4405

4405:                                             ; preds = %4404
  br label %4406

4406:                                             ; preds = %4405
  %4407 = load i32, ptr @test_count, align 4, !tbaa !5
  %4408 = add nsw i32 %4407, 1
  store i32 %4408, ptr @test_count, align 4, !tbaa !5
  %4409 = load ptr, ptr %101, align 8, !tbaa !9
  %4410 = getelementptr inbounds %struct.s2n_connection, ptr %4409, i32 0, i32 1
  %4411 = load ptr, ptr %4410, align 8, !tbaa !47
  %4412 = getelementptr inbounds %struct.s2n_config, ptr %4411, i32 0, i32 54
  %4413 = load ptr, ptr %4412, align 8, !tbaa !48
  %4414 = icmp eq ptr %4413, null
  br i1 %4414, label %4468, label %4415

4415:                                             ; preds = %4406
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4418 = call ptr @__errno_location() #11
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  store i32 %4419, ptr %104, align 4, !tbaa !5
  %4420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4421 = call i32 @s2n_print_stacktrace(ptr noundef %4420)
  %4422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4423 = trunc i8 %4422 to i1
  br i1 %4423, label %4424, label %4446

4424:                                             ; preds = %4417
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = call i32 @fileno(ptr noundef %4425) #10
  %4427 = call i32 @isatty(i32 noundef %4426) #10
  %4428 = icmp ne i32 %4427, 0
  br i1 %4428, label %4429, label %4446

4429:                                             ; preds = %4424
  %4430 = load i32, ptr %104, align 4, !tbaa !5
  %4431 = call ptr @__errno_location() #11
  store i32 %4430, ptr %4431, align 4, !tbaa !5
  %4432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4433 = load i32, ptr @test_count, align 4, !tbaa !5
  %4434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call ptr @s2n_strerror(i32 noundef %4435, ptr noundef @.str.4)
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror_debug(i32 noundef %4438, ptr noundef @.str.4)
  %4440 = call ptr @__errno_location() #11
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @strerror(i32 noundef %4441) #10
  %4443 = call ptr @__errno_location() #11
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4432, ptr noundef @.str.2, i32 noundef %4433, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4436, ptr noundef %4439, ptr noundef %4442, i32 noundef %4444) #10
  br label %4463

4446:                                             ; preds = %4424, %4417
  %4447 = load i32, ptr %104, align 4, !tbaa !5
  %4448 = call ptr @__errno_location() #11
  store i32 %4447, ptr %4448, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @s2n_strerror(i32 noundef %4452, ptr noundef @.str.4)
  %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_debug(i32 noundef %4455, ptr noundef @.str.4)
  %4457 = call ptr @__errno_location() #11
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = call ptr @strerror(i32 noundef %4458) #10
  %4460 = call ptr @__errno_location() #11
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4449, ptr noundef @.str.5, i32 noundef %4450, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4453, ptr noundef %4456, ptr noundef %4459, i32 noundef %4461) #10
  br label %4463

4463:                                             ; preds = %4446, %4429
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

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

4466:                                             ; No predecessors!
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

4468:                                             ; preds = %4467, %4406
  br label %4469

4469:                                             ; preds = %4468
  br label %4470

4470:                                             ; preds = %4469
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #10
  %4471 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4471, ptr %105, align 8, !tbaa !9
  br label %4472

4472:                                             ; preds = %4470
  %4473 = load i32, ptr @test_count, align 4, !tbaa !5
  %4474 = add nsw i32 %4473, 1
  store i32 %4474, ptr @test_count, align 4, !tbaa !5
  %4475 = load ptr, ptr %105, align 8, !tbaa !9
  %4476 = icmp eq ptr %4475, null
  br i1 %4476, label %4477, label %4530

4477:                                             ; preds = %4472
  br label %4478

4478:                                             ; preds = %4477
  br label %4479

4479:                                             ; preds = %4478
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4480 = call ptr @__errno_location() #11
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  store i32 %4481, ptr %106, align 4, !tbaa !5
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = call i32 @s2n_print_stacktrace(ptr noundef %4482)
  %4484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4485 = trunc i8 %4484 to i1
  br i1 %4485, label %4486, label %4508

4486:                                             ; preds = %4479
  %4487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4488 = call i32 @fileno(ptr noundef %4487) #10
  %4489 = call i32 @isatty(i32 noundef %4488) #10
  %4490 = icmp ne i32 %4489, 0
  br i1 %4490, label %4491, label %4508

4491:                                             ; preds = %4486
  %4492 = load i32, ptr %106, align 4, !tbaa !5
  %4493 = call ptr @__errno_location() #11
  store i32 %4492, ptr %4493, align 4, !tbaa !5
  %4494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4495 = load i32, ptr @test_count, align 4, !tbaa !5
  %4496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @s2n_strerror(i32 noundef %4497, ptr noundef @.str.4)
  %4499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror_debug(i32 noundef %4500, ptr noundef @.str.4)
  %4502 = call ptr @__errno_location() #11
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @strerror(i32 noundef %4503) #10
  %4505 = call ptr @__errno_location() #11
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4494, ptr noundef @.str.2, i32 noundef %4495, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 227, ptr noundef %4498, ptr noundef %4501, ptr noundef %4504, i32 noundef %4506) #10
  br label %4525

4508:                                             ; preds = %4486, %4479
  %4509 = load i32, ptr %106, align 4, !tbaa !5
  %4510 = call ptr @__errno_location() #11
  store i32 %4509, ptr %4510, 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 @.str.4)
  %4516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror_debug(i32 noundef %4517, ptr noundef @.str.4)
  %4519 = call ptr @__errno_location() #11
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call ptr @strerror(i32 noundef %4520) #10
  %4522 = call ptr @__errno_location() #11
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  %4524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4511, ptr noundef @.str.5, i32 noundef %4512, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 227, ptr noundef %4515, ptr noundef %4518, ptr noundef %4521, i32 noundef %4523) #10
  br label %4525

4525:                                             ; preds = %4508, %4491
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

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

4528:                                             ; No predecessors!
  br label %4529

4529:                                             ; preds = %4528
  br label %4530

4530:                                             ; preds = %4529, %4472
  br label %4531

4531:                                             ; preds = %4530
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

4533:                                             ; preds = %4532
  %4534 = load i32, ptr @test_count, align 4, !tbaa !5
  %4535 = add nsw i32 %4534, 1
  store i32 %4535, ptr @test_count, align 4, !tbaa !5
  %4536 = load ptr, ptr %105, align 8, !tbaa !9
  %4537 = load ptr, ptr %12, align 8, !tbaa !9
  %4538 = call i32 @s2n_connection_set_config(ptr noundef %4536, ptr noundef %4537)
  %4539 = icmp eq i32 %4538, -1
  br i1 %4539, label %4540, label %4593

4540:                                             ; preds = %4533
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

4542:                                             ; preds = %4541
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %4543 = call ptr @__errno_location() #11
  %4544 = load i32, ptr %4543, align 4, !tbaa !5
  store i32 %4544, ptr %107, align 4, !tbaa !5
  %4545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4546 = call i32 @s2n_print_stacktrace(ptr noundef %4545)
  %4547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4548 = trunc i8 %4547 to i1
  br i1 %4548, label %4549, label %4571

4549:                                             ; preds = %4542
  %4550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4551 = call i32 @fileno(ptr noundef %4550) #10
  %4552 = call i32 @isatty(i32 noundef %4551) #10
  %4553 = icmp ne i32 %4552, 0
  br i1 %4553, label %4554, label %4571

4554:                                             ; preds = %4549
  %4555 = load i32, ptr %107, align 4, !tbaa !5
  %4556 = call ptr @__errno_location() #11
  store i32 %4555, ptr %4556, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = load i32, ptr @test_count, align 4, !tbaa !5
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror(i32 noundef %4560, ptr noundef @.str.4)
  %4562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @s2n_strerror_debug(i32 noundef %4563, ptr noundef @.str.4)
  %4565 = call ptr @__errno_location() #11
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call ptr @strerror(i32 noundef %4566) #10
  %4568 = call ptr @__errno_location() #11
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef @.str.2, i32 noundef %4558, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 228, ptr noundef %4561, ptr noundef %4564, ptr noundef %4567, i32 noundef %4569) #10
  br label %4588

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

4588:                                             ; preds = %4571, %4554
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

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

4591:                                             ; No predecessors!
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592, %4533
  br label %4594

4594:                                             ; preds = %4593
  br label %4595

4595:                                             ; preds = %4594
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #10
  call void @llvm.memset.p0.i64(ptr align 4 %108, i8 0, i64 8, i1 false)
  br label %4596

4596:                                             ; preds = %4595
  %4597 = load i32, ptr @test_count, align 4, !tbaa !5
  %4598 = add nsw i32 %4597, 1
  store i32 %4598, ptr @test_count, align 4, !tbaa !5
  %4599 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %108)
  %4600 = icmp eq i32 %4599, -1
  br i1 %4600, label %4601, label %4654

4601:                                             ; preds = %4596
  br label %4602

4602:                                             ; preds = %4601
  br label %4603

4603:                                             ; preds = %4602
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %4604 = call ptr @__errno_location() #11
  %4605 = load i32, ptr %4604, align 4, !tbaa !5
  store i32 %4605, ptr %109, align 4, !tbaa !5
  %4606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4607 = call i32 @s2n_print_stacktrace(ptr noundef %4606)
  %4608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4609 = trunc i8 %4608 to i1
  br i1 %4609, label %4610, label %4632

4610:                                             ; preds = %4603
  %4611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4612 = call i32 @fileno(ptr noundef %4611) #10
  %4613 = call i32 @isatty(i32 noundef %4612) #10
  %4614 = icmp ne i32 %4613, 0
  br i1 %4614, label %4615, label %4632

4615:                                             ; preds = %4610
  %4616 = load i32, ptr %109, align 4, !tbaa !5
  %4617 = call ptr @__errno_location() #11
  store i32 %4616, ptr %4617, align 4, !tbaa !5
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = load i32, ptr @test_count, align 4, !tbaa !5
  %4620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @s2n_strerror(i32 noundef %4621, ptr noundef @.str.4)
  %4623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror_debug(i32 noundef %4624, ptr noundef @.str.4)
  %4626 = call ptr @__errno_location() #11
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call ptr @strerror(i32 noundef %4627) #10
  %4629 = call ptr @__errno_location() #11
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4618, ptr noundef @.str.2, i32 noundef %4619, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 231, ptr noundef %4622, ptr noundef %4625, ptr noundef %4628, i32 noundef %4630) #10
  br label %4649

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

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

4650:                                             ; preds = %4649
  br label %4651

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

4652:                                             ; No predecessors!
  br label %4653

4653:                                             ; preds = %4652
  br label %4654

4654:                                             ; preds = %4653, %4596
  br label %4655

4655:                                             ; preds = %4654
  br label %4656

4656:                                             ; preds = %4655
  br label %4657

4657:                                             ; preds = %4656
  %4658 = load i32, ptr @test_count, align 4, !tbaa !5
  %4659 = add nsw i32 %4658, 1
  store i32 %4659, ptr @test_count, align 4, !tbaa !5
  %4660 = load ptr, ptr %101, align 8, !tbaa !9
  %4661 = call i32 @s2n_connection_set_io_pair(ptr noundef %4660, ptr noundef %108)
  %4662 = icmp eq i32 %4661, -1
  br i1 %4662, label %4663, label %4716

4663:                                             ; preds = %4657
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

4665:                                             ; preds = %4664
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %4666 = call ptr @__errno_location() #11
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  store i32 %4667, ptr %110, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = call i32 @s2n_print_stacktrace(ptr noundef %4668)
  %4670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4671 = trunc i8 %4670 to i1
  br i1 %4671, label %4672, label %4694

4672:                                             ; preds = %4665
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @fileno(ptr noundef %4673) #10
  %4675 = call i32 @isatty(i32 noundef %4674) #10
  %4676 = icmp ne i32 %4675, 0
  br i1 %4676, label %4677, label %4694

4677:                                             ; preds = %4672
  %4678 = load i32, ptr %110, align 4, !tbaa !5
  %4679 = call ptr @__errno_location() #11
  store i32 %4678, ptr %4679, align 4, !tbaa !5
  %4680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4681 = load i32, ptr @test_count, align 4, !tbaa !5
  %4682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  %4684 = call ptr @s2n_strerror(i32 noundef %4683, ptr noundef @.str.4)
  %4685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @s2n_strerror_debug(i32 noundef %4686, ptr noundef @.str.4)
  %4688 = call ptr @__errno_location() #11
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call ptr @strerror(i32 noundef %4689) #10
  %4691 = call ptr @__errno_location() #11
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4680, ptr noundef @.str.2, i32 noundef %4681, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 232, ptr noundef %4684, ptr noundef %4687, ptr noundef %4690, i32 noundef %4692) #10
  br label %4711

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

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

4712:                                             ; preds = %4711
  br label %4713

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

4714:                                             ; No predecessors!
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

4716:                                             ; preds = %4715, %4657
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718
  %4720 = load i32, ptr @test_count, align 4, !tbaa !5
  %4721 = add nsw i32 %4720, 1
  store i32 %4721, ptr @test_count, align 4, !tbaa !5
  %4722 = load ptr, ptr %105, align 8, !tbaa !9
  %4723 = call i32 @s2n_connection_set_io_pair(ptr noundef %4722, ptr noundef %108)
  %4724 = icmp eq i32 %4723, -1
  br i1 %4724, label %4725, label %4778

4725:                                             ; preds = %4719
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

4727:                                             ; preds = %4726
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %4728 = call ptr @__errno_location() #11
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  store i32 %4729, ptr %111, align 4, !tbaa !5
  %4730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4731 = call i32 @s2n_print_stacktrace(ptr noundef %4730)
  %4732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4733 = trunc i8 %4732 to i1
  br i1 %4733, label %4734, label %4756

4734:                                             ; preds = %4727
  %4735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4736 = call i32 @fileno(ptr noundef %4735) #10
  %4737 = call i32 @isatty(i32 noundef %4736) #10
  %4738 = icmp ne i32 %4737, 0
  br i1 %4738, label %4739, label %4756

4739:                                             ; preds = %4734
  %4740 = load i32, ptr %111, align 4, !tbaa !5
  %4741 = call ptr @__errno_location() #11
  store i32 %4740, ptr %4741, align 4, !tbaa !5
  %4742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4743 = load i32, ptr @test_count, align 4, !tbaa !5
  %4744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4745 = load i32, ptr %4744, align 4, !tbaa !5
  %4746 = call ptr @s2n_strerror(i32 noundef %4745, ptr noundef @.str.4)
  %4747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4748 = load i32, ptr %4747, align 4, !tbaa !5
  %4749 = call ptr @s2n_strerror_debug(i32 noundef %4748, ptr noundef @.str.4)
  %4750 = call ptr @__errno_location() #11
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  %4752 = call ptr @strerror(i32 noundef %4751) #10
  %4753 = call ptr @__errno_location() #11
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  %4755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4742, ptr noundef @.str.2, i32 noundef %4743, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4746, ptr noundef %4749, ptr noundef %4752, i32 noundef %4754) #10
  br label %4773

4756:                                             ; preds = %4734, %4727
  %4757 = load i32, ptr %111, align 4, !tbaa !5
  %4758 = call ptr @__errno_location() #11
  store i32 %4757, ptr %4758, align 4, !tbaa !5
  %4759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4760 = load i32, ptr @test_count, align 4, !tbaa !5
  %4761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4762 = load i32, ptr %4761, align 4, !tbaa !5
  %4763 = call ptr @s2n_strerror(i32 noundef %4762, ptr noundef @.str.4)
  %4764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4765 = load i32, ptr %4764, align 4, !tbaa !5
  %4766 = call ptr @s2n_strerror_debug(i32 noundef %4765, ptr noundef @.str.4)
  %4767 = call ptr @__errno_location() #11
  %4768 = load i32, ptr %4767, align 4, !tbaa !5
  %4769 = call ptr @strerror(i32 noundef %4768) #10
  %4770 = call ptr @__errno_location() #11
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  %4772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4759, ptr noundef @.str.5, i32 noundef %4760, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4763, ptr noundef %4766, ptr noundef %4769, i32 noundef %4771) #10
  br label %4773

4773:                                             ; preds = %4756, %4739
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %4774

4774:                                             ; preds = %4773
  br label %4775

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

4776:                                             ; No predecessors!
  br label %4777

4777:                                             ; preds = %4776
  br label %4778

4778:                                             ; preds = %4777, %4719
  br label %4779

4779:                                             ; preds = %4778
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

4781:                                             ; preds = %4780
  %4782 = load i32, ptr @test_count, align 4, !tbaa !5
  %4783 = add nsw i32 %4782, 1
  store i32 %4783, ptr @test_count, align 4, !tbaa !5
  %4784 = load ptr, ptr %105, align 8, !tbaa !9
  %4785 = load ptr, ptr %101, align 8, !tbaa !9
  %4786 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4784, ptr noundef %4785)
  %4787 = icmp eq i32 %4786, -1
  br i1 %4787, label %4788, label %4841

4788:                                             ; preds = %4781
  br label %4789

4789:                                             ; preds = %4788
  br label %4790

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

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

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

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

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

4837:                                             ; preds = %4836
  br label %4838

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

4839:                                             ; No predecessors!
  br label %4840

4840:                                             ; preds = %4839
  br label %4841

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

4842:                                             ; preds = %4841
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  %4845 = load i32, ptr @test_count, align 4, !tbaa !5
  %4846 = add nsw i32 %4845, 1
  store i32 %4846, ptr @test_count, align 4, !tbaa !5
  %4847 = load ptr, ptr %101, align 8, !tbaa !9
  %4848 = load i32, ptr %4847, align 8
  %4849 = lshr i32 %4848, 3
  %4850 = and i32 %4849, 1
  %4851 = icmp ne i32 %4850, 0
  br i1 %4851, label %4905, label %4852

4852:                                             ; preds = %4844
  br label %4853

4853:                                             ; preds = %4852
  br label %4854

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

4861:                                             ; preds = %4854
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = call i32 @fileno(ptr noundef %4862) #10
  %4864 = call i32 @isatty(i32 noundef %4863) #10
  %4865 = icmp ne i32 %4864, 0
  br i1 %4865, label %4866, label %4883

4866:                                             ; preds = %4861
  %4867 = load i32, ptr %113, align 4, !tbaa !5
  %4868 = call ptr @__errno_location() #11
  store i32 %4867, ptr %4868, align 4, !tbaa !5
  %4869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4870 = load i32, ptr @test_count, align 4, !tbaa !5
  %4871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  %4873 = call ptr @s2n_strerror(i32 noundef %4872, ptr noundef @.str.4)
  %4874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call ptr @s2n_strerror_debug(i32 noundef %4875, ptr noundef @.str.4)
  %4877 = call ptr @__errno_location() #11
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = call ptr @strerror(i32 noundef %4878) #10
  %4880 = call ptr @__errno_location() #11
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4869, ptr noundef @.str.2, i32 noundef %4870, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4873, ptr noundef %4876, ptr noundef %4879, i32 noundef %4881) #10
  br label %4900

4883:                                             ; preds = %4861, %4854
  %4884 = load i32, ptr %113, align 4, !tbaa !5
  %4885 = call ptr @__errno_location() #11
  store i32 %4884, ptr %4885, align 4, !tbaa !5
  %4886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4887 = load i32, ptr @test_count, align 4, !tbaa !5
  %4888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  %4890 = call ptr @s2n_strerror(i32 noundef %4889, ptr noundef @.str.4)
  %4891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4892 = load i32, ptr %4891, align 4, !tbaa !5
  %4893 = call ptr @s2n_strerror_debug(i32 noundef %4892, ptr noundef @.str.4)
  %4894 = call ptr @__errno_location() #11
  %4895 = load i32, ptr %4894, align 4, !tbaa !5
  %4896 = call ptr @strerror(i32 noundef %4895) #10
  %4897 = call ptr @__errno_location() #11
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4886, ptr noundef @.str.5, i32 noundef %4887, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4890, ptr noundef %4893, ptr noundef %4896, i32 noundef %4898) #10
  br label %4900

4900:                                             ; preds = %4883, %4866
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %4901

4901:                                             ; preds = %4900
  br label %4902

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

4903:                                             ; No predecessors!
  br label %4904

4904:                                             ; preds = %4903
  br label %4905

4905:                                             ; preds = %4904, %4844
  br label %4906

4906:                                             ; preds = %4905
  br label %4907

4907:                                             ; preds = %4906
  br label %4908

4908:                                             ; preds = %4907
  %4909 = load i32, ptr @test_count, align 4, !tbaa !5
  %4910 = add nsw i32 %4909, 1
  store i32 %4910, ptr @test_count, align 4, !tbaa !5
  %4911 = load ptr, ptr %105, align 8, !tbaa !9
  %4912 = call i32 @s2n_send_client_hello_request(ptr noundef %4911)
  %4913 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %4912, ptr %4913, align 4
  %4914 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  %4915 = load i32, ptr %4914, align 4
  %4916 = call zeroext i1 @s2n_result_is_ok(i32 %4915)
  br i1 %4916, label %4970, label %4917

4917:                                             ; preds = %4908
  br label %4918

4918:                                             ; preds = %4917
  br label %4919

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

4926:                                             ; preds = %4919
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @fileno(ptr noundef %4927) #10
  %4929 = call i32 @isatty(i32 noundef %4928) #10
  %4930 = icmp ne i32 %4929, 0
  br i1 %4930, label %4931, label %4948

4931:                                             ; preds = %4926
  %4932 = load i32, ptr %115, align 4, !tbaa !5
  %4933 = call ptr @__errno_location() #11
  store i32 %4932, ptr %4933, align 4, !tbaa !5
  %4934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4935 = load i32, ptr @test_count, align 4, !tbaa !5
  %4936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4937 = load i32, ptr %4936, align 4, !tbaa !5
  %4938 = call ptr @s2n_strerror(i32 noundef %4937, ptr noundef @.str.4)
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror_debug(i32 noundef %4940, ptr noundef @.str.4)
  %4942 = call ptr @__errno_location() #11
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @strerror(i32 noundef %4943) #10
  %4945 = call ptr @__errno_location() #11
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4934, ptr noundef @.str.2, i32 noundef %4935, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4938, ptr noundef %4941, ptr noundef %4944, i32 noundef %4946) #10
  br label %4965

4948:                                             ; preds = %4926, %4919
  %4949 = load i32, ptr %115, align 4, !tbaa !5
  %4950 = call ptr @__errno_location() #11
  store i32 %4949, ptr %4950, align 4, !tbaa !5
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = load i32, ptr @test_count, align 4, !tbaa !5
  %4953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call ptr @s2n_strerror(i32 noundef %4954, ptr noundef @.str.4)
  %4956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @s2n_strerror_debug(i32 noundef %4957, ptr noundef @.str.4)
  %4959 = call ptr @__errno_location() #11
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call ptr @strerror(i32 noundef %4960) #10
  %4962 = call ptr @__errno_location() #11
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4951, ptr noundef @.str.5, i32 noundef %4952, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4955, ptr noundef %4958, ptr noundef %4961, i32 noundef %4963) #10
  br label %4965

4965:                                             ; preds = %4948, %4931
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %4966

4966:                                             ; preds = %4965
  br label %4967

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

4968:                                             ; No predecessors!
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

4970:                                             ; preds = %4969, %4908
  br label %4971

4971:                                             ; preds = %4970
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = add nsw i32 %4974, 1
  store i32 %4975, ptr @test_count, align 4, !tbaa !5
  %4976 = load ptr, ptr %105, align 8, !tbaa !9
  %4977 = load ptr, ptr %101, align 8, !tbaa !9
  %4978 = call i32 @s2n_send_and_recv_test(ptr noundef %4976, ptr noundef %4977)
  %4979 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  store i32 %4978, ptr %4979, align 4
  %4980 = getelementptr inbounds %struct.s2n_result, ptr %116, i32 0, i32 0
  %4981 = load i32, ptr %4980, align 4
  %4982 = call zeroext i1 @s2n_result_is_ok(i32 %4981)
  br i1 %4982, label %5036, label %4983

4983:                                             ; preds = %4973
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

4985:                                             ; preds = %4984
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %4986 = call ptr @__errno_location() #11
  %4987 = load i32, ptr %4986, align 4, !tbaa !5
  store i32 %4987, ptr %117, align 4, !tbaa !5
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = call i32 @s2n_print_stacktrace(ptr noundef %4988)
  %4990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4991 = trunc i8 %4990 to i1
  br i1 %4991, label %4992, label %5014

4992:                                             ; preds = %4985
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = call i32 @fileno(ptr noundef %4993) #10
  %4995 = call i32 @isatty(i32 noundef %4994) #10
  %4996 = icmp ne i32 %4995, 0
  br i1 %4996, label %4997, label %5014

4997:                                             ; preds = %4992
  %4998 = load i32, ptr %117, align 4, !tbaa !5
  %4999 = call ptr @__errno_location() #11
  store i32 %4998, ptr %4999, align 4, !tbaa !5
  %5000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5001 = load i32, ptr @test_count, align 4, !tbaa !5
  %5002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror(i32 noundef %5003, ptr noundef @.str.4)
  %5005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror_debug(i32 noundef %5006, ptr noundef @.str.4)
  %5008 = call ptr @__errno_location() #11
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @strerror(i32 noundef %5009) #10
  %5011 = call ptr @__errno_location() #11
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5000, ptr noundef @.str.2, i32 noundef %5001, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5004, ptr noundef %5007, ptr noundef %5010, i32 noundef %5012) #10
  br label %5031

5014:                                             ; preds = %4992, %4985
  %5015 = load i32, ptr %117, align 4, !tbaa !5
  %5016 = call ptr @__errno_location() #11
  store i32 %5015, ptr %5016, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = load i32, ptr @test_count, align 4, !tbaa !5
  %5019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @s2n_strerror(i32 noundef %5020, ptr noundef @.str.4)
  %5022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @s2n_strerror_debug(i32 noundef %5023, ptr noundef @.str.4)
  %5025 = call ptr @__errno_location() #11
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call ptr @strerror(i32 noundef %5026) #10
  %5028 = call ptr @__errno_location() #11
  %5029 = load i32, ptr %5028, align 4, !tbaa !5
  %5030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5017, ptr noundef @.str.5, i32 noundef %5018, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5021, ptr noundef %5024, ptr noundef %5027, i32 noundef %5029) #10
  br label %5031

5031:                                             ; preds = %5014, %4997
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

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

5034:                                             ; No predecessors!
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

5036:                                             ; preds = %5035, %4973
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038
  %5040 = load i32, ptr @test_count, align 4, !tbaa !5
  %5041 = add nsw i32 %5040, 1
  store i32 %5041, ptr @test_count, align 4, !tbaa !5
  %5042 = load ptr, ptr %101, align 8, !tbaa !9
  %5043 = load ptr, ptr %105, align 8, !tbaa !9
  %5044 = call i32 @s2n_send_and_recv_test(ptr noundef %5042, ptr noundef %5043)
  %5045 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %5044, ptr %5045, align 4
  %5046 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  %5047 = load i32, ptr %5046, align 4
  %5048 = call zeroext i1 @s2n_result_is_ok(i32 %5047)
  br i1 %5048, label %5102, label %5049

5049:                                             ; preds = %5039
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #10
  %5052 = call ptr @__errno_location() #11
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  store i32 %5053, ptr %119, align 4, !tbaa !5
  %5054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5055 = call i32 @s2n_print_stacktrace(ptr noundef %5054)
  %5056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5057 = trunc i8 %5056 to i1
  br i1 %5057, label %5058, label %5080

5058:                                             ; preds = %5051
  %5059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5060 = call i32 @fileno(ptr noundef %5059) #10
  %5061 = call i32 @isatty(i32 noundef %5060) #10
  %5062 = icmp ne i32 %5061, 0
  br i1 %5062, label %5063, label %5080

5063:                                             ; preds = %5058
  %5064 = load i32, ptr %119, align 4, !tbaa !5
  %5065 = call ptr @__errno_location() #11
  store i32 %5064, ptr %5065, align 4, !tbaa !5
  %5066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5067 = load i32, ptr @test_count, align 4, !tbaa !5
  %5068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @s2n_strerror(i32 noundef %5069, ptr noundef @.str.4)
  %5071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @s2n_strerror_debug(i32 noundef %5072, ptr noundef @.str.4)
  %5074 = call ptr @__errno_location() #11
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call ptr @strerror(i32 noundef %5075) #10
  %5077 = call ptr @__errno_location() #11
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5066, ptr noundef @.str.2, i32 noundef %5067, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5070, ptr noundef %5073, ptr noundef %5076, i32 noundef %5078) #10
  br label %5097

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

5097:                                             ; preds = %5080, %5063
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

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

5100:                                             ; No predecessors!
  br label %5101

5101:                                             ; preds = %5100
  br label %5102

5102:                                             ; preds = %5101, %5039
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = add nsw i32 %5106, 1
  store i32 %5107, ptr @test_count, align 4, !tbaa !5
  %5108 = load ptr, ptr %101, align 8, !tbaa !9
  %5109 = getelementptr inbounds %struct.s2n_connection, ptr %5108, i32 0, i32 1
  %5110 = load ptr, ptr %5109, align 8, !tbaa !47
  %5111 = getelementptr inbounds %struct.s2n_config, ptr %5110, i32 0, i32 54
  %5112 = load ptr, ptr %5111, align 8, !tbaa !48
  %5113 = icmp eq ptr %5112, null
  br i1 %5113, label %5167, label %5114

5114:                                             ; preds = %5105
  br label %5115

5115:                                             ; preds = %5114
  br label %5116

5116:                                             ; preds = %5115
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %5117 = call ptr @__errno_location() #11
  %5118 = load i32, ptr %5117, align 4, !tbaa !5
  store i32 %5118, ptr %120, align 4, !tbaa !5
  %5119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5120 = call i32 @s2n_print_stacktrace(ptr noundef %5119)
  %5121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5122 = trunc i8 %5121 to i1
  br i1 %5122, label %5123, label %5145

5123:                                             ; preds = %5116
  %5124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5125 = call i32 @fileno(ptr noundef %5124) #10
  %5126 = call i32 @isatty(i32 noundef %5125) #10
  %5127 = icmp ne i32 %5126, 0
  br i1 %5127, label %5128, label %5145

5128:                                             ; preds = %5123
  %5129 = load i32, ptr %120, align 4, !tbaa !5
  %5130 = call ptr @__errno_location() #11
  store i32 %5129, ptr %5130, align 4, !tbaa !5
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = load i32, ptr @test_count, align 4, !tbaa !5
  %5133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @s2n_strerror(i32 noundef %5134, ptr noundef @.str.4)
  %5136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call ptr @s2n_strerror_debug(i32 noundef %5137, ptr noundef @.str.4)
  %5139 = call ptr @__errno_location() #11
  %5140 = load i32, ptr %5139, align 4, !tbaa !5
  %5141 = call ptr @strerror(i32 noundef %5140) #10
  %5142 = call ptr @__errno_location() #11
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  %5144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5131, ptr noundef @.str.2, i32 noundef %5132, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5135, ptr noundef %5138, ptr noundef %5141, i32 noundef %5143) #10
  br label %5162

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

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

5163:                                             ; preds = %5162
  br label %5164

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

5165:                                             ; No predecessors!
  br label %5166

5166:                                             ; preds = %5165
  br label %5167

5167:                                             ; preds = %5166, %5105
  br label %5168

5168:                                             ; preds = %5167
  br label %5169

5169:                                             ; preds = %5168
  %5170 = call i32 @s2n_io_pair_close(ptr noundef %108)
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #10
  %5171 = call i32 @s2n_connection_ptr_free(ptr noundef %105)
  %5172 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5171, ptr %5172, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  %5173 = call i32 @s2n_connection_ptr_free(ptr noundef %101)
  %5174 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5173, ptr %5174, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %123, ptr align 4 @__const.main.ctx, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %5175 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5175, ptr %124, align 8, !tbaa !9
  br label %5176

5176:                                             ; preds = %5169
  %5177 = load i32, ptr @test_count, align 4, !tbaa !5
  %5178 = add nsw i32 %5177, 1
  store i32 %5178, ptr @test_count, align 4, !tbaa !5
  %5179 = load ptr, ptr %124, align 8, !tbaa !9
  %5180 = icmp eq ptr %5179, null
  br i1 %5180, label %5181, label %5234

5181:                                             ; preds = %5176
  br label %5182

5182:                                             ; preds = %5181
  br label %5183

5183:                                             ; preds = %5182
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5184 = call ptr @__errno_location() #11
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  store i32 %5185, ptr %125, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = call i32 @s2n_print_stacktrace(ptr noundef %5186)
  %5188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5189 = trunc i8 %5188 to i1
  br i1 %5189, label %5190, label %5212

5190:                                             ; preds = %5183
  %5191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5192 = call i32 @fileno(ptr noundef %5191) #10
  %5193 = call i32 @isatty(i32 noundef %5192) #10
  %5194 = icmp ne i32 %5193, 0
  br i1 %5194, label %5195, label %5212

5195:                                             ; preds = %5190
  %5196 = load i32, ptr %125, align 4, !tbaa !5
  %5197 = call ptr @__errno_location() #11
  store i32 %5196, ptr %5197, align 4, !tbaa !5
  %5198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5199 = load i32, ptr @test_count, align 4, !tbaa !5
  %5200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5201 = load i32, ptr %5200, align 4, !tbaa !5
  %5202 = call ptr @s2n_strerror(i32 noundef %5201, ptr noundef @.str.4)
  %5203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @s2n_strerror_debug(i32 noundef %5204, ptr noundef @.str.4)
  %5206 = call ptr @__errno_location() #11
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call ptr @strerror(i32 noundef %5207) #10
  %5209 = call ptr @__errno_location() #11
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5198, ptr noundef @.str.2, i32 noundef %5199, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5202, ptr noundef %5205, ptr noundef %5208, i32 noundef %5210) #10
  br label %5229

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

5229:                                             ; preds = %5212, %5195
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

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

5232:                                             ; No predecessors!
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

5234:                                             ; preds = %5233, %5176
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236
  %5238 = load i32, ptr @test_count, align 4, !tbaa !5
  %5239 = add nsw i32 %5238, 1
  store i32 %5239, ptr @test_count, align 4, !tbaa !5
  %5240 = load ptr, ptr %124, align 8, !tbaa !9
  %5241 = load ptr, ptr %17, align 8, !tbaa !9
  %5242 = call i32 @s2n_connection_set_config(ptr noundef %5240, ptr noundef %5241)
  %5243 = icmp eq i32 %5242, -1
  br i1 %5243, label %5244, label %5297

5244:                                             ; preds = %5237
  br label %5245

5245:                                             ; preds = %5244
  br label %5246

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

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

5258:                                             ; preds = %5253
  %5259 = load i32, ptr %126, align 4, !tbaa !5
  %5260 = call ptr @__errno_location() #11
  store i32 %5259, ptr %5260, align 4, !tbaa !5
  %5261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5262 = load i32, ptr @test_count, align 4, !tbaa !5
  %5263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5264 = load i32, ptr %5263, align 4, !tbaa !5
  %5265 = call ptr @s2n_strerror(i32 noundef %5264, ptr noundef @.str.4)
  %5266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5267 = load i32, ptr %5266, align 4, !tbaa !5
  %5268 = call ptr @s2n_strerror_debug(i32 noundef %5267, ptr noundef @.str.4)
  %5269 = call ptr @__errno_location() #11
  %5270 = load i32, ptr %5269, align 4, !tbaa !5
  %5271 = call ptr @strerror(i32 noundef %5270) #10
  %5272 = call ptr @__errno_location() #11
  %5273 = load i32, ptr %5272, align 4, !tbaa !5
  %5274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5261, ptr noundef @.str.2, i32 noundef %5262, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 270, ptr noundef %5265, ptr noundef %5268, ptr noundef %5271, i32 noundef %5273) #10
  br label %5292

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

5292:                                             ; preds = %5275, %5258
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %5293

5293:                                             ; preds = %5292
  br label %5294

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

5295:                                             ; No predecessors!
  br label %5296

5296:                                             ; preds = %5295
  br label %5297

5297:                                             ; preds = %5296, %5237
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299
  %5301 = load i32, ptr @test_count, align 4, !tbaa !5
  %5302 = add nsw i32 %5301, 1
  store i32 %5302, ptr @test_count, align 4, !tbaa !5
  %5303 = load ptr, ptr %17, align 8, !tbaa !9
  %5304 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %5303, ptr noundef @s2n_test_reneg_req_cb, ptr noundef %123)
  %5305 = icmp eq i32 %5304, -1
  br i1 %5305, label %5306, label %5359

5306:                                             ; preds = %5300
  br label %5307

5307:                                             ; preds = %5306
  br label %5308

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

5315:                                             ; preds = %5308
  %5316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5317 = call i32 @fileno(ptr noundef %5316) #10
  %5318 = call i32 @isatty(i32 noundef %5317) #10
  %5319 = icmp ne i32 %5318, 0
  br i1 %5319, label %5320, label %5337

5320:                                             ; preds = %5315
  %5321 = load i32, ptr %127, align 4, !tbaa !5
  %5322 = call ptr @__errno_location() #11
  store i32 %5321, ptr %5322, align 4, !tbaa !5
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = load i32, ptr @test_count, align 4, !tbaa !5
  %5325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5326 = load i32, ptr %5325, align 4, !tbaa !5
  %5327 = call ptr @s2n_strerror(i32 noundef %5326, ptr noundef @.str.4)
  %5328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5329 = load i32, ptr %5328, align 4, !tbaa !5
  %5330 = call ptr @s2n_strerror_debug(i32 noundef %5329, ptr noundef @.str.4)
  %5331 = call ptr @__errno_location() #11
  %5332 = load i32, ptr %5331, align 4, !tbaa !5
  %5333 = call ptr @strerror(i32 noundef %5332) #10
  %5334 = call ptr @__errno_location() #11
  %5335 = load i32, ptr %5334, align 4, !tbaa !5
  %5336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5323, ptr noundef @.str.2, i32 noundef %5324, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5327, ptr noundef %5330, ptr noundef %5333, i32 noundef %5335) #10
  br label %5354

5337:                                             ; preds = %5315, %5308
  %5338 = load i32, ptr %127, align 4, !tbaa !5
  %5339 = call ptr @__errno_location() #11
  store i32 %5338, ptr %5339, align 4, !tbaa !5
  %5340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5341 = load i32, ptr @test_count, align 4, !tbaa !5
  %5342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5343 = load i32, ptr %5342, align 4, !tbaa !5
  %5344 = call ptr @s2n_strerror(i32 noundef %5343, ptr noundef @.str.4)
  %5345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5346 = load i32, ptr %5345, align 4, !tbaa !5
  %5347 = call ptr @s2n_strerror_debug(i32 noundef %5346, ptr noundef @.str.4)
  %5348 = call ptr @__errno_location() #11
  %5349 = load i32, ptr %5348, align 4, !tbaa !5
  %5350 = call ptr @strerror(i32 noundef %5349) #10
  %5351 = call ptr @__errno_location() #11
  %5352 = load i32, ptr %5351, align 4, !tbaa !5
  %5353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5340, ptr noundef @.str.5, i32 noundef %5341, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 271, ptr noundef %5344, ptr noundef %5347, ptr noundef %5350, i32 noundef %5352) #10
  br label %5354

5354:                                             ; preds = %5337, %5320
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5355

5355:                                             ; preds = %5354
  br label %5356

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

5357:                                             ; No predecessors!
  br label %5358

5358:                                             ; preds = %5357
  br label %5359

5359:                                             ; preds = %5358, %5300
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %5362 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5362, ptr %128, align 8, !tbaa !9
  br label %5363

5363:                                             ; preds = %5361
  %5364 = load i32, ptr @test_count, align 4, !tbaa !5
  %5365 = add nsw i32 %5364, 1
  store i32 %5365, ptr @test_count, align 4, !tbaa !5
  %5366 = load ptr, ptr %128, align 8, !tbaa !9
  %5367 = icmp eq ptr %5366, null
  br i1 %5367, label %5368, label %5421

5368:                                             ; preds = %5363
  br label %5369

5369:                                             ; preds = %5368
  br label %5370

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

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

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

5399:                                             ; preds = %5377, %5370
  %5400 = load i32, ptr %129, align 4, !tbaa !5
  %5401 = call ptr @__errno_location() #11
  store i32 %5400, ptr %5401, align 4, !tbaa !5
  %5402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5403 = load i32, ptr @test_count, align 4, !tbaa !5
  %5404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5405 = load i32, ptr %5404, align 4, !tbaa !5
  %5406 = call ptr @s2n_strerror(i32 noundef %5405, ptr noundef @.str.4)
  %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_debug(i32 noundef %5408, ptr noundef @.str.4)
  %5410 = call ptr @__errno_location() #11
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call ptr @strerror(i32 noundef %5411) #10
  %5413 = call ptr @__errno_location() #11
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5402, ptr noundef @.str.5, i32 noundef %5403, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5406, ptr noundef %5409, ptr noundef %5412, i32 noundef %5414) #10
  br label %5416

5416:                                             ; preds = %5399, %5382
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5417

5417:                                             ; preds = %5416
  br label %5418

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

5419:                                             ; No predecessors!
  br label %5420

5420:                                             ; preds = %5419
  br label %5421

5421:                                             ; preds = %5420, %5363
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423
  %5425 = load i32, ptr @test_count, align 4, !tbaa !5
  %5426 = add nsw i32 %5425, 1
  store i32 %5426, ptr @test_count, align 4, !tbaa !5
  %5427 = load ptr, ptr %128, align 8, !tbaa !9
  %5428 = load ptr, ptr %12, align 8, !tbaa !9
  %5429 = call i32 @s2n_connection_set_config(ptr noundef %5427, ptr noundef %5428)
  %5430 = icmp eq i32 %5429, -1
  br i1 %5430, label %5431, label %5484

5431:                                             ; preds = %5424
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

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

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

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

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

5479:                                             ; preds = %5462, %5445
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

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

5482:                                             ; No predecessors!
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

5484:                                             ; preds = %5483, %5424
  br label %5485

5485:                                             ; preds = %5484
  br label %5486

5486:                                             ; preds = %5485
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #10
  call void @llvm.memset.p0.i64(ptr align 4 %131, i8 0, i64 8, i1 false)
  br label %5487

5487:                                             ; preds = %5486
  %5488 = load i32, ptr @test_count, align 4, !tbaa !5
  %5489 = add nsw i32 %5488, 1
  store i32 %5489, ptr @test_count, align 4, !tbaa !5
  %5490 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %131)
  %5491 = icmp eq i32 %5490, -1
  br i1 %5491, label %5492, label %5545

5492:                                             ; preds = %5487
  br label %5493

5493:                                             ; preds = %5492
  br label %5494

5494:                                             ; preds = %5493
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %5495 = call ptr @__errno_location() #11
  %5496 = load i32, ptr %5495, align 4, !tbaa !5
  store i32 %5496, ptr %132, align 4, !tbaa !5
  %5497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5498 = call i32 @s2n_print_stacktrace(ptr noundef %5497)
  %5499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5500 = trunc i8 %5499 to i1
  br i1 %5500, label %5501, label %5523

5501:                                             ; preds = %5494
  %5502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5503 = call i32 @fileno(ptr noundef %5502) #10
  %5504 = call i32 @isatty(i32 noundef %5503) #10
  %5505 = icmp ne i32 %5504, 0
  br i1 %5505, label %5506, label %5523

5506:                                             ; preds = %5501
  %5507 = load i32, ptr %132, align 4, !tbaa !5
  %5508 = call ptr @__errno_location() #11
  store i32 %5507, ptr %5508, align 4, !tbaa !5
  %5509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5510 = load i32, ptr @test_count, align 4, !tbaa !5
  %5511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @s2n_strerror(i32 noundef %5512, ptr noundef @.str.4)
  %5514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call ptr @s2n_strerror_debug(i32 noundef %5515, ptr noundef @.str.4)
  %5517 = call ptr @__errno_location() #11
  %5518 = load i32, ptr %5517, align 4, !tbaa !5
  %5519 = call ptr @strerror(i32 noundef %5518) #10
  %5520 = call ptr @__errno_location() #11
  %5521 = load i32, ptr %5520, align 4, !tbaa !5
  %5522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5509, ptr noundef @.str.2, i32 noundef %5510, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 279, ptr noundef %5513, ptr noundef %5516, ptr noundef %5519, i32 noundef %5521) #10
  br label %5540

5523:                                             ; preds = %5501, %5494
  %5524 = load i32, ptr %132, align 4, !tbaa !5
  %5525 = call ptr @__errno_location() #11
  store i32 %5524, ptr %5525, align 4, !tbaa !5
  %5526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5527 = load i32, ptr @test_count, align 4, !tbaa !5
  %5528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call ptr @s2n_strerror(i32 noundef %5529, ptr noundef @.str.4)
  %5531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  %5533 = call ptr @s2n_strerror_debug(i32 noundef %5532, ptr noundef @.str.4)
  %5534 = call ptr @__errno_location() #11
  %5535 = load i32, ptr %5534, align 4, !tbaa !5
  %5536 = call ptr @strerror(i32 noundef %5535) #10
  %5537 = call ptr @__errno_location() #11
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  %5539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5526, ptr noundef @.str.5, i32 noundef %5527, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 279, ptr noundef %5530, ptr noundef %5533, ptr noundef %5536, i32 noundef %5538) #10
  br label %5540

5540:                                             ; preds = %5523, %5506
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %5541

5541:                                             ; preds = %5540
  br label %5542

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

5543:                                             ; No predecessors!
  br label %5544

5544:                                             ; preds = %5543
  br label %5545

5545:                                             ; preds = %5544, %5487
  br label %5546

5546:                                             ; preds = %5545
  br label %5547

5547:                                             ; preds = %5546
  br label %5548

5548:                                             ; preds = %5547
  %5549 = load i32, ptr @test_count, align 4, !tbaa !5
  %5550 = add nsw i32 %5549, 1
  store i32 %5550, ptr @test_count, align 4, !tbaa !5
  %5551 = load ptr, ptr %124, align 8, !tbaa !9
  %5552 = call i32 @s2n_connection_set_io_pair(ptr noundef %5551, ptr noundef %131)
  %5553 = icmp eq i32 %5552, -1
  br i1 %5553, label %5554, label %5607

5554:                                             ; preds = %5548
  br label %5555

5555:                                             ; preds = %5554
  br label %5556

5556:                                             ; preds = %5555
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %5557 = call ptr @__errno_location() #11
  %5558 = load i32, ptr %5557, align 4, !tbaa !5
  store i32 %5558, ptr %133, align 4, !tbaa !5
  %5559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5560 = call i32 @s2n_print_stacktrace(ptr noundef %5559)
  %5561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5562 = trunc i8 %5561 to i1
  br i1 %5562, label %5563, label %5585

5563:                                             ; preds = %5556
  %5564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5565 = call i32 @fileno(ptr noundef %5564) #10
  %5566 = call i32 @isatty(i32 noundef %5565) #10
  %5567 = icmp ne i32 %5566, 0
  br i1 %5567, label %5568, label %5585

5568:                                             ; preds = %5563
  %5569 = load i32, ptr %133, align 4, !tbaa !5
  %5570 = call ptr @__errno_location() #11
  store i32 %5569, ptr %5570, align 4, !tbaa !5
  %5571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5572 = load i32, ptr @test_count, align 4, !tbaa !5
  %5573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror(i32 noundef %5574, ptr noundef @.str.4)
  %5576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @s2n_strerror_debug(i32 noundef %5577, ptr noundef @.str.4)
  %5579 = call ptr @__errno_location() #11
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call ptr @strerror(i32 noundef %5580) #10
  %5582 = call ptr @__errno_location() #11
  %5583 = load i32, ptr %5582, align 4, !tbaa !5
  %5584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5571, ptr noundef @.str.2, i32 noundef %5572, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5575, ptr noundef %5578, ptr noundef %5581, i32 noundef %5583) #10
  br label %5602

5585:                                             ; preds = %5563, %5556
  %5586 = load i32, ptr %133, align 4, !tbaa !5
  %5587 = call ptr @__errno_location() #11
  store i32 %5586, ptr %5587, align 4, !tbaa !5
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = load i32, ptr @test_count, align 4, !tbaa !5
  %5590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5591 = load i32, ptr %5590, align 4, !tbaa !5
  %5592 = call ptr @s2n_strerror(i32 noundef %5591, ptr noundef @.str.4)
  %5593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @s2n_strerror_debug(i32 noundef %5594, ptr noundef @.str.4)
  %5596 = call ptr @__errno_location() #11
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call ptr @strerror(i32 noundef %5597) #10
  %5599 = call ptr @__errno_location() #11
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5588, ptr noundef @.str.5, i32 noundef %5589, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5592, ptr noundef %5595, ptr noundef %5598, i32 noundef %5600) #10
  br label %5602

5602:                                             ; preds = %5585, %5568
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  br label %5603

5603:                                             ; preds = %5602
  br label %5604

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

5605:                                             ; No predecessors!
  br label %5606

5606:                                             ; preds = %5605
  br label %5607

5607:                                             ; preds = %5606, %5548
  br label %5608

5608:                                             ; preds = %5607
  br label %5609

5609:                                             ; preds = %5608
  br label %5610

5610:                                             ; preds = %5609
  %5611 = load i32, ptr @test_count, align 4, !tbaa !5
  %5612 = add nsw i32 %5611, 1
  store i32 %5612, ptr @test_count, align 4, !tbaa !5
  %5613 = load ptr, ptr %128, align 8, !tbaa !9
  %5614 = call i32 @s2n_connection_set_io_pair(ptr noundef %5613, ptr noundef %131)
  %5615 = icmp eq i32 %5614, -1
  br i1 %5615, label %5616, label %5669

5616:                                             ; preds = %5610
  br label %5617

5617:                                             ; preds = %5616
  br label %5618

5618:                                             ; preds = %5617
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %5619 = call ptr @__errno_location() #11
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  store i32 %5620, ptr %134, align 4, !tbaa !5
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = call i32 @s2n_print_stacktrace(ptr noundef %5621)
  %5623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5624 = trunc i8 %5623 to i1
  br i1 %5624, label %5625, label %5647

5625:                                             ; preds = %5618
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = call i32 @fileno(ptr noundef %5626) #10
  %5628 = call i32 @isatty(i32 noundef %5627) #10
  %5629 = icmp ne i32 %5628, 0
  br i1 %5629, label %5630, label %5647

5630:                                             ; preds = %5625
  %5631 = load i32, ptr %134, align 4, !tbaa !5
  %5632 = call ptr @__errno_location() #11
  store i32 %5631, ptr %5632, align 4, !tbaa !5
  %5633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5634 = load i32, ptr @test_count, align 4, !tbaa !5
  %5635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5636 = load i32, ptr %5635, align 4, !tbaa !5
  %5637 = call ptr @s2n_strerror(i32 noundef %5636, ptr noundef @.str.4)
  %5638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = call ptr @s2n_strerror_debug(i32 noundef %5639, ptr noundef @.str.4)
  %5641 = call ptr @__errno_location() #11
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  %5643 = call ptr @strerror(i32 noundef %5642) #10
  %5644 = call ptr @__errno_location() #11
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  %5646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5633, ptr noundef @.str.2, i32 noundef %5634, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5637, ptr noundef %5640, ptr noundef %5643, i32 noundef %5645) #10
  br label %5664

5647:                                             ; preds = %5625, %5618
  %5648 = load i32, ptr %134, align 4, !tbaa !5
  %5649 = call ptr @__errno_location() #11
  store i32 %5648, ptr %5649, align 4, !tbaa !5
  %5650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5651 = load i32, ptr @test_count, align 4, !tbaa !5
  %5652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call ptr @s2n_strerror(i32 noundef %5653, ptr noundef @.str.4)
  %5655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @s2n_strerror_debug(i32 noundef %5656, ptr noundef @.str.4)
  %5658 = call ptr @__errno_location() #11
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call ptr @strerror(i32 noundef %5659) #10
  %5661 = call ptr @__errno_location() #11
  %5662 = load i32, ptr %5661, align 4, !tbaa !5
  %5663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5650, ptr noundef @.str.5, i32 noundef %5651, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5654, ptr noundef %5657, ptr noundef %5660, i32 noundef %5662) #10
  br label %5664

5664:                                             ; preds = %5647, %5630
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %5665

5665:                                             ; preds = %5664
  br label %5666

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

5667:                                             ; No predecessors!
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668, %5610
  br label %5670

5670:                                             ; preds = %5669
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671
  %5673 = load i32, ptr @test_count, align 4, !tbaa !5
  %5674 = add nsw i32 %5673, 1
  store i32 %5674, ptr @test_count, align 4, !tbaa !5
  %5675 = load ptr, ptr %128, align 8, !tbaa !9
  %5676 = load ptr, ptr %124, align 8, !tbaa !9
  %5677 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5675, ptr noundef %5676)
  %5678 = icmp eq i32 %5677, -1
  br i1 %5678, label %5679, label %5732

5679:                                             ; preds = %5672
  br label %5680

5680:                                             ; preds = %5679
  br label %5681

5681:                                             ; preds = %5680
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %5682 = call ptr @__errno_location() #11
  %5683 = load i32, ptr %5682, align 4, !tbaa !5
  store i32 %5683, ptr %135, align 4, !tbaa !5
  %5684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5685 = call i32 @s2n_print_stacktrace(ptr noundef %5684)
  %5686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5687 = trunc i8 %5686 to i1
  br i1 %5687, label %5688, label %5710

5688:                                             ; preds = %5681
  %5689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5690 = call i32 @fileno(ptr noundef %5689) #10
  %5691 = call i32 @isatty(i32 noundef %5690) #10
  %5692 = icmp ne i32 %5691, 0
  br i1 %5692, label %5693, label %5710

5693:                                             ; preds = %5688
  %5694 = load i32, ptr %135, align 4, !tbaa !5
  %5695 = call ptr @__errno_location() #11
  store i32 %5694, ptr %5695, align 4, !tbaa !5
  %5696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5697 = load i32, ptr @test_count, align 4, !tbaa !5
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror(i32 noundef %5699, ptr noundef @.str.4)
  %5701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @s2n_strerror_debug(i32 noundef %5702, ptr noundef @.str.4)
  %5704 = call ptr @__errno_location() #11
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call ptr @strerror(i32 noundef %5705) #10
  %5707 = call ptr @__errno_location() #11
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5696, ptr noundef @.str.2, i32 noundef %5697, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 284, ptr noundef %5700, ptr noundef %5703, ptr noundef %5706, i32 noundef %5708) #10
  br label %5727

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

5727:                                             ; preds = %5710, %5693
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

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

5730:                                             ; No predecessors!
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731, %5672
  br label %5733

5733:                                             ; preds = %5732
  br label %5734

5734:                                             ; preds = %5733
  br label %5735

5735:                                             ; preds = %5734
  %5736 = load i32, ptr @test_count, align 4, !tbaa !5
  %5737 = add nsw i32 %5736, 1
  store i32 %5737, ptr @test_count, align 4, !tbaa !5
  %5738 = load ptr, ptr %124, align 8, !tbaa !9
  %5739 = load i32, ptr %5738, align 8
  %5740 = lshr i32 %5739, 3
  %5741 = and i32 %5740, 1
  %5742 = icmp ne i32 %5741, 0
  br i1 %5742, label %5796, label %5743

5743:                                             ; preds = %5735
  br label %5744

5744:                                             ; preds = %5743
  br label %5745

5745:                                             ; preds = %5744
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %5746 = call ptr @__errno_location() #11
  %5747 = load i32, ptr %5746, align 4, !tbaa !5
  store i32 %5747, ptr %136, align 4, !tbaa !5
  %5748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5749 = call i32 @s2n_print_stacktrace(ptr noundef %5748)
  %5750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5751 = trunc i8 %5750 to i1
  br i1 %5751, label %5752, label %5774

5752:                                             ; preds = %5745
  %5753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5754 = call i32 @fileno(ptr noundef %5753) #10
  %5755 = call i32 @isatty(i32 noundef %5754) #10
  %5756 = icmp ne i32 %5755, 0
  br i1 %5756, label %5757, label %5774

5757:                                             ; preds = %5752
  %5758 = load i32, ptr %136, align 4, !tbaa !5
  %5759 = call ptr @__errno_location() #11
  store i32 %5758, ptr %5759, align 4, !tbaa !5
  %5760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5761 = load i32, ptr @test_count, align 4, !tbaa !5
  %5762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  %5764 = call ptr @s2n_strerror(i32 noundef %5763, ptr noundef @.str.4)
  %5765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @s2n_strerror_debug(i32 noundef %5766, ptr noundef @.str.4)
  %5768 = call ptr @__errno_location() #11
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call ptr @strerror(i32 noundef %5769) #10
  %5771 = call ptr @__errno_location() #11
  %5772 = load i32, ptr %5771, align 4, !tbaa !5
  %5773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5760, ptr noundef @.str.2, i32 noundef %5761, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 285, ptr noundef %5764, ptr noundef %5767, ptr noundef %5770, i32 noundef %5772) #10
  br label %5791

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

5791:                                             ; preds = %5774, %5757
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

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

5794:                                             ; No predecessors!
  br label %5795

5795:                                             ; preds = %5794
  br label %5796

5796:                                             ; preds = %5795, %5735
  br label %5797

5797:                                             ; preds = %5796
  br label %5798

5798:                                             ; preds = %5797
  br label %5799

5799:                                             ; preds = %5798
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = add nsw i32 %5800, 1
  store i32 %5801, ptr @test_count, align 4, !tbaa !5
  %5802 = load ptr, ptr %128, align 8, !tbaa !9
  %5803 = call i32 @s2n_send_client_hello_request(ptr noundef %5802)
  %5804 = getelementptr inbounds %struct.s2n_result, ptr %137, i32 0, i32 0
  store i32 %5803, ptr %5804, align 4
  %5805 = getelementptr inbounds %struct.s2n_result, ptr %137, i32 0, i32 0
  %5806 = load i32, ptr %5805, align 4
  %5807 = call zeroext i1 @s2n_result_is_ok(i32 %5806)
  br i1 %5807, label %5861, label %5808

5808:                                             ; preds = %5799
  br label %5809

5809:                                             ; preds = %5808
  br label %5810

5810:                                             ; preds = %5809
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %5811 = call ptr @__errno_location() #11
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  store i32 %5812, ptr %138, align 4, !tbaa !5
  %5813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5814 = call i32 @s2n_print_stacktrace(ptr noundef %5813)
  %5815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5816 = trunc i8 %5815 to i1
  br i1 %5816, label %5817, label %5839

5817:                                             ; preds = %5810
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = call i32 @fileno(ptr noundef %5818) #10
  %5820 = call i32 @isatty(i32 noundef %5819) #10
  %5821 = icmp ne i32 %5820, 0
  br i1 %5821, label %5822, label %5839

5822:                                             ; preds = %5817
  %5823 = load i32, ptr %138, align 4, !tbaa !5
  %5824 = call ptr @__errno_location() #11
  store i32 %5823, ptr %5824, align 4, !tbaa !5
  %5825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5826 = load i32, ptr @test_count, align 4, !tbaa !5
  %5827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call ptr @s2n_strerror(i32 noundef %5828, ptr noundef @.str.4)
  %5830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  %5832 = call ptr @s2n_strerror_debug(i32 noundef %5831, ptr noundef @.str.4)
  %5833 = call ptr @__errno_location() #11
  %5834 = load i32, ptr %5833, align 4, !tbaa !5
  %5835 = call ptr @strerror(i32 noundef %5834) #10
  %5836 = call ptr @__errno_location() #11
  %5837 = load i32, ptr %5836, align 4, !tbaa !5
  %5838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5825, ptr noundef @.str.2, i32 noundef %5826, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5829, ptr noundef %5832, ptr noundef %5835, i32 noundef %5837) #10
  br label %5856

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

5856:                                             ; preds = %5839, %5822
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %5857

5857:                                             ; preds = %5856
  br label %5858

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

5859:                                             ; No predecessors!
  br label %5860

5860:                                             ; preds = %5859
  br label %5861

5861:                                             ; preds = %5860, %5799
  br label %5862

5862:                                             ; preds = %5861
  br label %5863

5863:                                             ; preds = %5862
  br label %5864

5864:                                             ; preds = %5863
  %5865 = load i32, ptr @test_count, align 4, !tbaa !5
  %5866 = add nsw i32 %5865, 1
  store i32 %5866, ptr @test_count, align 4, !tbaa !5
  %5867 = load ptr, ptr %128, align 8, !tbaa !9
  %5868 = load ptr, ptr %124, align 8, !tbaa !9
  %5869 = call i32 @s2n_send_and_recv_test(ptr noundef %5867, ptr noundef %5868)
  %5870 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  store i32 %5869, ptr %5870, align 4
  %5871 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  %5872 = load i32, ptr %5871, align 4
  %5873 = call zeroext i1 @s2n_result_is_ok(i32 %5872)
  br i1 %5873, label %5927, label %5874

5874:                                             ; preds = %5864
  br label %5875

5875:                                             ; preds = %5874
  br label %5876

5876:                                             ; preds = %5875
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %5877 = call ptr @__errno_location() #11
  %5878 = load i32, ptr %5877, align 4, !tbaa !5
  store i32 %5878, ptr %140, align 4, !tbaa !5
  %5879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5880 = call i32 @s2n_print_stacktrace(ptr noundef %5879)
  %5881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5882 = trunc i8 %5881 to i1
  br i1 %5882, label %5883, label %5905

5883:                                             ; preds = %5876
  %5884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5885 = call i32 @fileno(ptr noundef %5884) #10
  %5886 = call i32 @isatty(i32 noundef %5885) #10
  %5887 = icmp ne i32 %5886, 0
  br i1 %5887, label %5888, label %5905

5888:                                             ; preds = %5883
  %5889 = load i32, ptr %140, align 4, !tbaa !5
  %5890 = call ptr @__errno_location() #11
  store i32 %5889, ptr %5890, align 4, !tbaa !5
  %5891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5892 = load i32, ptr @test_count, align 4, !tbaa !5
  %5893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5894 = load i32, ptr %5893, align 4, !tbaa !5
  %5895 = call ptr @s2n_strerror(i32 noundef %5894, ptr noundef @.str.4)
  %5896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5897 = load i32, ptr %5896, align 4, !tbaa !5
  %5898 = call ptr @s2n_strerror_debug(i32 noundef %5897, ptr noundef @.str.4)
  %5899 = call ptr @__errno_location() #11
  %5900 = load i32, ptr %5899, align 4, !tbaa !5
  %5901 = call ptr @strerror(i32 noundef %5900) #10
  %5902 = call ptr @__errno_location() #11
  %5903 = load i32, ptr %5902, align 4, !tbaa !5
  %5904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5891, ptr noundef @.str.2, i32 noundef %5892, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5895, ptr noundef %5898, ptr noundef %5901, i32 noundef %5903) #10
  br label %5922

5905:                                             ; preds = %5883, %5876
  %5906 = load i32, ptr %140, align 4, !tbaa !5
  %5907 = call ptr @__errno_location() #11
  store i32 %5906, ptr %5907, align 4, !tbaa !5
  %5908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5909 = load i32, ptr @test_count, align 4, !tbaa !5
  %5910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5911 = load i32, ptr %5910, align 4, !tbaa !5
  %5912 = call ptr @s2n_strerror(i32 noundef %5911, ptr noundef @.str.4)
  %5913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5914 = load i32, ptr %5913, align 4, !tbaa !5
  %5915 = call ptr @s2n_strerror_debug(i32 noundef %5914, ptr noundef @.str.4)
  %5916 = call ptr @__errno_location() #11
  %5917 = load i32, ptr %5916, align 4, !tbaa !5
  %5918 = call ptr @strerror(i32 noundef %5917) #10
  %5919 = call ptr @__errno_location() #11
  %5920 = load i32, ptr %5919, align 4, !tbaa !5
  %5921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5908, ptr noundef @.str.5, i32 noundef %5909, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 291, ptr noundef %5912, ptr noundef %5915, ptr noundef %5918, i32 noundef %5920) #10
  br label %5922

5922:                                             ; preds = %5905, %5888
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %5923

5923:                                             ; preds = %5922
  br label %5924

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

5925:                                             ; No predecessors!
  br label %5926

5926:                                             ; preds = %5925
  br label %5927

5927:                                             ; preds = %5926, %5864
  br label %5928

5928:                                             ; preds = %5927
  br label %5929

5929:                                             ; preds = %5928
  br label %5930

5930:                                             ; preds = %5929
  br label %5931

5931:                                             ; preds = %5930
  br label %5932

5932:                                             ; preds = %5931
  %5933 = load i32, ptr @test_count, align 4, !tbaa !5
  %5934 = add nsw i32 %5933, 1
  store i32 %5934, ptr @test_count, align 4, !tbaa !5
  %5935 = load ptr, ptr %124, align 8, !tbaa !9
  %5936 = load ptr, ptr %128, align 8, !tbaa !9
  %5937 = call i32 @s2n_send_and_recv_test(ptr noundef %5935, ptr noundef %5936)
  %5938 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  store i32 %5937, ptr %5938, align 4
  %5939 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  %5940 = load i32, ptr %5939, align 4
  %5941 = call zeroext i1 @s2n_result_is_error(i32 %5940)
  br i1 %5941, label %5995, label %5942

5942:                                             ; preds = %5932
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

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

5951:                                             ; preds = %5944
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = call i32 @fileno(ptr noundef %5952) #10
  %5954 = call i32 @isatty(i32 noundef %5953) #10
  %5955 = icmp ne i32 %5954, 0
  br i1 %5955, label %5956, label %5973

5956:                                             ; preds = %5951
  %5957 = load i32, ptr %142, align 4, !tbaa !5
  %5958 = call ptr @__errno_location() #11
  store i32 %5957, ptr %5958, align 4, !tbaa !5
  %5959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5962 = load i32, ptr %5961, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror(i32 noundef %5962, ptr noundef @.str.4)
  %5964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5965 = load i32, ptr %5964, align 4, !tbaa !5
  %5966 = call ptr @s2n_strerror_debug(i32 noundef %5965, ptr noundef @.str.4)
  %5967 = call ptr @__errno_location() #11
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call ptr @strerror(i32 noundef %5968) #10
  %5970 = call ptr @__errno_location() #11
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5959, ptr noundef @.str.2, i32 noundef %5960, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5963, ptr noundef %5966, ptr noundef %5969, i32 noundef %5971) #10
  br label %5990

5973:                                             ; preds = %5951, %5944
  %5974 = load i32, ptr %142, align 4, !tbaa !5
  %5975 = call ptr @__errno_location() #11
  store i32 %5974, ptr %5975, align 4, !tbaa !5
  %5976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5977 = load i32, ptr @test_count, align 4, !tbaa !5
  %5978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @s2n_strerror(i32 noundef %5979, ptr noundef @.str.4)
  %5981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call ptr @s2n_strerror_debug(i32 noundef %5982, ptr noundef @.str.4)
  %5984 = call ptr @__errno_location() #11
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  %5986 = call ptr @strerror(i32 noundef %5985) #10
  %5987 = call ptr @__errno_location() #11
  %5988 = load i32, ptr %5987, align 4, !tbaa !5
  %5989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5976, ptr noundef @.str.5, i32 noundef %5977, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 292, ptr noundef %5980, ptr noundef %5983, ptr noundef %5986, i32 noundef %5988) #10
  br label %5990

5990:                                             ; preds = %5973, %5956
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %5991

5991:                                             ; preds = %5990
  br label %5992

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

5993:                                             ; No predecessors!
  br label %5994

5994:                                             ; preds = %5993
  br label %5995

5995:                                             ; preds = %5994, %5932
  br label %5996

5996:                                             ; preds = %5995
  br label %5997

5997:                                             ; preds = %5996
  br label %5998

5998:                                             ; preds = %5997
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = add nsw i32 %5999, 1
  store i32 %6000, ptr @test_count, align 4, !tbaa !5
  %6001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6002 = load i32, ptr %6001, align 4, !tbaa !5
  %6003 = icmp eq i32 %6002, 268435456
  br i1 %6003, label %6057, label %6004

6004:                                             ; preds = %5998
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

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

6013:                                             ; preds = %6006
  %6014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6015 = call i32 @fileno(ptr noundef %6014) #10
  %6016 = call i32 @isatty(i32 noundef %6015) #10
  %6017 = icmp ne i32 %6016, 0
  br i1 %6017, label %6018, label %6035

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

6035:                                             ; preds = %6013, %6006
  %6036 = load i32, ptr %143, align 4, !tbaa !5
  %6037 = call ptr @__errno_location() #11
  store i32 %6036, ptr %6037, align 4, !tbaa !5
  %6038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6039 = load i32, ptr @test_count, align 4, !tbaa !5
  %6040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6041 = load i32, ptr %6040, align 4, !tbaa !5
  %6042 = call ptr @s2n_strerror(i32 noundef %6041, ptr noundef @.str.4)
  %6043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6044 = load i32, ptr %6043, align 4, !tbaa !5
  %6045 = call ptr @s2n_strerror_debug(i32 noundef %6044, ptr noundef @.str.4)
  %6046 = call ptr @__errno_location() #11
  %6047 = load i32, ptr %6046, align 4, !tbaa !5
  %6048 = call ptr @strerror(i32 noundef %6047) #10
  %6049 = call ptr @__errno_location() #11
  %6050 = load i32, ptr %6049, align 4, !tbaa !5
  %6051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6038, ptr noundef @.str.5, i32 noundef %6039, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6042, ptr noundef %6045, ptr noundef %6048, i32 noundef %6050) #10
  br label %6052

6052:                                             ; preds = %6035, %6018
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %6053

6053:                                             ; preds = %6052
  br label %6054

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

6055:                                             ; No predecessors!
  br label %6056

6056:                                             ; preds = %6055
  br label %6057

6057:                                             ; preds = %6056, %5998
  br label %6058

6058:                                             ; preds = %6057
  br label %6059

6059:                                             ; preds = %6058
  br label %6060

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

6067:                                             ; preds = %6060
  br label %6068

6068:                                             ; preds = %6067
  br label %6069

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

6076:                                             ; preds = %6069
  %6077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6078 = call i32 @fileno(ptr noundef %6077) #10
  %6079 = call i32 @isatty(i32 noundef %6078) #10
  %6080 = icmp ne i32 %6079, 0
  br i1 %6080, label %6081, label %6098

6081:                                             ; preds = %6076
  %6082 = load i32, ptr %144, align 4, !tbaa !5
  %6083 = call ptr @__errno_location() #11
  store i32 %6082, ptr %6083, align 4, !tbaa !5
  %6084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6085 = load i32, ptr @test_count, align 4, !tbaa !5
  %6086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6087 = load i32, ptr %6086, align 4, !tbaa !5
  %6088 = call ptr @s2n_strerror(i32 noundef %6087, ptr noundef @.str.4)
  %6089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6090 = load i32, ptr %6089, align 4, !tbaa !5
  %6091 = call ptr @s2n_strerror_debug(i32 noundef %6090, ptr noundef @.str.4)
  %6092 = call ptr @__errno_location() #11
  %6093 = load i32, ptr %6092, align 4, !tbaa !5
  %6094 = call ptr @strerror(i32 noundef %6093) #10
  %6095 = call ptr @__errno_location() #11
  %6096 = load i32, ptr %6095, align 4, !tbaa !5
  %6097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6084, ptr noundef @.str.2, i32 noundef %6085, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6088, ptr noundef %6091, ptr noundef %6094, i32 noundef %6096) #10
  br label %6115

6098:                                             ; preds = %6076, %6069
  %6099 = load i32, ptr %144, align 4, !tbaa !5
  %6100 = call ptr @__errno_location() #11
  store i32 %6099, ptr %6100, align 4, !tbaa !5
  %6101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6102 = load i32, ptr @test_count, align 4, !tbaa !5
  %6103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  %6105 = call ptr @s2n_strerror(i32 noundef %6104, ptr noundef @.str.4)
  %6106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6107 = load i32, ptr %6106, align 4, !tbaa !5
  %6108 = call ptr @s2n_strerror_debug(i32 noundef %6107, ptr noundef @.str.4)
  %6109 = call ptr @__errno_location() #11
  %6110 = load i32, ptr %6109, align 4, !tbaa !5
  %6111 = call ptr @strerror(i32 noundef %6110) #10
  %6112 = call ptr @__errno_location() #11
  %6113 = load i32, ptr %6112, align 4, !tbaa !5
  %6114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6101, ptr noundef @.str.5, i32 noundef %6102, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 292, ptr noundef %6105, ptr noundef %6108, ptr noundef %6111, i32 noundef %6113) #10
  br label %6115

6115:                                             ; preds = %6098, %6081
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %6116

6116:                                             ; preds = %6115
  br label %6117

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

6118:                                             ; No predecessors!
  br label %6119

6119:                                             ; preds = %6118
  br label %6120

6120:                                             ; preds = %6119, %6060
  br label %6121

6121:                                             ; preds = %6120
  br label %6122

6122:                                             ; preds = %6121
  br label %6123

6123:                                             ; preds = %6122
  br label %6124

6124:                                             ; preds = %6123
  br label %6125

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

6128:                                             ; preds = %6125
  br label %6129

6129:                                             ; preds = %6128
  br label %6130

6130:                                             ; preds = %6129
  br label %6131

6131:                                             ; preds = %6130
  br label %6132

6132:                                             ; preds = %6131
  %6133 = load i32, ptr @test_count, align 4, !tbaa !5
  %6134 = add nsw i32 %6133, 1
  store i32 %6134, ptr @test_count, align 4, !tbaa !5
  %6135 = load ptr, ptr %128, align 8, !tbaa !9
  %6136 = call i32 @s2n_connection_get_alert(ptr noundef %6135)
  %6137 = icmp eq i32 %6136, 100
  br i1 %6137, label %6191, label %6138

6138:                                             ; preds = %6132
  br label %6139

6139:                                             ; preds = %6138
  br label %6140

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

6147:                                             ; preds = %6140
  %6148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6149 = call i32 @fileno(ptr noundef %6148) #10
  %6150 = call i32 @isatty(i32 noundef %6149) #10
  %6151 = icmp ne i32 %6150, 0
  br i1 %6151, label %6152, label %6169

6152:                                             ; preds = %6147
  %6153 = load i32, ptr %145, align 4, !tbaa !5
  %6154 = call ptr @__errno_location() #11
  store i32 %6153, ptr %6154, align 4, !tbaa !5
  %6155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6156 = load i32, ptr @test_count, align 4, !tbaa !5
  %6157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6158 = load i32, ptr %6157, align 4, !tbaa !5
  %6159 = call ptr @s2n_strerror(i32 noundef %6158, ptr noundef @.str.4)
  %6160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6161 = load i32, ptr %6160, align 4, !tbaa !5
  %6162 = call ptr @s2n_strerror_debug(i32 noundef %6161, ptr noundef @.str.4)
  %6163 = call ptr @__errno_location() #11
  %6164 = load i32, ptr %6163, align 4, !tbaa !5
  %6165 = call ptr @strerror(i32 noundef %6164) #10
  %6166 = call ptr @__errno_location() #11
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  %6168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6155, ptr noundef @.str.2, i32 noundef %6156, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6159, ptr noundef %6162, ptr noundef %6165, i32 noundef %6167) #10
  br label %6186

6169:                                             ; preds = %6147, %6140
  %6170 = load i32, ptr %145, align 4, !tbaa !5
  %6171 = call ptr @__errno_location() #11
  store i32 %6170, ptr %6171, align 4, !tbaa !5
  %6172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6173 = load i32, ptr @test_count, align 4, !tbaa !5
  %6174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call ptr @s2n_strerror(i32 noundef %6175, ptr noundef @.str.4)
  %6177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6178 = load i32, ptr %6177, align 4, !tbaa !5
  %6179 = call ptr @s2n_strerror_debug(i32 noundef %6178, ptr noundef @.str.4)
  %6180 = call ptr @__errno_location() #11
  %6181 = load i32, ptr %6180, align 4, !tbaa !5
  %6182 = call ptr @strerror(i32 noundef %6181) #10
  %6183 = call ptr @__errno_location() #11
  %6184 = load i32, ptr %6183, align 4, !tbaa !5
  %6185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6172, ptr noundef @.str.5, i32 noundef %6173, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6176, ptr noundef %6179, ptr noundef %6182, i32 noundef %6184) #10
  br label %6186

6186:                                             ; preds = %6169, %6152
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %6187

6187:                                             ; preds = %6186
  br label %6188

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

6189:                                             ; No predecessors!
  br label %6190

6190:                                             ; preds = %6189
  br label %6191

6191:                                             ; preds = %6190, %6132
  br label %6192

6192:                                             ; preds = %6191
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

6194:                                             ; preds = %6193
  %6195 = load i32, ptr @test_count, align 4, !tbaa !5
  %6196 = add nsw i32 %6195, 1
  store i32 %6196, ptr @test_count, align 4, !tbaa !5
  %6197 = load ptr, ptr %124, align 8, !tbaa !9
  %6198 = getelementptr inbounds %struct.s2n_connection, ptr %6197, i32 0, i32 1
  %6199 = load ptr, ptr %6198, align 8, !tbaa !47
  %6200 = getelementptr inbounds %struct.s2n_config, ptr %6199, i32 0, i32 54
  %6201 = load ptr, ptr %6200, align 8, !tbaa !48
  %6202 = icmp eq ptr %6201, null
  br i1 %6202, label %6203, label %6256

6203:                                             ; preds = %6194
  br label %6204

6204:                                             ; preds = %6203
  br label %6205

6205:                                             ; preds = %6204
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %6206 = call ptr @__errno_location() #11
  %6207 = load i32, ptr %6206, align 4, !tbaa !5
  store i32 %6207, ptr %146, align 4, !tbaa !5
  %6208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6209 = call i32 @s2n_print_stacktrace(ptr noundef %6208)
  %6210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6211 = trunc i8 %6210 to i1
  br i1 %6211, label %6212, label %6234

6212:                                             ; preds = %6205
  %6213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6214 = call i32 @fileno(ptr noundef %6213) #10
  %6215 = call i32 @isatty(i32 noundef %6214) #10
  %6216 = icmp ne i32 %6215, 0
  br i1 %6216, label %6217, label %6234

6217:                                             ; preds = %6212
  %6218 = load i32, ptr %146, align 4, !tbaa !5
  %6219 = call ptr @__errno_location() #11
  store i32 %6218, ptr %6219, align 4, !tbaa !5
  %6220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6221 = load i32, ptr @test_count, align 4, !tbaa !5
  %6222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6223 = load i32, ptr %6222, align 4, !tbaa !5
  %6224 = call ptr @s2n_strerror(i32 noundef %6223, ptr noundef @.str.4)
  %6225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call ptr @s2n_strerror_debug(i32 noundef %6226, ptr noundef @.str.4)
  %6228 = call ptr @__errno_location() #11
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  %6230 = call ptr @strerror(i32 noundef %6229) #10
  %6231 = call ptr @__errno_location() #11
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6220, ptr noundef @.str.2, i32 noundef %6221, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6224, ptr noundef %6227, ptr noundef %6230, i32 noundef %6232) #10
  br label %6251

6234:                                             ; preds = %6212, %6205
  %6235 = load i32, ptr %146, align 4, !tbaa !5
  %6236 = call ptr @__errno_location() #11
  store i32 %6235, ptr %6236, align 4, !tbaa !5
  %6237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6238 = load i32, ptr @test_count, align 4, !tbaa !5
  %6239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6240 = load i32, ptr %6239, align 4, !tbaa !5
  %6241 = call ptr @s2n_strerror(i32 noundef %6240, ptr noundef @.str.4)
  %6242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @s2n_strerror_debug(i32 noundef %6243, ptr noundef @.str.4)
  %6245 = call ptr @__errno_location() #11
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call ptr @strerror(i32 noundef %6246) #10
  %6248 = call ptr @__errno_location() #11
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6237, ptr noundef @.str.5, i32 noundef %6238, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6241, ptr noundef %6244, ptr noundef %6247, i32 noundef %6249) #10
  br label %6251

6251:                                             ; preds = %6234, %6217
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %6252

6252:                                             ; preds = %6251
  br label %6253

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

6254:                                             ; No predecessors!
  br label %6255

6255:                                             ; preds = %6254
  br label %6256

6256:                                             ; preds = %6255, %6194
  br label %6257

6257:                                             ; preds = %6256
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258
  %6260 = load i32, ptr @test_count, align 4, !tbaa !5
  %6261 = add nsw i32 %6260, 1
  store i32 %6261, ptr @test_count, align 4, !tbaa !5
  %6262 = getelementptr inbounds %struct.s2n_test_reneg_req_ctx, ptr %123, i32 0, i32 1
  %6263 = load i8, ptr %6262, align 4, !tbaa !52
  %6264 = zext i8 %6263 to i32
  %6265 = icmp eq i32 %6264, 1
  br i1 %6265, label %6319, label %6266

6266:                                             ; preds = %6259
  br label %6267

6267:                                             ; preds = %6266
  br label %6268

6268:                                             ; preds = %6267
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %6269 = call ptr @__errno_location() #11
  %6270 = load i32, ptr %6269, align 4, !tbaa !5
  store i32 %6270, ptr %147, align 4, !tbaa !5
  %6271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6272 = call i32 @s2n_print_stacktrace(ptr noundef %6271)
  %6273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6274 = trunc i8 %6273 to i1
  br i1 %6274, label %6275, label %6297

6275:                                             ; preds = %6268
  %6276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6277 = call i32 @fileno(ptr noundef %6276) #10
  %6278 = call i32 @isatty(i32 noundef %6277) #10
  %6279 = icmp ne i32 %6278, 0
  br i1 %6279, label %6280, label %6297

6280:                                             ; preds = %6275
  %6281 = load i32, ptr %147, align 4, !tbaa !5
  %6282 = call ptr @__errno_location() #11
  store i32 %6281, ptr %6282, align 4, !tbaa !5
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = load i32, ptr @test_count, align 4, !tbaa !5
  %6285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6286 = load i32, ptr %6285, align 4, !tbaa !5
  %6287 = call ptr @s2n_strerror(i32 noundef %6286, ptr noundef @.str.4)
  %6288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @s2n_strerror_debug(i32 noundef %6289, ptr noundef @.str.4)
  %6291 = call ptr @__errno_location() #11
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @strerror(i32 noundef %6292) #10
  %6294 = call ptr @__errno_location() #11
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6283, ptr noundef @.str.2, i32 noundef %6284, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6287, ptr noundef %6290, ptr noundef %6293, i32 noundef %6295) #10
  br label %6314

6297:                                             ; preds = %6275, %6268
  %6298 = load i32, ptr %147, align 4, !tbaa !5
  %6299 = call ptr @__errno_location() #11
  store i32 %6298, ptr %6299, align 4, !tbaa !5
  %6300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6301 = load i32, ptr @test_count, align 4, !tbaa !5
  %6302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6303 = load i32, ptr %6302, align 4, !tbaa !5
  %6304 = call ptr @s2n_strerror(i32 noundef %6303, ptr noundef @.str.4)
  %6305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @s2n_strerror_debug(i32 noundef %6306, ptr noundef @.str.4)
  %6308 = call ptr @__errno_location() #11
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @strerror(i32 noundef %6309) #10
  %6311 = call ptr @__errno_location() #11
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6300, ptr noundef @.str.5, i32 noundef %6301, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6304, ptr noundef %6307, ptr noundef %6310, i32 noundef %6312) #10
  br label %6314

6314:                                             ; preds = %6297, %6280
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

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

6317:                                             ; No predecessors!
  br label %6318

6318:                                             ; preds = %6317
  br label %6319

6319:                                             ; preds = %6318, %6259
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320
  %6322 = call i32 @s2n_io_pair_close(ptr noundef %131)
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  %6323 = call i32 @s2n_connection_ptr_free(ptr noundef %128)
  %6324 = getelementptr inbounds %struct.s2n_result, ptr %148, i32 0, i32 0
  store i32 %6323, ptr %6324, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  %6325 = call i32 @s2n_connection_ptr_free(ptr noundef %124)
  %6326 = getelementptr inbounds %struct.s2n_result, ptr %149, i32 0, i32 0
  store i32 %6325, ptr %6326, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %150, ptr align 4 @__const.main.ctx.64, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #10
  %6327 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6327, ptr %151, align 8, !tbaa !9
  br label %6328

6328:                                             ; preds = %6321
  %6329 = load i32, ptr @test_count, align 4, !tbaa !5
  %6330 = add nsw i32 %6329, 1
  store i32 %6330, ptr @test_count, align 4, !tbaa !5
  %6331 = load ptr, ptr %151, align 8, !tbaa !9
  %6332 = icmp eq ptr %6331, null
  br i1 %6332, label %6333, label %6386

6333:                                             ; preds = %6328
  br label %6334

6334:                                             ; preds = %6333
  br label %6335

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

6342:                                             ; preds = %6335
  %6343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6344 = call i32 @fileno(ptr noundef %6343) #10
  %6345 = call i32 @isatty(i32 noundef %6344) #10
  %6346 = icmp ne i32 %6345, 0
  br i1 %6346, label %6347, label %6364

6347:                                             ; preds = %6342
  %6348 = load i32, ptr %152, align 4, !tbaa !5
  %6349 = call ptr @__errno_location() #11
  store i32 %6348, ptr %6349, align 4, !tbaa !5
  %6350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %6352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call ptr @s2n_strerror(i32 noundef %6353, ptr noundef @.str.4)
  %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_debug(i32 noundef %6356, ptr noundef @.str.4)
  %6358 = call ptr @__errno_location() #11
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @strerror(i32 noundef %6359) #10
  %6361 = call ptr @__errno_location() #11
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6350, ptr noundef @.str.2, i32 noundef %6351, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 313, ptr noundef %6354, ptr noundef %6357, ptr noundef %6360, i32 noundef %6362) #10
  br label %6381

6364:                                             ; preds = %6342, %6335
  %6365 = load i32, ptr %152, align 4, !tbaa !5
  %6366 = call ptr @__errno_location() #11
  store i32 %6365, ptr %6366, align 4, !tbaa !5
  %6367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @s2n_strerror(i32 noundef %6370, ptr noundef @.str.4)
  %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_debug(i32 noundef %6373, ptr noundef @.str.4)
  %6375 = call ptr @__errno_location() #11
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #10
  %6378 = call ptr @__errno_location() #11
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6367, ptr noundef @.str.5, i32 noundef %6368, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 313, ptr noundef %6371, ptr noundef %6374, ptr noundef %6377, i32 noundef %6379) #10
  br label %6381

6381:                                             ; preds = %6364, %6347
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

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

6384:                                             ; No predecessors!
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

6386:                                             ; preds = %6385, %6328
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387
  br label %6389

6389:                                             ; preds = %6388
  %6390 = load i32, ptr @test_count, align 4, !tbaa !5
  %6391 = add nsw i32 %6390, 1
  store i32 %6391, ptr @test_count, align 4, !tbaa !5
  %6392 = load ptr, ptr %151, align 8, !tbaa !9
  %6393 = load ptr, ptr %17, align 8, !tbaa !9
  %6394 = call i32 @s2n_connection_set_config(ptr noundef %6392, ptr noundef %6393)
  %6395 = icmp eq i32 %6394, -1
  br i1 %6395, label %6396, label %6449

6396:                                             ; preds = %6389
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %6399 = call ptr @__errno_location() #11
  %6400 = load i32, ptr %6399, align 4, !tbaa !5
  store i32 %6400, ptr %153, align 4, !tbaa !5
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @s2n_print_stacktrace(ptr noundef %6401)
  %6403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6404 = trunc i8 %6403 to i1
  br i1 %6404, label %6405, label %6427

6405:                                             ; preds = %6398
  %6406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6407 = call i32 @fileno(ptr noundef %6406) #10
  %6408 = call i32 @isatty(i32 noundef %6407) #10
  %6409 = icmp ne i32 %6408, 0
  br i1 %6409, label %6410, label %6427

6410:                                             ; preds = %6405
  %6411 = load i32, ptr %153, align 4, !tbaa !5
  %6412 = call ptr @__errno_location() #11
  store i32 %6411, ptr %6412, align 4, !tbaa !5
  %6413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6414 = load i32, ptr @test_count, align 4, !tbaa !5
  %6415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call ptr @s2n_strerror(i32 noundef %6416, ptr noundef @.str.4)
  %6418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6419 = load i32, ptr %6418, align 4, !tbaa !5
  %6420 = call ptr @s2n_strerror_debug(i32 noundef %6419, ptr noundef @.str.4)
  %6421 = call ptr @__errno_location() #11
  %6422 = load i32, ptr %6421, align 4, !tbaa !5
  %6423 = call ptr @strerror(i32 noundef %6422) #10
  %6424 = call ptr @__errno_location() #11
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6413, ptr noundef @.str.2, i32 noundef %6414, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 314, ptr noundef %6417, ptr noundef %6420, ptr noundef %6423, i32 noundef %6425) #10
  br label %6444

6427:                                             ; preds = %6405, %6398
  %6428 = load i32, ptr %153, align 4, !tbaa !5
  %6429 = call ptr @__errno_location() #11
  store i32 %6428, ptr %6429, align 4, !tbaa !5
  %6430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6431 = load i32, ptr @test_count, align 4, !tbaa !5
  %6432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call ptr @s2n_strerror(i32 noundef %6433, ptr noundef @.str.4)
  %6435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  %6437 = call ptr @s2n_strerror_debug(i32 noundef %6436, ptr noundef @.str.4)
  %6438 = call ptr @__errno_location() #11
  %6439 = load i32, ptr %6438, align 4, !tbaa !5
  %6440 = call ptr @strerror(i32 noundef %6439) #10
  %6441 = call ptr @__errno_location() #11
  %6442 = load i32, ptr %6441, align 4, !tbaa !5
  %6443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6430, ptr noundef @.str.5, i32 noundef %6431, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 314, ptr noundef %6434, ptr noundef %6437, ptr noundef %6440, i32 noundef %6442) #10
  br label %6444

6444:                                             ; preds = %6427, %6410
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %6445

6445:                                             ; preds = %6444
  br label %6446

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

6447:                                             ; No predecessors!
  br label %6448

6448:                                             ; preds = %6447
  br label %6449

6449:                                             ; preds = %6448, %6389
  br label %6450

6450:                                             ; preds = %6449
  br label %6451

6451:                                             ; preds = %6450
  br label %6452

6452:                                             ; preds = %6451
  %6453 = load i32, ptr @test_count, align 4, !tbaa !5
  %6454 = add nsw i32 %6453, 1
  store i32 %6454, ptr @test_count, align 4, !tbaa !5
  %6455 = load ptr, ptr %17, align 8, !tbaa !9
  %6456 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %6455, ptr noundef @s2n_test_reneg_req_cb, ptr noundef %150)
  %6457 = icmp eq i32 %6456, -1
  br i1 %6457, label %6458, label %6511

6458:                                             ; preds = %6452
  br label %6459

6459:                                             ; preds = %6458
  br label %6460

6460:                                             ; preds = %6459
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %6461 = call ptr @__errno_location() #11
  %6462 = load i32, ptr %6461, align 4, !tbaa !5
  store i32 %6462, ptr %154, align 4, !tbaa !5
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = call i32 @s2n_print_stacktrace(ptr noundef %6463)
  %6465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6466 = trunc i8 %6465 to i1
  br i1 %6466, label %6467, label %6489

6467:                                             ; preds = %6460
  %6468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6469 = call i32 @fileno(ptr noundef %6468) #10
  %6470 = call i32 @isatty(i32 noundef %6469) #10
  %6471 = icmp ne i32 %6470, 0
  br i1 %6471, label %6472, label %6489

6472:                                             ; preds = %6467
  %6473 = load i32, ptr %154, align 4, !tbaa !5
  %6474 = call ptr @__errno_location() #11
  store i32 %6473, ptr %6474, align 4, !tbaa !5
  %6475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6476 = load i32, ptr @test_count, align 4, !tbaa !5
  %6477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6478 = load i32, ptr %6477, align 4, !tbaa !5
  %6479 = call ptr @s2n_strerror(i32 noundef %6478, ptr noundef @.str.4)
  %6480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6481 = load i32, ptr %6480, align 4, !tbaa !5
  %6482 = call ptr @s2n_strerror_debug(i32 noundef %6481, ptr noundef @.str.4)
  %6483 = call ptr @__errno_location() #11
  %6484 = load i32, ptr %6483, align 4, !tbaa !5
  %6485 = call ptr @strerror(i32 noundef %6484) #10
  %6486 = call ptr @__errno_location() #11
  %6487 = load i32, ptr %6486, align 4, !tbaa !5
  %6488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6475, ptr noundef @.str.2, i32 noundef %6476, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 315, ptr noundef %6479, ptr noundef %6482, ptr noundef %6485, i32 noundef %6487) #10
  br label %6506

6489:                                             ; preds = %6467, %6460
  %6490 = load i32, ptr %154, align 4, !tbaa !5
  %6491 = call ptr @__errno_location() #11
  store i32 %6490, ptr %6491, align 4, !tbaa !5
  %6492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6493 = load i32, ptr @test_count, align 4, !tbaa !5
  %6494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  %6496 = call ptr @s2n_strerror(i32 noundef %6495, ptr noundef @.str.4)
  %6497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6498 = load i32, ptr %6497, align 4, !tbaa !5
  %6499 = call ptr @s2n_strerror_debug(i32 noundef %6498, ptr noundef @.str.4)
  %6500 = call ptr @__errno_location() #11
  %6501 = load i32, ptr %6500, align 4, !tbaa !5
  %6502 = call ptr @strerror(i32 noundef %6501) #10
  %6503 = call ptr @__errno_location() #11
  %6504 = load i32, ptr %6503, align 4, !tbaa !5
  %6505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6492, ptr noundef @.str.5, i32 noundef %6493, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 315, ptr noundef %6496, ptr noundef %6499, ptr noundef %6502, i32 noundef %6504) #10
  br label %6506

6506:                                             ; preds = %6489, %6472
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %6507

6507:                                             ; preds = %6506
  br label %6508

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

6509:                                             ; No predecessors!
  br label %6510

6510:                                             ; preds = %6509
  br label %6511

6511:                                             ; preds = %6510, %6452
  br label %6512

6512:                                             ; preds = %6511
  br label %6513

6513:                                             ; preds = %6512
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #10
  %6514 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6514, ptr %155, align 8, !tbaa !9
  br label %6515

6515:                                             ; preds = %6513
  %6516 = load i32, ptr @test_count, align 4, !tbaa !5
  %6517 = add nsw i32 %6516, 1
  store i32 %6517, ptr @test_count, align 4, !tbaa !5
  %6518 = load ptr, ptr %155, align 8, !tbaa !9
  %6519 = icmp eq ptr %6518, null
  br i1 %6519, label %6520, label %6573

6520:                                             ; preds = %6515
  br label %6521

6521:                                             ; preds = %6520
  br label %6522

6522:                                             ; preds = %6521
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6523 = call ptr @__errno_location() #11
  %6524 = load i32, ptr %6523, align 4, !tbaa !5
  store i32 %6524, ptr %156, align 4, !tbaa !5
  %6525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6526 = call i32 @s2n_print_stacktrace(ptr noundef %6525)
  %6527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6528 = trunc i8 %6527 to i1
  br i1 %6528, label %6529, label %6551

6529:                                             ; preds = %6522
  %6530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6531 = call i32 @fileno(ptr noundef %6530) #10
  %6532 = call i32 @isatty(i32 noundef %6531) #10
  %6533 = icmp ne i32 %6532, 0
  br i1 %6533, label %6534, label %6551

6534:                                             ; preds = %6529
  %6535 = load i32, ptr %156, align 4, !tbaa !5
  %6536 = call ptr @__errno_location() #11
  store i32 %6535, ptr %6536, align 4, !tbaa !5
  %6537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6538 = load i32, ptr @test_count, align 4, !tbaa !5
  %6539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6540 = load i32, ptr %6539, align 4, !tbaa !5
  %6541 = call ptr @s2n_strerror(i32 noundef %6540, ptr noundef @.str.4)
  %6542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6543 = load i32, ptr %6542, align 4, !tbaa !5
  %6544 = call ptr @s2n_strerror_debug(i32 noundef %6543, ptr noundef @.str.4)
  %6545 = call ptr @__errno_location() #11
  %6546 = load i32, ptr %6545, align 4, !tbaa !5
  %6547 = call ptr @strerror(i32 noundef %6546) #10
  %6548 = call ptr @__errno_location() #11
  %6549 = load i32, ptr %6548, align 4, !tbaa !5
  %6550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6537, ptr noundef @.str.2, i32 noundef %6538, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 319, ptr noundef %6541, ptr noundef %6544, ptr noundef %6547, i32 noundef %6549) #10
  br label %6568

6551:                                             ; preds = %6529, %6522
  %6552 = load i32, ptr %156, align 4, !tbaa !5
  %6553 = call ptr @__errno_location() #11
  store i32 %6552, ptr %6553, align 4, !tbaa !5
  %6554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6555 = load i32, ptr @test_count, align 4, !tbaa !5
  %6556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6557 = load i32, ptr %6556, align 4, !tbaa !5
  %6558 = call ptr @s2n_strerror(i32 noundef %6557, ptr noundef @.str.4)
  %6559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6560 = load i32, ptr %6559, align 4, !tbaa !5
  %6561 = call ptr @s2n_strerror_debug(i32 noundef %6560, ptr noundef @.str.4)
  %6562 = call ptr @__errno_location() #11
  %6563 = load i32, ptr %6562, align 4, !tbaa !5
  %6564 = call ptr @strerror(i32 noundef %6563) #10
  %6565 = call ptr @__errno_location() #11
  %6566 = load i32, ptr %6565, align 4, !tbaa !5
  %6567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6554, ptr noundef @.str.5, i32 noundef %6555, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 319, ptr noundef %6558, ptr noundef %6561, ptr noundef %6564, i32 noundef %6566) #10
  br label %6568

6568:                                             ; preds = %6551, %6534
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6569

6569:                                             ; preds = %6568
  br label %6570

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

6571:                                             ; No predecessors!
  br label %6572

6572:                                             ; preds = %6571
  br label %6573

6573:                                             ; preds = %6572, %6515
  br label %6574

6574:                                             ; preds = %6573
  br label %6575

6575:                                             ; preds = %6574
  br label %6576

6576:                                             ; preds = %6575
  %6577 = load i32, ptr @test_count, align 4, !tbaa !5
  %6578 = add nsw i32 %6577, 1
  store i32 %6578, ptr @test_count, align 4, !tbaa !5
  %6579 = load ptr, ptr %155, align 8, !tbaa !9
  %6580 = load ptr, ptr %12, align 8, !tbaa !9
  %6581 = call i32 @s2n_connection_set_config(ptr noundef %6579, ptr noundef %6580)
  %6582 = icmp eq i32 %6581, -1
  br i1 %6582, label %6583, label %6636

6583:                                             ; preds = %6576
  br label %6584

6584:                                             ; preds = %6583
  br label %6585

6585:                                             ; preds = %6584
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #10
  %6586 = call ptr @__errno_location() #11
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  store i32 %6587, ptr %157, align 4, !tbaa !5
  %6588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6589 = call i32 @s2n_print_stacktrace(ptr noundef %6588)
  %6590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6591 = trunc i8 %6590 to i1
  br i1 %6591, label %6592, label %6614

6592:                                             ; preds = %6585
  %6593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6594 = call i32 @fileno(ptr noundef %6593) #10
  %6595 = call i32 @isatty(i32 noundef %6594) #10
  %6596 = icmp ne i32 %6595, 0
  br i1 %6596, label %6597, label %6614

6597:                                             ; preds = %6592
  %6598 = load i32, ptr %157, align 4, !tbaa !5
  %6599 = call ptr @__errno_location() #11
  store i32 %6598, ptr %6599, align 4, !tbaa !5
  %6600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6601 = load i32, ptr @test_count, align 4, !tbaa !5
  %6602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6603 = load i32, ptr %6602, align 4, !tbaa !5
  %6604 = call ptr @s2n_strerror(i32 noundef %6603, ptr noundef @.str.4)
  %6605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6606 = load i32, ptr %6605, align 4, !tbaa !5
  %6607 = call ptr @s2n_strerror_debug(i32 noundef %6606, ptr noundef @.str.4)
  %6608 = call ptr @__errno_location() #11
  %6609 = load i32, ptr %6608, align 4, !tbaa !5
  %6610 = call ptr @strerror(i32 noundef %6609) #10
  %6611 = call ptr @__errno_location() #11
  %6612 = load i32, ptr %6611, align 4, !tbaa !5
  %6613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6600, ptr noundef @.str.2, i32 noundef %6601, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 320, ptr noundef %6604, ptr noundef %6607, ptr noundef %6610, i32 noundef %6612) #10
  br label %6631

6614:                                             ; preds = %6592, %6585
  %6615 = load i32, ptr %157, align 4, !tbaa !5
  %6616 = call ptr @__errno_location() #11
  store i32 %6615, ptr %6616, align 4, !tbaa !5
  %6617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6618 = load i32, ptr @test_count, align 4, !tbaa !5
  %6619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  %6621 = call ptr @s2n_strerror(i32 noundef %6620, ptr noundef @.str.4)
  %6622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call ptr @s2n_strerror_debug(i32 noundef %6623, ptr noundef @.str.4)
  %6625 = call ptr @__errno_location() #11
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @strerror(i32 noundef %6626) #10
  %6628 = call ptr @__errno_location() #11
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6617, ptr noundef @.str.5, i32 noundef %6618, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 320, ptr noundef %6621, ptr noundef %6624, ptr noundef %6627, i32 noundef %6629) #10
  br label %6631

6631:                                             ; preds = %6614, %6597
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #10
  br label %6632

6632:                                             ; preds = %6631
  br label %6633

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

6634:                                             ; No predecessors!
  br label %6635

6635:                                             ; preds = %6634
  br label %6636

6636:                                             ; preds = %6635, %6576
  br label %6637

6637:                                             ; preds = %6636
  br label %6638

6638:                                             ; preds = %6637
  call void @llvm.lifetime.start.p0(i64 8, ptr %158) #10
  call void @llvm.memset.p0.i64(ptr align 4 %158, i8 0, i64 8, i1 false)
  br label %6639

6639:                                             ; preds = %6638
  %6640 = load i32, ptr @test_count, align 4, !tbaa !5
  %6641 = add nsw i32 %6640, 1
  store i32 %6641, ptr @test_count, align 4, !tbaa !5
  %6642 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %158)
  %6643 = icmp eq i32 %6642, -1
  br i1 %6643, label %6644, label %6697

6644:                                             ; preds = %6639
  br label %6645

6645:                                             ; preds = %6644
  br label %6646

6646:                                             ; preds = %6645
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %6647 = call ptr @__errno_location() #11
  %6648 = load i32, ptr %6647, align 4, !tbaa !5
  store i32 %6648, ptr %159, align 4, !tbaa !5
  %6649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6650 = call i32 @s2n_print_stacktrace(ptr noundef %6649)
  %6651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6652 = trunc i8 %6651 to i1
  br i1 %6652, label %6653, label %6675

6653:                                             ; preds = %6646
  %6654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6655 = call i32 @fileno(ptr noundef %6654) #10
  %6656 = call i32 @isatty(i32 noundef %6655) #10
  %6657 = icmp ne i32 %6656, 0
  br i1 %6657, label %6658, label %6675

6658:                                             ; preds = %6653
  %6659 = load i32, ptr %159, align 4, !tbaa !5
  %6660 = call ptr @__errno_location() #11
  store i32 %6659, ptr %6660, align 4, !tbaa !5
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = load i32, ptr @test_count, align 4, !tbaa !5
  %6663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6664 = load i32, ptr %6663, align 4, !tbaa !5
  %6665 = call ptr @s2n_strerror(i32 noundef %6664, ptr noundef @.str.4)
  %6666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6667 = load i32, ptr %6666, align 4, !tbaa !5
  %6668 = call ptr @s2n_strerror_debug(i32 noundef %6667, ptr noundef @.str.4)
  %6669 = call ptr @__errno_location() #11
  %6670 = load i32, ptr %6669, align 4, !tbaa !5
  %6671 = call ptr @strerror(i32 noundef %6670) #10
  %6672 = call ptr @__errno_location() #11
  %6673 = load i32, ptr %6672, align 4, !tbaa !5
  %6674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6661, ptr noundef @.str.2, i32 noundef %6662, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 323, ptr noundef %6665, ptr noundef %6668, ptr noundef %6671, i32 noundef %6673) #10
  br label %6692

6675:                                             ; preds = %6653, %6646
  %6676 = load i32, ptr %159, align 4, !tbaa !5
  %6677 = call ptr @__errno_location() #11
  store i32 %6676, ptr %6677, align 4, !tbaa !5
  %6678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6679 = load i32, ptr @test_count, align 4, !tbaa !5
  %6680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6681 = load i32, ptr %6680, align 4, !tbaa !5
  %6682 = call ptr @s2n_strerror(i32 noundef %6681, ptr noundef @.str.4)
  %6683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6684 = load i32, ptr %6683, align 4, !tbaa !5
  %6685 = call ptr @s2n_strerror_debug(i32 noundef %6684, ptr noundef @.str.4)
  %6686 = call ptr @__errno_location() #11
  %6687 = load i32, ptr %6686, align 4, !tbaa !5
  %6688 = call ptr @strerror(i32 noundef %6687) #10
  %6689 = call ptr @__errno_location() #11
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  %6691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6678, ptr noundef @.str.5, i32 noundef %6679, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 323, ptr noundef %6682, ptr noundef %6685, ptr noundef %6688, i32 noundef %6690) #10
  br label %6692

6692:                                             ; preds = %6675, %6658
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %6693

6693:                                             ; preds = %6692
  br label %6694

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

6695:                                             ; No predecessors!
  br label %6696

6696:                                             ; preds = %6695
  br label %6697

6697:                                             ; preds = %6696, %6639
  br label %6698

6698:                                             ; preds = %6697
  br label %6699

6699:                                             ; preds = %6698
  br label %6700

6700:                                             ; preds = %6699
  %6701 = load i32, ptr @test_count, align 4, !tbaa !5
  %6702 = add nsw i32 %6701, 1
  store i32 %6702, ptr @test_count, align 4, !tbaa !5
  %6703 = load ptr, ptr %151, align 8, !tbaa !9
  %6704 = call i32 @s2n_connection_set_io_pair(ptr noundef %6703, ptr noundef %158)
  %6705 = icmp eq i32 %6704, -1
  br i1 %6705, label %6706, label %6759

6706:                                             ; preds = %6700
  br label %6707

6707:                                             ; preds = %6706
  br label %6708

6708:                                             ; preds = %6707
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %6709 = call ptr @__errno_location() #11
  %6710 = load i32, ptr %6709, align 4, !tbaa !5
  store i32 %6710, ptr %160, align 4, !tbaa !5
  %6711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6712 = call i32 @s2n_print_stacktrace(ptr noundef %6711)
  %6713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6714 = trunc i8 %6713 to i1
  br i1 %6714, label %6715, label %6737

6715:                                             ; preds = %6708
  %6716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6717 = call i32 @fileno(ptr noundef %6716) #10
  %6718 = call i32 @isatty(i32 noundef %6717) #10
  %6719 = icmp ne i32 %6718, 0
  br i1 %6719, label %6720, label %6737

6720:                                             ; preds = %6715
  %6721 = load i32, ptr %160, align 4, !tbaa !5
  %6722 = call ptr @__errno_location() #11
  store i32 %6721, ptr %6722, align 4, !tbaa !5
  %6723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6724 = load i32, ptr @test_count, align 4, !tbaa !5
  %6725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6726 = load i32, ptr %6725, align 4, !tbaa !5
  %6727 = call ptr @s2n_strerror(i32 noundef %6726, ptr noundef @.str.4)
  %6728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6729 = load i32, ptr %6728, align 4, !tbaa !5
  %6730 = call ptr @s2n_strerror_debug(i32 noundef %6729, ptr noundef @.str.4)
  %6731 = call ptr @__errno_location() #11
  %6732 = load i32, ptr %6731, align 4, !tbaa !5
  %6733 = call ptr @strerror(i32 noundef %6732) #10
  %6734 = call ptr @__errno_location() #11
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  %6736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6723, ptr noundef @.str.2, i32 noundef %6724, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 324, ptr noundef %6727, ptr noundef %6730, ptr noundef %6733, i32 noundef %6735) #10
  br label %6754

6737:                                             ; preds = %6715, %6708
  %6738 = load i32, ptr %160, align 4, !tbaa !5
  %6739 = call ptr @__errno_location() #11
  store i32 %6738, ptr %6739, align 4, !tbaa !5
  %6740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6741 = load i32, ptr @test_count, align 4, !tbaa !5
  %6742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call ptr @s2n_strerror(i32 noundef %6743, ptr noundef @.str.4)
  %6745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call ptr @s2n_strerror_debug(i32 noundef %6746, ptr noundef @.str.4)
  %6748 = call ptr @__errno_location() #11
  %6749 = load i32, ptr %6748, align 4, !tbaa !5
  %6750 = call ptr @strerror(i32 noundef %6749) #10
  %6751 = call ptr @__errno_location() #11
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6740, ptr noundef @.str.5, i32 noundef %6741, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 324, ptr noundef %6744, ptr noundef %6747, ptr noundef %6750, i32 noundef %6752) #10
  br label %6754

6754:                                             ; preds = %6737, %6720
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %6755

6755:                                             ; preds = %6754
  br label %6756

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

6757:                                             ; No predecessors!
  br label %6758

6758:                                             ; preds = %6757
  br label %6759

6759:                                             ; preds = %6758, %6700
  br label %6760

6760:                                             ; preds = %6759
  br label %6761

6761:                                             ; preds = %6760
  br label %6762

6762:                                             ; preds = %6761
  %6763 = load i32, ptr @test_count, align 4, !tbaa !5
  %6764 = add nsw i32 %6763, 1
  store i32 %6764, ptr @test_count, align 4, !tbaa !5
  %6765 = load ptr, ptr %155, align 8, !tbaa !9
  %6766 = call i32 @s2n_connection_set_io_pair(ptr noundef %6765, ptr noundef %158)
  %6767 = icmp eq i32 %6766, -1
  br i1 %6767, label %6768, label %6821

6768:                                             ; preds = %6762
  br label %6769

6769:                                             ; preds = %6768
  br label %6770

6770:                                             ; preds = %6769
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %6771 = call ptr @__errno_location() #11
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  store i32 %6772, ptr %161, align 4, !tbaa !5
  %6773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6774 = call i32 @s2n_print_stacktrace(ptr noundef %6773)
  %6775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6776 = trunc i8 %6775 to i1
  br i1 %6776, label %6777, label %6799

6777:                                             ; preds = %6770
  %6778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6779 = call i32 @fileno(ptr noundef %6778) #10
  %6780 = call i32 @isatty(i32 noundef %6779) #10
  %6781 = icmp ne i32 %6780, 0
  br i1 %6781, label %6782, label %6799

6782:                                             ; preds = %6777
  %6783 = load i32, ptr %161, align 4, !tbaa !5
  %6784 = call ptr @__errno_location() #11
  store i32 %6783, ptr %6784, align 4, !tbaa !5
  %6785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6786 = load i32, ptr @test_count, align 4, !tbaa !5
  %6787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6788 = load i32, ptr %6787, align 4, !tbaa !5
  %6789 = call ptr @s2n_strerror(i32 noundef %6788, ptr noundef @.str.4)
  %6790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6791 = load i32, ptr %6790, align 4, !tbaa !5
  %6792 = call ptr @s2n_strerror_debug(i32 noundef %6791, ptr noundef @.str.4)
  %6793 = call ptr @__errno_location() #11
  %6794 = load i32, ptr %6793, align 4, !tbaa !5
  %6795 = call ptr @strerror(i32 noundef %6794) #10
  %6796 = call ptr @__errno_location() #11
  %6797 = load i32, ptr %6796, align 4, !tbaa !5
  %6798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6785, ptr noundef @.str.2, i32 noundef %6786, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 325, ptr noundef %6789, ptr noundef %6792, ptr noundef %6795, i32 noundef %6797) #10
  br label %6816

6799:                                             ; preds = %6777, %6770
  %6800 = load i32, ptr %161, align 4, !tbaa !5
  %6801 = call ptr @__errno_location() #11
  store i32 %6800, ptr %6801, align 4, !tbaa !5
  %6802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6803 = load i32, ptr @test_count, align 4, !tbaa !5
  %6804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call ptr @s2n_strerror(i32 noundef %6805, ptr noundef @.str.4)
  %6807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = call ptr @s2n_strerror_debug(i32 noundef %6808, ptr noundef @.str.4)
  %6810 = call ptr @__errno_location() #11
  %6811 = load i32, ptr %6810, align 4, !tbaa !5
  %6812 = call ptr @strerror(i32 noundef %6811) #10
  %6813 = call ptr @__errno_location() #11
  %6814 = load i32, ptr %6813, align 4, !tbaa !5
  %6815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6802, ptr noundef @.str.5, i32 noundef %6803, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 325, ptr noundef %6806, ptr noundef %6809, ptr noundef %6812, i32 noundef %6814) #10
  br label %6816

6816:                                             ; preds = %6799, %6782
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %6817

6817:                                             ; preds = %6816
  br label %6818

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

6819:                                             ; No predecessors!
  br label %6820

6820:                                             ; preds = %6819
  br label %6821

6821:                                             ; preds = %6820, %6762
  br label %6822

6822:                                             ; preds = %6821
  br label %6823

6823:                                             ; preds = %6822
  br label %6824

6824:                                             ; preds = %6823
  %6825 = load i32, ptr @test_count, align 4, !tbaa !5
  %6826 = add nsw i32 %6825, 1
  store i32 %6826, ptr @test_count, align 4, !tbaa !5
  %6827 = load ptr, ptr %155, align 8, !tbaa !9
  %6828 = load ptr, ptr %151, align 8, !tbaa !9
  %6829 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %6827, ptr noundef %6828)
  %6830 = icmp eq i32 %6829, -1
  br i1 %6830, label %6831, label %6884

6831:                                             ; preds = %6824
  br label %6832

6832:                                             ; preds = %6831
  br label %6833

6833:                                             ; preds = %6832
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %6834 = call ptr @__errno_location() #11
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  store i32 %6835, ptr %162, align 4, !tbaa !5
  %6836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6837 = call i32 @s2n_print_stacktrace(ptr noundef %6836)
  %6838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6839 = trunc i8 %6838 to i1
  br i1 %6839, label %6840, label %6862

6840:                                             ; preds = %6833
  %6841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6842 = call i32 @fileno(ptr noundef %6841) #10
  %6843 = call i32 @isatty(i32 noundef %6842) #10
  %6844 = icmp ne i32 %6843, 0
  br i1 %6844, label %6845, label %6862

6845:                                             ; preds = %6840
  %6846 = load i32, ptr %162, align 4, !tbaa !5
  %6847 = call ptr @__errno_location() #11
  store i32 %6846, ptr %6847, align 4, !tbaa !5
  %6848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6849 = load i32, ptr @test_count, align 4, !tbaa !5
  %6850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6851 = load i32, ptr %6850, align 4, !tbaa !5
  %6852 = call ptr @s2n_strerror(i32 noundef %6851, ptr noundef @.str.4)
  %6853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6854 = load i32, ptr %6853, align 4, !tbaa !5
  %6855 = call ptr @s2n_strerror_debug(i32 noundef %6854, ptr noundef @.str.4)
  %6856 = call ptr @__errno_location() #11
  %6857 = load i32, ptr %6856, align 4, !tbaa !5
  %6858 = call ptr @strerror(i32 noundef %6857) #10
  %6859 = call ptr @__errno_location() #11
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  %6861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6848, ptr noundef @.str.2, i32 noundef %6849, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 328, ptr noundef %6852, ptr noundef %6855, ptr noundef %6858, i32 noundef %6860) #10
  br label %6879

6862:                                             ; preds = %6840, %6833
  %6863 = load i32, ptr %162, align 4, !tbaa !5
  %6864 = call ptr @__errno_location() #11
  store i32 %6863, ptr %6864, align 4, !tbaa !5
  %6865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6866 = load i32, ptr @test_count, align 4, !tbaa !5
  %6867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6868 = load i32, ptr %6867, align 4, !tbaa !5
  %6869 = call ptr @s2n_strerror(i32 noundef %6868, ptr noundef @.str.4)
  %6870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6871 = load i32, ptr %6870, align 4, !tbaa !5
  %6872 = call ptr @s2n_strerror_debug(i32 noundef %6871, ptr noundef @.str.4)
  %6873 = call ptr @__errno_location() #11
  %6874 = load i32, ptr %6873, align 4, !tbaa !5
  %6875 = call ptr @strerror(i32 noundef %6874) #10
  %6876 = call ptr @__errno_location() #11
  %6877 = load i32, ptr %6876, align 4, !tbaa !5
  %6878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6865, ptr noundef @.str.5, i32 noundef %6866, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 328, ptr noundef %6869, ptr noundef %6872, ptr noundef %6875, i32 noundef %6877) #10
  br label %6879

6879:                                             ; preds = %6862, %6845
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %6880

6880:                                             ; preds = %6879
  br label %6881

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

6882:                                             ; No predecessors!
  br label %6883

6883:                                             ; preds = %6882
  br label %6884

6884:                                             ; preds = %6883, %6824
  br label %6885

6885:                                             ; preds = %6884
  br label %6886

6886:                                             ; preds = %6885
  br label %6887

6887:                                             ; preds = %6886
  %6888 = load i32, ptr @test_count, align 4, !tbaa !5
  %6889 = add nsw i32 %6888, 1
  store i32 %6889, ptr @test_count, align 4, !tbaa !5
  %6890 = load ptr, ptr %151, align 8, !tbaa !9
  %6891 = load i32, ptr %6890, align 8
  %6892 = lshr i32 %6891, 3
  %6893 = and i32 %6892, 1
  %6894 = icmp ne i32 %6893, 0
  br i1 %6894, label %6948, label %6895

6895:                                             ; preds = %6887
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %6898 = call ptr @__errno_location() #11
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  store i32 %6899, ptr %163, align 4, !tbaa !5
  %6900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6901 = call i32 @s2n_print_stacktrace(ptr noundef %6900)
  %6902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6903 = trunc i8 %6902 to i1
  br i1 %6903, label %6904, label %6926

6904:                                             ; preds = %6897
  %6905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6906 = call i32 @fileno(ptr noundef %6905) #10
  %6907 = call i32 @isatty(i32 noundef %6906) #10
  %6908 = icmp ne i32 %6907, 0
  br i1 %6908, label %6909, label %6926

6909:                                             ; preds = %6904
  %6910 = load i32, ptr %163, align 4, !tbaa !5
  %6911 = call ptr @__errno_location() #11
  store i32 %6910, ptr %6911, align 4, !tbaa !5
  %6912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6915 = load i32, ptr %6914, align 4, !tbaa !5
  %6916 = call ptr @s2n_strerror(i32 noundef %6915, ptr noundef @.str.4)
  %6917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  %6919 = call ptr @s2n_strerror_debug(i32 noundef %6918, ptr noundef @.str.4)
  %6920 = call ptr @__errno_location() #11
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  %6922 = call ptr @strerror(i32 noundef %6921) #10
  %6923 = call ptr @__errno_location() #11
  %6924 = load i32, ptr %6923, align 4, !tbaa !5
  %6925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6912, ptr noundef @.str.2, i32 noundef %6913, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6916, ptr noundef %6919, ptr noundef %6922, i32 noundef %6924) #10
  br label %6943

6926:                                             ; preds = %6904, %6897
  %6927 = load i32, ptr %163, align 4, !tbaa !5
  %6928 = call ptr @__errno_location() #11
  store i32 %6927, ptr %6928, align 4, !tbaa !5
  %6929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6930 = load i32, ptr @test_count, align 4, !tbaa !5
  %6931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6932 = load i32, ptr %6931, align 4, !tbaa !5
  %6933 = call ptr @s2n_strerror(i32 noundef %6932, ptr noundef @.str.4)
  %6934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6935 = load i32, ptr %6934, align 4, !tbaa !5
  %6936 = call ptr @s2n_strerror_debug(i32 noundef %6935, ptr noundef @.str.4)
  %6937 = call ptr @__errno_location() #11
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @strerror(i32 noundef %6938) #10
  %6940 = call ptr @__errno_location() #11
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6929, ptr noundef @.str.5, i32 noundef %6930, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 329, ptr noundef %6933, ptr noundef %6936, ptr noundef %6939, i32 noundef %6941) #10
  br label %6943

6943:                                             ; preds = %6926, %6909
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %6944

6944:                                             ; preds = %6943
  br label %6945

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

6946:                                             ; No predecessors!
  br label %6947

6947:                                             ; preds = %6946
  br label %6948

6948:                                             ; preds = %6947, %6887
  br label %6949

6949:                                             ; preds = %6948
  br label %6950

6950:                                             ; preds = %6949
  br label %6951

6951:                                             ; preds = %6950
  %6952 = load i32, ptr @test_count, align 4, !tbaa !5
  %6953 = add nsw i32 %6952, 1
  store i32 %6953, ptr @test_count, align 4, !tbaa !5
  %6954 = load ptr, ptr %155, align 8, !tbaa !9
  %6955 = call i32 @s2n_send_client_hello_request(ptr noundef %6954)
  %6956 = getelementptr inbounds %struct.s2n_result, ptr %164, i32 0, i32 0
  store i32 %6955, ptr %6956, align 4
  %6957 = getelementptr inbounds %struct.s2n_result, ptr %164, i32 0, i32 0
  %6958 = load i32, ptr %6957, align 4
  %6959 = call zeroext i1 @s2n_result_is_ok(i32 %6958)
  br i1 %6959, label %7013, label %6960

6960:                                             ; preds = %6951
  br label %6961

6961:                                             ; preds = %6960
  br label %6962

6962:                                             ; preds = %6961
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  %6963 = call ptr @__errno_location() #11
  %6964 = load i32, ptr %6963, align 4, !tbaa !5
  store i32 %6964, ptr %165, align 4, !tbaa !5
  %6965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6966 = call i32 @s2n_print_stacktrace(ptr noundef %6965)
  %6967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6968 = trunc i8 %6967 to i1
  br i1 %6968, label %6969, label %6991

6969:                                             ; preds = %6962
  %6970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6971 = call i32 @fileno(ptr noundef %6970) #10
  %6972 = call i32 @isatty(i32 noundef %6971) #10
  %6973 = icmp ne i32 %6972, 0
  br i1 %6973, label %6974, label %6991

6974:                                             ; preds = %6969
  %6975 = load i32, ptr %165, align 4, !tbaa !5
  %6976 = call ptr @__errno_location() #11
  store i32 %6975, ptr %6976, align 4, !tbaa !5
  %6977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6978 = load i32, ptr @test_count, align 4, !tbaa !5
  %6979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  %6981 = call ptr @s2n_strerror(i32 noundef %6980, ptr noundef @.str.4)
  %6982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6983 = load i32, ptr %6982, align 4, !tbaa !5
  %6984 = call ptr @s2n_strerror_debug(i32 noundef %6983, ptr noundef @.str.4)
  %6985 = call ptr @__errno_location() #11
  %6986 = load i32, ptr %6985, align 4, !tbaa !5
  %6987 = call ptr @strerror(i32 noundef %6986) #10
  %6988 = call ptr @__errno_location() #11
  %6989 = load i32, ptr %6988, align 4, !tbaa !5
  %6990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6977, ptr noundef @.str.2, i32 noundef %6978, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6981, ptr noundef %6984, ptr noundef %6987, i32 noundef %6989) #10
  br label %7008

6991:                                             ; preds = %6969, %6962
  %6992 = load i32, ptr %165, align 4, !tbaa !5
  %6993 = call ptr @__errno_location() #11
  store i32 %6992, ptr %6993, align 4, !tbaa !5
  %6994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6995 = load i32, ptr @test_count, align 4, !tbaa !5
  %6996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6997 = load i32, ptr %6996, align 4, !tbaa !5
  %6998 = call ptr @s2n_strerror(i32 noundef %6997, ptr noundef @.str.4)
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror_debug(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call ptr @__errno_location() #11
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @strerror(i32 noundef %7003) #10
  %7005 = call ptr @__errno_location() #11
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6994, ptr noundef @.str.5, i32 noundef %6995, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 332, ptr noundef %6998, ptr noundef %7001, ptr noundef %7004, i32 noundef %7006) #10
  br label %7008

7008:                                             ; preds = %6991, %6974
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %7009

7009:                                             ; preds = %7008
  br label %7010

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

7011:                                             ; No predecessors!
  br label %7012

7012:                                             ; preds = %7011
  br label %7013

7013:                                             ; preds = %7012, %6951
  br label %7014

7014:                                             ; preds = %7013
  br label %7015

7015:                                             ; preds = %7014
  br label %7016

7016:                                             ; preds = %7015
  %7017 = load i32, ptr @test_count, align 4, !tbaa !5
  %7018 = add nsw i32 %7017, 1
  store i32 %7018, ptr @test_count, align 4, !tbaa !5
  %7019 = load ptr, ptr %155, align 8, !tbaa !9
  %7020 = load ptr, ptr %151, align 8, !tbaa !9
  %7021 = call i32 @s2n_send_and_recv_test(ptr noundef %7019, ptr noundef %7020)
  %7022 = getelementptr inbounds %struct.s2n_result, ptr %166, i32 0, i32 0
  store i32 %7021, ptr %7022, align 4
  %7023 = getelementptr inbounds %struct.s2n_result, ptr %166, i32 0, i32 0
  %7024 = load i32, ptr %7023, align 4
  %7025 = call zeroext i1 @s2n_result_is_ok(i32 %7024)
  br i1 %7025, label %7079, label %7026

7026:                                             ; preds = %7016
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

7028:                                             ; preds = %7027
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %7029 = call ptr @__errno_location() #11
  %7030 = load i32, ptr %7029, align 4, !tbaa !5
  store i32 %7030, ptr %167, align 4, !tbaa !5
  %7031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7032 = call i32 @s2n_print_stacktrace(ptr noundef %7031)
  %7033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7034 = trunc i8 %7033 to i1
  br i1 %7034, label %7035, label %7057

7035:                                             ; preds = %7028
  %7036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7037 = call i32 @fileno(ptr noundef %7036) #10
  %7038 = call i32 @isatty(i32 noundef %7037) #10
  %7039 = icmp ne i32 %7038, 0
  br i1 %7039, label %7040, label %7057

7040:                                             ; preds = %7035
  %7041 = load i32, ptr %167, align 4, !tbaa !5
  %7042 = call ptr @__errno_location() #11
  store i32 %7041, ptr %7042, align 4, !tbaa !5
  %7043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7044 = load i32, ptr @test_count, align 4, !tbaa !5
  %7045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  %7047 = call ptr @s2n_strerror(i32 noundef %7046, ptr noundef @.str.4)
  %7048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7049 = load i32, ptr %7048, align 4, !tbaa !5
  %7050 = call ptr @s2n_strerror_debug(i32 noundef %7049, ptr noundef @.str.4)
  %7051 = call ptr @__errno_location() #11
  %7052 = load i32, ptr %7051, align 4, !tbaa !5
  %7053 = call ptr @strerror(i32 noundef %7052) #10
  %7054 = call ptr @__errno_location() #11
  %7055 = load i32, ptr %7054, align 4, !tbaa !5
  %7056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7043, ptr noundef @.str.2, i32 noundef %7044, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 335, ptr noundef %7047, ptr noundef %7050, ptr noundef %7053, i32 noundef %7055) #10
  br label %7074

7057:                                             ; preds = %7035, %7028
  %7058 = load i32, ptr %167, align 4, !tbaa !5
  %7059 = call ptr @__errno_location() #11
  store i32 %7058, ptr %7059, align 4, !tbaa !5
  %7060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7061 = load i32, ptr @test_count, align 4, !tbaa !5
  %7062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call ptr @s2n_strerror(i32 noundef %7063, ptr noundef @.str.4)
  %7065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @s2n_strerror_debug(i32 noundef %7066, ptr noundef @.str.4)
  %7068 = call ptr @__errno_location() #11
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call ptr @strerror(i32 noundef %7069) #10
  %7071 = call ptr @__errno_location() #11
  %7072 = load i32, ptr %7071, align 4, !tbaa !5
  %7073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7060, ptr noundef @.str.5, i32 noundef %7061, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 335, ptr noundef %7064, ptr noundef %7067, ptr noundef %7070, i32 noundef %7072) #10
  br label %7074

7074:                                             ; preds = %7057, %7040
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %7075

7075:                                             ; preds = %7074
  br label %7076

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

7077:                                             ; No predecessors!
  br label %7078

7078:                                             ; preds = %7077
  br label %7079

7079:                                             ; preds = %7078, %7016
  br label %7080

7080:                                             ; preds = %7079
  br label %7081

7081:                                             ; preds = %7080
  br label %7082

7082:                                             ; preds = %7081
  %7083 = load i32, ptr @test_count, align 4, !tbaa !5
  %7084 = add nsw i32 %7083, 1
  store i32 %7084, ptr @test_count, align 4, !tbaa !5
  %7085 = load ptr, ptr %151, align 8, !tbaa !9
  %7086 = load ptr, ptr %155, align 8, !tbaa !9
  %7087 = call i32 @s2n_send_and_recv_test(ptr noundef %7085, ptr noundef %7086)
  %7088 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  store i32 %7087, ptr %7088, align 4
  %7089 = getelementptr inbounds %struct.s2n_result, ptr %168, i32 0, i32 0
  %7090 = load i32, ptr %7089, align 4
  %7091 = call zeroext i1 @s2n_result_is_ok(i32 %7090)
  br i1 %7091, label %7145, label %7092

7092:                                             ; preds = %7082
  br label %7093

7093:                                             ; preds = %7092
  br label %7094

7094:                                             ; preds = %7093
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7095 = call ptr @__errno_location() #11
  %7096 = load i32, ptr %7095, align 4, !tbaa !5
  store i32 %7096, ptr %169, align 4, !tbaa !5
  %7097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7098 = call i32 @s2n_print_stacktrace(ptr noundef %7097)
  %7099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7100 = trunc i8 %7099 to i1
  br i1 %7100, label %7101, label %7123

7101:                                             ; preds = %7094
  %7102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7103 = call i32 @fileno(ptr noundef %7102) #10
  %7104 = call i32 @isatty(i32 noundef %7103) #10
  %7105 = icmp ne i32 %7104, 0
  br i1 %7105, label %7106, label %7123

7106:                                             ; preds = %7101
  %7107 = load i32, ptr %169, align 4, !tbaa !5
  %7108 = call ptr @__errno_location() #11
  store i32 %7107, ptr %7108, align 4, !tbaa !5
  %7109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7110 = load i32, ptr @test_count, align 4, !tbaa !5
  %7111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7112 = load i32, ptr %7111, align 4, !tbaa !5
  %7113 = call ptr @s2n_strerror(i32 noundef %7112, ptr noundef @.str.4)
  %7114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7115 = load i32, ptr %7114, align 4, !tbaa !5
  %7116 = call ptr @s2n_strerror_debug(i32 noundef %7115, ptr noundef @.str.4)
  %7117 = call ptr @__errno_location() #11
  %7118 = load i32, ptr %7117, align 4, !tbaa !5
  %7119 = call ptr @strerror(i32 noundef %7118) #10
  %7120 = call ptr @__errno_location() #11
  %7121 = load i32, ptr %7120, align 4, !tbaa !5
  %7122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7109, ptr noundef @.str.2, i32 noundef %7110, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 336, ptr noundef %7113, ptr noundef %7116, ptr noundef %7119, i32 noundef %7121) #10
  br label %7140

7123:                                             ; preds = %7101, %7094
  %7124 = load i32, ptr %169, align 4, !tbaa !5
  %7125 = call ptr @__errno_location() #11
  store i32 %7124, ptr %7125, align 4, !tbaa !5
  %7126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7127 = load i32, ptr @test_count, align 4, !tbaa !5
  %7128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @s2n_strerror(i32 noundef %7129, ptr noundef @.str.4)
  %7131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call ptr @s2n_strerror_debug(i32 noundef %7132, ptr noundef @.str.4)
  %7134 = call ptr @__errno_location() #11
  %7135 = load i32, ptr %7134, align 4, !tbaa !5
  %7136 = call ptr @strerror(i32 noundef %7135) #10
  %7137 = call ptr @__errno_location() #11
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7126, ptr noundef @.str.5, i32 noundef %7127, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 336, ptr noundef %7130, ptr noundef %7133, ptr noundef %7136, i32 noundef %7138) #10
  br label %7140

7140:                                             ; preds = %7123, %7106
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %7141

7141:                                             ; preds = %7140
  br label %7142

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

7143:                                             ; No predecessors!
  br label %7144

7144:                                             ; preds = %7143
  br label %7145

7145:                                             ; preds = %7144, %7082
  br label %7146

7146:                                             ; preds = %7145
  br label %7147

7147:                                             ; preds = %7146
  br label %7148

7148:                                             ; preds = %7147
  %7149 = load i32, ptr @test_count, align 4, !tbaa !5
  %7150 = add nsw i32 %7149, 1
  store i32 %7150, ptr @test_count, align 4, !tbaa !5
  %7151 = load ptr, ptr %151, align 8, !tbaa !9
  %7152 = getelementptr inbounds %struct.s2n_connection, ptr %7151, i32 0, i32 1
  %7153 = load ptr, ptr %7152, align 8, !tbaa !47
  %7154 = getelementptr inbounds %struct.s2n_config, ptr %7153, i32 0, i32 54
  %7155 = load ptr, ptr %7154, align 8, !tbaa !48
  %7156 = icmp eq ptr %7155, null
  br i1 %7156, label %7157, label %7210

7157:                                             ; preds = %7148
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  %7160 = call ptr @__errno_location() #11
  %7161 = load i32, ptr %7160, align 4, !tbaa !5
  store i32 %7161, ptr %170, align 4, !tbaa !5
  %7162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7163 = call i32 @s2n_print_stacktrace(ptr noundef %7162)
  %7164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7165 = trunc i8 %7164 to i1
  br i1 %7165, label %7166, label %7188

7166:                                             ; preds = %7159
  %7167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7168 = call i32 @fileno(ptr noundef %7167) #10
  %7169 = call i32 @isatty(i32 noundef %7168) #10
  %7170 = icmp ne i32 %7169, 0
  br i1 %7170, label %7171, label %7188

7171:                                             ; preds = %7166
  %7172 = load i32, ptr %170, align 4, !tbaa !5
  %7173 = call ptr @__errno_location() #11
  store i32 %7172, ptr %7173, align 4, !tbaa !5
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = load i32, ptr @test_count, align 4, !tbaa !5
  %7176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7177 = load i32, ptr %7176, align 4, !tbaa !5
  %7178 = call ptr @s2n_strerror(i32 noundef %7177, ptr noundef @.str.4)
  %7179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7180 = load i32, ptr %7179, align 4, !tbaa !5
  %7181 = call ptr @s2n_strerror_debug(i32 noundef %7180, ptr noundef @.str.4)
  %7182 = call ptr @__errno_location() #11
  %7183 = load i32, ptr %7182, align 4, !tbaa !5
  %7184 = call ptr @strerror(i32 noundef %7183) #10
  %7185 = call ptr @__errno_location() #11
  %7186 = load i32, ptr %7185, align 4, !tbaa !5
  %7187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7174, ptr noundef @.str.2, i32 noundef %7175, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7178, ptr noundef %7181, ptr noundef %7184, i32 noundef %7186) #10
  br label %7205

7188:                                             ; preds = %7166, %7159
  %7189 = load i32, ptr %170, align 4, !tbaa !5
  %7190 = call ptr @__errno_location() #11
  store i32 %7189, ptr %7190, align 4, !tbaa !5
  %7191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7192 = load i32, ptr @test_count, align 4, !tbaa !5
  %7193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7194 = load i32, ptr %7193, align 4, !tbaa !5
  %7195 = call ptr @s2n_strerror(i32 noundef %7194, ptr noundef @.str.4)
  %7196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  %7198 = call ptr @s2n_strerror_debug(i32 noundef %7197, ptr noundef @.str.4)
  %7199 = call ptr @__errno_location() #11
  %7200 = load i32, ptr %7199, align 4, !tbaa !5
  %7201 = call ptr @strerror(i32 noundef %7200) #10
  %7202 = call ptr @__errno_location() #11
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7191, ptr noundef @.str.5, i32 noundef %7192, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7195, ptr noundef %7198, ptr noundef %7201, i32 noundef %7203) #10
  br label %7205

7205:                                             ; preds = %7188, %7171
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  br label %7206

7206:                                             ; preds = %7205
  br label %7207

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

7208:                                             ; No predecessors!
  br label %7209

7209:                                             ; preds = %7208
  br label %7210

7210:                                             ; preds = %7209, %7148
  br label %7211

7211:                                             ; preds = %7210
  br label %7212

7212:                                             ; preds = %7211
  br label %7213

7213:                                             ; preds = %7212
  %7214 = load i32, ptr @test_count, align 4, !tbaa !5
  %7215 = add nsw i32 %7214, 1
  store i32 %7215, ptr @test_count, align 4, !tbaa !5
  %7216 = getelementptr inbounds %struct.s2n_test_reneg_req_ctx, ptr %150, i32 0, i32 1
  %7217 = load i8, ptr %7216, align 4, !tbaa !52
  %7218 = zext i8 %7217 to i32
  %7219 = icmp eq i32 %7218, 1
  br i1 %7219, label %7273, label %7220

7220:                                             ; preds = %7213
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #10
  %7223 = call ptr @__errno_location() #11
  %7224 = load i32, ptr %7223, align 4, !tbaa !5
  store i32 %7224, ptr %171, align 4, !tbaa !5
  %7225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7226 = call i32 @s2n_print_stacktrace(ptr noundef %7225)
  %7227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7228 = trunc i8 %7227 to i1
  br i1 %7228, label %7229, label %7251

7229:                                             ; preds = %7222
  %7230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7231 = call i32 @fileno(ptr noundef %7230) #10
  %7232 = call i32 @isatty(i32 noundef %7231) #10
  %7233 = icmp ne i32 %7232, 0
  br i1 %7233, label %7234, label %7251

7234:                                             ; preds = %7229
  %7235 = load i32, ptr %171, align 4, !tbaa !5
  %7236 = call ptr @__errno_location() #11
  store i32 %7235, ptr %7236, align 4, !tbaa !5
  %7237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7238 = load i32, ptr @test_count, align 4, !tbaa !5
  %7239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7240 = load i32, ptr %7239, align 4, !tbaa !5
  %7241 = call ptr @s2n_strerror(i32 noundef %7240, ptr noundef @.str.4)
  %7242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7243 = load i32, ptr %7242, align 4, !tbaa !5
  %7244 = call ptr @s2n_strerror_debug(i32 noundef %7243, ptr noundef @.str.4)
  %7245 = call ptr @__errno_location() #11
  %7246 = load i32, ptr %7245, align 4, !tbaa !5
  %7247 = call ptr @strerror(i32 noundef %7246) #10
  %7248 = call ptr @__errno_location() #11
  %7249 = load i32, ptr %7248, align 4, !tbaa !5
  %7250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7237, ptr noundef @.str.2, i32 noundef %7238, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 340, ptr noundef %7241, ptr noundef %7244, ptr noundef %7247, i32 noundef %7249) #10
  br label %7268

7251:                                             ; preds = %7229, %7222
  %7252 = load i32, ptr %171, align 4, !tbaa !5
  %7253 = call ptr @__errno_location() #11
  store i32 %7252, ptr %7253, align 4, !tbaa !5
  %7254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7255 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7257, ptr noundef @.str.4)
  %7259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call ptr @s2n_strerror_debug(i32 noundef %7260, ptr noundef @.str.4)
  %7262 = call ptr @__errno_location() #11
  %7263 = load i32, ptr %7262, align 4, !tbaa !5
  %7264 = call ptr @strerror(i32 noundef %7263) #10
  %7265 = call ptr @__errno_location() #11
  %7266 = load i32, ptr %7265, align 4, !tbaa !5
  %7267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7254, ptr noundef @.str.5, i32 noundef %7255, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 340, ptr noundef %7258, ptr noundef %7261, ptr noundef %7264, i32 noundef %7266) #10
  br label %7268

7268:                                             ; preds = %7251, %7234
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #10
  br label %7269

7269:                                             ; preds = %7268
  br label %7270

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

7271:                                             ; No predecessors!
  br label %7272

7272:                                             ; preds = %7271
  br label %7273

7273:                                             ; preds = %7272, %7213
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

7275:                                             ; preds = %7274
  %7276 = call i32 @s2n_io_pair_close(ptr noundef %158)
  call void @llvm.lifetime.end.p0(i64 8, ptr %158) #10
  %7277 = call i32 @s2n_connection_ptr_free(ptr noundef %155)
  %7278 = getelementptr inbounds %struct.s2n_result, ptr %172, i32 0, i32 0
  store i32 %7277, ptr %7278, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #10
  %7279 = call i32 @s2n_connection_ptr_free(ptr noundef %151)
  %7280 = getelementptr inbounds %struct.s2n_result, ptr %173, i32 0, i32 0
  store i32 %7279, ptr %7280, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %174) #10
  call void @llvm.memset.p0.i64(ptr align 4 %174, i8 0, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %175) #10
  %7281 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %7281, ptr %175, align 8, !tbaa !9
  br label %7282

7282:                                             ; preds = %7275
  %7283 = load i32, ptr @test_count, align 4, !tbaa !5
  %7284 = add nsw i32 %7283, 1
  store i32 %7284, ptr @test_count, align 4, !tbaa !5
  %7285 = load ptr, ptr %175, align 8, !tbaa !9
  %7286 = icmp eq ptr %7285, null
  br i1 %7286, label %7287, label %7340

7287:                                             ; preds = %7282
  br label %7288

7288:                                             ; preds = %7287
  br label %7289

7289:                                             ; preds = %7288
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #10
  %7290 = call ptr @__errno_location() #11
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  store i32 %7291, ptr %176, align 4, !tbaa !5
  %7292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7293 = call i32 @s2n_print_stacktrace(ptr noundef %7292)
  %7294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7295 = trunc i8 %7294 to i1
  br i1 %7295, label %7296, label %7318

7296:                                             ; preds = %7289
  %7297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7298 = call i32 @fileno(ptr noundef %7297) #10
  %7299 = call i32 @isatty(i32 noundef %7298) #10
  %7300 = icmp ne i32 %7299, 0
  br i1 %7300, label %7301, label %7318

7301:                                             ; preds = %7296
  %7302 = load i32, ptr %176, align 4, !tbaa !5
  %7303 = call ptr @__errno_location() #11
  store i32 %7302, ptr %7303, align 4, !tbaa !5
  %7304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7305 = load i32, ptr @test_count, align 4, !tbaa !5
  %7306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7307 = load i32, ptr %7306, align 4, !tbaa !5
  %7308 = call ptr @s2n_strerror(i32 noundef %7307, ptr noundef @.str.4)
  %7309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7310 = load i32, ptr %7309, align 4, !tbaa !5
  %7311 = call ptr @s2n_strerror_debug(i32 noundef %7310, ptr noundef @.str.4)
  %7312 = call ptr @__errno_location() #11
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  %7314 = call ptr @strerror(i32 noundef %7313) #10
  %7315 = call ptr @__errno_location() #11
  %7316 = load i32, ptr %7315, align 4, !tbaa !5
  %7317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7304, ptr noundef @.str.2, i32 noundef %7305, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7308, ptr noundef %7311, ptr noundef %7314, i32 noundef %7316) #10
  br label %7335

7318:                                             ; preds = %7296, %7289
  %7319 = load i32, ptr %176, align 4, !tbaa !5
  %7320 = call ptr @__errno_location() #11
  store i32 %7319, ptr %7320, align 4, !tbaa !5
  %7321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7322 = load i32, ptr @test_count, align 4, !tbaa !5
  %7323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7324 = load i32, ptr %7323, align 4, !tbaa !5
  %7325 = call ptr @s2n_strerror(i32 noundef %7324, ptr noundef @.str.4)
  %7326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7327 = load i32, ptr %7326, align 4, !tbaa !5
  %7328 = call ptr @s2n_strerror_debug(i32 noundef %7327, ptr noundef @.str.4)
  %7329 = call ptr @__errno_location() #11
  %7330 = load i32, ptr %7329, align 4, !tbaa !5
  %7331 = call ptr @strerror(i32 noundef %7330) #10
  %7332 = call ptr @__errno_location() #11
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  %7334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7321, ptr noundef @.str.5, i32 noundef %7322, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7325, ptr noundef %7328, ptr noundef %7331, i32 noundef %7333) #10
  br label %7335

7335:                                             ; preds = %7318, %7301
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #10
  br label %7336

7336:                                             ; preds = %7335
  br label %7337

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

7338:                                             ; No predecessors!
  br label %7339

7339:                                             ; preds = %7338
  br label %7340

7340:                                             ; preds = %7339, %7282
  br label %7341

7341:                                             ; preds = %7340
  br label %7342

7342:                                             ; preds = %7341
  br label %7343

7343:                                             ; preds = %7342
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = add nsw i32 %7344, 1
  store i32 %7345, ptr @test_count, align 4, !tbaa !5
  %7346 = load ptr, ptr %175, align 8, !tbaa !9
  %7347 = load ptr, ptr %17, align 8, !tbaa !9
  %7348 = call i32 @s2n_connection_set_config(ptr noundef %7346, ptr noundef %7347)
  %7349 = icmp eq i32 %7348, -1
  br i1 %7349, label %7350, label %7403

7350:                                             ; preds = %7343
  br label %7351

7351:                                             ; preds = %7350
  br label %7352

7352:                                             ; preds = %7351
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %7353 = call ptr @__errno_location() #11
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  store i32 %7354, ptr %177, align 4, !tbaa !5
  %7355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7356 = call i32 @s2n_print_stacktrace(ptr noundef %7355)
  %7357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7358 = trunc i8 %7357 to i1
  br i1 %7358, label %7359, label %7381

7359:                                             ; preds = %7352
  %7360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7361 = call i32 @fileno(ptr noundef %7360) #10
  %7362 = call i32 @isatty(i32 noundef %7361) #10
  %7363 = icmp ne i32 %7362, 0
  br i1 %7363, label %7364, label %7381

7364:                                             ; preds = %7359
  %7365 = load i32, ptr %177, align 4, !tbaa !5
  %7366 = call ptr @__errno_location() #11
  store i32 %7365, ptr %7366, align 4, !tbaa !5
  %7367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7368 = load i32, ptr @test_count, align 4, !tbaa !5
  %7369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  %7371 = call ptr @s2n_strerror(i32 noundef %7370, ptr noundef @.str.4)
  %7372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @s2n_strerror_debug(i32 noundef %7373, ptr noundef @.str.4)
  %7375 = call ptr @__errno_location() #11
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @strerror(i32 noundef %7376) #10
  %7378 = call ptr @__errno_location() #11
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7367, ptr noundef @.str.2, i32 noundef %7368, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 352, ptr noundef %7371, ptr noundef %7374, ptr noundef %7377, i32 noundef %7379) #10
  br label %7398

7381:                                             ; preds = %7359, %7352
  %7382 = load i32, ptr %177, align 4, !tbaa !5
  %7383 = call ptr @__errno_location() #11
  store i32 %7382, ptr %7383, align 4, !tbaa !5
  %7384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7385 = load i32, ptr @test_count, align 4, !tbaa !5
  %7386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7387 = load i32, ptr %7386, align 4, !tbaa !5
  %7388 = call ptr @s2n_strerror(i32 noundef %7387, ptr noundef @.str.4)
  %7389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7390 = load i32, ptr %7389, align 4, !tbaa !5
  %7391 = call ptr @s2n_strerror_debug(i32 noundef %7390, ptr noundef @.str.4)
  %7392 = call ptr @__errno_location() #11
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call ptr @strerror(i32 noundef %7393) #10
  %7395 = call ptr @__errno_location() #11
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7384, ptr noundef @.str.5, i32 noundef %7385, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 352, ptr noundef %7388, ptr noundef %7391, ptr noundef %7394, i32 noundef %7396) #10
  br label %7398

7398:                                             ; preds = %7381, %7364
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  br label %7399

7399:                                             ; preds = %7398
  br label %7400

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

7401:                                             ; No predecessors!
  br label %7402

7402:                                             ; preds = %7401
  br label %7403

7403:                                             ; preds = %7402, %7343
  br label %7404

7404:                                             ; preds = %7403
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

7406:                                             ; preds = %7405
  %7407 = load i32, ptr @test_count, align 4, !tbaa !5
  %7408 = add nsw i32 %7407, 1
  store i32 %7408, ptr @test_count, align 4, !tbaa !5
  %7409 = load ptr, ptr %17, align 8, !tbaa !9
  %7410 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %7409, ptr noundef @s2n_test_reneg_req_cb, ptr noundef %174)
  %7411 = icmp eq i32 %7410, -1
  br i1 %7411, label %7412, label %7465

7412:                                             ; preds = %7406
  br label %7413

7413:                                             ; preds = %7412
  br label %7414

7414:                                             ; preds = %7413
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #10
  %7415 = call ptr @__errno_location() #11
  %7416 = load i32, ptr %7415, align 4, !tbaa !5
  store i32 %7416, ptr %178, align 4, !tbaa !5
  %7417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7418 = call i32 @s2n_print_stacktrace(ptr noundef %7417)
  %7419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7420 = trunc i8 %7419 to i1
  br i1 %7420, label %7421, label %7443

7421:                                             ; preds = %7414
  %7422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7423 = call i32 @fileno(ptr noundef %7422) #10
  %7424 = call i32 @isatty(i32 noundef %7423) #10
  %7425 = icmp ne i32 %7424, 0
  br i1 %7425, label %7426, label %7443

7426:                                             ; preds = %7421
  %7427 = load i32, ptr %178, align 4, !tbaa !5
  %7428 = call ptr @__errno_location() #11
  store i32 %7427, ptr %7428, align 4, !tbaa !5
  %7429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7430 = load i32, ptr @test_count, align 4, !tbaa !5
  %7431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7432 = load i32, ptr %7431, align 4, !tbaa !5
  %7433 = call ptr @s2n_strerror(i32 noundef %7432, ptr noundef @.str.4)
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror_debug(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call ptr @__errno_location() #11
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @strerror(i32 noundef %7438) #10
  %7440 = call ptr @__errno_location() #11
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7429, ptr noundef @.str.2, i32 noundef %7430, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 353, ptr noundef %7433, ptr noundef %7436, ptr noundef %7439, i32 noundef %7441) #10
  br label %7460

7443:                                             ; preds = %7421, %7414
  %7444 = load i32, ptr %178, align 4, !tbaa !5
  %7445 = call ptr @__errno_location() #11
  store i32 %7444, ptr %7445, align 4, !tbaa !5
  %7446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7447 = load i32, ptr @test_count, align 4, !tbaa !5
  %7448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7449 = load i32, ptr %7448, align 4, !tbaa !5
  %7450 = call ptr @s2n_strerror(i32 noundef %7449, ptr noundef @.str.4)
  %7451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call ptr @s2n_strerror_debug(i32 noundef %7452, ptr noundef @.str.4)
  %7454 = call ptr @__errno_location() #11
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  %7456 = call ptr @strerror(i32 noundef %7455) #10
  %7457 = call ptr @__errno_location() #11
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7446, ptr noundef @.str.5, i32 noundef %7447, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 353, ptr noundef %7450, ptr noundef %7453, ptr noundef %7456, i32 noundef %7458) #10
  br label %7460

7460:                                             ; preds = %7443, %7426
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #10
  br label %7461

7461:                                             ; preds = %7460
  br label %7462

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

7463:                                             ; No predecessors!
  br label %7464

7464:                                             ; preds = %7463
  br label %7465

7465:                                             ; preds = %7464, %7406
  br label %7466

7466:                                             ; preds = %7465
  br label %7467

7467:                                             ; preds = %7466
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #10
  %7468 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7468, ptr %179, align 8, !tbaa !9
  br label %7469

7469:                                             ; preds = %7467
  %7470 = load i32, ptr @test_count, align 4, !tbaa !5
  %7471 = add nsw i32 %7470, 1
  store i32 %7471, ptr @test_count, align 4, !tbaa !5
  %7472 = load ptr, ptr %179, align 8, !tbaa !9
  %7473 = icmp eq ptr %7472, null
  br i1 %7473, label %7474, label %7527

7474:                                             ; preds = %7469
  br label %7475

7475:                                             ; preds = %7474
  br label %7476

7476:                                             ; preds = %7475
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #10
  %7477 = call ptr @__errno_location() #11
  %7478 = load i32, ptr %7477, align 4, !tbaa !5
  store i32 %7478, ptr %180, align 4, !tbaa !5
  %7479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7480 = call i32 @s2n_print_stacktrace(ptr noundef %7479)
  %7481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7482 = trunc i8 %7481 to i1
  br i1 %7482, label %7483, label %7505

7483:                                             ; preds = %7476
  %7484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7485 = call i32 @fileno(ptr noundef %7484) #10
  %7486 = call i32 @isatty(i32 noundef %7485) #10
  %7487 = icmp ne i32 %7486, 0
  br i1 %7487, label %7488, label %7505

7488:                                             ; preds = %7483
  %7489 = load i32, ptr %180, align 4, !tbaa !5
  %7490 = call ptr @__errno_location() #11
  store i32 %7489, ptr %7490, align 4, !tbaa !5
  %7491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7492 = load i32, ptr @test_count, align 4, !tbaa !5
  %7493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call ptr @s2n_strerror(i32 noundef %7494, ptr noundef @.str.4)
  %7496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7497 = load i32, ptr %7496, align 4, !tbaa !5
  %7498 = call ptr @s2n_strerror_debug(i32 noundef %7497, ptr noundef @.str.4)
  %7499 = call ptr @__errno_location() #11
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call ptr @strerror(i32 noundef %7500) #10
  %7502 = call ptr @__errno_location() #11
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  %7504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7491, ptr noundef @.str.2, i32 noundef %7492, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 357, ptr noundef %7495, ptr noundef %7498, ptr noundef %7501, i32 noundef %7503) #10
  br label %7522

7505:                                             ; preds = %7483, %7476
  %7506 = load i32, ptr %180, align 4, !tbaa !5
  %7507 = call ptr @__errno_location() #11
  store i32 %7506, ptr %7507, align 4, !tbaa !5
  %7508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7509 = load i32, ptr @test_count, align 4, !tbaa !5
  %7510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7511 = load i32, ptr %7510, align 4, !tbaa !5
  %7512 = call ptr @s2n_strerror(i32 noundef %7511, ptr noundef @.str.4)
  %7513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7514 = load i32, ptr %7513, align 4, !tbaa !5
  %7515 = call ptr @s2n_strerror_debug(i32 noundef %7514, ptr noundef @.str.4)
  %7516 = call ptr @__errno_location() #11
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  %7518 = call ptr @strerror(i32 noundef %7517) #10
  %7519 = call ptr @__errno_location() #11
  %7520 = load i32, ptr %7519, align 4, !tbaa !5
  %7521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7508, ptr noundef @.str.5, i32 noundef %7509, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 357, ptr noundef %7512, ptr noundef %7515, ptr noundef %7518, i32 noundef %7520) #10
  br label %7522

7522:                                             ; preds = %7505, %7488
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #10
  br label %7523

7523:                                             ; preds = %7522
  br label %7524

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

7525:                                             ; No predecessors!
  br label %7526

7526:                                             ; preds = %7525
  br label %7527

7527:                                             ; preds = %7526, %7469
  br label %7528

7528:                                             ; preds = %7527
  br label %7529

7529:                                             ; preds = %7528
  br label %7530

7530:                                             ; preds = %7529
  %7531 = load i32, ptr @test_count, align 4, !tbaa !5
  %7532 = add nsw i32 %7531, 1
  store i32 %7532, ptr @test_count, align 4, !tbaa !5
  %7533 = load ptr, ptr %179, align 8, !tbaa !9
  %7534 = load ptr, ptr %12, align 8, !tbaa !9
  %7535 = call i32 @s2n_connection_set_config(ptr noundef %7533, ptr noundef %7534)
  %7536 = icmp eq i32 %7535, -1
  br i1 %7536, label %7537, label %7590

7537:                                             ; preds = %7530
  br label %7538

7538:                                             ; preds = %7537
  br label %7539

7539:                                             ; preds = %7538
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #10
  %7540 = call ptr @__errno_location() #11
  %7541 = load i32, ptr %7540, align 4, !tbaa !5
  store i32 %7541, ptr %181, align 4, !tbaa !5
  %7542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7543 = call i32 @s2n_print_stacktrace(ptr noundef %7542)
  %7544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7545 = trunc i8 %7544 to i1
  br i1 %7545, label %7546, label %7568

7546:                                             ; preds = %7539
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = call i32 @fileno(ptr noundef %7547) #10
  %7549 = call i32 @isatty(i32 noundef %7548) #10
  %7550 = icmp ne i32 %7549, 0
  br i1 %7550, label %7551, label %7568

7551:                                             ; preds = %7546
  %7552 = load i32, ptr %181, align 4, !tbaa !5
  %7553 = call ptr @__errno_location() #11
  store i32 %7552, ptr %7553, align 4, !tbaa !5
  %7554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7555 = load i32, ptr @test_count, align 4, !tbaa !5
  %7556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7557 = load i32, ptr %7556, align 4, !tbaa !5
  %7558 = call ptr @s2n_strerror(i32 noundef %7557, ptr noundef @.str.4)
  %7559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call ptr @s2n_strerror_debug(i32 noundef %7560, ptr noundef @.str.4)
  %7562 = call ptr @__errno_location() #11
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call ptr @strerror(i32 noundef %7563) #10
  %7565 = call ptr @__errno_location() #11
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7554, ptr noundef @.str.2, i32 noundef %7555, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7558, ptr noundef %7561, ptr noundef %7564, i32 noundef %7566) #10
  br label %7585

7568:                                             ; preds = %7546, %7539
  %7569 = load i32, ptr %181, align 4, !tbaa !5
  %7570 = call ptr @__errno_location() #11
  store i32 %7569, ptr %7570, align 4, !tbaa !5
  %7571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7572 = load i32, ptr @test_count, align 4, !tbaa !5
  %7573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call ptr @s2n_strerror(i32 noundef %7574, ptr noundef @.str.4)
  %7576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7577 = load i32, ptr %7576, align 4, !tbaa !5
  %7578 = call ptr @s2n_strerror_debug(i32 noundef %7577, ptr noundef @.str.4)
  %7579 = call ptr @__errno_location() #11
  %7580 = load i32, ptr %7579, align 4, !tbaa !5
  %7581 = call ptr @strerror(i32 noundef %7580) #10
  %7582 = call ptr @__errno_location() #11
  %7583 = load i32, ptr %7582, align 4, !tbaa !5
  %7584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7571, ptr noundef @.str.5, i32 noundef %7572, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 358, ptr noundef %7575, ptr noundef %7578, ptr noundef %7581, i32 noundef %7583) #10
  br label %7585

7585:                                             ; preds = %7568, %7551
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #10
  br label %7586

7586:                                             ; preds = %7585
  br label %7587

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

7588:                                             ; No predecessors!
  br label %7589

7589:                                             ; preds = %7588
  br label %7590

7590:                                             ; preds = %7589, %7530
  br label %7591

7591:                                             ; preds = %7590
  br label %7592

7592:                                             ; preds = %7591
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #10
  call void @llvm.memset.p0.i64(ptr align 4 %182, i8 0, i64 8, i1 false)
  br label %7593

7593:                                             ; preds = %7592
  %7594 = load i32, ptr @test_count, align 4, !tbaa !5
  %7595 = add nsw i32 %7594, 1
  store i32 %7595, ptr @test_count, align 4, !tbaa !5
  %7596 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %182)
  %7597 = icmp eq i32 %7596, -1
  br i1 %7597, label %7598, label %7651

7598:                                             ; preds = %7593
  br label %7599

7599:                                             ; preds = %7598
  br label %7600

7600:                                             ; preds = %7599
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %7601 = call ptr @__errno_location() #11
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  store i32 %7602, ptr %183, align 4, !tbaa !5
  %7603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7604 = call i32 @s2n_print_stacktrace(ptr noundef %7603)
  %7605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7606 = trunc i8 %7605 to i1
  br i1 %7606, label %7607, label %7629

7607:                                             ; preds = %7600
  %7608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7609 = call i32 @fileno(ptr noundef %7608) #10
  %7610 = call i32 @isatty(i32 noundef %7609) #10
  %7611 = icmp ne i32 %7610, 0
  br i1 %7611, label %7612, label %7629

7612:                                             ; preds = %7607
  %7613 = load i32, ptr %183, align 4, !tbaa !5
  %7614 = call ptr @__errno_location() #11
  store i32 %7613, ptr %7614, align 4, !tbaa !5
  %7615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7616 = load i32, ptr @test_count, align 4, !tbaa !5
  %7617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7618 = load i32, ptr %7617, align 4, !tbaa !5
  %7619 = call ptr @s2n_strerror(i32 noundef %7618, ptr noundef @.str.4)
  %7620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7621 = load i32, ptr %7620, align 4, !tbaa !5
  %7622 = call ptr @s2n_strerror_debug(i32 noundef %7621, ptr noundef @.str.4)
  %7623 = call ptr @__errno_location() #11
  %7624 = load i32, ptr %7623, align 4, !tbaa !5
  %7625 = call ptr @strerror(i32 noundef %7624) #10
  %7626 = call ptr @__errno_location() #11
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7615, ptr noundef @.str.2, i32 noundef %7616, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7619, ptr noundef %7622, ptr noundef %7625, i32 noundef %7627) #10
  br label %7646

7629:                                             ; preds = %7607, %7600
  %7630 = load i32, ptr %183, align 4, !tbaa !5
  %7631 = call ptr @__errno_location() #11
  store i32 %7630, ptr %7631, align 4, !tbaa !5
  %7632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7633 = load i32, ptr @test_count, align 4, !tbaa !5
  %7634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7635 = load i32, ptr %7634, align 4, !tbaa !5
  %7636 = call ptr @s2n_strerror(i32 noundef %7635, ptr noundef @.str.4)
  %7637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7638 = load i32, ptr %7637, align 4, !tbaa !5
  %7639 = call ptr @s2n_strerror_debug(i32 noundef %7638, ptr noundef @.str.4)
  %7640 = call ptr @__errno_location() #11
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call ptr @strerror(i32 noundef %7641) #10
  %7643 = call ptr @__errno_location() #11
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7632, ptr noundef @.str.5, i32 noundef %7633, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7636, ptr noundef %7639, ptr noundef %7642, i32 noundef %7644) #10
  br label %7646

7646:                                             ; preds = %7629, %7612
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %7647

7647:                                             ; preds = %7646
  br label %7648

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

7649:                                             ; No predecessors!
  br label %7650

7650:                                             ; preds = %7649
  br label %7651

7651:                                             ; preds = %7650, %7593
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

7653:                                             ; preds = %7652
  br label %7654

7654:                                             ; preds = %7653
  %7655 = load i32, ptr @test_count, align 4, !tbaa !5
  %7656 = add nsw i32 %7655, 1
  store i32 %7656, ptr @test_count, align 4, !tbaa !5
  %7657 = load ptr, ptr %175, align 8, !tbaa !9
  %7658 = call i32 @s2n_connection_set_io_pair(ptr noundef %7657, ptr noundef %182)
  %7659 = icmp eq i32 %7658, -1
  br i1 %7659, label %7660, label %7713

7660:                                             ; preds = %7654
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

7662:                                             ; preds = %7661
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %7663 = call ptr @__errno_location() #11
  %7664 = load i32, ptr %7663, align 4, !tbaa !5
  store i32 %7664, ptr %184, align 4, !tbaa !5
  %7665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7666 = call i32 @s2n_print_stacktrace(ptr noundef %7665)
  %7667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7668 = trunc i8 %7667 to i1
  br i1 %7668, label %7669, label %7691

7669:                                             ; preds = %7662
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = call i32 @fileno(ptr noundef %7670) #10
  %7672 = call i32 @isatty(i32 noundef %7671) #10
  %7673 = icmp ne i32 %7672, 0
  br i1 %7673, label %7674, label %7691

7674:                                             ; preds = %7669
  %7675 = load i32, ptr %184, align 4, !tbaa !5
  %7676 = call ptr @__errno_location() #11
  store i32 %7675, ptr %7676, align 4, !tbaa !5
  %7677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7678 = load i32, ptr @test_count, align 4, !tbaa !5
  %7679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7680 = load i32, ptr %7679, align 4, !tbaa !5
  %7681 = call ptr @s2n_strerror(i32 noundef %7680, ptr noundef @.str.4)
  %7682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7683 = load i32, ptr %7682, align 4, !tbaa !5
  %7684 = call ptr @s2n_strerror_debug(i32 noundef %7683, ptr noundef @.str.4)
  %7685 = call ptr @__errno_location() #11
  %7686 = load i32, ptr %7685, align 4, !tbaa !5
  %7687 = call ptr @strerror(i32 noundef %7686) #10
  %7688 = call ptr @__errno_location() #11
  %7689 = load i32, ptr %7688, align 4, !tbaa !5
  %7690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7677, ptr noundef @.str.2, i32 noundef %7678, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 362, ptr noundef %7681, ptr noundef %7684, ptr noundef %7687, i32 noundef %7689) #10
  br label %7708

7691:                                             ; preds = %7669, %7662
  %7692 = load i32, ptr %184, align 4, !tbaa !5
  %7693 = call ptr @__errno_location() #11
  store i32 %7692, ptr %7693, align 4, !tbaa !5
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = load i32, ptr @test_count, align 4, !tbaa !5
  %7696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call ptr @s2n_strerror(i32 noundef %7697, ptr noundef @.str.4)
  %7699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @s2n_strerror_debug(i32 noundef %7700, ptr noundef @.str.4)
  %7702 = call ptr @__errno_location() #11
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @strerror(i32 noundef %7703) #10
  %7705 = call ptr @__errno_location() #11
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7694, ptr noundef @.str.5, i32 noundef %7695, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 362, ptr noundef %7698, ptr noundef %7701, ptr noundef %7704, i32 noundef %7706) #10
  br label %7708

7708:                                             ; preds = %7691, %7674
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %7709

7709:                                             ; preds = %7708
  br label %7710

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

7711:                                             ; No predecessors!
  br label %7712

7712:                                             ; preds = %7711
  br label %7713

7713:                                             ; preds = %7712, %7654
  br label %7714

7714:                                             ; preds = %7713
  br label %7715

7715:                                             ; preds = %7714
  br label %7716

7716:                                             ; preds = %7715
  %7717 = load i32, ptr @test_count, align 4, !tbaa !5
  %7718 = add nsw i32 %7717, 1
  store i32 %7718, ptr @test_count, align 4, !tbaa !5
  %7719 = load ptr, ptr %179, align 8, !tbaa !9
  %7720 = call i32 @s2n_connection_set_io_pair(ptr noundef %7719, ptr noundef %182)
  %7721 = icmp eq i32 %7720, -1
  br i1 %7721, label %7722, label %7775

7722:                                             ; preds = %7716
  br label %7723

7723:                                             ; preds = %7722
  br label %7724

7724:                                             ; preds = %7723
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %7725 = call ptr @__errno_location() #11
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  store i32 %7726, ptr %185, align 4, !tbaa !5
  %7727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7728 = call i32 @s2n_print_stacktrace(ptr noundef %7727)
  %7729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7730 = trunc i8 %7729 to i1
  br i1 %7730, label %7731, label %7753

7731:                                             ; preds = %7724
  %7732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7733 = call i32 @fileno(ptr noundef %7732) #10
  %7734 = call i32 @isatty(i32 noundef %7733) #10
  %7735 = icmp ne i32 %7734, 0
  br i1 %7735, label %7736, label %7753

7736:                                             ; preds = %7731
  %7737 = load i32, ptr %185, align 4, !tbaa !5
  %7738 = call ptr @__errno_location() #11
  store i32 %7737, ptr %7738, align 4, !tbaa !5
  %7739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7740 = load i32, ptr @test_count, align 4, !tbaa !5
  %7741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7742 = load i32, ptr %7741, align 4, !tbaa !5
  %7743 = call ptr @s2n_strerror(i32 noundef %7742, ptr noundef @.str.4)
  %7744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7745 = load i32, ptr %7744, align 4, !tbaa !5
  %7746 = call ptr @s2n_strerror_debug(i32 noundef %7745, ptr noundef @.str.4)
  %7747 = call ptr @__errno_location() #11
  %7748 = load i32, ptr %7747, align 4, !tbaa !5
  %7749 = call ptr @strerror(i32 noundef %7748) #10
  %7750 = call ptr @__errno_location() #11
  %7751 = load i32, ptr %7750, align 4, !tbaa !5
  %7752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7739, ptr noundef @.str.2, i32 noundef %7740, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 363, ptr noundef %7743, ptr noundef %7746, ptr noundef %7749, i32 noundef %7751) #10
  br label %7770

7753:                                             ; preds = %7731, %7724
  %7754 = load i32, ptr %185, align 4, !tbaa !5
  %7755 = call ptr @__errno_location() #11
  store i32 %7754, ptr %7755, align 4, !tbaa !5
  %7756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7757 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7759, ptr noundef @.str.4)
  %7761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @s2n_strerror_debug(i32 noundef %7762, ptr noundef @.str.4)
  %7764 = call ptr @__errno_location() #11
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @strerror(i32 noundef %7765) #10
  %7767 = call ptr @__errno_location() #11
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7756, ptr noundef @.str.5, i32 noundef %7757, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 363, ptr noundef %7760, ptr noundef %7763, ptr noundef %7766, i32 noundef %7768) #10
  br label %7770

7770:                                             ; preds = %7753, %7736
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %7771

7771:                                             ; preds = %7770
  br label %7772

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

7773:                                             ; No predecessors!
  br label %7774

7774:                                             ; preds = %7773
  br label %7775

7775:                                             ; preds = %7774, %7716
  br label %7776

7776:                                             ; preds = %7775
  br label %7777

7777:                                             ; preds = %7776
  br label %7778

7778:                                             ; preds = %7777
  %7779 = load i32, ptr @test_count, align 4, !tbaa !5
  %7780 = add nsw i32 %7779, 1
  store i32 %7780, ptr @test_count, align 4, !tbaa !5
  %7781 = load ptr, ptr %179, align 8, !tbaa !9
  %7782 = load ptr, ptr %175, align 8, !tbaa !9
  %7783 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7781, ptr noundef %7782)
  %7784 = icmp eq i32 %7783, -1
  br i1 %7784, label %7785, label %7838

7785:                                             ; preds = %7778
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

7787:                                             ; preds = %7786
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %7788 = call ptr @__errno_location() #11
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  store i32 %7789, ptr %186, align 4, !tbaa !5
  %7790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7791 = call i32 @s2n_print_stacktrace(ptr noundef %7790)
  %7792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7793 = trunc i8 %7792 to i1
  br i1 %7793, label %7794, label %7816

7794:                                             ; preds = %7787
  %7795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7796 = call i32 @fileno(ptr noundef %7795) #10
  %7797 = call i32 @isatty(i32 noundef %7796) #10
  %7798 = icmp ne i32 %7797, 0
  br i1 %7798, label %7799, label %7816

7799:                                             ; preds = %7794
  %7800 = load i32, ptr %186, align 4, !tbaa !5
  %7801 = call ptr @__errno_location() #11
  store i32 %7800, ptr %7801, align 4, !tbaa !5
  %7802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7803 = load i32, ptr @test_count, align 4, !tbaa !5
  %7804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7805 = load i32, ptr %7804, align 4, !tbaa !5
  %7806 = call ptr @s2n_strerror(i32 noundef %7805, ptr noundef @.str.4)
  %7807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7808 = load i32, ptr %7807, align 4, !tbaa !5
  %7809 = call ptr @s2n_strerror_debug(i32 noundef %7808, ptr noundef @.str.4)
  %7810 = call ptr @__errno_location() #11
  %7811 = load i32, ptr %7810, align 4, !tbaa !5
  %7812 = call ptr @strerror(i32 noundef %7811) #10
  %7813 = call ptr @__errno_location() #11
  %7814 = load i32, ptr %7813, align 4, !tbaa !5
  %7815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7802, ptr noundef @.str.2, i32 noundef %7803, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 366, ptr noundef %7806, ptr noundef %7809, ptr noundef %7812, i32 noundef %7814) #10
  br label %7833

7816:                                             ; preds = %7794, %7787
  %7817 = load i32, ptr %186, align 4, !tbaa !5
  %7818 = call ptr @__errno_location() #11
  store i32 %7817, ptr %7818, align 4, !tbaa !5
  %7819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7820 = load i32, ptr @test_count, align 4, !tbaa !5
  %7821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call ptr @s2n_strerror(i32 noundef %7822, ptr noundef @.str.4)
  %7824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @s2n_strerror_debug(i32 noundef %7825, ptr noundef @.str.4)
  %7827 = call ptr @__errno_location() #11
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @strerror(i32 noundef %7828) #10
  %7830 = call ptr @__errno_location() #11
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7819, ptr noundef @.str.5, i32 noundef %7820, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 366, ptr noundef %7823, ptr noundef %7826, ptr noundef %7829, i32 noundef %7831) #10
  br label %7833

7833:                                             ; preds = %7816, %7799
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %7834

7834:                                             ; preds = %7833
  br label %7835

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

7836:                                             ; No predecessors!
  br label %7837

7837:                                             ; preds = %7836
  br label %7838

7838:                                             ; preds = %7837, %7778
  br label %7839

7839:                                             ; preds = %7838
  br label %7840

7840:                                             ; preds = %7839
  br label %7841

7841:                                             ; preds = %7840
  %7842 = load i32, ptr @test_count, align 4, !tbaa !5
  %7843 = add nsw i32 %7842, 1
  store i32 %7843, ptr @test_count, align 4, !tbaa !5
  %7844 = load ptr, ptr %175, align 8, !tbaa !9
  %7845 = load i32, ptr %7844, align 8
  %7846 = lshr i32 %7845, 3
  %7847 = and i32 %7846, 1
  %7848 = icmp ne i32 %7847, 0
  br i1 %7848, label %7902, label %7849

7849:                                             ; preds = %7841
  br label %7850

7850:                                             ; preds = %7849
  br label %7851

7851:                                             ; preds = %7850
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #10
  %7852 = call ptr @__errno_location() #11
  %7853 = load i32, ptr %7852, align 4, !tbaa !5
  store i32 %7853, ptr %187, align 4, !tbaa !5
  %7854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7855 = call i32 @s2n_print_stacktrace(ptr noundef %7854)
  %7856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7857 = trunc i8 %7856 to i1
  br i1 %7857, label %7858, label %7880

7858:                                             ; preds = %7851
  %7859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7860 = call i32 @fileno(ptr noundef %7859) #10
  %7861 = call i32 @isatty(i32 noundef %7860) #10
  %7862 = icmp ne i32 %7861, 0
  br i1 %7862, label %7863, label %7880

7863:                                             ; preds = %7858
  %7864 = load i32, ptr %187, align 4, !tbaa !5
  %7865 = call ptr @__errno_location() #11
  store i32 %7864, ptr %7865, align 4, !tbaa !5
  %7866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7867 = load i32, ptr @test_count, align 4, !tbaa !5
  %7868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7869 = load i32, ptr %7868, align 4, !tbaa !5
  %7870 = call ptr @s2n_strerror(i32 noundef %7869, ptr noundef @.str.4)
  %7871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7872 = load i32, ptr %7871, align 4, !tbaa !5
  %7873 = call ptr @s2n_strerror_debug(i32 noundef %7872, ptr noundef @.str.4)
  %7874 = call ptr @__errno_location() #11
  %7875 = load i32, ptr %7874, align 4, !tbaa !5
  %7876 = call ptr @strerror(i32 noundef %7875) #10
  %7877 = call ptr @__errno_location() #11
  %7878 = load i32, ptr %7877, align 4, !tbaa !5
  %7879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7866, ptr noundef @.str.2, i32 noundef %7867, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7870, ptr noundef %7873, ptr noundef %7876, i32 noundef %7878) #10
  br label %7897

7880:                                             ; preds = %7858, %7851
  %7881 = load i32, ptr %187, align 4, !tbaa !5
  %7882 = call ptr @__errno_location() #11
  store i32 %7881, ptr %7882, align 4, !tbaa !5
  %7883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7884 = load i32, ptr @test_count, align 4, !tbaa !5
  %7885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7886 = load i32, ptr %7885, align 4, !tbaa !5
  %7887 = call ptr @s2n_strerror(i32 noundef %7886, ptr noundef @.str.4)
  %7888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7889 = load i32, ptr %7888, align 4, !tbaa !5
  %7890 = call ptr @s2n_strerror_debug(i32 noundef %7889, ptr noundef @.str.4)
  %7891 = call ptr @__errno_location() #11
  %7892 = load i32, ptr %7891, align 4, !tbaa !5
  %7893 = call ptr @strerror(i32 noundef %7892) #10
  %7894 = call ptr @__errno_location() #11
  %7895 = load i32, ptr %7894, align 4, !tbaa !5
  %7896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7883, ptr noundef @.str.5, i32 noundef %7884, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 367, ptr noundef %7887, ptr noundef %7890, ptr noundef %7893, i32 noundef %7895) #10
  br label %7897

7897:                                             ; preds = %7880, %7863
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #10
  br label %7898

7898:                                             ; preds = %7897
  br label %7899

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

7900:                                             ; No predecessors!
  br label %7901

7901:                                             ; preds = %7900
  br label %7902

7902:                                             ; preds = %7901, %7841
  br label %7903

7903:                                             ; preds = %7902
  br label %7904

7904:                                             ; preds = %7903
  br label %7905

7905:                                             ; preds = %7904
  %7906 = load i32, ptr @test_count, align 4, !tbaa !5
  %7907 = add nsw i32 %7906, 1
  store i32 %7907, ptr @test_count, align 4, !tbaa !5
  %7908 = load ptr, ptr %179, align 8, !tbaa !9
  %7909 = call i32 @s2n_send_client_hello_request(ptr noundef %7908)
  %7910 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  store i32 %7909, ptr %7910, align 4
  %7911 = getelementptr inbounds %struct.s2n_result, ptr %188, i32 0, i32 0
  %7912 = load i32, ptr %7911, align 4
  %7913 = call zeroext i1 @s2n_result_is_ok(i32 %7912)
  br i1 %7913, label %7967, label %7914

7914:                                             ; preds = %7905
  br label %7915

7915:                                             ; preds = %7914
  br label %7916

7916:                                             ; preds = %7915
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #10
  %7917 = call ptr @__errno_location() #11
  %7918 = load i32, ptr %7917, align 4, !tbaa !5
  store i32 %7918, ptr %189, align 4, !tbaa !5
  %7919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7920 = call i32 @s2n_print_stacktrace(ptr noundef %7919)
  %7921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7922 = trunc i8 %7921 to i1
  br i1 %7922, label %7923, label %7945

7923:                                             ; preds = %7916
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = call i32 @fileno(ptr noundef %7924) #10
  %7926 = call i32 @isatty(i32 noundef %7925) #10
  %7927 = icmp ne i32 %7926, 0
  br i1 %7927, label %7928, label %7945

7928:                                             ; preds = %7923
  %7929 = load i32, ptr %189, align 4, !tbaa !5
  %7930 = call ptr @__errno_location() #11
  store i32 %7929, ptr %7930, align 4, !tbaa !5
  %7931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7932 = load i32, ptr @test_count, align 4, !tbaa !5
  %7933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7934 = load i32, ptr %7933, align 4, !tbaa !5
  %7935 = call ptr @s2n_strerror(i32 noundef %7934, ptr noundef @.str.4)
  %7936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7937 = load i32, ptr %7936, align 4, !tbaa !5
  %7938 = call ptr @s2n_strerror_debug(i32 noundef %7937, ptr noundef @.str.4)
  %7939 = call ptr @__errno_location() #11
  %7940 = load i32, ptr %7939, align 4, !tbaa !5
  %7941 = call ptr @strerror(i32 noundef %7940) #10
  %7942 = call ptr @__errno_location() #11
  %7943 = load i32, ptr %7942, align 4, !tbaa !5
  %7944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7931, ptr noundef @.str.2, i32 noundef %7932, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7935, ptr noundef %7938, ptr noundef %7941, i32 noundef %7943) #10
  br label %7962

7945:                                             ; preds = %7923, %7916
  %7946 = load i32, ptr %189, align 4, !tbaa !5
  %7947 = call ptr @__errno_location() #11
  store i32 %7946, ptr %7947, align 4, !tbaa !5
  %7948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7949 = load i32, ptr @test_count, align 4, !tbaa !5
  %7950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7951 = load i32, ptr %7950, align 4, !tbaa !5
  %7952 = call ptr @s2n_strerror(i32 noundef %7951, ptr noundef @.str.4)
  %7953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7954 = load i32, ptr %7953, align 4, !tbaa !5
  %7955 = call ptr @s2n_strerror_debug(i32 noundef %7954, ptr noundef @.str.4)
  %7956 = call ptr @__errno_location() #11
  %7957 = load i32, ptr %7956, align 4, !tbaa !5
  %7958 = call ptr @strerror(i32 noundef %7957) #10
  %7959 = call ptr @__errno_location() #11
  %7960 = load i32, ptr %7959, align 4, !tbaa !5
  %7961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7948, ptr noundef @.str.5, i32 noundef %7949, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 370, ptr noundef %7952, ptr noundef %7955, ptr noundef %7958, i32 noundef %7960) #10
  br label %7962

7962:                                             ; preds = %7945, %7928
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #10
  br label %7963

7963:                                             ; preds = %7962
  br label %7964

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

7965:                                             ; No predecessors!
  br label %7966

7966:                                             ; preds = %7965
  br label %7967

7967:                                             ; preds = %7966, %7905
  br label %7968

7968:                                             ; preds = %7967
  br label %7969

7969:                                             ; preds = %7968
  br label %7970

7970:                                             ; preds = %7969
  %7971 = load i32, ptr @test_count, align 4, !tbaa !5
  %7972 = add nsw i32 %7971, 1
  store i32 %7972, ptr @test_count, align 4, !tbaa !5
  %7973 = load ptr, ptr %179, align 8, !tbaa !9
  %7974 = load ptr, ptr %175, align 8, !tbaa !9
  %7975 = call i32 @s2n_send_and_recv_test(ptr noundef %7973, ptr noundef %7974)
  %7976 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  store i32 %7975, ptr %7976, align 4
  %7977 = getelementptr inbounds %struct.s2n_result, ptr %190, i32 0, i32 0
  %7978 = load i32, ptr %7977, align 4
  %7979 = call zeroext i1 @s2n_result_is_ok(i32 %7978)
  br i1 %7979, label %8033, label %7980

7980:                                             ; preds = %7970
  br label %7981

7981:                                             ; preds = %7980
  br label %7982

7982:                                             ; preds = %7981
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #10
  %7983 = call ptr @__errno_location() #11
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  store i32 %7984, ptr %191, align 4, !tbaa !5
  %7985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7986 = call i32 @s2n_print_stacktrace(ptr noundef %7985)
  %7987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7988 = trunc i8 %7987 to i1
  br i1 %7988, label %7989, label %8011

7989:                                             ; preds = %7982
  %7990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7991 = call i32 @fileno(ptr noundef %7990) #10
  %7992 = call i32 @isatty(i32 noundef %7991) #10
  %7993 = icmp ne i32 %7992, 0
  br i1 %7993, label %7994, label %8011

7994:                                             ; preds = %7989
  %7995 = load i32, ptr %191, align 4, !tbaa !5
  %7996 = call ptr @__errno_location() #11
  store i32 %7995, ptr %7996, align 4, !tbaa !5
  %7997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7998 = load i32, ptr @test_count, align 4, !tbaa !5
  %7999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call ptr @s2n_strerror(i32 noundef %8000, ptr noundef @.str.4)
  %8002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  %8004 = call ptr @s2n_strerror_debug(i32 noundef %8003, ptr noundef @.str.4)
  %8005 = call ptr @__errno_location() #11
  %8006 = load i32, ptr %8005, align 4, !tbaa !5
  %8007 = call ptr @strerror(i32 noundef %8006) #10
  %8008 = call ptr @__errno_location() #11
  %8009 = load i32, ptr %8008, align 4, !tbaa !5
  %8010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7997, ptr noundef @.str.2, i32 noundef %7998, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8001, ptr noundef %8004, ptr noundef %8007, i32 noundef %8009) #10
  br label %8028

8011:                                             ; preds = %7989, %7982
  %8012 = load i32, ptr %191, align 4, !tbaa !5
  %8013 = call ptr @__errno_location() #11
  store i32 %8012, ptr %8013, align 4, !tbaa !5
  %8014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8015 = load i32, ptr @test_count, align 4, !tbaa !5
  %8016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call ptr @s2n_strerror(i32 noundef %8017, ptr noundef @.str.4)
  %8019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8020 = load i32, ptr %8019, align 4, !tbaa !5
  %8021 = call ptr @s2n_strerror_debug(i32 noundef %8020, ptr noundef @.str.4)
  %8022 = call ptr @__errno_location() #11
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  %8024 = call ptr @strerror(i32 noundef %8023) #10
  %8025 = call ptr @__errno_location() #11
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8014, ptr noundef @.str.5, i32 noundef %8015, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8018, ptr noundef %8021, ptr noundef %8024, i32 noundef %8026) #10
  br label %8028

8028:                                             ; preds = %8011, %7994
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #10
  br label %8029

8029:                                             ; preds = %8028
  br label %8030

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

8031:                                             ; No predecessors!
  br label %8032

8032:                                             ; preds = %8031
  br label %8033

8033:                                             ; preds = %8032, %7970
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

8035:                                             ; preds = %8034
  br label %8036

8036:                                             ; preds = %8035
  %8037 = load i32, ptr @test_count, align 4, !tbaa !5
  %8038 = add nsw i32 %8037, 1
  store i32 %8038, ptr @test_count, align 4, !tbaa !5
  %8039 = load ptr, ptr %175, align 8, !tbaa !9
  %8040 = load ptr, ptr %179, align 8, !tbaa !9
  %8041 = call i32 @s2n_send_and_recv_test(ptr noundef %8039, ptr noundef %8040)
  %8042 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  store i32 %8041, ptr %8042, align 4
  %8043 = getelementptr inbounds %struct.s2n_result, ptr %192, i32 0, i32 0
  %8044 = load i32, ptr %8043, align 4
  %8045 = call zeroext i1 @s2n_result_is_ok(i32 %8044)
  br i1 %8045, label %8099, label %8046

8046:                                             ; preds = %8036
  br label %8047

8047:                                             ; preds = %8046
  br label %8048

8048:                                             ; preds = %8047
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #10
  %8049 = call ptr @__errno_location() #11
  %8050 = load i32, ptr %8049, align 4, !tbaa !5
  store i32 %8050, ptr %193, align 4, !tbaa !5
  %8051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8052 = call i32 @s2n_print_stacktrace(ptr noundef %8051)
  %8053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8054 = trunc i8 %8053 to i1
  br i1 %8054, label %8055, label %8077

8055:                                             ; preds = %8048
  %8056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8057 = call i32 @fileno(ptr noundef %8056) #10
  %8058 = call i32 @isatty(i32 noundef %8057) #10
  %8059 = icmp ne i32 %8058, 0
  br i1 %8059, label %8060, label %8077

8060:                                             ; preds = %8055
  %8061 = load i32, ptr %193, align 4, !tbaa !5
  %8062 = call ptr @__errno_location() #11
  store i32 %8061, ptr %8062, align 4, !tbaa !5
  %8063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8064 = load i32, ptr @test_count, align 4, !tbaa !5
  %8065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8066 = load i32, ptr %8065, align 4, !tbaa !5
  %8067 = call ptr @s2n_strerror(i32 noundef %8066, ptr noundef @.str.4)
  %8068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8069 = load i32, ptr %8068, align 4, !tbaa !5
  %8070 = call ptr @s2n_strerror_debug(i32 noundef %8069, ptr noundef @.str.4)
  %8071 = call ptr @__errno_location() #11
  %8072 = load i32, ptr %8071, align 4, !tbaa !5
  %8073 = call ptr @strerror(i32 noundef %8072) #10
  %8074 = call ptr @__errno_location() #11
  %8075 = load i32, ptr %8074, align 4, !tbaa !5
  %8076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8063, ptr noundef @.str.2, i32 noundef %8064, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8067, ptr noundef %8070, ptr noundef %8073, i32 noundef %8075) #10
  br label %8094

8077:                                             ; preds = %8055, %8048
  %8078 = load i32, ptr %193, align 4, !tbaa !5
  %8079 = call ptr @__errno_location() #11
  store i32 %8078, ptr %8079, align 4, !tbaa !5
  %8080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8081 = load i32, ptr @test_count, align 4, !tbaa !5
  %8082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8083 = load i32, ptr %8082, align 4, !tbaa !5
  %8084 = call ptr @s2n_strerror(i32 noundef %8083, ptr noundef @.str.4)
  %8085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8086 = load i32, ptr %8085, align 4, !tbaa !5
  %8087 = call ptr @s2n_strerror_debug(i32 noundef %8086, ptr noundef @.str.4)
  %8088 = call ptr @__errno_location() #11
  %8089 = load i32, ptr %8088, align 4, !tbaa !5
  %8090 = call ptr @strerror(i32 noundef %8089) #10
  %8091 = call ptr @__errno_location() #11
  %8092 = load i32, ptr %8091, align 4, !tbaa !5
  %8093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8080, ptr noundef @.str.5, i32 noundef %8081, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8084, ptr noundef %8087, ptr noundef %8090, i32 noundef %8092) #10
  br label %8094

8094:                                             ; preds = %8077, %8060
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #10
  br label %8095

8095:                                             ; preds = %8094
  br label %8096

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

8097:                                             ; No predecessors!
  br label %8098

8098:                                             ; preds = %8097
  br label %8099

8099:                                             ; preds = %8098, %8036
  br label %8100

8100:                                             ; preds = %8099
  br label %8101

8101:                                             ; preds = %8100
  br label %8102

8102:                                             ; preds = %8101
  %8103 = load i32, ptr @test_count, align 4, !tbaa !5
  %8104 = add nsw i32 %8103, 1
  store i32 %8104, ptr @test_count, align 4, !tbaa !5
  %8105 = load ptr, ptr %175, align 8, !tbaa !9
  %8106 = getelementptr inbounds %struct.s2n_connection, ptr %8105, i32 0, i32 1
  %8107 = load ptr, ptr %8106, align 8, !tbaa !47
  %8108 = getelementptr inbounds %struct.s2n_config, ptr %8107, i32 0, i32 54
  %8109 = load ptr, ptr %8108, align 8, !tbaa !48
  %8110 = icmp eq ptr %8109, null
  br i1 %8110, label %8111, label %8164

8111:                                             ; preds = %8102
  br label %8112

8112:                                             ; preds = %8111
  br label %8113

8113:                                             ; preds = %8112
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #10
  %8114 = call ptr @__errno_location() #11
  %8115 = load i32, ptr %8114, align 4, !tbaa !5
  store i32 %8115, ptr %194, align 4, !tbaa !5
  %8116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8117 = call i32 @s2n_print_stacktrace(ptr noundef %8116)
  %8118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8119 = trunc i8 %8118 to i1
  br i1 %8119, label %8120, label %8142

8120:                                             ; preds = %8113
  %8121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8122 = call i32 @fileno(ptr noundef %8121) #10
  %8123 = call i32 @isatty(i32 noundef %8122) #10
  %8124 = icmp ne i32 %8123, 0
  br i1 %8124, label %8125, label %8142

8125:                                             ; preds = %8120
  %8126 = load i32, ptr %194, align 4, !tbaa !5
  %8127 = call ptr @__errno_location() #11
  store i32 %8126, ptr %8127, align 4, !tbaa !5
  %8128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8129 = load i32, ptr @test_count, align 4, !tbaa !5
  %8130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8131 = load i32, ptr %8130, align 4, !tbaa !5
  %8132 = call ptr @s2n_strerror(i32 noundef %8131, ptr noundef @.str.4)
  %8133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8134 = load i32, ptr %8133, align 4, !tbaa !5
  %8135 = call ptr @s2n_strerror_debug(i32 noundef %8134, ptr noundef @.str.4)
  %8136 = call ptr @__errno_location() #11
  %8137 = load i32, ptr %8136, align 4, !tbaa !5
  %8138 = call ptr @strerror(i32 noundef %8137) #10
  %8139 = call ptr @__errno_location() #11
  %8140 = load i32, ptr %8139, align 4, !tbaa !5
  %8141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8128, ptr noundef @.str.2, i32 noundef %8129, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 377, ptr noundef %8132, ptr noundef %8135, ptr noundef %8138, i32 noundef %8140) #10
  br label %8159

8142:                                             ; preds = %8120, %8113
  %8143 = load i32, ptr %194, align 4, !tbaa !5
  %8144 = call ptr @__errno_location() #11
  store i32 %8143, ptr %8144, align 4, !tbaa !5
  %8145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8146 = load i32, ptr @test_count, align 4, !tbaa !5
  %8147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8148 = load i32, ptr %8147, align 4, !tbaa !5
  %8149 = call ptr @s2n_strerror(i32 noundef %8148, ptr noundef @.str.4)
  %8150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8151 = load i32, ptr %8150, align 4, !tbaa !5
  %8152 = call ptr @s2n_strerror_debug(i32 noundef %8151, ptr noundef @.str.4)
  %8153 = call ptr @__errno_location() #11
  %8154 = load i32, ptr %8153, align 4, !tbaa !5
  %8155 = call ptr @strerror(i32 noundef %8154) #10
  %8156 = call ptr @__errno_location() #11
  %8157 = load i32, ptr %8156, align 4, !tbaa !5
  %8158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8145, ptr noundef @.str.5, i32 noundef %8146, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 377, ptr noundef %8149, ptr noundef %8152, ptr noundef %8155, i32 noundef %8157) #10
  br label %8159

8159:                                             ; preds = %8142, %8125
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #10
  br label %8160

8160:                                             ; preds = %8159
  br label %8161

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

8162:                                             ; No predecessors!
  br label %8163

8163:                                             ; preds = %8162
  br label %8164

8164:                                             ; preds = %8163, %8102
  br label %8165

8165:                                             ; preds = %8164
  br label %8166

8166:                                             ; preds = %8165
  br label %8167

8167:                                             ; preds = %8166
  %8168 = load i32, ptr @test_count, align 4, !tbaa !5
  %8169 = add nsw i32 %8168, 1
  store i32 %8169, ptr @test_count, align 4, !tbaa !5
  %8170 = getelementptr inbounds %struct.s2n_test_reneg_req_ctx, ptr %174, i32 0, i32 1
  %8171 = load i8, ptr %8170, align 4, !tbaa !52
  %8172 = zext i8 %8171 to i32
  %8173 = icmp eq i32 %8172, 1
  br i1 %8173, label %8227, label %8174

8174:                                             ; preds = %8167
  br label %8175

8175:                                             ; preds = %8174
  br label %8176

8176:                                             ; preds = %8175
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #10
  %8177 = call ptr @__errno_location() #11
  %8178 = load i32, ptr %8177, align 4, !tbaa !5
  store i32 %8178, ptr %195, align 4, !tbaa !5
  %8179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8180 = call i32 @s2n_print_stacktrace(ptr noundef %8179)
  %8181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8182 = trunc i8 %8181 to i1
  br i1 %8182, label %8183, label %8205

8183:                                             ; preds = %8176
  %8184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8185 = call i32 @fileno(ptr noundef %8184) #10
  %8186 = call i32 @isatty(i32 noundef %8185) #10
  %8187 = icmp ne i32 %8186, 0
  br i1 %8187, label %8188, label %8205

8188:                                             ; preds = %8183
  %8189 = load i32, ptr %195, align 4, !tbaa !5
  %8190 = call ptr @__errno_location() #11
  store i32 %8189, ptr %8190, align 4, !tbaa !5
  %8191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8192 = load i32, ptr @test_count, align 4, !tbaa !5
  %8193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8194 = load i32, ptr %8193, align 4, !tbaa !5
  %8195 = call ptr @s2n_strerror(i32 noundef %8194, ptr noundef @.str.4)
  %8196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @s2n_strerror_debug(i32 noundef %8197, ptr noundef @.str.4)
  %8199 = call ptr @__errno_location() #11
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @strerror(i32 noundef %8200) #10
  %8202 = call ptr @__errno_location() #11
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8191, ptr noundef @.str.2, i32 noundef %8192, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 378, ptr noundef %8195, ptr noundef %8198, ptr noundef %8201, i32 noundef %8203) #10
  br label %8222

8205:                                             ; preds = %8183, %8176
  %8206 = load i32, ptr %195, align 4, !tbaa !5
  %8207 = call ptr @__errno_location() #11
  store i32 %8206, ptr %8207, align 4, !tbaa !5
  %8208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8209 = load i32, ptr @test_count, align 4, !tbaa !5
  %8210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @s2n_strerror(i32 noundef %8211, ptr noundef @.str.4)
  %8213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @s2n_strerror_debug(i32 noundef %8214, ptr noundef @.str.4)
  %8216 = call ptr @__errno_location() #11
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call ptr @strerror(i32 noundef %8217) #10
  %8219 = call ptr @__errno_location() #11
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8208, ptr noundef @.str.5, i32 noundef %8209, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 378, ptr noundef %8212, ptr noundef %8215, ptr noundef %8218, i32 noundef %8220) #10
  br label %8222

8222:                                             ; preds = %8205, %8188
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #10
  br label %8223

8223:                                             ; preds = %8222
  br label %8224

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

8225:                                             ; No predecessors!
  br label %8226

8226:                                             ; preds = %8225
  br label %8227

8227:                                             ; preds = %8226, %8167
  br label %8228

8228:                                             ; preds = %8227
  br label %8229

8229:                                             ; preds = %8228
  %8230 = call i32 @s2n_io_pair_close(ptr noundef %182)
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #10
  %8231 = call i32 @s2n_connection_ptr_free(ptr noundef %179)
  %8232 = getelementptr inbounds %struct.s2n_result, ptr %196, i32 0, i32 0
  store i32 %8231, ptr %8232, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #10
  %8233 = call i32 @s2n_connection_ptr_free(ptr noundef %175)
  %8234 = getelementptr inbounds %struct.s2n_result, ptr %197, i32 0, i32 0
  store i32 %8233, ptr %8234, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %175) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %174) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %198) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %198, ptr align 4 @__const.main.ctx.65, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #10
  %8235 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8235, ptr %199, align 8, !tbaa !9
  br label %8236

8236:                                             ; preds = %8229
  %8237 = load i32, ptr @test_count, align 4, !tbaa !5
  %8238 = add nsw i32 %8237, 1
  store i32 %8238, ptr @test_count, align 4, !tbaa !5
  %8239 = load ptr, ptr %199, align 8, !tbaa !9
  %8240 = icmp eq ptr %8239, null
  br i1 %8240, label %8241, label %8294

8241:                                             ; preds = %8236
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #10
  %8244 = call ptr @__errno_location() #11
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  store i32 %8245, ptr %200, align 4, !tbaa !5
  %8246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8247 = call i32 @s2n_print_stacktrace(ptr noundef %8246)
  %8248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8249 = trunc i8 %8248 to i1
  br i1 %8249, label %8250, label %8272

8250:                                             ; preds = %8243
  %8251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8252 = call i32 @fileno(ptr noundef %8251) #10
  %8253 = call i32 @isatty(i32 noundef %8252) #10
  %8254 = icmp ne i32 %8253, 0
  br i1 %8254, label %8255, label %8272

8255:                                             ; preds = %8250
  %8256 = load i32, ptr %200, align 4, !tbaa !5
  %8257 = call ptr @__errno_location() #11
  store i32 %8256, ptr %8257, align 4, !tbaa !5
  %8258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8259 = load i32, ptr @test_count, align 4, !tbaa !5
  %8260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8261 = load i32, ptr %8260, align 4, !tbaa !5
  %8262 = call ptr @s2n_strerror(i32 noundef %8261, ptr noundef @.str.4)
  %8263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8264 = load i32, ptr %8263, align 4, !tbaa !5
  %8265 = call ptr @s2n_strerror_debug(i32 noundef %8264, ptr noundef @.str.4)
  %8266 = call ptr @__errno_location() #11
  %8267 = load i32, ptr %8266, align 4, !tbaa !5
  %8268 = call ptr @strerror(i32 noundef %8267) #10
  %8269 = call ptr @__errno_location() #11
  %8270 = load i32, ptr %8269, align 4, !tbaa !5
  %8271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8258, ptr noundef @.str.2, i32 noundef %8259, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8262, ptr noundef %8265, ptr noundef %8268, i32 noundef %8270) #10
  br label %8289

8272:                                             ; preds = %8250, %8243
  %8273 = load i32, ptr %200, align 4, !tbaa !5
  %8274 = call ptr @__errno_location() #11
  store i32 %8273, ptr %8274, align 4, !tbaa !5
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = load i32, ptr @test_count, align 4, !tbaa !5
  %8277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @s2n_strerror(i32 noundef %8278, ptr noundef @.str.4)
  %8280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call ptr @s2n_strerror_debug(i32 noundef %8281, ptr noundef @.str.4)
  %8283 = call ptr @__errno_location() #11
  %8284 = load i32, ptr %8283, align 4, !tbaa !5
  %8285 = call ptr @strerror(i32 noundef %8284) #10
  %8286 = call ptr @__errno_location() #11
  %8287 = load i32, ptr %8286, align 4, !tbaa !5
  %8288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8275, ptr noundef @.str.5, i32 noundef %8276, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 403, ptr noundef %8279, ptr noundef %8282, ptr noundef %8285, i32 noundef %8287) #10
  br label %8289

8289:                                             ; preds = %8272, %8255
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #10
  br label %8290

8290:                                             ; preds = %8289
  br label %8291

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

8292:                                             ; No predecessors!
  br label %8293

8293:                                             ; preds = %8292
  br label %8294

8294:                                             ; preds = %8293, %8236
  br label %8295

8295:                                             ; preds = %8294
  br label %8296

8296:                                             ; preds = %8295
  br label %8297

8297:                                             ; preds = %8296
  %8298 = load i32, ptr @test_count, align 4, !tbaa !5
  %8299 = add nsw i32 %8298, 1
  store i32 %8299, ptr @test_count, align 4, !tbaa !5
  %8300 = load ptr, ptr %199, align 8, !tbaa !9
  %8301 = load ptr, ptr %17, align 8, !tbaa !9
  %8302 = call i32 @s2n_connection_set_config(ptr noundef %8300, ptr noundef %8301)
  %8303 = icmp eq i32 %8302, -1
  br i1 %8303, label %8304, label %8357

8304:                                             ; preds = %8297
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #10
  %8307 = call ptr @__errno_location() #11
  %8308 = load i32, ptr %8307, align 4, !tbaa !5
  store i32 %8308, ptr %201, align 4, !tbaa !5
  %8309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8310 = call i32 @s2n_print_stacktrace(ptr noundef %8309)
  %8311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8312 = trunc i8 %8311 to i1
  br i1 %8312, label %8313, label %8335

8313:                                             ; preds = %8306
  %8314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8315 = call i32 @fileno(ptr noundef %8314) #10
  %8316 = call i32 @isatty(i32 noundef %8315) #10
  %8317 = icmp ne i32 %8316, 0
  br i1 %8317, label %8318, label %8335

8318:                                             ; preds = %8313
  %8319 = load i32, ptr %201, align 4, !tbaa !5
  %8320 = call ptr @__errno_location() #11
  store i32 %8319, ptr %8320, align 4, !tbaa !5
  %8321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8322 = load i32, ptr @test_count, align 4, !tbaa !5
  %8323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  %8325 = call ptr @s2n_strerror(i32 noundef %8324, ptr noundef @.str.4)
  %8326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8327 = load i32, ptr %8326, align 4, !tbaa !5
  %8328 = call ptr @s2n_strerror_debug(i32 noundef %8327, ptr noundef @.str.4)
  %8329 = call ptr @__errno_location() #11
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @strerror(i32 noundef %8330) #10
  %8332 = call ptr @__errno_location() #11
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8321, ptr noundef @.str.2, i32 noundef %8322, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 404, ptr noundef %8325, ptr noundef %8328, ptr noundef %8331, i32 noundef %8333) #10
  br label %8352

8335:                                             ; preds = %8313, %8306
  %8336 = load i32, ptr %201, align 4, !tbaa !5
  %8337 = call ptr @__errno_location() #11
  store i32 %8336, ptr %8337, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = load i32, ptr @test_count, align 4, !tbaa !5
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror(i32 noundef %8341, ptr noundef @.str.4)
  %8343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @s2n_strerror_debug(i32 noundef %8344, ptr noundef @.str.4)
  %8346 = call ptr @__errno_location() #11
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call ptr @strerror(i32 noundef %8347) #10
  %8349 = call ptr @__errno_location() #11
  %8350 = load i32, ptr %8349, align 4, !tbaa !5
  %8351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8338, ptr noundef @.str.5, i32 noundef %8339, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 404, ptr noundef %8342, ptr noundef %8345, ptr noundef %8348, i32 noundef %8350) #10
  br label %8352

8352:                                             ; preds = %8335, %8318
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #10
  br label %8353

8353:                                             ; preds = %8352
  br label %8354

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

8355:                                             ; No predecessors!
  br label %8356

8356:                                             ; preds = %8355
  br label %8357

8357:                                             ; preds = %8356, %8297
  br label %8358

8358:                                             ; preds = %8357
  br label %8359

8359:                                             ; preds = %8358
  br label %8360

8360:                                             ; preds = %8359
  %8361 = load i32, ptr @test_count, align 4, !tbaa !5
  %8362 = add nsw i32 %8361, 1
  store i32 %8362, ptr @test_count, align 4, !tbaa !5
  %8363 = load ptr, ptr %17, align 8, !tbaa !9
  %8364 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %8363, ptr noundef @s2n_test_reneg_req_cb, ptr noundef %198)
  %8365 = icmp eq i32 %8364, -1
  br i1 %8365, label %8366, label %8419

8366:                                             ; preds = %8360
  br label %8367

8367:                                             ; preds = %8366
  br label %8368

8368:                                             ; preds = %8367
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #10
  %8369 = call ptr @__errno_location() #11
  %8370 = load i32, ptr %8369, align 4, !tbaa !5
  store i32 %8370, ptr %202, align 4, !tbaa !5
  %8371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8372 = call i32 @s2n_print_stacktrace(ptr noundef %8371)
  %8373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8374 = trunc i8 %8373 to i1
  br i1 %8374, label %8375, label %8397

8375:                                             ; preds = %8368
  %8376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8377 = call i32 @fileno(ptr noundef %8376) #10
  %8378 = call i32 @isatty(i32 noundef %8377) #10
  %8379 = icmp ne i32 %8378, 0
  br i1 %8379, label %8380, label %8397

8380:                                             ; preds = %8375
  %8381 = load i32, ptr %202, align 4, !tbaa !5
  %8382 = call ptr @__errno_location() #11
  store i32 %8381, ptr %8382, align 4, !tbaa !5
  %8383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8384 = load i32, ptr @test_count, align 4, !tbaa !5
  %8385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8386 = load i32, ptr %8385, align 4, !tbaa !5
  %8387 = call ptr @s2n_strerror(i32 noundef %8386, ptr noundef @.str.4)
  %8388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8389 = load i32, ptr %8388, align 4, !tbaa !5
  %8390 = call ptr @s2n_strerror_debug(i32 noundef %8389, ptr noundef @.str.4)
  %8391 = call ptr @__errno_location() #11
  %8392 = load i32, ptr %8391, align 4, !tbaa !5
  %8393 = call ptr @strerror(i32 noundef %8392) #10
  %8394 = call ptr @__errno_location() #11
  %8395 = load i32, ptr %8394, align 4, !tbaa !5
  %8396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8383, ptr noundef @.str.2, i32 noundef %8384, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8387, ptr noundef %8390, ptr noundef %8393, i32 noundef %8395) #10
  br label %8414

8397:                                             ; preds = %8375, %8368
  %8398 = load i32, ptr %202, align 4, !tbaa !5
  %8399 = call ptr @__errno_location() #11
  store i32 %8398, ptr %8399, align 4, !tbaa !5
  %8400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8401 = load i32, ptr @test_count, align 4, !tbaa !5
  %8402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8403 = load i32, ptr %8402, align 4, !tbaa !5
  %8404 = call ptr @s2n_strerror(i32 noundef %8403, ptr noundef @.str.4)
  %8405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call ptr @s2n_strerror_debug(i32 noundef %8406, ptr noundef @.str.4)
  %8408 = call ptr @__errno_location() #11
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = call ptr @strerror(i32 noundef %8409) #10
  %8411 = call ptr @__errno_location() #11
  %8412 = load i32, ptr %8411, align 4, !tbaa !5
  %8413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8400, ptr noundef @.str.5, i32 noundef %8401, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 405, ptr noundef %8404, ptr noundef %8407, ptr noundef %8410, i32 noundef %8412) #10
  br label %8414

8414:                                             ; preds = %8397, %8380
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #10
  br label %8415

8415:                                             ; preds = %8414
  br label %8416

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

8417:                                             ; No predecessors!
  br label %8418

8418:                                             ; preds = %8417
  br label %8419

8419:                                             ; preds = %8418, %8360
  br label %8420

8420:                                             ; preds = %8419
  br label %8421

8421:                                             ; preds = %8420
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #10
  %8422 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8422, ptr %203, align 8, !tbaa !9
  br label %8423

8423:                                             ; preds = %8421
  %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 %203, align 8, !tbaa !9
  %8427 = icmp eq ptr %8426, null
  br i1 %8427, label %8428, label %8481

8428:                                             ; preds = %8423
  br label %8429

8429:                                             ; preds = %8428
  br label %8430

8430:                                             ; preds = %8429
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #10
  %8431 = call ptr @__errno_location() #11
  %8432 = load i32, ptr %8431, align 4, !tbaa !5
  store i32 %8432, ptr %204, align 4, !tbaa !5
  %8433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8434 = call i32 @s2n_print_stacktrace(ptr noundef %8433)
  %8435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8436 = trunc i8 %8435 to i1
  br i1 %8436, label %8437, label %8459

8437:                                             ; preds = %8430
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = call i32 @fileno(ptr noundef %8438) #10
  %8440 = call i32 @isatty(i32 noundef %8439) #10
  %8441 = icmp ne i32 %8440, 0
  br i1 %8441, label %8442, label %8459

8442:                                             ; preds = %8437
  %8443 = load i32, ptr %204, align 4, !tbaa !5
  %8444 = call ptr @__errno_location() #11
  store i32 %8443, ptr %8444, align 4, !tbaa !5
  %8445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8446 = load i32, ptr @test_count, align 4, !tbaa !5
  %8447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8448 = load i32, ptr %8447, align 4, !tbaa !5
  %8449 = call ptr @s2n_strerror(i32 noundef %8448, ptr noundef @.str.4)
  %8450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8451 = load i32, ptr %8450, align 4, !tbaa !5
  %8452 = call ptr @s2n_strerror_debug(i32 noundef %8451, ptr noundef @.str.4)
  %8453 = call ptr @__errno_location() #11
  %8454 = load i32, ptr %8453, align 4, !tbaa !5
  %8455 = call ptr @strerror(i32 noundef %8454) #10
  %8456 = call ptr @__errno_location() #11
  %8457 = load i32, ptr %8456, align 4, !tbaa !5
  %8458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8445, ptr noundef @.str.2, i32 noundef %8446, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 409, ptr noundef %8449, ptr noundef %8452, ptr noundef %8455, i32 noundef %8457) #10
  br label %8476

8459:                                             ; preds = %8437, %8430
  %8460 = load i32, ptr %204, align 4, !tbaa !5
  %8461 = call ptr @__errno_location() #11
  store i32 %8460, ptr %8461, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = load i32, ptr @test_count, align 4, !tbaa !5
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror(i32 noundef %8465, ptr noundef @.str.4)
  %8467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @s2n_strerror_debug(i32 noundef %8468, ptr noundef @.str.4)
  %8470 = call ptr @__errno_location() #11
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @strerror(i32 noundef %8471) #10
  %8473 = call ptr @__errno_location() #11
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8462, ptr noundef @.str.5, i32 noundef %8463, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 409, ptr noundef %8466, ptr noundef %8469, ptr noundef %8472, i32 noundef %8474) #10
  br label %8476

8476:                                             ; preds = %8459, %8442
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #10
  br label %8477

8477:                                             ; preds = %8476
  br label %8478

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

8479:                                             ; No predecessors!
  br label %8480

8480:                                             ; preds = %8479
  br label %8481

8481:                                             ; preds = %8480, %8423
  br label %8482

8482:                                             ; preds = %8481
  br label %8483

8483:                                             ; preds = %8482
  br label %8484

8484:                                             ; preds = %8483
  %8485 = load i32, ptr @test_count, align 4, !tbaa !5
  %8486 = add nsw i32 %8485, 1
  store i32 %8486, ptr @test_count, align 4, !tbaa !5
  %8487 = load ptr, ptr %203, align 8, !tbaa !9
  %8488 = load ptr, ptr %12, align 8, !tbaa !9
  %8489 = call i32 @s2n_connection_set_config(ptr noundef %8487, ptr noundef %8488)
  %8490 = icmp eq i32 %8489, -1
  br i1 %8490, label %8491, label %8544

8491:                                             ; preds = %8484
  br label %8492

8492:                                             ; preds = %8491
  br label %8493

8493:                                             ; preds = %8492
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #10
  %8494 = call ptr @__errno_location() #11
  %8495 = load i32, ptr %8494, align 4, !tbaa !5
  store i32 %8495, ptr %205, align 4, !tbaa !5
  %8496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8497 = call i32 @s2n_print_stacktrace(ptr noundef %8496)
  %8498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8499 = trunc i8 %8498 to i1
  br i1 %8499, label %8500, label %8522

8500:                                             ; preds = %8493
  %8501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8502 = call i32 @fileno(ptr noundef %8501) #10
  %8503 = call i32 @isatty(i32 noundef %8502) #10
  %8504 = icmp ne i32 %8503, 0
  br i1 %8504, label %8505, label %8522

8505:                                             ; preds = %8500
  %8506 = load i32, ptr %205, align 4, !tbaa !5
  %8507 = call ptr @__errno_location() #11
  store i32 %8506, ptr %8507, align 4, !tbaa !5
  %8508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8509 = load i32, ptr @test_count, align 4, !tbaa !5
  %8510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8511 = load i32, ptr %8510, align 4, !tbaa !5
  %8512 = call ptr @s2n_strerror(i32 noundef %8511, ptr noundef @.str.4)
  %8513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8514 = load i32, ptr %8513, align 4, !tbaa !5
  %8515 = call ptr @s2n_strerror_debug(i32 noundef %8514, ptr noundef @.str.4)
  %8516 = call ptr @__errno_location() #11
  %8517 = load i32, ptr %8516, align 4, !tbaa !5
  %8518 = call ptr @strerror(i32 noundef %8517) #10
  %8519 = call ptr @__errno_location() #11
  %8520 = load i32, ptr %8519, align 4, !tbaa !5
  %8521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8508, ptr noundef @.str.2, i32 noundef %8509, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8512, ptr noundef %8515, ptr noundef %8518, i32 noundef %8520) #10
  br label %8539

8522:                                             ; preds = %8500, %8493
  %8523 = load i32, ptr %205, align 4, !tbaa !5
  %8524 = call ptr @__errno_location() #11
  store i32 %8523, ptr %8524, align 4, !tbaa !5
  %8525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8526 = load i32, ptr @test_count, align 4, !tbaa !5
  %8527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8528 = load i32, ptr %8527, align 4, !tbaa !5
  %8529 = call ptr @s2n_strerror(i32 noundef %8528, ptr noundef @.str.4)
  %8530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call ptr @s2n_strerror_debug(i32 noundef %8531, ptr noundef @.str.4)
  %8533 = call ptr @__errno_location() #11
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call ptr @strerror(i32 noundef %8534) #10
  %8536 = call ptr @__errno_location() #11
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8525, ptr noundef @.str.5, i32 noundef %8526, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 410, ptr noundef %8529, ptr noundef %8532, ptr noundef %8535, i32 noundef %8537) #10
  br label %8539

8539:                                             ; preds = %8522, %8505
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #10
  br label %8540

8540:                                             ; preds = %8539
  br label %8541

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

8542:                                             ; No predecessors!
  br label %8543

8543:                                             ; preds = %8542
  br label %8544

8544:                                             ; preds = %8543, %8484
  br label %8545

8545:                                             ; preds = %8544
  br label %8546

8546:                                             ; preds = %8545
  call void @llvm.lifetime.start.p0(i64 8, ptr %206) #10
  call void @llvm.memset.p0.i64(ptr align 4 %206, i8 0, i64 8, i1 false)
  br label %8547

8547:                                             ; preds = %8546
  %8548 = load i32, ptr @test_count, align 4, !tbaa !5
  %8549 = add nsw i32 %8548, 1
  store i32 %8549, ptr @test_count, align 4, !tbaa !5
  %8550 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %206)
  %8551 = icmp eq i32 %8550, -1
  br i1 %8551, label %8552, label %8605

8552:                                             ; preds = %8547
  br label %8553

8553:                                             ; preds = %8552
  br label %8554

8554:                                             ; preds = %8553
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #10
  %8555 = call ptr @__errno_location() #11
  %8556 = load i32, ptr %8555, align 4, !tbaa !5
  store i32 %8556, ptr %207, align 4, !tbaa !5
  %8557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8558 = call i32 @s2n_print_stacktrace(ptr noundef %8557)
  %8559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8560 = trunc i8 %8559 to i1
  br i1 %8560, label %8561, label %8583

8561:                                             ; preds = %8554
  %8562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8563 = call i32 @fileno(ptr noundef %8562) #10
  %8564 = call i32 @isatty(i32 noundef %8563) #10
  %8565 = icmp ne i32 %8564, 0
  br i1 %8565, label %8566, label %8583

8566:                                             ; preds = %8561
  %8567 = load i32, ptr %207, align 4, !tbaa !5
  %8568 = call ptr @__errno_location() #11
  store i32 %8567, ptr %8568, align 4, !tbaa !5
  %8569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8570 = load i32, ptr @test_count, align 4, !tbaa !5
  %8571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8572 = load i32, ptr %8571, align 4, !tbaa !5
  %8573 = call ptr @s2n_strerror(i32 noundef %8572, ptr noundef @.str.4)
  %8574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8575 = load i32, ptr %8574, align 4, !tbaa !5
  %8576 = call ptr @s2n_strerror_debug(i32 noundef %8575, ptr noundef @.str.4)
  %8577 = call ptr @__errno_location() #11
  %8578 = load i32, ptr %8577, align 4, !tbaa !5
  %8579 = call ptr @strerror(i32 noundef %8578) #10
  %8580 = call ptr @__errno_location() #11
  %8581 = load i32, ptr %8580, align 4, !tbaa !5
  %8582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8569, ptr noundef @.str.2, i32 noundef %8570, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 413, ptr noundef %8573, ptr noundef %8576, ptr noundef %8579, i32 noundef %8581) #10
  br label %8600

8583:                                             ; preds = %8561, %8554
  %8584 = load i32, ptr %207, align 4, !tbaa !5
  %8585 = call ptr @__errno_location() #11
  store i32 %8584, ptr %8585, align 4, !tbaa !5
  %8586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8587 = load i32, ptr @test_count, align 4, !tbaa !5
  %8588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8589 = load i32, ptr %8588, align 4, !tbaa !5
  %8590 = call ptr @s2n_strerror(i32 noundef %8589, ptr noundef @.str.4)
  %8591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8592 = load i32, ptr %8591, align 4, !tbaa !5
  %8593 = call ptr @s2n_strerror_debug(i32 noundef %8592, ptr noundef @.str.4)
  %8594 = call ptr @__errno_location() #11
  %8595 = load i32, ptr %8594, align 4, !tbaa !5
  %8596 = call ptr @strerror(i32 noundef %8595) #10
  %8597 = call ptr @__errno_location() #11
  %8598 = load i32, ptr %8597, align 4, !tbaa !5
  %8599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8586, ptr noundef @.str.5, i32 noundef %8587, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 413, ptr noundef %8590, ptr noundef %8593, ptr noundef %8596, i32 noundef %8598) #10
  br label %8600

8600:                                             ; preds = %8583, %8566
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #10
  br label %8601

8601:                                             ; preds = %8600
  br label %8602

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

8603:                                             ; No predecessors!
  br label %8604

8604:                                             ; preds = %8603
  br label %8605

8605:                                             ; preds = %8604, %8547
  br label %8606

8606:                                             ; preds = %8605
  br label %8607

8607:                                             ; preds = %8606
  br label %8608

8608:                                             ; preds = %8607
  %8609 = load i32, ptr @test_count, align 4, !tbaa !5
  %8610 = add nsw i32 %8609, 1
  store i32 %8610, ptr @test_count, align 4, !tbaa !5
  %8611 = load ptr, ptr %199, align 8, !tbaa !9
  %8612 = call i32 @s2n_connection_set_io_pair(ptr noundef %8611, ptr noundef %206)
  %8613 = icmp eq i32 %8612, -1
  br i1 %8613, label %8614, label %8667

8614:                                             ; preds = %8608
  br label %8615

8615:                                             ; preds = %8614
  br label %8616

8616:                                             ; preds = %8615
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #10
  %8617 = call ptr @__errno_location() #11
  %8618 = load i32, ptr %8617, align 4, !tbaa !5
  store i32 %8618, ptr %208, align 4, !tbaa !5
  %8619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8620 = call i32 @s2n_print_stacktrace(ptr noundef %8619)
  %8621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8622 = trunc i8 %8621 to i1
  br i1 %8622, label %8623, label %8645

8623:                                             ; preds = %8616
  %8624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8625 = call i32 @fileno(ptr noundef %8624) #10
  %8626 = call i32 @isatty(i32 noundef %8625) #10
  %8627 = icmp ne i32 %8626, 0
  br i1 %8627, label %8628, label %8645

8628:                                             ; preds = %8623
  %8629 = load i32, ptr %208, align 4, !tbaa !5
  %8630 = call ptr @__errno_location() #11
  store i32 %8629, ptr %8630, align 4, !tbaa !5
  %8631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8632 = load i32, ptr @test_count, align 4, !tbaa !5
  %8633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  %8635 = call ptr @s2n_strerror(i32 noundef %8634, ptr noundef @.str.4)
  %8636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8637 = load i32, ptr %8636, align 4, !tbaa !5
  %8638 = call ptr @s2n_strerror_debug(i32 noundef %8637, ptr noundef @.str.4)
  %8639 = call ptr @__errno_location() #11
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  %8641 = call ptr @strerror(i32 noundef %8640) #10
  %8642 = call ptr @__errno_location() #11
  %8643 = load i32, ptr %8642, align 4, !tbaa !5
  %8644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8631, ptr noundef @.str.2, i32 noundef %8632, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8635, ptr noundef %8638, ptr noundef %8641, i32 noundef %8643) #10
  br label %8662

8645:                                             ; preds = %8623, %8616
  %8646 = load i32, ptr %208, align 4, !tbaa !5
  %8647 = call ptr @__errno_location() #11
  store i32 %8646, ptr %8647, align 4, !tbaa !5
  %8648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8649 = load i32, ptr @test_count, align 4, !tbaa !5
  %8650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8651 = load i32, ptr %8650, align 4, !tbaa !5
  %8652 = call ptr @s2n_strerror(i32 noundef %8651, ptr noundef @.str.4)
  %8653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8654 = load i32, ptr %8653, align 4, !tbaa !5
  %8655 = call ptr @s2n_strerror_debug(i32 noundef %8654, ptr noundef @.str.4)
  %8656 = call ptr @__errno_location() #11
  %8657 = load i32, ptr %8656, align 4, !tbaa !5
  %8658 = call ptr @strerror(i32 noundef %8657) #10
  %8659 = call ptr @__errno_location() #11
  %8660 = load i32, ptr %8659, align 4, !tbaa !5
  %8661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8648, ptr noundef @.str.5, i32 noundef %8649, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 414, ptr noundef %8652, ptr noundef %8655, ptr noundef %8658, i32 noundef %8660) #10
  br label %8662

8662:                                             ; preds = %8645, %8628
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #10
  br label %8663

8663:                                             ; preds = %8662
  br label %8664

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

8665:                                             ; No predecessors!
  br label %8666

8666:                                             ; preds = %8665
  br label %8667

8667:                                             ; preds = %8666, %8608
  br label %8668

8668:                                             ; preds = %8667
  br label %8669

8669:                                             ; preds = %8668
  br label %8670

8670:                                             ; preds = %8669
  %8671 = load i32, ptr @test_count, align 4, !tbaa !5
  %8672 = add nsw i32 %8671, 1
  store i32 %8672, ptr @test_count, align 4, !tbaa !5
  %8673 = load ptr, ptr %203, align 8, !tbaa !9
  %8674 = call i32 @s2n_connection_set_io_pair(ptr noundef %8673, ptr noundef %206)
  %8675 = icmp eq i32 %8674, -1
  br i1 %8675, label %8676, label %8729

8676:                                             ; preds = %8670
  br label %8677

8677:                                             ; preds = %8676
  br label %8678

8678:                                             ; preds = %8677
  call void @llvm.lifetime.start.p0(i64 4, ptr %209) #10
  %8679 = call ptr @__errno_location() #11
  %8680 = load i32, ptr %8679, align 4, !tbaa !5
  store i32 %8680, ptr %209, align 4, !tbaa !5
  %8681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8682 = call i32 @s2n_print_stacktrace(ptr noundef %8681)
  %8683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8684 = trunc i8 %8683 to i1
  br i1 %8684, label %8685, label %8707

8685:                                             ; preds = %8678
  %8686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8687 = call i32 @fileno(ptr noundef %8686) #10
  %8688 = call i32 @isatty(i32 noundef %8687) #10
  %8689 = icmp ne i32 %8688, 0
  br i1 %8689, label %8690, label %8707

8690:                                             ; preds = %8685
  %8691 = load i32, ptr %209, align 4, !tbaa !5
  %8692 = call ptr @__errno_location() #11
  store i32 %8691, ptr %8692, align 4, !tbaa !5
  %8693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8694 = load i32, ptr @test_count, align 4, !tbaa !5
  %8695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8696 = load i32, ptr %8695, align 4, !tbaa !5
  %8697 = call ptr @s2n_strerror(i32 noundef %8696, ptr noundef @.str.4)
  %8698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8699 = load i32, ptr %8698, align 4, !tbaa !5
  %8700 = call ptr @s2n_strerror_debug(i32 noundef %8699, ptr noundef @.str.4)
  %8701 = call ptr @__errno_location() #11
  %8702 = load i32, ptr %8701, align 4, !tbaa !5
  %8703 = call ptr @strerror(i32 noundef %8702) #10
  %8704 = call ptr @__errno_location() #11
  %8705 = load i32, ptr %8704, align 4, !tbaa !5
  %8706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8693, ptr noundef @.str.2, i32 noundef %8694, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 415, ptr noundef %8697, ptr noundef %8700, ptr noundef %8703, i32 noundef %8705) #10
  br label %8724

8707:                                             ; preds = %8685, %8678
  %8708 = load i32, ptr %209, align 4, !tbaa !5
  %8709 = call ptr @__errno_location() #11
  store i32 %8708, ptr %8709, align 4, !tbaa !5
  %8710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8711 = load i32, ptr @test_count, align 4, !tbaa !5
  %8712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8713 = load i32, ptr %8712, align 4, !tbaa !5
  %8714 = call ptr @s2n_strerror(i32 noundef %8713, ptr noundef @.str.4)
  %8715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8716 = load i32, ptr %8715, align 4, !tbaa !5
  %8717 = call ptr @s2n_strerror_debug(i32 noundef %8716, ptr noundef @.str.4)
  %8718 = call ptr @__errno_location() #11
  %8719 = load i32, ptr %8718, align 4, !tbaa !5
  %8720 = call ptr @strerror(i32 noundef %8719) #10
  %8721 = call ptr @__errno_location() #11
  %8722 = load i32, ptr %8721, align 4, !tbaa !5
  %8723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8710, ptr noundef @.str.5, i32 noundef %8711, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 415, ptr noundef %8714, ptr noundef %8717, ptr noundef %8720, i32 noundef %8722) #10
  br label %8724

8724:                                             ; preds = %8707, %8690
  call void @llvm.lifetime.end.p0(i64 4, ptr %209) #10
  br label %8725

8725:                                             ; preds = %8724
  br label %8726

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

8727:                                             ; No predecessors!
  br label %8728

8728:                                             ; preds = %8727
  br label %8729

8729:                                             ; preds = %8728, %8670
  br label %8730

8730:                                             ; preds = %8729
  br label %8731

8731:                                             ; preds = %8730
  br label %8732

8732:                                             ; preds = %8731
  %8733 = load i32, ptr @test_count, align 4, !tbaa !5
  %8734 = add nsw i32 %8733, 1
  store i32 %8734, ptr @test_count, align 4, !tbaa !5
  %8735 = load ptr, ptr %203, align 8, !tbaa !9
  %8736 = load ptr, ptr %199, align 8, !tbaa !9
  %8737 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8735, ptr noundef %8736)
  %8738 = icmp eq i32 %8737, -1
  br i1 %8738, label %8739, label %8792

8739:                                             ; preds = %8732
  br label %8740

8740:                                             ; preds = %8739
  br label %8741

8741:                                             ; preds = %8740
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #10
  %8742 = call ptr @__errno_location() #11
  %8743 = load i32, ptr %8742, align 4, !tbaa !5
  store i32 %8743, ptr %210, align 4, !tbaa !5
  %8744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8745 = call i32 @s2n_print_stacktrace(ptr noundef %8744)
  %8746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8747 = trunc i8 %8746 to i1
  br i1 %8747, label %8748, label %8770

8748:                                             ; preds = %8741
  %8749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8750 = call i32 @fileno(ptr noundef %8749) #10
  %8751 = call i32 @isatty(i32 noundef %8750) #10
  %8752 = icmp ne i32 %8751, 0
  br i1 %8752, label %8753, label %8770

8753:                                             ; preds = %8748
  %8754 = load i32, ptr %210, align 4, !tbaa !5
  %8755 = call ptr @__errno_location() #11
  store i32 %8754, ptr %8755, align 4, !tbaa !5
  %8756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8757 = load i32, ptr @test_count, align 4, !tbaa !5
  %8758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8759 = load i32, ptr %8758, align 4, !tbaa !5
  %8760 = call ptr @s2n_strerror(i32 noundef %8759, ptr noundef @.str.4)
  %8761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8762 = load i32, ptr %8761, align 4, !tbaa !5
  %8763 = call ptr @s2n_strerror_debug(i32 noundef %8762, ptr noundef @.str.4)
  %8764 = call ptr @__errno_location() #11
  %8765 = load i32, ptr %8764, align 4, !tbaa !5
  %8766 = call ptr @strerror(i32 noundef %8765) #10
  %8767 = call ptr @__errno_location() #11
  %8768 = load i32, ptr %8767, align 4, !tbaa !5
  %8769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8756, ptr noundef @.str.2, i32 noundef %8757, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 418, ptr noundef %8760, ptr noundef %8763, ptr noundef %8766, i32 noundef %8768) #10
  br label %8787

8770:                                             ; preds = %8748, %8741
  %8771 = load i32, ptr %210, align 4, !tbaa !5
  %8772 = call ptr @__errno_location() #11
  store i32 %8771, ptr %8772, align 4, !tbaa !5
  %8773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8774 = load i32, ptr @test_count, align 4, !tbaa !5
  %8775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8776 = load i32, ptr %8775, align 4, !tbaa !5
  %8777 = call ptr @s2n_strerror(i32 noundef %8776, ptr noundef @.str.4)
  %8778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8779 = load i32, ptr %8778, align 4, !tbaa !5
  %8780 = call ptr @s2n_strerror_debug(i32 noundef %8779, ptr noundef @.str.4)
  %8781 = call ptr @__errno_location() #11
  %8782 = load i32, ptr %8781, align 4, !tbaa !5
  %8783 = call ptr @strerror(i32 noundef %8782) #10
  %8784 = call ptr @__errno_location() #11
  %8785 = load i32, ptr %8784, align 4, !tbaa !5
  %8786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8773, ptr noundef @.str.5, i32 noundef %8774, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 418, ptr noundef %8777, ptr noundef %8780, ptr noundef %8783, i32 noundef %8785) #10
  br label %8787

8787:                                             ; preds = %8770, %8753
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #10
  br label %8788

8788:                                             ; preds = %8787
  br label %8789

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

8790:                                             ; No predecessors!
  br label %8791

8791:                                             ; preds = %8790
  br label %8792

8792:                                             ; preds = %8791, %8732
  br label %8793

8793:                                             ; preds = %8792
  br label %8794

8794:                                             ; preds = %8793
  %8795 = load ptr, ptr %199, align 8, !tbaa !9
  %8796 = load i32, ptr %8795, align 8
  %8797 = and i32 %8796, -9
  %8798 = or i32 %8797, 0
  store i32 %8798, ptr %8795, align 8
  br label %8799

8799:                                             ; preds = %8794
  %8800 = load i32, ptr @test_count, align 4, !tbaa !5
  %8801 = add nsw i32 %8800, 1
  store i32 %8801, ptr @test_count, align 4, !tbaa !5
  %8802 = load ptr, ptr %203, align 8, !tbaa !9
  %8803 = call i32 @s2n_send_client_hello_request(ptr noundef %8802)
  %8804 = getelementptr inbounds %struct.s2n_result, ptr %211, i32 0, i32 0
  store i32 %8803, ptr %8804, align 4
  %8805 = getelementptr inbounds %struct.s2n_result, ptr %211, i32 0, i32 0
  %8806 = load i32, ptr %8805, align 4
  %8807 = call zeroext i1 @s2n_result_is_ok(i32 %8806)
  br i1 %8807, label %8861, label %8808

8808:                                             ; preds = %8799
  br label %8809

8809:                                             ; preds = %8808
  br label %8810

8810:                                             ; preds = %8809
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #10
  %8811 = call ptr @__errno_location() #11
  %8812 = load i32, ptr %8811, align 4, !tbaa !5
  store i32 %8812, ptr %212, align 4, !tbaa !5
  %8813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8814 = call i32 @s2n_print_stacktrace(ptr noundef %8813)
  %8815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8816 = trunc i8 %8815 to i1
  br i1 %8816, label %8817, label %8839

8817:                                             ; preds = %8810
  %8818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8819 = call i32 @fileno(ptr noundef %8818) #10
  %8820 = call i32 @isatty(i32 noundef %8819) #10
  %8821 = icmp ne i32 %8820, 0
  br i1 %8821, label %8822, label %8839

8822:                                             ; preds = %8817
  %8823 = load i32, ptr %212, align 4, !tbaa !5
  %8824 = call ptr @__errno_location() #11
  store i32 %8823, ptr %8824, align 4, !tbaa !5
  %8825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8826 = load i32, ptr @test_count, align 4, !tbaa !5
  %8827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8828 = load i32, ptr %8827, align 4, !tbaa !5
  %8829 = call ptr @s2n_strerror(i32 noundef %8828, ptr noundef @.str.4)
  %8830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8831 = load i32, ptr %8830, align 4, !tbaa !5
  %8832 = call ptr @s2n_strerror_debug(i32 noundef %8831, ptr noundef @.str.4)
  %8833 = call ptr @__errno_location() #11
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  %8835 = call ptr @strerror(i32 noundef %8834) #10
  %8836 = call ptr @__errno_location() #11
  %8837 = load i32, ptr %8836, align 4, !tbaa !5
  %8838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8825, ptr noundef @.str.2, i32 noundef %8826, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 424, ptr noundef %8829, ptr noundef %8832, ptr noundef %8835, i32 noundef %8837) #10
  br label %8856

8839:                                             ; preds = %8817, %8810
  %8840 = load i32, ptr %212, align 4, !tbaa !5
  %8841 = call ptr @__errno_location() #11
  store i32 %8840, ptr %8841, align 4, !tbaa !5
  %8842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8843 = load i32, ptr @test_count, align 4, !tbaa !5
  %8844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8845 = load i32, ptr %8844, align 4, !tbaa !5
  %8846 = call ptr @s2n_strerror(i32 noundef %8845, ptr noundef @.str.4)
  %8847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @s2n_strerror_debug(i32 noundef %8848, ptr noundef @.str.4)
  %8850 = call ptr @__errno_location() #11
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call ptr @strerror(i32 noundef %8851) #10
  %8853 = call ptr @__errno_location() #11
  %8854 = load i32, ptr %8853, align 4, !tbaa !5
  %8855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8842, ptr noundef @.str.5, i32 noundef %8843, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 424, ptr noundef %8846, ptr noundef %8849, ptr noundef %8852, i32 noundef %8854) #10
  br label %8856

8856:                                             ; preds = %8839, %8822
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #10
  br label %8857

8857:                                             ; preds = %8856
  br label %8858

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

8859:                                             ; No predecessors!
  br label %8860

8860:                                             ; preds = %8859
  br label %8861

8861:                                             ; preds = %8860, %8799
  br label %8862

8862:                                             ; preds = %8861
  br label %8863

8863:                                             ; preds = %8862
  br label %8864

8864:                                             ; preds = %8863
  %8865 = load i32, ptr @test_count, align 4, !tbaa !5
  %8866 = add nsw i32 %8865, 1
  store i32 %8866, ptr @test_count, align 4, !tbaa !5
  %8867 = load ptr, ptr %203, align 8, !tbaa !9
  %8868 = load ptr, ptr %199, align 8, !tbaa !9
  %8869 = call i32 @s2n_send_and_recv_test(ptr noundef %8867, ptr noundef %8868)
  %8870 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  store i32 %8869, ptr %8870, align 4
  %8871 = getelementptr inbounds %struct.s2n_result, ptr %213, i32 0, i32 0
  %8872 = load i32, ptr %8871, align 4
  %8873 = call zeroext i1 @s2n_result_is_ok(i32 %8872)
  br i1 %8873, label %8927, label %8874

8874:                                             ; preds = %8864
  br label %8875

8875:                                             ; preds = %8874
  br label %8876

8876:                                             ; preds = %8875
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #10
  %8877 = call ptr @__errno_location() #11
  %8878 = load i32, ptr %8877, align 4, !tbaa !5
  store i32 %8878, ptr %214, align 4, !tbaa !5
  %8879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8880 = call i32 @s2n_print_stacktrace(ptr noundef %8879)
  %8881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8882 = trunc i8 %8881 to i1
  br i1 %8882, label %8883, label %8905

8883:                                             ; preds = %8876
  %8884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8885 = call i32 @fileno(ptr noundef %8884) #10
  %8886 = call i32 @isatty(i32 noundef %8885) #10
  %8887 = icmp ne i32 %8886, 0
  br i1 %8887, label %8888, label %8905

8888:                                             ; preds = %8883
  %8889 = load i32, ptr %214, align 4, !tbaa !5
  %8890 = call ptr @__errno_location() #11
  store i32 %8889, ptr %8890, align 4, !tbaa !5
  %8891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8892 = load i32, ptr @test_count, align 4, !tbaa !5
  %8893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8894 = load i32, ptr %8893, align 4, !tbaa !5
  %8895 = call ptr @s2n_strerror(i32 noundef %8894, ptr noundef @.str.4)
  %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_debug(i32 noundef %8897, ptr noundef @.str.4)
  %8899 = call ptr @__errno_location() #11
  %8900 = load i32, ptr %8899, align 4, !tbaa !5
  %8901 = call ptr @strerror(i32 noundef %8900) #10
  %8902 = call ptr @__errno_location() #11
  %8903 = load i32, ptr %8902, align 4, !tbaa !5
  %8904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8891, ptr noundef @.str.2, i32 noundef %8892, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 427, ptr noundef %8895, ptr noundef %8898, ptr noundef %8901, i32 noundef %8903) #10
  br label %8922

8905:                                             ; preds = %8883, %8876
  %8906 = load i32, ptr %214, align 4, !tbaa !5
  %8907 = call ptr @__errno_location() #11
  store i32 %8906, ptr %8907, align 4, !tbaa !5
  %8908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8909 = load i32, ptr @test_count, align 4, !tbaa !5
  %8910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8911 = load i32, ptr %8910, align 4, !tbaa !5
  %8912 = call ptr @s2n_strerror(i32 noundef %8911, ptr noundef @.str.4)
  %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_debug(i32 noundef %8914, ptr noundef @.str.4)
  %8916 = call ptr @__errno_location() #11
  %8917 = load i32, ptr %8916, align 4, !tbaa !5
  %8918 = call ptr @strerror(i32 noundef %8917) #10
  %8919 = call ptr @__errno_location() #11
  %8920 = load i32, ptr %8919, align 4, !tbaa !5
  %8921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8908, ptr noundef @.str.5, i32 noundef %8909, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 427, ptr noundef %8912, ptr noundef %8915, ptr noundef %8918, i32 noundef %8920) #10
  br label %8922

8922:                                             ; preds = %8905, %8888
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #10
  br label %8923

8923:                                             ; preds = %8922
  br label %8924

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

8925:                                             ; No predecessors!
  br label %8926

8926:                                             ; preds = %8925
  br label %8927

8927:                                             ; preds = %8926, %8864
  br label %8928

8928:                                             ; preds = %8927
  br label %8929

8929:                                             ; preds = %8928
  br label %8930

8930:                                             ; preds = %8929
  br label %8931

8931:                                             ; preds = %8930
  br label %8932

8932:                                             ; preds = %8931
  %8933 = load i32, ptr @test_count, align 4, !tbaa !5
  %8934 = add nsw i32 %8933, 1
  store i32 %8934, ptr @test_count, align 4, !tbaa !5
  %8935 = load ptr, ptr %199, align 8, !tbaa !9
  %8936 = load ptr, ptr %203, align 8, !tbaa !9
  %8937 = call i32 @s2n_send_and_recv_test(ptr noundef %8935, ptr noundef %8936)
  %8938 = getelementptr inbounds %struct.s2n_result, ptr %215, i32 0, i32 0
  store i32 %8937, ptr %8938, align 4
  %8939 = getelementptr inbounds %struct.s2n_result, ptr %215, i32 0, i32 0
  %8940 = load i32, ptr %8939, align 4
  %8941 = call zeroext i1 @s2n_result_is_error(i32 %8940)
  br i1 %8941, label %8995, label %8942

8942:                                             ; preds = %8932
  br label %8943

8943:                                             ; preds = %8942
  br label %8944

8944:                                             ; preds = %8943
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #10
  %8945 = call ptr @__errno_location() #11
  %8946 = load i32, ptr %8945, align 4, !tbaa !5
  store i32 %8946, ptr %216, align 4, !tbaa !5
  %8947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8948 = call i32 @s2n_print_stacktrace(ptr noundef %8947)
  %8949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8950 = trunc i8 %8949 to i1
  br i1 %8950, label %8951, label %8973

8951:                                             ; preds = %8944
  %8952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8953 = call i32 @fileno(ptr noundef %8952) #10
  %8954 = call i32 @isatty(i32 noundef %8953) #10
  %8955 = icmp ne i32 %8954, 0
  br i1 %8955, label %8956, label %8973

8956:                                             ; preds = %8951
  %8957 = load i32, ptr %216, align 4, !tbaa !5
  %8958 = call ptr @__errno_location() #11
  store i32 %8957, ptr %8958, align 4, !tbaa !5
  %8959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8960 = load i32, ptr @test_count, align 4, !tbaa !5
  %8961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8962 = load i32, ptr %8961, align 4, !tbaa !5
  %8963 = call ptr @s2n_strerror(i32 noundef %8962, ptr noundef @.str.4)
  %8964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  %8966 = call ptr @s2n_strerror_debug(i32 noundef %8965, ptr noundef @.str.4)
  %8967 = call ptr @__errno_location() #11
  %8968 = load i32, ptr %8967, align 4, !tbaa !5
  %8969 = call ptr @strerror(i32 noundef %8968) #10
  %8970 = call ptr @__errno_location() #11
  %8971 = load i32, ptr %8970, align 4, !tbaa !5
  %8972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8959, ptr noundef @.str.2, i32 noundef %8960, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 428, ptr noundef %8963, ptr noundef %8966, ptr noundef %8969, i32 noundef %8971) #10
  br label %8990

8973:                                             ; preds = %8951, %8944
  %8974 = load i32, ptr %216, align 4, !tbaa !5
  %8975 = call ptr @__errno_location() #11
  store i32 %8974, ptr %8975, align 4, !tbaa !5
  %8976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8977 = load i32, ptr @test_count, align 4, !tbaa !5
  %8978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8979 = load i32, ptr %8978, align 4, !tbaa !5
  %8980 = call ptr @s2n_strerror(i32 noundef %8979, ptr noundef @.str.4)
  %8981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8982 = load i32, ptr %8981, align 4, !tbaa !5
  %8983 = call ptr @s2n_strerror_debug(i32 noundef %8982, ptr noundef @.str.4)
  %8984 = call ptr @__errno_location() #11
  %8985 = load i32, ptr %8984, align 4, !tbaa !5
  %8986 = call ptr @strerror(i32 noundef %8985) #10
  %8987 = call ptr @__errno_location() #11
  %8988 = load i32, ptr %8987, align 4, !tbaa !5
  %8989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8976, ptr noundef @.str.5, i32 noundef %8977, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 428, ptr noundef %8980, ptr noundef %8983, ptr noundef %8986, i32 noundef %8988) #10
  br label %8990

8990:                                             ; preds = %8973, %8956
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #10
  br label %8991

8991:                                             ; preds = %8990
  br label %8992

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

8993:                                             ; No predecessors!
  br label %8994

8994:                                             ; preds = %8993
  br label %8995

8995:                                             ; preds = %8994, %8932
  br label %8996

8996:                                             ; preds = %8995
  br label %8997

8997:                                             ; preds = %8996
  br label %8998

8998:                                             ; preds = %8997
  %8999 = load i32, ptr @test_count, align 4, !tbaa !5
  %9000 = add nsw i32 %8999, 1
  store i32 %9000, ptr @test_count, align 4, !tbaa !5
  %9001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9002 = load i32, ptr %9001, align 4, !tbaa !5
  %9003 = icmp eq i32 %9002, 268435456
  br i1 %9003, label %9057, label %9004

9004:                                             ; preds = %8998
  br label %9005

9005:                                             ; preds = %9004
  br label %9006

9006:                                             ; preds = %9005
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #10
  %9007 = call ptr @__errno_location() #11
  %9008 = load i32, ptr %9007, align 4, !tbaa !5
  store i32 %9008, ptr %217, align 4, !tbaa !5
  %9009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9010 = call i32 @s2n_print_stacktrace(ptr noundef %9009)
  %9011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9012 = trunc i8 %9011 to i1
  br i1 %9012, label %9013, label %9035

9013:                                             ; preds = %9006
  %9014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9015 = call i32 @fileno(ptr noundef %9014) #10
  %9016 = call i32 @isatty(i32 noundef %9015) #10
  %9017 = icmp ne i32 %9016, 0
  br i1 %9017, label %9018, label %9035

9018:                                             ; preds = %9013
  %9019 = load i32, ptr %217, align 4, !tbaa !5
  %9020 = call ptr @__errno_location() #11
  store i32 %9019, ptr %9020, align 4, !tbaa !5
  %9021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9022 = load i32, ptr @test_count, align 4, !tbaa !5
  %9023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9024 = load i32, ptr %9023, align 4, !tbaa !5
  %9025 = call ptr @s2n_strerror(i32 noundef %9024, ptr noundef @.str.4)
  %9026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9027 = load i32, ptr %9026, align 4, !tbaa !5
  %9028 = call ptr @s2n_strerror_debug(i32 noundef %9027, ptr noundef @.str.4)
  %9029 = call ptr @__errno_location() #11
  %9030 = load i32, ptr %9029, align 4, !tbaa !5
  %9031 = call ptr @strerror(i32 noundef %9030) #10
  %9032 = call ptr @__errno_location() #11
  %9033 = load i32, ptr %9032, align 4, !tbaa !5
  %9034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9021, ptr noundef @.str.2, i32 noundef %9022, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9025, ptr noundef %9028, ptr noundef %9031, i32 noundef %9033) #10
  br label %9052

9035:                                             ; preds = %9013, %9006
  %9036 = load i32, ptr %217, align 4, !tbaa !5
  %9037 = call ptr @__errno_location() #11
  store i32 %9036, ptr %9037, align 4, !tbaa !5
  %9038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9039 = load i32, ptr @test_count, align 4, !tbaa !5
  %9040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9041 = load i32, ptr %9040, align 4, !tbaa !5
  %9042 = call ptr @s2n_strerror(i32 noundef %9041, ptr noundef @.str.4)
  %9043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9044 = load i32, ptr %9043, align 4, !tbaa !5
  %9045 = call ptr @s2n_strerror_debug(i32 noundef %9044, ptr noundef @.str.4)
  %9046 = call ptr @__errno_location() #11
  %9047 = load i32, ptr %9046, align 4, !tbaa !5
  %9048 = call ptr @strerror(i32 noundef %9047) #10
  %9049 = call ptr @__errno_location() #11
  %9050 = load i32, ptr %9049, align 4, !tbaa !5
  %9051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9038, ptr noundef @.str.5, i32 noundef %9039, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9042, ptr noundef %9045, ptr noundef %9048, i32 noundef %9050) #10
  br label %9052

9052:                                             ; preds = %9035, %9018
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #10
  br label %9053

9053:                                             ; preds = %9052
  br label %9054

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

9055:                                             ; No predecessors!
  br label %9056

9056:                                             ; preds = %9055
  br label %9057

9057:                                             ; preds = %9056, %8998
  br label %9058

9058:                                             ; preds = %9057
  br label %9059

9059:                                             ; preds = %9058
  br label %9060

9060:                                             ; preds = %9059
  %9061 = load i32, ptr @test_count, align 4, !tbaa !5
  %9062 = add nsw i32 %9061, 1
  store i32 %9062, ptr @test_count, align 4, !tbaa !5
  %9063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9064 = load i32, ptr %9063, align 4, !tbaa !5
  %9065 = call ptr @s2n_strerror_debug(i32 noundef %9064, ptr noundef @.str.4)
  %9066 = icmp eq ptr %9065, null
  br i1 %9066, label %9067, label %9120

9067:                                             ; preds = %9060
  br label %9068

9068:                                             ; preds = %9067
  br label %9069

9069:                                             ; preds = %9068
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #10
  %9070 = call ptr @__errno_location() #11
  %9071 = load i32, ptr %9070, align 4, !tbaa !5
  store i32 %9071, ptr %218, align 4, !tbaa !5
  %9072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9073 = call i32 @s2n_print_stacktrace(ptr noundef %9072)
  %9074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9075 = trunc i8 %9074 to i1
  br i1 %9075, label %9076, label %9098

9076:                                             ; preds = %9069
  %9077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9078 = call i32 @fileno(ptr noundef %9077) #10
  %9079 = call i32 @isatty(i32 noundef %9078) #10
  %9080 = icmp ne i32 %9079, 0
  br i1 %9080, label %9081, label %9098

9081:                                             ; preds = %9076
  %9082 = load i32, ptr %218, align 4, !tbaa !5
  %9083 = call ptr @__errno_location() #11
  store i32 %9082, ptr %9083, align 4, !tbaa !5
  %9084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9085 = load i32, ptr @test_count, align 4, !tbaa !5
  %9086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9087 = load i32, ptr %9086, align 4, !tbaa !5
  %9088 = call ptr @s2n_strerror(i32 noundef %9087, ptr noundef @.str.4)
  %9089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9090 = load i32, ptr %9089, align 4, !tbaa !5
  %9091 = call ptr @s2n_strerror_debug(i32 noundef %9090, ptr noundef @.str.4)
  %9092 = call ptr @__errno_location() #11
  %9093 = load i32, ptr %9092, align 4, !tbaa !5
  %9094 = call ptr @strerror(i32 noundef %9093) #10
  %9095 = call ptr @__errno_location() #11
  %9096 = load i32, ptr %9095, align 4, !tbaa !5
  %9097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9084, ptr noundef @.str.2, i32 noundef %9085, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9088, ptr noundef %9091, ptr noundef %9094, i32 noundef %9096) #10
  br label %9115

9098:                                             ; preds = %9076, %9069
  %9099 = load i32, ptr %218, align 4, !tbaa !5
  %9100 = call ptr @__errno_location() #11
  store i32 %9099, ptr %9100, align 4, !tbaa !5
  %9101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9102 = load i32, ptr @test_count, align 4, !tbaa !5
  %9103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9104 = load i32, ptr %9103, align 4, !tbaa !5
  %9105 = call ptr @s2n_strerror(i32 noundef %9104, ptr noundef @.str.4)
  %9106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9107 = load i32, ptr %9106, align 4, !tbaa !5
  %9108 = call ptr @s2n_strerror_debug(i32 noundef %9107, ptr noundef @.str.4)
  %9109 = call ptr @__errno_location() #11
  %9110 = load i32, ptr %9109, align 4, !tbaa !5
  %9111 = call ptr @strerror(i32 noundef %9110) #10
  %9112 = call ptr @__errno_location() #11
  %9113 = load i32, ptr %9112, align 4, !tbaa !5
  %9114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9101, ptr noundef @.str.5, i32 noundef %9102, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 428, ptr noundef %9105, ptr noundef %9108, ptr noundef %9111, i32 noundef %9113) #10
  br label %9115

9115:                                             ; preds = %9098, %9081
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #10
  br label %9116

9116:                                             ; preds = %9115
  br label %9117

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

9118:                                             ; No predecessors!
  br label %9119

9119:                                             ; preds = %9118
  br label %9120

9120:                                             ; preds = %9119, %9060
  br label %9121

9121:                                             ; preds = %9120
  br label %9122

9122:                                             ; preds = %9121
  br label %9123

9123:                                             ; preds = %9122
  br label %9124

9124:                                             ; preds = %9123
  br label %9125

9125:                                             ; preds = %9124
  %9126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9126, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9127 = call ptr @__errno_location() #11
  store i32 0, ptr %9127, align 4, !tbaa !5
  br label %9128

9128:                                             ; preds = %9125
  br label %9129

9129:                                             ; preds = %9128
  br label %9130

9130:                                             ; preds = %9129
  br label %9131

9131:                                             ; preds = %9130
  br label %9132

9132:                                             ; preds = %9131
  %9133 = load i32, ptr @test_count, align 4, !tbaa !5
  %9134 = add nsw i32 %9133, 1
  store i32 %9134, ptr @test_count, align 4, !tbaa !5
  %9135 = load ptr, ptr %203, align 8, !tbaa !9
  %9136 = call i32 @s2n_connection_get_alert(ptr noundef %9135)
  %9137 = icmp eq i32 %9136, 100
  br i1 %9137, label %9191, label %9138

9138:                                             ; preds = %9132
  br label %9139

9139:                                             ; preds = %9138
  br label %9140

9140:                                             ; preds = %9139
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #10
  %9141 = call ptr @__errno_location() #11
  %9142 = load i32, ptr %9141, align 4, !tbaa !5
  store i32 %9142, ptr %219, align 4, !tbaa !5
  %9143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9144 = call i32 @s2n_print_stacktrace(ptr noundef %9143)
  %9145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9146 = trunc i8 %9145 to i1
  br i1 %9146, label %9147, label %9169

9147:                                             ; preds = %9140
  %9148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9149 = call i32 @fileno(ptr noundef %9148) #10
  %9150 = call i32 @isatty(i32 noundef %9149) #10
  %9151 = icmp ne i32 %9150, 0
  br i1 %9151, label %9152, label %9169

9152:                                             ; preds = %9147
  %9153 = load i32, ptr %219, align 4, !tbaa !5
  %9154 = call ptr @__errno_location() #11
  store i32 %9153, ptr %9154, align 4, !tbaa !5
  %9155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9156 = load i32, ptr @test_count, align 4, !tbaa !5
  %9157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9158 = load i32, ptr %9157, align 4, !tbaa !5
  %9159 = call ptr @s2n_strerror(i32 noundef %9158, ptr noundef @.str.4)
  %9160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9161 = load i32, ptr %9160, align 4, !tbaa !5
  %9162 = call ptr @s2n_strerror_debug(i32 noundef %9161, ptr noundef @.str.4)
  %9163 = call ptr @__errno_location() #11
  %9164 = load i32, ptr %9163, align 4, !tbaa !5
  %9165 = call ptr @strerror(i32 noundef %9164) #10
  %9166 = call ptr @__errno_location() #11
  %9167 = load i32, ptr %9166, align 4, !tbaa !5
  %9168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9155, ptr noundef @.str.2, i32 noundef %9156, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 429, ptr noundef %9159, ptr noundef %9162, ptr noundef %9165, i32 noundef %9167) #10
  br label %9186

9169:                                             ; preds = %9147, %9140
  %9170 = load i32, ptr %219, align 4, !tbaa !5
  %9171 = call ptr @__errno_location() #11
  store i32 %9170, ptr %9171, align 4, !tbaa !5
  %9172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9173 = load i32, ptr @test_count, align 4, !tbaa !5
  %9174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9175 = load i32, ptr %9174, align 4, !tbaa !5
  %9176 = call ptr @s2n_strerror(i32 noundef %9175, ptr noundef @.str.4)
  %9177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9178 = load i32, ptr %9177, align 4, !tbaa !5
  %9179 = call ptr @s2n_strerror_debug(i32 noundef %9178, ptr noundef @.str.4)
  %9180 = call ptr @__errno_location() #11
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call ptr @strerror(i32 noundef %9181) #10
  %9183 = call ptr @__errno_location() #11
  %9184 = load i32, ptr %9183, align 4, !tbaa !5
  %9185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9172, ptr noundef @.str.5, i32 noundef %9173, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 429, ptr noundef %9176, ptr noundef %9179, ptr noundef %9182, i32 noundef %9184) #10
  br label %9186

9186:                                             ; preds = %9169, %9152
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #10
  br label %9187

9187:                                             ; preds = %9186
  br label %9188

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

9189:                                             ; No predecessors!
  br label %9190

9190:                                             ; preds = %9189
  br label %9191

9191:                                             ; preds = %9190, %9132
  br label %9192

9192:                                             ; preds = %9191
  br label %9193

9193:                                             ; preds = %9192
  br label %9194

9194:                                             ; preds = %9193
  %9195 = load i32, ptr @test_count, align 4, !tbaa !5
  %9196 = add nsw i32 %9195, 1
  store i32 %9196, ptr @test_count, align 4, !tbaa !5
  %9197 = load ptr, ptr %199, align 8, !tbaa !9
  %9198 = getelementptr inbounds %struct.s2n_connection, ptr %9197, i32 0, i32 1
  %9199 = load ptr, ptr %9198, align 8, !tbaa !47
  %9200 = getelementptr inbounds %struct.s2n_config, ptr %9199, i32 0, i32 54
  %9201 = load ptr, ptr %9200, align 8, !tbaa !48
  %9202 = icmp eq ptr %9201, null
  br i1 %9202, label %9203, label %9256

9203:                                             ; preds = %9194
  br label %9204

9204:                                             ; preds = %9203
  br label %9205

9205:                                             ; preds = %9204
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #10
  %9206 = call ptr @__errno_location() #11
  %9207 = load i32, ptr %9206, align 4, !tbaa !5
  store i32 %9207, ptr %220, align 4, !tbaa !5
  %9208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9209 = call i32 @s2n_print_stacktrace(ptr noundef %9208)
  %9210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9211 = trunc i8 %9210 to i1
  br i1 %9211, label %9212, label %9234

9212:                                             ; preds = %9205
  %9213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9214 = call i32 @fileno(ptr noundef %9213) #10
  %9215 = call i32 @isatty(i32 noundef %9214) #10
  %9216 = icmp ne i32 %9215, 0
  br i1 %9216, label %9217, label %9234

9217:                                             ; preds = %9212
  %9218 = load i32, ptr %220, align 4, !tbaa !5
  %9219 = call ptr @__errno_location() #11
  store i32 %9218, ptr %9219, align 4, !tbaa !5
  %9220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9221 = load i32, ptr @test_count, align 4, !tbaa !5
  %9222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9223 = load i32, ptr %9222, align 4, !tbaa !5
  %9224 = call ptr @s2n_strerror(i32 noundef %9223, ptr noundef @.str.4)
  %9225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9226 = load i32, ptr %9225, align 4, !tbaa !5
  %9227 = call ptr @s2n_strerror_debug(i32 noundef %9226, ptr noundef @.str.4)
  %9228 = call ptr @__errno_location() #11
  %9229 = load i32, ptr %9228, align 4, !tbaa !5
  %9230 = call ptr @strerror(i32 noundef %9229) #10
  %9231 = call ptr @__errno_location() #11
  %9232 = load i32, ptr %9231, align 4, !tbaa !5
  %9233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9220, ptr noundef @.str.2, i32 noundef %9221, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 432, ptr noundef %9224, ptr noundef %9227, ptr noundef %9230, i32 noundef %9232) #10
  br label %9251

9234:                                             ; preds = %9212, %9205
  %9235 = load i32, ptr %220, align 4, !tbaa !5
  %9236 = call ptr @__errno_location() #11
  store i32 %9235, ptr %9236, align 4, !tbaa !5
  %9237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9238 = load i32, ptr @test_count, align 4, !tbaa !5
  %9239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9240 = load i32, ptr %9239, align 4, !tbaa !5
  %9241 = call ptr @s2n_strerror(i32 noundef %9240, ptr noundef @.str.4)
  %9242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9243 = load i32, ptr %9242, align 4, !tbaa !5
  %9244 = call ptr @s2n_strerror_debug(i32 noundef %9243, ptr noundef @.str.4)
  %9245 = call ptr @__errno_location() #11
  %9246 = load i32, ptr %9245, align 4, !tbaa !5
  %9247 = call ptr @strerror(i32 noundef %9246) #10
  %9248 = call ptr @__errno_location() #11
  %9249 = load i32, ptr %9248, align 4, !tbaa !5
  %9250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9237, ptr noundef @.str.5, i32 noundef %9238, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 432, ptr noundef %9241, ptr noundef %9244, ptr noundef %9247, i32 noundef %9249) #10
  br label %9251

9251:                                             ; preds = %9234, %9217
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #10
  br label %9252

9252:                                             ; preds = %9251
  br label %9253

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

9254:                                             ; No predecessors!
  br label %9255

9255:                                             ; preds = %9254
  br label %9256

9256:                                             ; preds = %9255, %9194
  br label %9257

9257:                                             ; preds = %9256
  br label %9258

9258:                                             ; preds = %9257
  br label %9259

9259:                                             ; preds = %9258
  %9260 = load i32, ptr @test_count, align 4, !tbaa !5
  %9261 = add nsw i32 %9260, 1
  store i32 %9261, ptr @test_count, align 4, !tbaa !5
  %9262 = getelementptr inbounds %struct.s2n_test_reneg_req_ctx, ptr %198, i32 0, i32 1
  %9263 = load i8, ptr %9262, align 4, !tbaa !52
  %9264 = zext i8 %9263 to i32
  %9265 = icmp eq i32 %9264, 0
  br i1 %9265, label %9319, label %9266

9266:                                             ; preds = %9259
  br label %9267

9267:                                             ; preds = %9266
  br label %9268

9268:                                             ; preds = %9267
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #10
  %9269 = call ptr @__errno_location() #11
  %9270 = load i32, ptr %9269, align 4, !tbaa !5
  store i32 %9270, ptr %221, align 4, !tbaa !5
  %9271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9272 = call i32 @s2n_print_stacktrace(ptr noundef %9271)
  %9273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9274 = trunc i8 %9273 to i1
  br i1 %9274, label %9275, label %9297

9275:                                             ; preds = %9268
  %9276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9277 = call i32 @fileno(ptr noundef %9276) #10
  %9278 = call i32 @isatty(i32 noundef %9277) #10
  %9279 = icmp ne i32 %9278, 0
  br i1 %9279, label %9280, label %9297

9280:                                             ; preds = %9275
  %9281 = load i32, ptr %221, align 4, !tbaa !5
  %9282 = call ptr @__errno_location() #11
  store i32 %9281, ptr %9282, align 4, !tbaa !5
  %9283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9284 = load i32, ptr @test_count, align 4, !tbaa !5
  %9285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9286 = load i32, ptr %9285, align 4, !tbaa !5
  %9287 = call ptr @s2n_strerror(i32 noundef %9286, ptr noundef @.str.4)
  %9288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9289 = load i32, ptr %9288, align 4, !tbaa !5
  %9290 = call ptr @s2n_strerror_debug(i32 noundef %9289, ptr noundef @.str.4)
  %9291 = call ptr @__errno_location() #11
  %9292 = load i32, ptr %9291, align 4, !tbaa !5
  %9293 = call ptr @strerror(i32 noundef %9292) #10
  %9294 = call ptr @__errno_location() #11
  %9295 = load i32, ptr %9294, align 4, !tbaa !5
  %9296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9283, ptr noundef @.str.2, i32 noundef %9284, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 433, ptr noundef %9287, ptr noundef %9290, ptr noundef %9293, i32 noundef %9295) #10
  br label %9314

9297:                                             ; preds = %9275, %9268
  %9298 = load i32, ptr %221, align 4, !tbaa !5
  %9299 = call ptr @__errno_location() #11
  store i32 %9298, ptr %9299, align 4, !tbaa !5
  %9300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9301 = load i32, ptr @test_count, align 4, !tbaa !5
  %9302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9303 = load i32, ptr %9302, align 4, !tbaa !5
  %9304 = call ptr @s2n_strerror(i32 noundef %9303, ptr noundef @.str.4)
  %9305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9306 = load i32, ptr %9305, align 4, !tbaa !5
  %9307 = call ptr @s2n_strerror_debug(i32 noundef %9306, ptr noundef @.str.4)
  %9308 = call ptr @__errno_location() #11
  %9309 = load i32, ptr %9308, align 4, !tbaa !5
  %9310 = call ptr @strerror(i32 noundef %9309) #10
  %9311 = call ptr @__errno_location() #11
  %9312 = load i32, ptr %9311, align 4, !tbaa !5
  %9313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9300, ptr noundef @.str.5, i32 noundef %9301, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 433, ptr noundef %9304, ptr noundef %9307, ptr noundef %9310, i32 noundef %9312) #10
  br label %9314

9314:                                             ; preds = %9297, %9280
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #10
  br label %9315

9315:                                             ; preds = %9314
  br label %9316

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

9317:                                             ; No predecessors!
  br label %9318

9318:                                             ; preds = %9317
  br label %9319

9319:                                             ; preds = %9318, %9259
  br label %9320

9320:                                             ; preds = %9319
  br label %9321

9321:                                             ; preds = %9320
  %9322 = call i32 @s2n_io_pair_close(ptr noundef %206)
  call void @llvm.lifetime.end.p0(i64 8, ptr %206) #10
  %9323 = call i32 @s2n_connection_ptr_free(ptr noundef %203)
  %9324 = getelementptr inbounds %struct.s2n_result, ptr %222, i32 0, i32 0
  store i32 %9323, ptr %9324, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #10
  %9325 = call i32 @s2n_connection_ptr_free(ptr noundef %199)
  %9326 = getelementptr inbounds %struct.s2n_result, ptr %223, i32 0, i32 0
  store i32 %9325, ptr %9326, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %198) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %224) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %224, ptr align 4 @__const.main.ctx.67, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %225) #10
  %9327 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9327, ptr %225, align 8, !tbaa !9
  br label %9328

9328:                                             ; preds = %9321
  %9329 = load i32, ptr @test_count, align 4, !tbaa !5
  %9330 = add nsw i32 %9329, 1
  store i32 %9330, ptr @test_count, align 4, !tbaa !5
  %9331 = load ptr, ptr %225, align 8, !tbaa !9
  %9332 = icmp eq ptr %9331, null
  br i1 %9332, label %9333, label %9386

9333:                                             ; preds = %9328
  br label %9334

9334:                                             ; preds = %9333
  br label %9335

9335:                                             ; preds = %9334
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #10
  %9336 = call ptr @__errno_location() #11
  %9337 = load i32, ptr %9336, align 4, !tbaa !5
  store i32 %9337, ptr %226, align 4, !tbaa !5
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = call i32 @s2n_print_stacktrace(ptr noundef %9338)
  %9340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9341 = trunc i8 %9340 to i1
  br i1 %9341, label %9342, label %9364

9342:                                             ; preds = %9335
  %9343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9344 = call i32 @fileno(ptr noundef %9343) #10
  %9345 = call i32 @isatty(i32 noundef %9344) #10
  %9346 = icmp ne i32 %9345, 0
  br i1 %9346, label %9347, label %9364

9347:                                             ; preds = %9342
  %9348 = load i32, ptr %226, align 4, !tbaa !5
  %9349 = call ptr @__errno_location() #11
  store i32 %9348, ptr %9349, align 4, !tbaa !5
  %9350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9351 = load i32, ptr @test_count, align 4, !tbaa !5
  %9352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9353 = load i32, ptr %9352, align 4, !tbaa !5
  %9354 = call ptr @s2n_strerror(i32 noundef %9353, ptr noundef @.str.4)
  %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_debug(i32 noundef %9356, ptr noundef @.str.4)
  %9358 = call ptr @__errno_location() #11
  %9359 = load i32, ptr %9358, align 4, !tbaa !5
  %9360 = call ptr @strerror(i32 noundef %9359) #10
  %9361 = call ptr @__errno_location() #11
  %9362 = load i32, ptr %9361, align 4, !tbaa !5
  %9363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9350, ptr noundef @.str.2, i32 noundef %9351, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9354, ptr noundef %9357, ptr noundef %9360, i32 noundef %9362) #10
  br label %9381

9364:                                             ; preds = %9342, %9335
  %9365 = load i32, ptr %226, align 4, !tbaa !5
  %9366 = call ptr @__errno_location() #11
  store i32 %9365, ptr %9366, align 4, !tbaa !5
  %9367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9368 = load i32, ptr @test_count, align 4, !tbaa !5
  %9369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call ptr @s2n_strerror(i32 noundef %9370, ptr noundef @.str.4)
  %9372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9373 = load i32, ptr %9372, align 4, !tbaa !5
  %9374 = call ptr @s2n_strerror_debug(i32 noundef %9373, ptr noundef @.str.4)
  %9375 = call ptr @__errno_location() #11
  %9376 = load i32, ptr %9375, align 4, !tbaa !5
  %9377 = call ptr @strerror(i32 noundef %9376) #10
  %9378 = call ptr @__errno_location() #11
  %9379 = load i32, ptr %9378, align 4, !tbaa !5
  %9380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9367, ptr noundef @.str.5, i32 noundef %9368, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 442, ptr noundef %9371, ptr noundef %9374, ptr noundef %9377, i32 noundef %9379) #10
  br label %9381

9381:                                             ; preds = %9364, %9347
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #10
  br label %9382

9382:                                             ; preds = %9381
  br label %9383

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

9384:                                             ; No predecessors!
  br label %9385

9385:                                             ; preds = %9384
  br label %9386

9386:                                             ; preds = %9385, %9328
  br label %9387

9387:                                             ; preds = %9386
  br label %9388

9388:                                             ; preds = %9387
  br label %9389

9389:                                             ; preds = %9388
  %9390 = load i32, ptr @test_count, align 4, !tbaa !5
  %9391 = add nsw i32 %9390, 1
  store i32 %9391, ptr @test_count, align 4, !tbaa !5
  %9392 = load ptr, ptr %225, align 8, !tbaa !9
  %9393 = load ptr, ptr %17, align 8, !tbaa !9
  %9394 = call i32 @s2n_connection_set_config(ptr noundef %9392, ptr noundef %9393)
  %9395 = icmp eq i32 %9394, -1
  br i1 %9395, label %9396, label %9449

9396:                                             ; preds = %9389
  br label %9397

9397:                                             ; preds = %9396
  br label %9398

9398:                                             ; preds = %9397
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #10
  %9399 = call ptr @__errno_location() #11
  %9400 = load i32, ptr %9399, align 4, !tbaa !5
  store i32 %9400, ptr %227, align 4, !tbaa !5
  %9401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9402 = call i32 @s2n_print_stacktrace(ptr noundef %9401)
  %9403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9404 = trunc i8 %9403 to i1
  br i1 %9404, label %9405, label %9427

9405:                                             ; preds = %9398
  %9406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9407 = call i32 @fileno(ptr noundef %9406) #10
  %9408 = call i32 @isatty(i32 noundef %9407) #10
  %9409 = icmp ne i32 %9408, 0
  br i1 %9409, label %9410, label %9427

9410:                                             ; preds = %9405
  %9411 = load i32, ptr %227, align 4, !tbaa !5
  %9412 = call ptr @__errno_location() #11
  store i32 %9411, ptr %9412, align 4, !tbaa !5
  %9413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9414 = load i32, ptr @test_count, align 4, !tbaa !5
  %9415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9416 = load i32, ptr %9415, align 4, !tbaa !5
  %9417 = call ptr @s2n_strerror(i32 noundef %9416, ptr noundef @.str.4)
  %9418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9419 = load i32, ptr %9418, align 4, !tbaa !5
  %9420 = call ptr @s2n_strerror_debug(i32 noundef %9419, ptr noundef @.str.4)
  %9421 = call ptr @__errno_location() #11
  %9422 = load i32, ptr %9421, align 4, !tbaa !5
  %9423 = call ptr @strerror(i32 noundef %9422) #10
  %9424 = call ptr @__errno_location() #11
  %9425 = load i32, ptr %9424, align 4, !tbaa !5
  %9426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9413, ptr noundef @.str.2, i32 noundef %9414, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 443, ptr noundef %9417, ptr noundef %9420, ptr noundef %9423, i32 noundef %9425) #10
  br label %9444

9427:                                             ; preds = %9405, %9398
  %9428 = load i32, ptr %227, align 4, !tbaa !5
  %9429 = call ptr @__errno_location() #11
  store i32 %9428, ptr %9429, align 4, !tbaa !5
  %9430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9431 = load i32, ptr @test_count, align 4, !tbaa !5
  %9432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9433 = load i32, ptr %9432, align 4, !tbaa !5
  %9434 = call ptr @s2n_strerror(i32 noundef %9433, ptr noundef @.str.4)
  %9435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9436 = load i32, ptr %9435, align 4, !tbaa !5
  %9437 = call ptr @s2n_strerror_debug(i32 noundef %9436, ptr noundef @.str.4)
  %9438 = call ptr @__errno_location() #11
  %9439 = load i32, ptr %9438, align 4, !tbaa !5
  %9440 = call ptr @strerror(i32 noundef %9439) #10
  %9441 = call ptr @__errno_location() #11
  %9442 = load i32, ptr %9441, align 4, !tbaa !5
  %9443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9430, ptr noundef @.str.5, i32 noundef %9431, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 443, ptr noundef %9434, ptr noundef %9437, ptr noundef %9440, i32 noundef %9442) #10
  br label %9444

9444:                                             ; preds = %9427, %9410
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #10
  br label %9445

9445:                                             ; preds = %9444
  br label %9446

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

9447:                                             ; No predecessors!
  br label %9448

9448:                                             ; preds = %9447
  br label %9449

9449:                                             ; preds = %9448, %9389
  br label %9450

9450:                                             ; preds = %9449
  br label %9451

9451:                                             ; preds = %9450
  br label %9452

9452:                                             ; preds = %9451
  %9453 = load i32, ptr @test_count, align 4, !tbaa !5
  %9454 = add nsw i32 %9453, 1
  store i32 %9454, ptr @test_count, align 4, !tbaa !5
  %9455 = load ptr, ptr %17, align 8, !tbaa !9
  %9456 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %9455, ptr noundef @s2n_test_reneg_req_cb, ptr noundef %224)
  %9457 = icmp eq i32 %9456, -1
  br i1 %9457, label %9458, label %9511

9458:                                             ; preds = %9452
  br label %9459

9459:                                             ; preds = %9458
  br label %9460

9460:                                             ; preds = %9459
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #10
  %9461 = call ptr @__errno_location() #11
  %9462 = load i32, ptr %9461, align 4, !tbaa !5
  store i32 %9462, ptr %228, align 4, !tbaa !5
  %9463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9464 = call i32 @s2n_print_stacktrace(ptr noundef %9463)
  %9465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9466 = trunc i8 %9465 to i1
  br i1 %9466, label %9467, label %9489

9467:                                             ; preds = %9460
  %9468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9469 = call i32 @fileno(ptr noundef %9468) #10
  %9470 = call i32 @isatty(i32 noundef %9469) #10
  %9471 = icmp ne i32 %9470, 0
  br i1 %9471, label %9472, label %9489

9472:                                             ; preds = %9467
  %9473 = load i32, ptr %228, align 4, !tbaa !5
  %9474 = call ptr @__errno_location() #11
  store i32 %9473, ptr %9474, align 4, !tbaa !5
  %9475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9476 = load i32, ptr @test_count, align 4, !tbaa !5
  %9477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9478 = load i32, ptr %9477, align 4, !tbaa !5
  %9479 = call ptr @s2n_strerror(i32 noundef %9478, ptr noundef @.str.4)
  %9480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  %9482 = call ptr @s2n_strerror_debug(i32 noundef %9481, ptr noundef @.str.4)
  %9483 = call ptr @__errno_location() #11
  %9484 = load i32, ptr %9483, align 4, !tbaa !5
  %9485 = call ptr @strerror(i32 noundef %9484) #10
  %9486 = call ptr @__errno_location() #11
  %9487 = load i32, ptr %9486, align 4, !tbaa !5
  %9488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9475, ptr noundef @.str.2, i32 noundef %9476, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 444, ptr noundef %9479, ptr noundef %9482, ptr noundef %9485, i32 noundef %9487) #10
  br label %9506

9489:                                             ; preds = %9467, %9460
  %9490 = load i32, ptr %228, align 4, !tbaa !5
  %9491 = call ptr @__errno_location() #11
  store i32 %9490, ptr %9491, align 4, !tbaa !5
  %9492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9493 = load i32, ptr @test_count, align 4, !tbaa !5
  %9494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  %9496 = call ptr @s2n_strerror(i32 noundef %9495, ptr noundef @.str.4)
  %9497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9498 = load i32, ptr %9497, align 4, !tbaa !5
  %9499 = call ptr @s2n_strerror_debug(i32 noundef %9498, ptr noundef @.str.4)
  %9500 = call ptr @__errno_location() #11
  %9501 = load i32, ptr %9500, align 4, !tbaa !5
  %9502 = call ptr @strerror(i32 noundef %9501) #10
  %9503 = call ptr @__errno_location() #11
  %9504 = load i32, ptr %9503, align 4, !tbaa !5
  %9505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9492, ptr noundef @.str.5, i32 noundef %9493, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 444, ptr noundef %9496, ptr noundef %9499, ptr noundef %9502, i32 noundef %9504) #10
  br label %9506

9506:                                             ; preds = %9489, %9472
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #10
  br label %9507

9507:                                             ; preds = %9506
  br label %9508

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

9509:                                             ; No predecessors!
  br label %9510

9510:                                             ; preds = %9509
  br label %9511

9511:                                             ; preds = %9510, %9452
  br label %9512

9512:                                             ; preds = %9511
  br label %9513

9513:                                             ; preds = %9512
  call void @llvm.lifetime.start.p0(i64 8, ptr %229) #10
  %9514 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9514, ptr %229, align 8, !tbaa !9
  br label %9515

9515:                                             ; preds = %9513
  %9516 = load i32, ptr @test_count, align 4, !tbaa !5
  %9517 = add nsw i32 %9516, 1
  store i32 %9517, ptr @test_count, align 4, !tbaa !5
  %9518 = load ptr, ptr %229, align 8, !tbaa !9
  %9519 = icmp eq ptr %9518, null
  br i1 %9519, label %9520, label %9573

9520:                                             ; preds = %9515
  br label %9521

9521:                                             ; preds = %9520
  br label %9522

9522:                                             ; preds = %9521
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #10
  %9523 = call ptr @__errno_location() #11
  %9524 = load i32, ptr %9523, align 4, !tbaa !5
  store i32 %9524, ptr %230, align 4, !tbaa !5
  %9525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9526 = call i32 @s2n_print_stacktrace(ptr noundef %9525)
  %9527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9528 = trunc i8 %9527 to i1
  br i1 %9528, label %9529, label %9551

9529:                                             ; preds = %9522
  %9530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9531 = call i32 @fileno(ptr noundef %9530) #10
  %9532 = call i32 @isatty(i32 noundef %9531) #10
  %9533 = icmp ne i32 %9532, 0
  br i1 %9533, label %9534, label %9551

9534:                                             ; preds = %9529
  %9535 = load i32, ptr %230, align 4, !tbaa !5
  %9536 = call ptr @__errno_location() #11
  store i32 %9535, ptr %9536, align 4, !tbaa !5
  %9537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9538 = load i32, ptr @test_count, align 4, !tbaa !5
  %9539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9540 = load i32, ptr %9539, align 4, !tbaa !5
  %9541 = call ptr @s2n_strerror(i32 noundef %9540, ptr noundef @.str.4)
  %9542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  %9544 = call ptr @s2n_strerror_debug(i32 noundef %9543, ptr noundef @.str.4)
  %9545 = call ptr @__errno_location() #11
  %9546 = load i32, ptr %9545, align 4, !tbaa !5
  %9547 = call ptr @strerror(i32 noundef %9546) #10
  %9548 = call ptr @__errno_location() #11
  %9549 = load i32, ptr %9548, align 4, !tbaa !5
  %9550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9537, ptr noundef @.str.2, i32 noundef %9538, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9541, ptr noundef %9544, ptr noundef %9547, i32 noundef %9549) #10
  br label %9568

9551:                                             ; preds = %9529, %9522
  %9552 = load i32, ptr %230, align 4, !tbaa !5
  %9553 = call ptr @__errno_location() #11
  store i32 %9552, ptr %9553, align 4, !tbaa !5
  %9554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9555 = load i32, ptr @test_count, align 4, !tbaa !5
  %9556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9557 = load i32, ptr %9556, align 4, !tbaa !5
  %9558 = call ptr @s2n_strerror(i32 noundef %9557, ptr noundef @.str.4)
  %9559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9560 = load i32, ptr %9559, align 4, !tbaa !5
  %9561 = call ptr @s2n_strerror_debug(i32 noundef %9560, ptr noundef @.str.4)
  %9562 = call ptr @__errno_location() #11
  %9563 = load i32, ptr %9562, align 4, !tbaa !5
  %9564 = call ptr @strerror(i32 noundef %9563) #10
  %9565 = call ptr @__errno_location() #11
  %9566 = load i32, ptr %9565, align 4, !tbaa !5
  %9567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9554, ptr noundef @.str.5, i32 noundef %9555, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 448, ptr noundef %9558, ptr noundef %9561, ptr noundef %9564, i32 noundef %9566) #10
  br label %9568

9568:                                             ; preds = %9551, %9534
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #10
  br label %9569

9569:                                             ; preds = %9568
  br label %9570

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

9571:                                             ; No predecessors!
  br label %9572

9572:                                             ; preds = %9571
  br label %9573

9573:                                             ; preds = %9572, %9515
  br label %9574

9574:                                             ; preds = %9573
  br label %9575

9575:                                             ; preds = %9574
  br label %9576

9576:                                             ; preds = %9575
  %9577 = load i32, ptr @test_count, align 4, !tbaa !5
  %9578 = add nsw i32 %9577, 1
  store i32 %9578, ptr @test_count, align 4, !tbaa !5
  %9579 = load ptr, ptr %229, align 8, !tbaa !9
  %9580 = load ptr, ptr %12, align 8, !tbaa !9
  %9581 = call i32 @s2n_connection_set_config(ptr noundef %9579, ptr noundef %9580)
  %9582 = icmp eq i32 %9581, -1
  br i1 %9582, label %9583, label %9636

9583:                                             ; preds = %9576
  br label %9584

9584:                                             ; preds = %9583
  br label %9585

9585:                                             ; preds = %9584
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #10
  %9586 = call ptr @__errno_location() #11
  %9587 = load i32, ptr %9586, align 4, !tbaa !5
  store i32 %9587, ptr %231, align 4, !tbaa !5
  %9588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9589 = call i32 @s2n_print_stacktrace(ptr noundef %9588)
  %9590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9591 = trunc i8 %9590 to i1
  br i1 %9591, label %9592, label %9614

9592:                                             ; preds = %9585
  %9593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9594 = call i32 @fileno(ptr noundef %9593) #10
  %9595 = call i32 @isatty(i32 noundef %9594) #10
  %9596 = icmp ne i32 %9595, 0
  br i1 %9596, label %9597, label %9614

9597:                                             ; preds = %9592
  %9598 = load i32, ptr %231, align 4, !tbaa !5
  %9599 = call ptr @__errno_location() #11
  store i32 %9598, ptr %9599, align 4, !tbaa !5
  %9600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9601 = load i32, ptr @test_count, align 4, !tbaa !5
  %9602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9603 = load i32, ptr %9602, align 4, !tbaa !5
  %9604 = call ptr @s2n_strerror(i32 noundef %9603, ptr noundef @.str.4)
  %9605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9606 = load i32, ptr %9605, align 4, !tbaa !5
  %9607 = call ptr @s2n_strerror_debug(i32 noundef %9606, ptr noundef @.str.4)
  %9608 = call ptr @__errno_location() #11
  %9609 = load i32, ptr %9608, align 4, !tbaa !5
  %9610 = call ptr @strerror(i32 noundef %9609) #10
  %9611 = call ptr @__errno_location() #11
  %9612 = load i32, ptr %9611, align 4, !tbaa !5
  %9613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9600, ptr noundef @.str.2, i32 noundef %9601, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 449, ptr noundef %9604, ptr noundef %9607, ptr noundef %9610, i32 noundef %9612) #10
  br label %9631

9614:                                             ; preds = %9592, %9585
  %9615 = load i32, ptr %231, align 4, !tbaa !5
  %9616 = call ptr @__errno_location() #11
  store i32 %9615, ptr %9616, align 4, !tbaa !5
  %9617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9618 = load i32, ptr @test_count, align 4, !tbaa !5
  %9619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9620 = load i32, ptr %9619, align 4, !tbaa !5
  %9621 = call ptr @s2n_strerror(i32 noundef %9620, ptr noundef @.str.4)
  %9622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9623 = load i32, ptr %9622, align 4, !tbaa !5
  %9624 = call ptr @s2n_strerror_debug(i32 noundef %9623, ptr noundef @.str.4)
  %9625 = call ptr @__errno_location() #11
  %9626 = load i32, ptr %9625, align 4, !tbaa !5
  %9627 = call ptr @strerror(i32 noundef %9626) #10
  %9628 = call ptr @__errno_location() #11
  %9629 = load i32, ptr %9628, align 4, !tbaa !5
  %9630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9617, ptr noundef @.str.5, i32 noundef %9618, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 449, ptr noundef %9621, ptr noundef %9624, ptr noundef %9627, i32 noundef %9629) #10
  br label %9631

9631:                                             ; preds = %9614, %9597
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #10
  br label %9632

9632:                                             ; preds = %9631
  br label %9633

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

9634:                                             ; No predecessors!
  br label %9635

9635:                                             ; preds = %9634
  br label %9636

9636:                                             ; preds = %9635, %9576
  br label %9637

9637:                                             ; preds = %9636
  br label %9638

9638:                                             ; preds = %9637
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #10
  call void @llvm.memset.p0.i64(ptr align 4 %232, i8 0, i64 8, i1 false)
  br label %9639

9639:                                             ; preds = %9638
  %9640 = load i32, ptr @test_count, align 4, !tbaa !5
  %9641 = add nsw i32 %9640, 1
  store i32 %9641, ptr @test_count, align 4, !tbaa !5
  %9642 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %232)
  %9643 = icmp eq i32 %9642, -1
  br i1 %9643, label %9644, label %9697

9644:                                             ; preds = %9639
  br label %9645

9645:                                             ; preds = %9644
  br label %9646

9646:                                             ; preds = %9645
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #10
  %9647 = call ptr @__errno_location() #11
  %9648 = load i32, ptr %9647, align 4, !tbaa !5
  store i32 %9648, ptr %233, align 4, !tbaa !5
  %9649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9650 = call i32 @s2n_print_stacktrace(ptr noundef %9649)
  %9651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9652 = trunc i8 %9651 to i1
  br i1 %9652, label %9653, label %9675

9653:                                             ; preds = %9646
  %9654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9655 = call i32 @fileno(ptr noundef %9654) #10
  %9656 = call i32 @isatty(i32 noundef %9655) #10
  %9657 = icmp ne i32 %9656, 0
  br i1 %9657, label %9658, label %9675

9658:                                             ; preds = %9653
  %9659 = load i32, ptr %233, align 4, !tbaa !5
  %9660 = call ptr @__errno_location() #11
  store i32 %9659, ptr %9660, align 4, !tbaa !5
  %9661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9662 = load i32, ptr @test_count, align 4, !tbaa !5
  %9663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9664 = load i32, ptr %9663, align 4, !tbaa !5
  %9665 = call ptr @s2n_strerror(i32 noundef %9664, ptr noundef @.str.4)
  %9666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9667 = load i32, ptr %9666, align 4, !tbaa !5
  %9668 = call ptr @s2n_strerror_debug(i32 noundef %9667, ptr noundef @.str.4)
  %9669 = call ptr @__errno_location() #11
  %9670 = load i32, ptr %9669, align 4, !tbaa !5
  %9671 = call ptr @strerror(i32 noundef %9670) #10
  %9672 = call ptr @__errno_location() #11
  %9673 = load i32, ptr %9672, align 4, !tbaa !5
  %9674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9661, ptr noundef @.str.2, i32 noundef %9662, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9665, ptr noundef %9668, ptr noundef %9671, i32 noundef %9673) #10
  br label %9692

9675:                                             ; preds = %9653, %9646
  %9676 = load i32, ptr %233, align 4, !tbaa !5
  %9677 = call ptr @__errno_location() #11
  store i32 %9676, ptr %9677, align 4, !tbaa !5
  %9678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9679 = load i32, ptr @test_count, align 4, !tbaa !5
  %9680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9681 = load i32, ptr %9680, align 4, !tbaa !5
  %9682 = call ptr @s2n_strerror(i32 noundef %9681, ptr noundef @.str.4)
  %9683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9684 = load i32, ptr %9683, align 4, !tbaa !5
  %9685 = call ptr @s2n_strerror_debug(i32 noundef %9684, ptr noundef @.str.4)
  %9686 = call ptr @__errno_location() #11
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  %9688 = call ptr @strerror(i32 noundef %9687) #10
  %9689 = call ptr @__errno_location() #11
  %9690 = load i32, ptr %9689, align 4, !tbaa !5
  %9691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9678, ptr noundef @.str.5, i32 noundef %9679, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 452, ptr noundef %9682, ptr noundef %9685, ptr noundef %9688, i32 noundef %9690) #10
  br label %9692

9692:                                             ; preds = %9675, %9658
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #10
  br label %9693

9693:                                             ; preds = %9692
  br label %9694

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

9695:                                             ; No predecessors!
  br label %9696

9696:                                             ; preds = %9695
  br label %9697

9697:                                             ; preds = %9696, %9639
  br label %9698

9698:                                             ; preds = %9697
  br label %9699

9699:                                             ; preds = %9698
  br label %9700

9700:                                             ; preds = %9699
  %9701 = load i32, ptr @test_count, align 4, !tbaa !5
  %9702 = add nsw i32 %9701, 1
  store i32 %9702, ptr @test_count, align 4, !tbaa !5
  %9703 = load ptr, ptr %225, align 8, !tbaa !9
  %9704 = call i32 @s2n_connection_set_io_pair(ptr noundef %9703, ptr noundef %232)
  %9705 = icmp eq i32 %9704, -1
  br i1 %9705, label %9706, label %9759

9706:                                             ; preds = %9700
  br label %9707

9707:                                             ; preds = %9706
  br label %9708

9708:                                             ; preds = %9707
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #10
  %9709 = call ptr @__errno_location() #11
  %9710 = load i32, ptr %9709, align 4, !tbaa !5
  store i32 %9710, ptr %234, align 4, !tbaa !5
  %9711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9712 = call i32 @s2n_print_stacktrace(ptr noundef %9711)
  %9713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9714 = trunc i8 %9713 to i1
  br i1 %9714, label %9715, label %9737

9715:                                             ; preds = %9708
  %9716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9717 = call i32 @fileno(ptr noundef %9716) #10
  %9718 = call i32 @isatty(i32 noundef %9717) #10
  %9719 = icmp ne i32 %9718, 0
  br i1 %9719, label %9720, label %9737

9720:                                             ; preds = %9715
  %9721 = load i32, ptr %234, align 4, !tbaa !5
  %9722 = call ptr @__errno_location() #11
  store i32 %9721, ptr %9722, align 4, !tbaa !5
  %9723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9724 = load i32, ptr @test_count, align 4, !tbaa !5
  %9725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9726 = load i32, ptr %9725, align 4, !tbaa !5
  %9727 = call ptr @s2n_strerror(i32 noundef %9726, ptr noundef @.str.4)
  %9728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9729 = load i32, ptr %9728, align 4, !tbaa !5
  %9730 = call ptr @s2n_strerror_debug(i32 noundef %9729, ptr noundef @.str.4)
  %9731 = call ptr @__errno_location() #11
  %9732 = load i32, ptr %9731, align 4, !tbaa !5
  %9733 = call ptr @strerror(i32 noundef %9732) #10
  %9734 = call ptr @__errno_location() #11
  %9735 = load i32, ptr %9734, align 4, !tbaa !5
  %9736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9723, ptr noundef @.str.2, i32 noundef %9724, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9727, ptr noundef %9730, ptr noundef %9733, i32 noundef %9735) #10
  br label %9754

9737:                                             ; preds = %9715, %9708
  %9738 = load i32, ptr %234, align 4, !tbaa !5
  %9739 = call ptr @__errno_location() #11
  store i32 %9738, ptr %9739, align 4, !tbaa !5
  %9740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9741 = load i32, ptr @test_count, align 4, !tbaa !5
  %9742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9743 = load i32, ptr %9742, align 4, !tbaa !5
  %9744 = call ptr @s2n_strerror(i32 noundef %9743, ptr noundef @.str.4)
  %9745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9746 = load i32, ptr %9745, align 4, !tbaa !5
  %9747 = call ptr @s2n_strerror_debug(i32 noundef %9746, ptr noundef @.str.4)
  %9748 = call ptr @__errno_location() #11
  %9749 = load i32, ptr %9748, align 4, !tbaa !5
  %9750 = call ptr @strerror(i32 noundef %9749) #10
  %9751 = call ptr @__errno_location() #11
  %9752 = load i32, ptr %9751, align 4, !tbaa !5
  %9753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9740, ptr noundef @.str.5, i32 noundef %9741, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 453, ptr noundef %9744, ptr noundef %9747, ptr noundef %9750, i32 noundef %9752) #10
  br label %9754

9754:                                             ; preds = %9737, %9720
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #10
  br label %9755

9755:                                             ; preds = %9754
  br label %9756

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

9757:                                             ; No predecessors!
  br label %9758

9758:                                             ; preds = %9757
  br label %9759

9759:                                             ; preds = %9758, %9700
  br label %9760

9760:                                             ; preds = %9759
  br label %9761

9761:                                             ; preds = %9760
  br label %9762

9762:                                             ; preds = %9761
  %9763 = load i32, ptr @test_count, align 4, !tbaa !5
  %9764 = add nsw i32 %9763, 1
  store i32 %9764, ptr @test_count, align 4, !tbaa !5
  %9765 = load ptr, ptr %229, align 8, !tbaa !9
  %9766 = call i32 @s2n_connection_set_io_pair(ptr noundef %9765, ptr noundef %232)
  %9767 = icmp eq i32 %9766, -1
  br i1 %9767, label %9768, label %9821

9768:                                             ; preds = %9762
  br label %9769

9769:                                             ; preds = %9768
  br label %9770

9770:                                             ; preds = %9769
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #10
  %9771 = call ptr @__errno_location() #11
  %9772 = load i32, ptr %9771, align 4, !tbaa !5
  store i32 %9772, ptr %235, align 4, !tbaa !5
  %9773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9774 = call i32 @s2n_print_stacktrace(ptr noundef %9773)
  %9775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9776 = trunc i8 %9775 to i1
  br i1 %9776, label %9777, label %9799

9777:                                             ; preds = %9770
  %9778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9779 = call i32 @fileno(ptr noundef %9778) #10
  %9780 = call i32 @isatty(i32 noundef %9779) #10
  %9781 = icmp ne i32 %9780, 0
  br i1 %9781, label %9782, label %9799

9782:                                             ; preds = %9777
  %9783 = load i32, ptr %235, align 4, !tbaa !5
  %9784 = call ptr @__errno_location() #11
  store i32 %9783, ptr %9784, align 4, !tbaa !5
  %9785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9786 = load i32, ptr @test_count, align 4, !tbaa !5
  %9787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9788 = load i32, ptr %9787, align 4, !tbaa !5
  %9789 = call ptr @s2n_strerror(i32 noundef %9788, ptr noundef @.str.4)
  %9790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9791 = load i32, ptr %9790, align 4, !tbaa !5
  %9792 = call ptr @s2n_strerror_debug(i32 noundef %9791, ptr noundef @.str.4)
  %9793 = call ptr @__errno_location() #11
  %9794 = load i32, ptr %9793, align 4, !tbaa !5
  %9795 = call ptr @strerror(i32 noundef %9794) #10
  %9796 = call ptr @__errno_location() #11
  %9797 = load i32, ptr %9796, align 4, !tbaa !5
  %9798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9785, ptr noundef @.str.2, i32 noundef %9786, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 454, ptr noundef %9789, ptr noundef %9792, ptr noundef %9795, i32 noundef %9797) #10
  br label %9816

9799:                                             ; preds = %9777, %9770
  %9800 = load i32, ptr %235, align 4, !tbaa !5
  %9801 = call ptr @__errno_location() #11
  store i32 %9800, ptr %9801, align 4, !tbaa !5
  %9802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9803 = load i32, ptr @test_count, align 4, !tbaa !5
  %9804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9805 = load i32, ptr %9804, align 4, !tbaa !5
  %9806 = call ptr @s2n_strerror(i32 noundef %9805, ptr noundef @.str.4)
  %9807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  %9809 = call ptr @s2n_strerror_debug(i32 noundef %9808, ptr noundef @.str.4)
  %9810 = call ptr @__errno_location() #11
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  %9812 = call ptr @strerror(i32 noundef %9811) #10
  %9813 = call ptr @__errno_location() #11
  %9814 = load i32, ptr %9813, align 4, !tbaa !5
  %9815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9802, ptr noundef @.str.5, i32 noundef %9803, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 454, ptr noundef %9806, ptr noundef %9809, ptr noundef %9812, i32 noundef %9814) #10
  br label %9816

9816:                                             ; preds = %9799, %9782
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #10
  br label %9817

9817:                                             ; preds = %9816
  br label %9818

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

9819:                                             ; No predecessors!
  br label %9820

9820:                                             ; preds = %9819
  br label %9821

9821:                                             ; preds = %9820, %9762
  br label %9822

9822:                                             ; preds = %9821
  br label %9823

9823:                                             ; preds = %9822
  br label %9824

9824:                                             ; preds = %9823
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = add nsw i32 %9825, 1
  store i32 %9826, ptr @test_count, align 4, !tbaa !5
  %9827 = load ptr, ptr %229, align 8, !tbaa !9
  %9828 = load ptr, ptr %225, align 8, !tbaa !9
  %9829 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9827, ptr noundef %9828)
  %9830 = icmp eq i32 %9829, -1
  br i1 %9830, label %9831, label %9884

9831:                                             ; preds = %9824
  br label %9832

9832:                                             ; preds = %9831
  br label %9833

9833:                                             ; preds = %9832
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #10
  %9834 = call ptr @__errno_location() #11
  %9835 = load i32, ptr %9834, align 4, !tbaa !5
  store i32 %9835, ptr %236, align 4, !tbaa !5
  %9836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9837 = call i32 @s2n_print_stacktrace(ptr noundef %9836)
  %9838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9839 = trunc i8 %9838 to i1
  br i1 %9839, label %9840, label %9862

9840:                                             ; preds = %9833
  %9841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9842 = call i32 @fileno(ptr noundef %9841) #10
  %9843 = call i32 @isatty(i32 noundef %9842) #10
  %9844 = icmp ne i32 %9843, 0
  br i1 %9844, label %9845, label %9862

9845:                                             ; preds = %9840
  %9846 = load i32, ptr %236, align 4, !tbaa !5
  %9847 = call ptr @__errno_location() #11
  store i32 %9846, ptr %9847, align 4, !tbaa !5
  %9848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9849 = load i32, ptr @test_count, align 4, !tbaa !5
  %9850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9851 = load i32, ptr %9850, align 4, !tbaa !5
  %9852 = call ptr @s2n_strerror(i32 noundef %9851, ptr noundef @.str.4)
  %9853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9854 = load i32, ptr %9853, align 4, !tbaa !5
  %9855 = call ptr @s2n_strerror_debug(i32 noundef %9854, ptr noundef @.str.4)
  %9856 = call ptr @__errno_location() #11
  %9857 = load i32, ptr %9856, align 4, !tbaa !5
  %9858 = call ptr @strerror(i32 noundef %9857) #10
  %9859 = call ptr @__errno_location() #11
  %9860 = load i32, ptr %9859, align 4, !tbaa !5
  %9861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9848, ptr noundef @.str.2, i32 noundef %9849, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9852, ptr noundef %9855, ptr noundef %9858, i32 noundef %9860) #10
  br label %9879

9862:                                             ; preds = %9840, %9833
  %9863 = load i32, ptr %236, align 4, !tbaa !5
  %9864 = call ptr @__errno_location() #11
  store i32 %9863, ptr %9864, align 4, !tbaa !5
  %9865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9866 = load i32, ptr @test_count, align 4, !tbaa !5
  %9867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9868 = load i32, ptr %9867, align 4, !tbaa !5
  %9869 = call ptr @s2n_strerror(i32 noundef %9868, ptr noundef @.str.4)
  %9870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9871 = load i32, ptr %9870, align 4, !tbaa !5
  %9872 = call ptr @s2n_strerror_debug(i32 noundef %9871, ptr noundef @.str.4)
  %9873 = call ptr @__errno_location() #11
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  %9875 = call ptr @strerror(i32 noundef %9874) #10
  %9876 = call ptr @__errno_location() #11
  %9877 = load i32, ptr %9876, align 4, !tbaa !5
  %9878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9865, ptr noundef @.str.5, i32 noundef %9866, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 457, ptr noundef %9869, ptr noundef %9872, ptr noundef %9875, i32 noundef %9877) #10
  br label %9879

9879:                                             ; preds = %9862, %9845
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #10
  br label %9880

9880:                                             ; preds = %9879
  br label %9881

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

9882:                                             ; No predecessors!
  br label %9883

9883:                                             ; preds = %9882
  br label %9884

9884:                                             ; preds = %9883, %9824
  br label %9885

9885:                                             ; preds = %9884
  br label %9886

9886:                                             ; preds = %9885
  br label %9887

9887:                                             ; preds = %9886
  %9888 = load i32, ptr @test_count, align 4, !tbaa !5
  %9889 = add nsw i32 %9888, 1
  store i32 %9889, ptr @test_count, align 4, !tbaa !5
  %9890 = load ptr, ptr %229, align 8, !tbaa !9
  %9891 = call i32 @s2n_send_client_hello_request(ptr noundef %9890)
  %9892 = getelementptr inbounds %struct.s2n_result, ptr %237, i32 0, i32 0
  store i32 %9891, ptr %9892, align 4
  %9893 = getelementptr inbounds %struct.s2n_result, ptr %237, i32 0, i32 0
  %9894 = load i32, ptr %9893, align 4
  %9895 = call zeroext i1 @s2n_result_is_ok(i32 %9894)
  br i1 %9895, label %9949, label %9896

9896:                                             ; preds = %9887
  br label %9897

9897:                                             ; preds = %9896
  br label %9898

9898:                                             ; preds = %9897
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #10
  %9899 = call ptr @__errno_location() #11
  %9900 = load i32, ptr %9899, align 4, !tbaa !5
  store i32 %9900, ptr %238, align 4, !tbaa !5
  %9901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9902 = call i32 @s2n_print_stacktrace(ptr noundef %9901)
  %9903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9904 = trunc i8 %9903 to i1
  br i1 %9904, label %9905, label %9927

9905:                                             ; preds = %9898
  %9906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9907 = call i32 @fileno(ptr noundef %9906) #10
  %9908 = call i32 @isatty(i32 noundef %9907) #10
  %9909 = icmp ne i32 %9908, 0
  br i1 %9909, label %9910, label %9927

9910:                                             ; preds = %9905
  %9911 = load i32, ptr %238, align 4, !tbaa !5
  %9912 = call ptr @__errno_location() #11
  store i32 %9911, ptr %9912, align 4, !tbaa !5
  %9913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9914 = load i32, ptr @test_count, align 4, !tbaa !5
  %9915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9916 = load i32, ptr %9915, align 4, !tbaa !5
  %9917 = call ptr @s2n_strerror(i32 noundef %9916, ptr noundef @.str.4)
  %9918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9919 = load i32, ptr %9918, align 4, !tbaa !5
  %9920 = call ptr @s2n_strerror_debug(i32 noundef %9919, ptr noundef @.str.4)
  %9921 = call ptr @__errno_location() #11
  %9922 = load i32, ptr %9921, align 4, !tbaa !5
  %9923 = call ptr @strerror(i32 noundef %9922) #10
  %9924 = call ptr @__errno_location() #11
  %9925 = load i32, ptr %9924, align 4, !tbaa !5
  %9926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9913, ptr noundef @.str.2, i32 noundef %9914, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 460, ptr noundef %9917, ptr noundef %9920, ptr noundef %9923, i32 noundef %9925) #10
  br label %9944

9927:                                             ; preds = %9905, %9898
  %9928 = load i32, ptr %238, align 4, !tbaa !5
  %9929 = call ptr @__errno_location() #11
  store i32 %9928, ptr %9929, align 4, !tbaa !5
  %9930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9931 = load i32, ptr @test_count, align 4, !tbaa !5
  %9932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  %9934 = call ptr @s2n_strerror(i32 noundef %9933, ptr noundef @.str.4)
  %9935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  %9937 = call ptr @s2n_strerror_debug(i32 noundef %9936, ptr noundef @.str.4)
  %9938 = call ptr @__errno_location() #11
  %9939 = load i32, ptr %9938, align 4, !tbaa !5
  %9940 = call ptr @strerror(i32 noundef %9939) #10
  %9941 = call ptr @__errno_location() #11
  %9942 = load i32, ptr %9941, align 4, !tbaa !5
  %9943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9930, ptr noundef @.str.5, i32 noundef %9931, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 460, ptr noundef %9934, ptr noundef %9937, ptr noundef %9940, i32 noundef %9942) #10
  br label %9944

9944:                                             ; preds = %9927, %9910
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #10
  br label %9945

9945:                                             ; preds = %9944
  br label %9946

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

9947:                                             ; No predecessors!
  br label %9948

9948:                                             ; preds = %9947
  br label %9949

9949:                                             ; preds = %9948, %9887
  br label %9950

9950:                                             ; preds = %9949
  br label %9951

9951:                                             ; preds = %9950
  br label %9952

9952:                                             ; preds = %9951
  %9953 = load i32, ptr @test_count, align 4, !tbaa !5
  %9954 = add nsw i32 %9953, 1
  store i32 %9954, ptr @test_count, align 4, !tbaa !5
  %9955 = load ptr, ptr %225, align 8, !tbaa !9
  %9956 = getelementptr inbounds %struct.s2n_connection, ptr %9955, i32 0, i32 1
  %9957 = load ptr, ptr %9956, align 8, !tbaa !47
  %9958 = getelementptr inbounds %struct.s2n_config, ptr %9957, i32 0, i32 54
  %9959 = load ptr, ptr %9958, align 8, !tbaa !48
  %9960 = icmp eq ptr %9959, null
  br i1 %9960, label %9961, label %10014

9961:                                             ; preds = %9952
  br label %9962

9962:                                             ; preds = %9961
  br label %9963

9963:                                             ; preds = %9962
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #10
  %9964 = call ptr @__errno_location() #11
  %9965 = load i32, ptr %9964, align 4, !tbaa !5
  store i32 %9965, ptr %239, align 4, !tbaa !5
  %9966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9967 = call i32 @s2n_print_stacktrace(ptr noundef %9966)
  %9968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9969 = trunc i8 %9968 to i1
  br i1 %9969, label %9970, label %9992

9970:                                             ; preds = %9963
  %9971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9972 = call i32 @fileno(ptr noundef %9971) #10
  %9973 = call i32 @isatty(i32 noundef %9972) #10
  %9974 = icmp ne i32 %9973, 0
  br i1 %9974, label %9975, label %9992

9975:                                             ; preds = %9970
  %9976 = load i32, ptr %239, align 4, !tbaa !5
  %9977 = call ptr @__errno_location() #11
  store i32 %9976, ptr %9977, align 4, !tbaa !5
  %9978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9979 = load i32, ptr @test_count, align 4, !tbaa !5
  %9980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9981 = load i32, ptr %9980, align 4, !tbaa !5
  %9982 = call ptr @s2n_strerror(i32 noundef %9981, ptr noundef @.str.4)
  %9983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9984 = load i32, ptr %9983, align 4, !tbaa !5
  %9985 = call ptr @s2n_strerror_debug(i32 noundef %9984, ptr noundef @.str.4)
  %9986 = call ptr @__errno_location() #11
  %9987 = load i32, ptr %9986, align 4, !tbaa !5
  %9988 = call ptr @strerror(i32 noundef %9987) #10
  %9989 = call ptr @__errno_location() #11
  %9990 = load i32, ptr %9989, align 4, !tbaa !5
  %9991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9978, ptr noundef @.str.2, i32 noundef %9979, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 466, ptr noundef %9982, ptr noundef %9985, ptr noundef %9988, i32 noundef %9990) #10
  br label %10009

9992:                                             ; preds = %9970, %9963
  %9993 = load i32, ptr %239, align 4, !tbaa !5
  %9994 = call ptr @__errno_location() #11
  store i32 %9993, ptr %9994, align 4, !tbaa !5
  %9995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9996 = load i32, ptr @test_count, align 4, !tbaa !5
  %9997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call ptr @s2n_strerror(i32 noundef %9998, ptr noundef @.str.4)
  %10000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10001 = load i32, ptr %10000, align 4, !tbaa !5
  %10002 = call ptr @s2n_strerror_debug(i32 noundef %10001, ptr noundef @.str.4)
  %10003 = call ptr @__errno_location() #11
  %10004 = load i32, ptr %10003, align 4, !tbaa !5
  %10005 = call ptr @strerror(i32 noundef %10004) #10
  %10006 = call ptr @__errno_location() #11
  %10007 = load i32, ptr %10006, align 4, !tbaa !5
  %10008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9995, ptr noundef @.str.5, i32 noundef %9996, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 466, ptr noundef %9999, ptr noundef %10002, ptr noundef %10005, i32 noundef %10007) #10
  br label %10009

10009:                                            ; preds = %9992, %9975
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #10
  br label %10010

10010:                                            ; preds = %10009
  br label %10011

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

10012:                                            ; No predecessors!
  br label %10013

10013:                                            ; preds = %10012
  br label %10014

10014:                                            ; preds = %10013, %9952
  br label %10015

10015:                                            ; preds = %10014
  br label %10016

10016:                                            ; preds = %10015
  %10017 = getelementptr inbounds %struct.s2n_test_reneg_req_ctx, ptr %224, i32 0, i32 1
  store i8 -1, ptr %10017, align 4, !tbaa !52
  br label %10018

10018:                                            ; preds = %10016
  br label %10019

10019:                                            ; preds = %10018
  br label %10020

10020:                                            ; preds = %10019
  %10021 = load i32, ptr @test_count, align 4, !tbaa !5
  %10022 = add nsw i32 %10021, 1
  store i32 %10022, ptr @test_count, align 4, !tbaa !5
  %10023 = load ptr, ptr %229, align 8, !tbaa !9
  %10024 = load ptr, ptr %225, align 8, !tbaa !9
  %10025 = call i32 @s2n_send_and_recv_test(ptr noundef %10023, ptr noundef %10024)
  %10026 = getelementptr inbounds %struct.s2n_result, ptr %240, i32 0, i32 0
  store i32 %10025, ptr %10026, align 4
  %10027 = getelementptr inbounds %struct.s2n_result, ptr %240, i32 0, i32 0
  %10028 = load i32, ptr %10027, align 4
  %10029 = call zeroext i1 @s2n_result_is_error(i32 %10028)
  br i1 %10029, label %10083, label %10030

10030:                                            ; preds = %10020
  br label %10031

10031:                                            ; preds = %10030
  br label %10032

10032:                                            ; preds = %10031
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #10
  %10033 = call ptr @__errno_location() #11
  %10034 = load i32, ptr %10033, align 4, !tbaa !5
  store i32 %10034, ptr %241, align 4, !tbaa !5
  %10035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10036 = call i32 @s2n_print_stacktrace(ptr noundef %10035)
  %10037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10038 = trunc i8 %10037 to i1
  br i1 %10038, label %10039, label %10061

10039:                                            ; preds = %10032
  %10040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10041 = call i32 @fileno(ptr noundef %10040) #10
  %10042 = call i32 @isatty(i32 noundef %10041) #10
  %10043 = icmp ne i32 %10042, 0
  br i1 %10043, label %10044, label %10061

10044:                                            ; preds = %10039
  %10045 = load i32, ptr %241, align 4, !tbaa !5
  %10046 = call ptr @__errno_location() #11
  store i32 %10045, ptr %10046, align 4, !tbaa !5
  %10047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10048 = load i32, ptr @test_count, align 4, !tbaa !5
  %10049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10050 = load i32, ptr %10049, align 4, !tbaa !5
  %10051 = call ptr @s2n_strerror(i32 noundef %10050, ptr noundef @.str.4)
  %10052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10053 = load i32, ptr %10052, align 4, !tbaa !5
  %10054 = call ptr @s2n_strerror_debug(i32 noundef %10053, ptr noundef @.str.4)
  %10055 = call ptr @__errno_location() #11
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @strerror(i32 noundef %10056) #10
  %10058 = call ptr @__errno_location() #11
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10047, ptr noundef @.str.2, i32 noundef %10048, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10051, ptr noundef %10054, ptr noundef %10057, i32 noundef %10059) #10
  br label %10078

10061:                                            ; preds = %10039, %10032
  %10062 = load i32, ptr %241, align 4, !tbaa !5
  %10063 = call ptr @__errno_location() #11
  store i32 %10062, ptr %10063, align 4, !tbaa !5
  %10064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10065 = load i32, ptr @test_count, align 4, !tbaa !5
  %10066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10067 = load i32, ptr %10066, align 4, !tbaa !5
  %10068 = call ptr @s2n_strerror(i32 noundef %10067, ptr noundef @.str.4)
  %10069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10070 = load i32, ptr %10069, align 4, !tbaa !5
  %10071 = call ptr @s2n_strerror_debug(i32 noundef %10070, ptr noundef @.str.4)
  %10072 = call ptr @__errno_location() #11
  %10073 = load i32, ptr %10072, align 4, !tbaa !5
  %10074 = call ptr @strerror(i32 noundef %10073) #10
  %10075 = call ptr @__errno_location() #11
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  %10077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10064, ptr noundef @.str.5, i32 noundef %10065, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10068, ptr noundef %10071, ptr noundef %10074, i32 noundef %10076) #10
  br label %10078

10078:                                            ; preds = %10061, %10044
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #10
  br label %10079

10079:                                            ; preds = %10078
  br label %10080

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

10081:                                            ; No predecessors!
  br label %10082

10082:                                            ; preds = %10081
  br label %10083

10083:                                            ; preds = %10082, %10020
  br label %10084

10084:                                            ; preds = %10083
  br label %10085

10085:                                            ; preds = %10084
  br label %10086

10086:                                            ; preds = %10085
  %10087 = load i32, ptr @test_count, align 4, !tbaa !5
  %10088 = add nsw i32 %10087, 1
  store i32 %10088, ptr @test_count, align 4, !tbaa !5
  %10089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10090 = load i32, ptr %10089, align 4, !tbaa !5
  %10091 = icmp eq i32 %10090, 335544386
  br i1 %10091, label %10145, label %10092

10092:                                            ; preds = %10086
  br label %10093

10093:                                            ; preds = %10092
  br label %10094

10094:                                            ; preds = %10093
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #10
  %10095 = call ptr @__errno_location() #11
  %10096 = load i32, ptr %10095, align 4, !tbaa !5
  store i32 %10096, ptr %242, align 4, !tbaa !5
  %10097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10098 = call i32 @s2n_print_stacktrace(ptr noundef %10097)
  %10099 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10100 = trunc i8 %10099 to i1
  br i1 %10100, label %10101, label %10123

10101:                                            ; preds = %10094
  %10102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10103 = call i32 @fileno(ptr noundef %10102) #10
  %10104 = call i32 @isatty(i32 noundef %10103) #10
  %10105 = icmp ne i32 %10104, 0
  br i1 %10105, label %10106, label %10123

10106:                                            ; preds = %10101
  %10107 = load i32, ptr %242, align 4, !tbaa !5
  %10108 = call ptr @__errno_location() #11
  store i32 %10107, ptr %10108, align 4, !tbaa !5
  %10109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10110 = load i32, ptr @test_count, align 4, !tbaa !5
  %10111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10112 = load i32, ptr %10111, align 4, !tbaa !5
  %10113 = call ptr @s2n_strerror(i32 noundef %10112, ptr noundef @.str.4)
  %10114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10115 = load i32, ptr %10114, align 4, !tbaa !5
  %10116 = call ptr @s2n_strerror_debug(i32 noundef %10115, ptr noundef @.str.4)
  %10117 = call ptr @__errno_location() #11
  %10118 = load i32, ptr %10117, align 4, !tbaa !5
  %10119 = call ptr @strerror(i32 noundef %10118) #10
  %10120 = call ptr @__errno_location() #11
  %10121 = load i32, ptr %10120, align 4, !tbaa !5
  %10122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10109, ptr noundef @.str.2, i32 noundef %10110, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10113, ptr noundef %10116, ptr noundef %10119, i32 noundef %10121) #10
  br label %10140

10123:                                            ; preds = %10101, %10094
  %10124 = load i32, ptr %242, align 4, !tbaa !5
  %10125 = call ptr @__errno_location() #11
  store i32 %10124, ptr %10125, align 4, !tbaa !5
  %10126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10127 = load i32, ptr @test_count, align 4, !tbaa !5
  %10128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10129 = load i32, ptr %10128, align 4, !tbaa !5
  %10130 = call ptr @s2n_strerror(i32 noundef %10129, ptr noundef @.str.4)
  %10131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10132 = load i32, ptr %10131, align 4, !tbaa !5
  %10133 = call ptr @s2n_strerror_debug(i32 noundef %10132, ptr noundef @.str.4)
  %10134 = call ptr @__errno_location() #11
  %10135 = load i32, ptr %10134, align 4, !tbaa !5
  %10136 = call ptr @strerror(i32 noundef %10135) #10
  %10137 = call ptr @__errno_location() #11
  %10138 = load i32, ptr %10137, align 4, !tbaa !5
  %10139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10126, ptr noundef @.str.5, i32 noundef %10127, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10130, ptr noundef %10133, ptr noundef %10136, i32 noundef %10138) #10
  br label %10140

10140:                                            ; preds = %10123, %10106
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #10
  br label %10141

10141:                                            ; preds = %10140
  br label %10142

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

10143:                                            ; No predecessors!
  br label %10144

10144:                                            ; preds = %10143
  br label %10145

10145:                                            ; preds = %10144, %10086
  br label %10146

10146:                                            ; preds = %10145
  br label %10147

10147:                                            ; preds = %10146
  br label %10148

10148:                                            ; preds = %10147
  %10149 = load i32, ptr @test_count, align 4, !tbaa !5
  %10150 = add nsw i32 %10149, 1
  store i32 %10150, ptr @test_count, align 4, !tbaa !5
  %10151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10152 = load i32, ptr %10151, align 4, !tbaa !5
  %10153 = call ptr @s2n_strerror_debug(i32 noundef %10152, ptr noundef @.str.4)
  %10154 = icmp eq ptr %10153, null
  br i1 %10154, label %10155, label %10208

10155:                                            ; preds = %10148
  br label %10156

10156:                                            ; preds = %10155
  br label %10157

10157:                                            ; preds = %10156
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #10
  %10158 = call ptr @__errno_location() #11
  %10159 = load i32, ptr %10158, align 4, !tbaa !5
  store i32 %10159, ptr %243, align 4, !tbaa !5
  %10160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10161 = call i32 @s2n_print_stacktrace(ptr noundef %10160)
  %10162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10163 = trunc i8 %10162 to i1
  br i1 %10163, label %10164, label %10186

10164:                                            ; preds = %10157
  %10165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10166 = call i32 @fileno(ptr noundef %10165) #10
  %10167 = call i32 @isatty(i32 noundef %10166) #10
  %10168 = icmp ne i32 %10167, 0
  br i1 %10168, label %10169, label %10186

10169:                                            ; preds = %10164
  %10170 = load i32, ptr %243, align 4, !tbaa !5
  %10171 = call ptr @__errno_location() #11
  store i32 %10170, ptr %10171, align 4, !tbaa !5
  %10172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10173 = load i32, ptr @test_count, align 4, !tbaa !5
  %10174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10175 = load i32, ptr %10174, align 4, !tbaa !5
  %10176 = call ptr @s2n_strerror(i32 noundef %10175, ptr noundef @.str.4)
  %10177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10178 = load i32, ptr %10177, align 4, !tbaa !5
  %10179 = call ptr @s2n_strerror_debug(i32 noundef %10178, ptr noundef @.str.4)
  %10180 = call ptr @__errno_location() #11
  %10181 = load i32, ptr %10180, align 4, !tbaa !5
  %10182 = call ptr @strerror(i32 noundef %10181) #10
  %10183 = call ptr @__errno_location() #11
  %10184 = load i32, ptr %10183, align 4, !tbaa !5
  %10185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10172, ptr noundef @.str.2, i32 noundef %10173, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10176, ptr noundef %10179, ptr noundef %10182, i32 noundef %10184) #10
  br label %10203

10186:                                            ; preds = %10164, %10157
  %10187 = load i32, ptr %243, align 4, !tbaa !5
  %10188 = call ptr @__errno_location() #11
  store i32 %10187, ptr %10188, align 4, !tbaa !5
  %10189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10190 = load i32, ptr @test_count, align 4, !tbaa !5
  %10191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10192 = load i32, ptr %10191, align 4, !tbaa !5
  %10193 = call ptr @s2n_strerror(i32 noundef %10192, ptr noundef @.str.4)
  %10194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10195 = load i32, ptr %10194, align 4, !tbaa !5
  %10196 = call ptr @s2n_strerror_debug(i32 noundef %10195, ptr noundef @.str.4)
  %10197 = call ptr @__errno_location() #11
  %10198 = load i32, ptr %10197, align 4, !tbaa !5
  %10199 = call ptr @strerror(i32 noundef %10198) #10
  %10200 = call ptr @__errno_location() #11
  %10201 = load i32, ptr %10200, align 4, !tbaa !5
  %10202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10189, ptr noundef @.str.5, i32 noundef %10190, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 473, ptr noundef %10193, ptr noundef %10196, ptr noundef %10199, i32 noundef %10201) #10
  br label %10203

10203:                                            ; preds = %10186, %10169
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #10
  br label %10204

10204:                                            ; preds = %10203
  br label %10205

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

10206:                                            ; No predecessors!
  br label %10207

10207:                                            ; preds = %10206
  br label %10208

10208:                                            ; preds = %10207, %10148
  br label %10209

10209:                                            ; preds = %10208
  br label %10210

10210:                                            ; preds = %10209
  br label %10211

10211:                                            ; preds = %10210
  br label %10212

10212:                                            ; preds = %10211
  br label %10213

10213:                                            ; preds = %10212
  %10214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10214, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10215 = call ptr @__errno_location() #11
  store i32 0, ptr %10215, align 4, !tbaa !5
  br label %10216

10216:                                            ; preds = %10213
  br label %10217

10217:                                            ; preds = %10216
  br label %10218

10218:                                            ; preds = %10217
  br label %10219

10219:                                            ; preds = %10218
  %10220 = call i32 @s2n_io_pair_close(ptr noundef %232)
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #10
  %10221 = call i32 @s2n_connection_ptr_free(ptr noundef %229)
  %10222 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  store i32 %10221, ptr %10222, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %229) #10
  %10223 = call i32 @s2n_connection_ptr_free(ptr noundef %225)
  %10224 = getelementptr inbounds %struct.s2n_result, ptr %245, i32 0, i32 0
  store i32 %10223, ptr %10224, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %225) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %224) #10
  %10225 = call zeroext i1 @s2n_hash_is_available(i32 noundef 1)
  br i1 %10225, label %10226, label %11951

10226:                                            ; preds = %10219
  call void @llvm.lifetime.start.p0(i64 8, ptr %246) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %246, ptr align 4 @__const.main.ctx.70, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #10
  %10227 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10227, ptr %247, align 8, !tbaa !9
  br label %10228

10228:                                            ; preds = %10226
  %10229 = load i32, ptr @test_count, align 4, !tbaa !5
  %10230 = add nsw i32 %10229, 1
  store i32 %10230, ptr @test_count, align 4, !tbaa !5
  %10231 = load ptr, ptr %247, align 8, !tbaa !9
  %10232 = icmp eq ptr %10231, null
  br i1 %10232, label %10233, label %10286

10233:                                            ; preds = %10228
  br label %10234

10234:                                            ; preds = %10233
  br label %10235

10235:                                            ; preds = %10234
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #10
  %10236 = call ptr @__errno_location() #11
  %10237 = load i32, ptr %10236, align 4, !tbaa !5
  store i32 %10237, ptr %248, align 4, !tbaa !5
  %10238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10239 = call i32 @s2n_print_stacktrace(ptr noundef %10238)
  %10240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10241 = trunc i8 %10240 to i1
  br i1 %10241, label %10242, label %10264

10242:                                            ; preds = %10235
  %10243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10244 = call i32 @fileno(ptr noundef %10243) #10
  %10245 = call i32 @isatty(i32 noundef %10244) #10
  %10246 = icmp ne i32 %10245, 0
  br i1 %10246, label %10247, label %10264

10247:                                            ; preds = %10242
  %10248 = load i32, ptr %248, align 4, !tbaa !5
  %10249 = call ptr @__errno_location() #11
  store i32 %10248, ptr %10249, align 4, !tbaa !5
  %10250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10251 = load i32, ptr @test_count, align 4, !tbaa !5
  %10252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10253 = load i32, ptr %10252, align 4, !tbaa !5
  %10254 = call ptr @s2n_strerror(i32 noundef %10253, ptr noundef @.str.4)
  %10255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10256 = load i32, ptr %10255, align 4, !tbaa !5
  %10257 = call ptr @s2n_strerror_debug(i32 noundef %10256, ptr noundef @.str.4)
  %10258 = call ptr @__errno_location() #11
  %10259 = load i32, ptr %10258, align 4, !tbaa !5
  %10260 = call ptr @strerror(i32 noundef %10259) #10
  %10261 = call ptr @__errno_location() #11
  %10262 = load i32, ptr %10261, align 4, !tbaa !5
  %10263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10250, ptr noundef @.str.2, i32 noundef %10251, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 490, ptr noundef %10254, ptr noundef %10257, ptr noundef %10260, i32 noundef %10262) #10
  br label %10281

10264:                                            ; preds = %10242, %10235
  %10265 = load i32, ptr %248, align 4, !tbaa !5
  %10266 = call ptr @__errno_location() #11
  store i32 %10265, ptr %10266, align 4, !tbaa !5
  %10267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10268 = load i32, ptr @test_count, align 4, !tbaa !5
  %10269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10270 = load i32, ptr %10269, align 4, !tbaa !5
  %10271 = call ptr @s2n_strerror(i32 noundef %10270, ptr noundef @.str.4)
  %10272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10273 = load i32, ptr %10272, align 4, !tbaa !5
  %10274 = call ptr @s2n_strerror_debug(i32 noundef %10273, ptr noundef @.str.4)
  %10275 = call ptr @__errno_location() #11
  %10276 = load i32, ptr %10275, align 4, !tbaa !5
  %10277 = call ptr @strerror(i32 noundef %10276) #10
  %10278 = call ptr @__errno_location() #11
  %10279 = load i32, ptr %10278, align 4, !tbaa !5
  %10280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10267, ptr noundef @.str.5, i32 noundef %10268, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 490, ptr noundef %10271, ptr noundef %10274, ptr noundef %10277, i32 noundef %10279) #10
  br label %10281

10281:                                            ; preds = %10264, %10247
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #10
  br label %10282

10282:                                            ; preds = %10281
  br label %10283

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

10284:                                            ; No predecessors!
  br label %10285

10285:                                            ; preds = %10284
  br label %10286

10286:                                            ; preds = %10285, %10228
  br label %10287

10287:                                            ; preds = %10286
  br label %10288

10288:                                            ; preds = %10287
  br label %10289

10289:                                            ; preds = %10288
  %10290 = load i32, ptr @test_count, align 4, !tbaa !5
  %10291 = add nsw i32 %10290, 1
  store i32 %10291, ptr @test_count, align 4, !tbaa !5
  %10292 = load ptr, ptr %247, align 8, !tbaa !9
  %10293 = load ptr, ptr %17, align 8, !tbaa !9
  %10294 = call i32 @s2n_connection_set_config(ptr noundef %10292, ptr noundef %10293)
  %10295 = icmp eq i32 %10294, -1
  br i1 %10295, label %10296, label %10349

10296:                                            ; preds = %10289
  br label %10297

10297:                                            ; preds = %10296
  br label %10298

10298:                                            ; preds = %10297
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #10
  %10299 = call ptr @__errno_location() #11
  %10300 = load i32, ptr %10299, align 4, !tbaa !5
  store i32 %10300, ptr %249, align 4, !tbaa !5
  %10301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10302 = call i32 @s2n_print_stacktrace(ptr noundef %10301)
  %10303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10304 = trunc i8 %10303 to i1
  br i1 %10304, label %10305, label %10327

10305:                                            ; preds = %10298
  %10306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10307 = call i32 @fileno(ptr noundef %10306) #10
  %10308 = call i32 @isatty(i32 noundef %10307) #10
  %10309 = icmp ne i32 %10308, 0
  br i1 %10309, label %10310, label %10327

10310:                                            ; preds = %10305
  %10311 = load i32, ptr %249, align 4, !tbaa !5
  %10312 = call ptr @__errno_location() #11
  store i32 %10311, ptr %10312, align 4, !tbaa !5
  %10313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10314 = load i32, ptr @test_count, align 4, !tbaa !5
  %10315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call ptr @s2n_strerror(i32 noundef %10316, ptr noundef @.str.4)
  %10318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10319 = load i32, ptr %10318, align 4, !tbaa !5
  %10320 = call ptr @s2n_strerror_debug(i32 noundef %10319, ptr noundef @.str.4)
  %10321 = call ptr @__errno_location() #11
  %10322 = load i32, ptr %10321, align 4, !tbaa !5
  %10323 = call ptr @strerror(i32 noundef %10322) #10
  %10324 = call ptr @__errno_location() #11
  %10325 = load i32, ptr %10324, align 4, !tbaa !5
  %10326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10313, ptr noundef @.str.2, i32 noundef %10314, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 491, ptr noundef %10317, ptr noundef %10320, ptr noundef %10323, i32 noundef %10325) #10
  br label %10344

10327:                                            ; preds = %10305, %10298
  %10328 = load i32, ptr %249, align 4, !tbaa !5
  %10329 = call ptr @__errno_location() #11
  store i32 %10328, ptr %10329, align 4, !tbaa !5
  %10330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10331 = load i32, ptr @test_count, align 4, !tbaa !5
  %10332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call ptr @s2n_strerror(i32 noundef %10333, ptr noundef @.str.4)
  %10335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10336 = load i32, ptr %10335, align 4, !tbaa !5
  %10337 = call ptr @s2n_strerror_debug(i32 noundef %10336, ptr noundef @.str.4)
  %10338 = call ptr @__errno_location() #11
  %10339 = load i32, ptr %10338, align 4, !tbaa !5
  %10340 = call ptr @strerror(i32 noundef %10339) #10
  %10341 = call ptr @__errno_location() #11
  %10342 = load i32, ptr %10341, align 4, !tbaa !5
  %10343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10330, ptr noundef @.str.5, i32 noundef %10331, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 491, ptr noundef %10334, ptr noundef %10337, ptr noundef %10340, i32 noundef %10342) #10
  br label %10344

10344:                                            ; preds = %10327, %10310
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #10
  br label %10345

10345:                                            ; preds = %10344
  br label %10346

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

10347:                                            ; No predecessors!
  br label %10348

10348:                                            ; preds = %10347
  br label %10349

10349:                                            ; preds = %10348, %10289
  br label %10350

10350:                                            ; preds = %10349
  br label %10351

10351:                                            ; preds = %10350
  br label %10352

10352:                                            ; preds = %10351
  %10353 = load i32, ptr @test_count, align 4, !tbaa !5
  %10354 = add nsw i32 %10353, 1
  store i32 %10354, ptr @test_count, align 4, !tbaa !5
  %10355 = load ptr, ptr %247, align 8, !tbaa !9
  %10356 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10355, ptr noundef @.str.71)
  %10357 = icmp eq i32 %10356, -1
  br i1 %10357, label %10358, label %10411

10358:                                            ; preds = %10352
  br label %10359

10359:                                            ; preds = %10358
  br label %10360

10360:                                            ; preds = %10359
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #10
  %10361 = call ptr @__errno_location() #11
  %10362 = load i32, ptr %10361, align 4, !tbaa !5
  store i32 %10362, ptr %250, align 4, !tbaa !5
  %10363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10364 = call i32 @s2n_print_stacktrace(ptr noundef %10363)
  %10365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10366 = trunc i8 %10365 to i1
  br i1 %10366, label %10367, label %10389

10367:                                            ; preds = %10360
  %10368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10369 = call i32 @fileno(ptr noundef %10368) #10
  %10370 = call i32 @isatty(i32 noundef %10369) #10
  %10371 = icmp ne i32 %10370, 0
  br i1 %10371, label %10372, label %10389

10372:                                            ; preds = %10367
  %10373 = load i32, ptr %250, align 4, !tbaa !5
  %10374 = call ptr @__errno_location() #11
  store i32 %10373, ptr %10374, align 4, !tbaa !5
  %10375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10376 = load i32, ptr @test_count, align 4, !tbaa !5
  %10377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10378 = load i32, ptr %10377, align 4, !tbaa !5
  %10379 = call ptr @s2n_strerror(i32 noundef %10378, ptr noundef @.str.4)
  %10380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10381 = load i32, ptr %10380, align 4, !tbaa !5
  %10382 = call ptr @s2n_strerror_debug(i32 noundef %10381, ptr noundef @.str.4)
  %10383 = call ptr @__errno_location() #11
  %10384 = load i32, ptr %10383, align 4, !tbaa !5
  %10385 = call ptr @strerror(i32 noundef %10384) #10
  %10386 = call ptr @__errno_location() #11
  %10387 = load i32, ptr %10386, align 4, !tbaa !5
  %10388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10375, ptr noundef @.str.2, i32 noundef %10376, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 492, ptr noundef %10379, ptr noundef %10382, ptr noundef %10385, i32 noundef %10387) #10
  br label %10406

10389:                                            ; preds = %10367, %10360
  %10390 = load i32, ptr %250, align 4, !tbaa !5
  %10391 = call ptr @__errno_location() #11
  store i32 %10390, ptr %10391, align 4, !tbaa !5
  %10392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10393 = load i32, ptr @test_count, align 4, !tbaa !5
  %10394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10395 = load i32, ptr %10394, align 4, !tbaa !5
  %10396 = call ptr @s2n_strerror(i32 noundef %10395, ptr noundef @.str.4)
  %10397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10398 = load i32, ptr %10397, align 4, !tbaa !5
  %10399 = call ptr @s2n_strerror_debug(i32 noundef %10398, ptr noundef @.str.4)
  %10400 = call ptr @__errno_location() #11
  %10401 = load i32, ptr %10400, align 4, !tbaa !5
  %10402 = call ptr @strerror(i32 noundef %10401) #10
  %10403 = call ptr @__errno_location() #11
  %10404 = load i32, ptr %10403, align 4, !tbaa !5
  %10405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10392, ptr noundef @.str.5, i32 noundef %10393, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 492, ptr noundef %10396, ptr noundef %10399, ptr noundef %10402, i32 noundef %10404) #10
  br label %10406

10406:                                            ; preds = %10389, %10372
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #10
  br label %10407

10407:                                            ; preds = %10406
  br label %10408

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

10409:                                            ; No predecessors!
  br label %10410

10410:                                            ; preds = %10409
  br label %10411

10411:                                            ; preds = %10410, %10352
  br label %10412

10412:                                            ; preds = %10411
  br label %10413

10413:                                            ; preds = %10412
  br label %10414

10414:                                            ; preds = %10413
  %10415 = load i32, ptr @test_count, align 4, !tbaa !5
  %10416 = add nsw i32 %10415, 1
  store i32 %10416, ptr @test_count, align 4, !tbaa !5
  %10417 = load ptr, ptr %17, align 8, !tbaa !9
  %10418 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef %10417, ptr noundef @s2n_test_reneg_req_cb, ptr noundef %246)
  %10419 = icmp eq i32 %10418, -1
  br i1 %10419, label %10420, label %10473

10420:                                            ; preds = %10414
  br label %10421

10421:                                            ; preds = %10420
  br label %10422

10422:                                            ; preds = %10421
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #10
  %10423 = call ptr @__errno_location() #11
  %10424 = load i32, ptr %10423, align 4, !tbaa !5
  store i32 %10424, ptr %251, align 4, !tbaa !5
  %10425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10426 = call i32 @s2n_print_stacktrace(ptr noundef %10425)
  %10427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10428 = trunc i8 %10427 to i1
  br i1 %10428, label %10429, label %10451

10429:                                            ; preds = %10422
  %10430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10431 = call i32 @fileno(ptr noundef %10430) #10
  %10432 = call i32 @isatty(i32 noundef %10431) #10
  %10433 = icmp ne i32 %10432, 0
  br i1 %10433, label %10434, label %10451

10434:                                            ; preds = %10429
  %10435 = load i32, ptr %251, align 4, !tbaa !5
  %10436 = call ptr @__errno_location() #11
  store i32 %10435, ptr %10436, align 4, !tbaa !5
  %10437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10438 = load i32, ptr @test_count, align 4, !tbaa !5
  %10439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10440 = load i32, ptr %10439, align 4, !tbaa !5
  %10441 = call ptr @s2n_strerror(i32 noundef %10440, ptr noundef @.str.4)
  %10442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10443 = load i32, ptr %10442, align 4, !tbaa !5
  %10444 = call ptr @s2n_strerror_debug(i32 noundef %10443, ptr noundef @.str.4)
  %10445 = call ptr @__errno_location() #11
  %10446 = load i32, ptr %10445, align 4, !tbaa !5
  %10447 = call ptr @strerror(i32 noundef %10446) #10
  %10448 = call ptr @__errno_location() #11
  %10449 = load i32, ptr %10448, align 4, !tbaa !5
  %10450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10437, ptr noundef @.str.2, i32 noundef %10438, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 493, ptr noundef %10441, ptr noundef %10444, ptr noundef %10447, i32 noundef %10449) #10
  br label %10468

10451:                                            ; preds = %10429, %10422
  %10452 = load i32, ptr %251, align 4, !tbaa !5
  %10453 = call ptr @__errno_location() #11
  store i32 %10452, ptr %10453, align 4, !tbaa !5
  %10454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10455 = load i32, ptr @test_count, align 4, !tbaa !5
  %10456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10457 = load i32, ptr %10456, align 4, !tbaa !5
  %10458 = call ptr @s2n_strerror(i32 noundef %10457, ptr noundef @.str.4)
  %10459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10460 = load i32, ptr %10459, align 4, !tbaa !5
  %10461 = call ptr @s2n_strerror_debug(i32 noundef %10460, ptr noundef @.str.4)
  %10462 = call ptr @__errno_location() #11
  %10463 = load i32, ptr %10462, align 4, !tbaa !5
  %10464 = call ptr @strerror(i32 noundef %10463) #10
  %10465 = call ptr @__errno_location() #11
  %10466 = load i32, ptr %10465, align 4, !tbaa !5
  %10467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10454, ptr noundef @.str.5, i32 noundef %10455, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 493, ptr noundef %10458, ptr noundef %10461, ptr noundef %10464, i32 noundef %10466) #10
  br label %10468

10468:                                            ; preds = %10451, %10434
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #10
  br label %10469

10469:                                            ; preds = %10468
  br label %10470

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

10471:                                            ; No predecessors!
  br label %10472

10472:                                            ; preds = %10471
  br label %10473

10473:                                            ; preds = %10472, %10414
  br label %10474

10474:                                            ; preds = %10473
  br label %10475

10475:                                            ; preds = %10474
  br label %10476

10476:                                            ; preds = %10475
  %10477 = load i32, ptr @test_count, align 4, !tbaa !5
  %10478 = add nsw i32 %10477, 1
  store i32 %10478, ptr @test_count, align 4, !tbaa !5
  %10479 = load ptr, ptr %247, align 8, !tbaa !9
  %10480 = call i32 @s2n_connection_set_blinding(ptr noundef %10479, i32 noundef 1)
  %10481 = icmp eq i32 %10480, -1
  br i1 %10481, label %10482, label %10535

10482:                                            ; preds = %10476
  br label %10483

10483:                                            ; preds = %10482
  br label %10484

10484:                                            ; preds = %10483
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #10
  %10485 = call ptr @__errno_location() #11
  %10486 = load i32, ptr %10485, align 4, !tbaa !5
  store i32 %10486, ptr %252, align 4, !tbaa !5
  %10487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10488 = call i32 @s2n_print_stacktrace(ptr noundef %10487)
  %10489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10490 = trunc i8 %10489 to i1
  br i1 %10490, label %10491, label %10513

10491:                                            ; preds = %10484
  %10492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10493 = call i32 @fileno(ptr noundef %10492) #10
  %10494 = call i32 @isatty(i32 noundef %10493) #10
  %10495 = icmp ne i32 %10494, 0
  br i1 %10495, label %10496, label %10513

10496:                                            ; preds = %10491
  %10497 = load i32, ptr %252, align 4, !tbaa !5
  %10498 = call ptr @__errno_location() #11
  store i32 %10497, ptr %10498, align 4, !tbaa !5
  %10499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10500 = load i32, ptr @test_count, align 4, !tbaa !5
  %10501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10502 = load i32, ptr %10501, align 4, !tbaa !5
  %10503 = call ptr @s2n_strerror(i32 noundef %10502, ptr noundef @.str.4)
  %10504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10505 = load i32, ptr %10504, align 4, !tbaa !5
  %10506 = call ptr @s2n_strerror_debug(i32 noundef %10505, ptr noundef @.str.4)
  %10507 = call ptr @__errno_location() #11
  %10508 = load i32, ptr %10507, align 4, !tbaa !5
  %10509 = call ptr @strerror(i32 noundef %10508) #10
  %10510 = call ptr @__errno_location() #11
  %10511 = load i32, ptr %10510, align 4, !tbaa !5
  %10512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10499, ptr noundef @.str.2, i32 noundef %10500, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 494, ptr noundef %10503, ptr noundef %10506, ptr noundef %10509, i32 noundef %10511) #10
  br label %10530

10513:                                            ; preds = %10491, %10484
  %10514 = load i32, ptr %252, align 4, !tbaa !5
  %10515 = call ptr @__errno_location() #11
  store i32 %10514, ptr %10515, align 4, !tbaa !5
  %10516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10517 = load i32, ptr @test_count, align 4, !tbaa !5
  %10518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10519 = load i32, ptr %10518, align 4, !tbaa !5
  %10520 = call ptr @s2n_strerror(i32 noundef %10519, ptr noundef @.str.4)
  %10521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10522 = load i32, ptr %10521, align 4, !tbaa !5
  %10523 = call ptr @s2n_strerror_debug(i32 noundef %10522, ptr noundef @.str.4)
  %10524 = call ptr @__errno_location() #11
  %10525 = load i32, ptr %10524, align 4, !tbaa !5
  %10526 = call ptr @strerror(i32 noundef %10525) #10
  %10527 = call ptr @__errno_location() #11
  %10528 = load i32, ptr %10527, align 4, !tbaa !5
  %10529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10516, ptr noundef @.str.5, i32 noundef %10517, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 494, ptr noundef %10520, ptr noundef %10523, ptr noundef %10526, i32 noundef %10528) #10
  br label %10530

10530:                                            ; preds = %10513, %10496
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #10
  br label %10531

10531:                                            ; preds = %10530
  br label %10532

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

10533:                                            ; No predecessors!
  br label %10534

10534:                                            ; preds = %10533
  br label %10535

10535:                                            ; preds = %10534, %10476
  br label %10536

10536:                                            ; preds = %10535
  br label %10537

10537:                                            ; preds = %10536
  call void @llvm.lifetime.start.p0(i64 8, ptr %253) #10
  %10538 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10538, ptr %253, align 8, !tbaa !9
  br label %10539

10539:                                            ; preds = %10537
  %10540 = load i32, ptr @test_count, align 4, !tbaa !5
  %10541 = add nsw i32 %10540, 1
  store i32 %10541, ptr @test_count, align 4, !tbaa !5
  %10542 = load ptr, ptr %253, align 8, !tbaa !9
  %10543 = icmp eq ptr %10542, null
  br i1 %10543, label %10544, label %10597

10544:                                            ; preds = %10539
  br label %10545

10545:                                            ; preds = %10544
  br label %10546

10546:                                            ; preds = %10545
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #10
  %10547 = call ptr @__errno_location() #11
  %10548 = load i32, ptr %10547, align 4, !tbaa !5
  store i32 %10548, ptr %254, align 4, !tbaa !5
  %10549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10550 = call i32 @s2n_print_stacktrace(ptr noundef %10549)
  %10551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10552 = trunc i8 %10551 to i1
  br i1 %10552, label %10553, label %10575

10553:                                            ; preds = %10546
  %10554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10555 = call i32 @fileno(ptr noundef %10554) #10
  %10556 = call i32 @isatty(i32 noundef %10555) #10
  %10557 = icmp ne i32 %10556, 0
  br i1 %10557, label %10558, label %10575

10558:                                            ; preds = %10553
  %10559 = load i32, ptr %254, align 4, !tbaa !5
  %10560 = call ptr @__errno_location() #11
  store i32 %10559, ptr %10560, align 4, !tbaa !5
  %10561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10562 = load i32, ptr @test_count, align 4, !tbaa !5
  %10563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10564 = load i32, ptr %10563, align 4, !tbaa !5
  %10565 = call ptr @s2n_strerror(i32 noundef %10564, ptr noundef @.str.4)
  %10566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10567 = load i32, ptr %10566, align 4, !tbaa !5
  %10568 = call ptr @s2n_strerror_debug(i32 noundef %10567, ptr noundef @.str.4)
  %10569 = call ptr @__errno_location() #11
  %10570 = load i32, ptr %10569, align 4, !tbaa !5
  %10571 = call ptr @strerror(i32 noundef %10570) #10
  %10572 = call ptr @__errno_location() #11
  %10573 = load i32, ptr %10572, align 4, !tbaa !5
  %10574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10561, ptr noundef @.str.2, i32 noundef %10562, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 498, ptr noundef %10565, ptr noundef %10568, ptr noundef %10571, i32 noundef %10573) #10
  br label %10592

10575:                                            ; preds = %10553, %10546
  %10576 = load i32, ptr %254, align 4, !tbaa !5
  %10577 = call ptr @__errno_location() #11
  store i32 %10576, ptr %10577, align 4, !tbaa !5
  %10578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10579 = load i32, ptr @test_count, align 4, !tbaa !5
  %10580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10581 = load i32, ptr %10580, align 4, !tbaa !5
  %10582 = call ptr @s2n_strerror(i32 noundef %10581, ptr noundef @.str.4)
  %10583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10584 = load i32, ptr %10583, align 4, !tbaa !5
  %10585 = call ptr @s2n_strerror_debug(i32 noundef %10584, ptr noundef @.str.4)
  %10586 = call ptr @__errno_location() #11
  %10587 = load i32, ptr %10586, align 4, !tbaa !5
  %10588 = call ptr @strerror(i32 noundef %10587) #10
  %10589 = call ptr @__errno_location() #11
  %10590 = load i32, ptr %10589, align 4, !tbaa !5
  %10591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10578, ptr noundef @.str.5, i32 noundef %10579, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 498, ptr noundef %10582, ptr noundef %10585, ptr noundef %10588, i32 noundef %10590) #10
  br label %10592

10592:                                            ; preds = %10575, %10558
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #10
  br label %10593

10593:                                            ; preds = %10592
  br label %10594

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

10595:                                            ; No predecessors!
  br label %10596

10596:                                            ; preds = %10595
  br label %10597

10597:                                            ; preds = %10596, %10539
  br label %10598

10598:                                            ; preds = %10597
  br label %10599

10599:                                            ; preds = %10598
  br label %10600

10600:                                            ; preds = %10599
  %10601 = load i32, ptr @test_count, align 4, !tbaa !5
  %10602 = add nsw i32 %10601, 1
  store i32 %10602, ptr @test_count, align 4, !tbaa !5
  %10603 = load ptr, ptr %253, align 8, !tbaa !9
  %10604 = load ptr, ptr %12, align 8, !tbaa !9
  %10605 = call i32 @s2n_connection_set_config(ptr noundef %10603, ptr noundef %10604)
  %10606 = icmp eq i32 %10605, -1
  br i1 %10606, label %10607, label %10660

10607:                                            ; preds = %10600
  br label %10608

10608:                                            ; preds = %10607
  br label %10609

10609:                                            ; preds = %10608
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #10
  %10610 = call ptr @__errno_location() #11
  %10611 = load i32, ptr %10610, align 4, !tbaa !5
  store i32 %10611, ptr %255, align 4, !tbaa !5
  %10612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10613 = call i32 @s2n_print_stacktrace(ptr noundef %10612)
  %10614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10615 = trunc i8 %10614 to i1
  br i1 %10615, label %10616, label %10638

10616:                                            ; preds = %10609
  %10617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10618 = call i32 @fileno(ptr noundef %10617) #10
  %10619 = call i32 @isatty(i32 noundef %10618) #10
  %10620 = icmp ne i32 %10619, 0
  br i1 %10620, label %10621, label %10638

10621:                                            ; preds = %10616
  %10622 = load i32, ptr %255, align 4, !tbaa !5
  %10623 = call ptr @__errno_location() #11
  store i32 %10622, ptr %10623, align 4, !tbaa !5
  %10624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10625 = load i32, ptr @test_count, align 4, !tbaa !5
  %10626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10627 = load i32, ptr %10626, align 4, !tbaa !5
  %10628 = call ptr @s2n_strerror(i32 noundef %10627, ptr noundef @.str.4)
  %10629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10630 = load i32, ptr %10629, align 4, !tbaa !5
  %10631 = call ptr @s2n_strerror_debug(i32 noundef %10630, ptr noundef @.str.4)
  %10632 = call ptr @__errno_location() #11
  %10633 = load i32, ptr %10632, align 4, !tbaa !5
  %10634 = call ptr @strerror(i32 noundef %10633) #10
  %10635 = call ptr @__errno_location() #11
  %10636 = load i32, ptr %10635, align 4, !tbaa !5
  %10637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10624, ptr noundef @.str.2, i32 noundef %10625, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 499, ptr noundef %10628, ptr noundef %10631, ptr noundef %10634, i32 noundef %10636) #10
  br label %10655

10638:                                            ; preds = %10616, %10609
  %10639 = load i32, ptr %255, align 4, !tbaa !5
  %10640 = call ptr @__errno_location() #11
  store i32 %10639, ptr %10640, align 4, !tbaa !5
  %10641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10642 = load i32, ptr @test_count, align 4, !tbaa !5
  %10643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10644 = load i32, ptr %10643, align 4, !tbaa !5
  %10645 = call ptr @s2n_strerror(i32 noundef %10644, ptr noundef @.str.4)
  %10646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call ptr @s2n_strerror_debug(i32 noundef %10647, ptr noundef @.str.4)
  %10649 = call ptr @__errno_location() #11
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  %10651 = call ptr @strerror(i32 noundef %10650) #10
  %10652 = call ptr @__errno_location() #11
  %10653 = load i32, ptr %10652, align 4, !tbaa !5
  %10654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10641, ptr noundef @.str.5, i32 noundef %10642, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 499, ptr noundef %10645, ptr noundef %10648, ptr noundef %10651, i32 noundef %10653) #10
  br label %10655

10655:                                            ; preds = %10638, %10621
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #10
  br label %10656

10656:                                            ; preds = %10655
  br label %10657

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

10658:                                            ; No predecessors!
  br label %10659

10659:                                            ; preds = %10658
  br label %10660

10660:                                            ; preds = %10659, %10600
  br label %10661

10661:                                            ; preds = %10660
  br label %10662

10662:                                            ; preds = %10661
  br label %10663

10663:                                            ; preds = %10662
  %10664 = load i32, ptr @test_count, align 4, !tbaa !5
  %10665 = add nsw i32 %10664, 1
  store i32 %10665, ptr @test_count, align 4, !tbaa !5
  %10666 = load ptr, ptr %253, align 8, !tbaa !9
  %10667 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10666, ptr noundef @.str.71)
  %10668 = icmp eq i32 %10667, -1
  br i1 %10668, label %10669, label %10722

10669:                                            ; preds = %10663
  br label %10670

10670:                                            ; preds = %10669
  br label %10671

10671:                                            ; preds = %10670
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #10
  %10672 = call ptr @__errno_location() #11
  %10673 = load i32, ptr %10672, align 4, !tbaa !5
  store i32 %10673, ptr %256, align 4, !tbaa !5
  %10674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10675 = call i32 @s2n_print_stacktrace(ptr noundef %10674)
  %10676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10677 = trunc i8 %10676 to i1
  br i1 %10677, label %10678, label %10700

10678:                                            ; preds = %10671
  %10679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10680 = call i32 @fileno(ptr noundef %10679) #10
  %10681 = call i32 @isatty(i32 noundef %10680) #10
  %10682 = icmp ne i32 %10681, 0
  br i1 %10682, label %10683, label %10700

10683:                                            ; preds = %10678
  %10684 = load i32, ptr %256, align 4, !tbaa !5
  %10685 = call ptr @__errno_location() #11
  store i32 %10684, ptr %10685, align 4, !tbaa !5
  %10686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10687 = load i32, ptr @test_count, align 4, !tbaa !5
  %10688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10689 = load i32, ptr %10688, align 4, !tbaa !5
  %10690 = call ptr @s2n_strerror(i32 noundef %10689, ptr noundef @.str.4)
  %10691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10692 = load i32, ptr %10691, align 4, !tbaa !5
  %10693 = call ptr @s2n_strerror_debug(i32 noundef %10692, ptr noundef @.str.4)
  %10694 = call ptr @__errno_location() #11
  %10695 = load i32, ptr %10694, align 4, !tbaa !5
  %10696 = call ptr @strerror(i32 noundef %10695) #10
  %10697 = call ptr @__errno_location() #11
  %10698 = load i32, ptr %10697, align 4, !tbaa !5
  %10699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10686, ptr noundef @.str.2, i32 noundef %10687, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 500, ptr noundef %10690, ptr noundef %10693, ptr noundef %10696, i32 noundef %10698) #10
  br label %10717

10700:                                            ; preds = %10678, %10671
  %10701 = load i32, ptr %256, align 4, !tbaa !5
  %10702 = call ptr @__errno_location() #11
  store i32 %10701, ptr %10702, align 4, !tbaa !5
  %10703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10704 = load i32, ptr @test_count, align 4, !tbaa !5
  %10705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10706 = load i32, ptr %10705, align 4, !tbaa !5
  %10707 = call ptr @s2n_strerror(i32 noundef %10706, ptr noundef @.str.4)
  %10708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10709 = load i32, ptr %10708, align 4, !tbaa !5
  %10710 = call ptr @s2n_strerror_debug(i32 noundef %10709, ptr noundef @.str.4)
  %10711 = call ptr @__errno_location() #11
  %10712 = load i32, ptr %10711, align 4, !tbaa !5
  %10713 = call ptr @strerror(i32 noundef %10712) #10
  %10714 = call ptr @__errno_location() #11
  %10715 = load i32, ptr %10714, align 4, !tbaa !5
  %10716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10703, ptr noundef @.str.5, i32 noundef %10704, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 500, ptr noundef %10707, ptr noundef %10710, ptr noundef %10713, i32 noundef %10715) #10
  br label %10717

10717:                                            ; preds = %10700, %10683
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #10
  br label %10718

10718:                                            ; preds = %10717
  br label %10719

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

10720:                                            ; No predecessors!
  br label %10721

10721:                                            ; preds = %10720
  br label %10722

10722:                                            ; preds = %10721, %10663
  br label %10723

10723:                                            ; preds = %10722
  br label %10724

10724:                                            ; preds = %10723
  call void @llvm.lifetime.start.p0(i64 8, ptr %257) #10
  call void @llvm.memset.p0.i64(ptr align 4 %257, i8 0, i64 8, i1 false)
  br label %10725

10725:                                            ; preds = %10724
  %10726 = load i32, ptr @test_count, align 4, !tbaa !5
  %10727 = add nsw i32 %10726, 1
  store i32 %10727, ptr @test_count, align 4, !tbaa !5
  %10728 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %257)
  %10729 = icmp eq i32 %10728, -1
  br i1 %10729, label %10730, label %10783

10730:                                            ; preds = %10725
  br label %10731

10731:                                            ; preds = %10730
  br label %10732

10732:                                            ; preds = %10731
  call void @llvm.lifetime.start.p0(i64 4, ptr %258) #10
  %10733 = call ptr @__errno_location() #11
  %10734 = load i32, ptr %10733, align 4, !tbaa !5
  store i32 %10734, ptr %258, align 4, !tbaa !5
  %10735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10736 = call i32 @s2n_print_stacktrace(ptr noundef %10735)
  %10737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10738 = trunc i8 %10737 to i1
  br i1 %10738, label %10739, label %10761

10739:                                            ; preds = %10732
  %10740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10741 = call i32 @fileno(ptr noundef %10740) #10
  %10742 = call i32 @isatty(i32 noundef %10741) #10
  %10743 = icmp ne i32 %10742, 0
  br i1 %10743, label %10744, label %10761

10744:                                            ; preds = %10739
  %10745 = load i32, ptr %258, align 4, !tbaa !5
  %10746 = call ptr @__errno_location() #11
  store i32 %10745, ptr %10746, align 4, !tbaa !5
  %10747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10748 = load i32, ptr @test_count, align 4, !tbaa !5
  %10749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10750 = load i32, ptr %10749, align 4, !tbaa !5
  %10751 = call ptr @s2n_strerror(i32 noundef %10750, ptr noundef @.str.4)
  %10752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10753 = load i32, ptr %10752, align 4, !tbaa !5
  %10754 = call ptr @s2n_strerror_debug(i32 noundef %10753, ptr noundef @.str.4)
  %10755 = call ptr @__errno_location() #11
  %10756 = load i32, ptr %10755, align 4, !tbaa !5
  %10757 = call ptr @strerror(i32 noundef %10756) #10
  %10758 = call ptr @__errno_location() #11
  %10759 = load i32, ptr %10758, align 4, !tbaa !5
  %10760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10747, ptr noundef @.str.2, i32 noundef %10748, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 503, ptr noundef %10751, ptr noundef %10754, ptr noundef %10757, i32 noundef %10759) #10
  br label %10778

10761:                                            ; preds = %10739, %10732
  %10762 = load i32, ptr %258, align 4, !tbaa !5
  %10763 = call ptr @__errno_location() #11
  store i32 %10762, ptr %10763, align 4, !tbaa !5
  %10764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10765 = load i32, ptr @test_count, align 4, !tbaa !5
  %10766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10767 = load i32, ptr %10766, align 4, !tbaa !5
  %10768 = call ptr @s2n_strerror(i32 noundef %10767, ptr noundef @.str.4)
  %10769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10770 = load i32, ptr %10769, align 4, !tbaa !5
  %10771 = call ptr @s2n_strerror_debug(i32 noundef %10770, ptr noundef @.str.4)
  %10772 = call ptr @__errno_location() #11
  %10773 = load i32, ptr %10772, align 4, !tbaa !5
  %10774 = call ptr @strerror(i32 noundef %10773) #10
  %10775 = call ptr @__errno_location() #11
  %10776 = load i32, ptr %10775, align 4, !tbaa !5
  %10777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10764, ptr noundef @.str.5, i32 noundef %10765, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 503, ptr noundef %10768, ptr noundef %10771, ptr noundef %10774, i32 noundef %10776) #10
  br label %10778

10778:                                            ; preds = %10761, %10744
  call void @llvm.lifetime.end.p0(i64 4, ptr %258) #10
  br label %10779

10779:                                            ; preds = %10778
  br label %10780

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

10781:                                            ; No predecessors!
  br label %10782

10782:                                            ; preds = %10781
  br label %10783

10783:                                            ; preds = %10782, %10725
  br label %10784

10784:                                            ; preds = %10783
  br label %10785

10785:                                            ; preds = %10784
  br label %10786

10786:                                            ; preds = %10785
  %10787 = load i32, ptr @test_count, align 4, !tbaa !5
  %10788 = add nsw i32 %10787, 1
  store i32 %10788, ptr @test_count, align 4, !tbaa !5
  %10789 = load ptr, ptr %247, align 8, !tbaa !9
  %10790 = load ptr, ptr %253, align 8, !tbaa !9
  %10791 = call i32 @s2n_connections_set_io_pair(ptr noundef %10789, ptr noundef %10790, ptr noundef %257)
  %10792 = icmp eq i32 %10791, -1
  br i1 %10792, label %10793, label %10846

10793:                                            ; preds = %10786
  br label %10794

10794:                                            ; preds = %10793
  br label %10795

10795:                                            ; preds = %10794
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #10
  %10796 = call ptr @__errno_location() #11
  %10797 = load i32, ptr %10796, align 4, !tbaa !5
  store i32 %10797, ptr %259, align 4, !tbaa !5
  %10798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10799 = call i32 @s2n_print_stacktrace(ptr noundef %10798)
  %10800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10801 = trunc i8 %10800 to i1
  br i1 %10801, label %10802, label %10824

10802:                                            ; preds = %10795
  %10803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10804 = call i32 @fileno(ptr noundef %10803) #10
  %10805 = call i32 @isatty(i32 noundef %10804) #10
  %10806 = icmp ne i32 %10805, 0
  br i1 %10806, label %10807, label %10824

10807:                                            ; preds = %10802
  %10808 = load i32, ptr %259, align 4, !tbaa !5
  %10809 = call ptr @__errno_location() #11
  store i32 %10808, ptr %10809, align 4, !tbaa !5
  %10810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10811 = load i32, ptr @test_count, align 4, !tbaa !5
  %10812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10813 = load i32, ptr %10812, align 4, !tbaa !5
  %10814 = call ptr @s2n_strerror(i32 noundef %10813, ptr noundef @.str.4)
  %10815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10816 = load i32, ptr %10815, align 4, !tbaa !5
  %10817 = call ptr @s2n_strerror_debug(i32 noundef %10816, ptr noundef @.str.4)
  %10818 = call ptr @__errno_location() #11
  %10819 = load i32, ptr %10818, align 4, !tbaa !5
  %10820 = call ptr @strerror(i32 noundef %10819) #10
  %10821 = call ptr @__errno_location() #11
  %10822 = load i32, ptr %10821, align 4, !tbaa !5
  %10823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10810, ptr noundef @.str.2, i32 noundef %10811, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10814, ptr noundef %10817, ptr noundef %10820, i32 noundef %10822) #10
  br label %10841

10824:                                            ; preds = %10802, %10795
  %10825 = load i32, ptr %259, align 4, !tbaa !5
  %10826 = call ptr @__errno_location() #11
  store i32 %10825, ptr %10826, align 4, !tbaa !5
  %10827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10828 = load i32, ptr @test_count, align 4, !tbaa !5
  %10829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10830 = load i32, ptr %10829, align 4, !tbaa !5
  %10831 = call ptr @s2n_strerror(i32 noundef %10830, ptr noundef @.str.4)
  %10832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10833 = load i32, ptr %10832, align 4, !tbaa !5
  %10834 = call ptr @s2n_strerror_debug(i32 noundef %10833, ptr noundef @.str.4)
  %10835 = call ptr @__errno_location() #11
  %10836 = load i32, ptr %10835, align 4, !tbaa !5
  %10837 = call ptr @strerror(i32 noundef %10836) #10
  %10838 = call ptr @__errno_location() #11
  %10839 = load i32, ptr %10838, align 4, !tbaa !5
  %10840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10827, ptr noundef @.str.5, i32 noundef %10828, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10831, ptr noundef %10834, ptr noundef %10837, i32 noundef %10839) #10
  br label %10841

10841:                                            ; preds = %10824, %10807
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #10
  br label %10842

10842:                                            ; preds = %10841
  br label %10843

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

10844:                                            ; No predecessors!
  br label %10845

10845:                                            ; preds = %10844
  br label %10846

10846:                                            ; preds = %10845, %10786
  br label %10847

10847:                                            ; preds = %10846
  br label %10848

10848:                                            ; preds = %10847
  call void @llvm.lifetime.start.p0(i64 1, ptr %260) #10
  call void @llvm.memset.p0.i64(ptr align 1 %260, i8 0, i64 1, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #10
  store i32 0, ptr %261, align 4, !tbaa !5
  %10849 = load ptr, ptr %247, align 8, !tbaa !9
  %10850 = getelementptr inbounds %struct.s2n_connection, ptr %10849, i32 0, i32 21
  store i8 30, ptr %10850, align 2, !tbaa !54
  %10851 = load ptr, ptr %247, align 8, !tbaa !9
  %10852 = getelementptr inbounds %struct.s2n_connection, ptr %10851, i32 0, i32 23
  store i8 30, ptr %10852, align 4, !tbaa !43
  br label %10853

10853:                                            ; preds = %10848
  %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 %253, align 8, !tbaa !9
  %10857 = load ptr, ptr %247, align 8, !tbaa !9
  %10858 = call i32 @s2n_negotiate_test_server_and_client(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 %262) #10
  %10863 = call ptr @__errno_location() #11
  %10864 = load i32, ptr %10863, align 4, !tbaa !5
  store i32 %10864, ptr %262, 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) #10
  %10872 = call i32 @isatty(i32 noundef %10871) #10
  %10873 = icmp ne i32 %10872, 0
  br i1 %10873, label %10874, label %10891

10874:                                            ; preds = %10869
  %10875 = load i32, ptr %262, align 4, !tbaa !5
  %10876 = call ptr @__errno_location() #11
  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() #11
  %10886 = load i32, ptr %10885, align 4, !tbaa !5
  %10887 = call ptr @strerror(i32 noundef %10886) #10
  %10888 = call ptr @__errno_location() #11
  %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.34, ptr noundef @.str.1, i32 noundef 512, ptr noundef %10881, ptr noundef %10884, ptr noundef %10887, i32 noundef %10889) #10
  br label %10908

10891:                                            ; preds = %10869, %10862
  %10892 = load i32, ptr %262, align 4, !tbaa !5
  %10893 = call ptr @__errno_location() #11
  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() #11
  %10903 = load i32, ptr %10902, align 4, !tbaa !5
  %10904 = call ptr @strerror(i32 noundef %10903) #10
  %10905 = call ptr @__errno_location() #11
  %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.34, ptr noundef @.str.1, i32 noundef 512, ptr noundef %10898, ptr noundef %10901, ptr noundef %10904, i32 noundef %10906) #10
  br label %10908

10908:                                            ; preds = %10891, %10874
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #10
  br label %10909

10909:                                            ; preds = %10908
  br label %10910

10910:                                            ; preds = %10909
  call void @exit(i32 noundef 1) #12
  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 %247, align 8, !tbaa !9
  %10920 = getelementptr inbounds %struct.s2n_connection, ptr %10919, i32 0, i32 23
  %10921 = load i8, ptr %10920, align 4, !tbaa !43
  %10922 = zext i8 %10921 to i32
  %10923 = icmp eq i32 %10922, 30
  br i1 %10923, label %10977, label %10924

10924:                                            ; preds = %10916
  br label %10925

10925:                                            ; preds = %10924
  br label %10926

10926:                                            ; preds = %10925
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #10
  %10927 = call ptr @__errno_location() #11
  %10928 = load i32, ptr %10927, align 4, !tbaa !5
  store i32 %10928, ptr %263, align 4, !tbaa !5
  %10929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10930 = call i32 @s2n_print_stacktrace(ptr noundef %10929)
  %10931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10932 = trunc i8 %10931 to i1
  br i1 %10932, label %10933, label %10955

10933:                                            ; preds = %10926
  %10934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10935 = call i32 @fileno(ptr noundef %10934) #10
  %10936 = call i32 @isatty(i32 noundef %10935) #10
  %10937 = icmp ne i32 %10936, 0
  br i1 %10937, label %10938, label %10955

10938:                                            ; preds = %10933
  %10939 = load i32, ptr %263, align 4, !tbaa !5
  %10940 = call ptr @__errno_location() #11
  store i32 %10939, ptr %10940, align 4, !tbaa !5
  %10941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10942 = load i32, ptr @test_count, align 4, !tbaa !5
  %10943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10944 = load i32, ptr %10943, align 4, !tbaa !5
  %10945 = call ptr @s2n_strerror(i32 noundef %10944, ptr noundef @.str.4)
  %10946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10947 = load i32, ptr %10946, align 4, !tbaa !5
  %10948 = call ptr @s2n_strerror_debug(i32 noundef %10947, ptr noundef @.str.4)
  %10949 = call ptr @__errno_location() #11
  %10950 = load i32, ptr %10949, align 4, !tbaa !5
  %10951 = call ptr @strerror(i32 noundef %10950) #10
  %10952 = call ptr @__errno_location() #11
  %10953 = load i32, ptr %10952, align 4, !tbaa !5
  %10954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10941, ptr noundef @.str.2, i32 noundef %10942, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 513, ptr noundef %10945, ptr noundef %10948, ptr noundef %10951, i32 noundef %10953) #10
  br label %10972

10955:                                            ; preds = %10933, %10926
  %10956 = load i32, ptr %263, align 4, !tbaa !5
  %10957 = call ptr @__errno_location() #11
  store i32 %10956, ptr %10957, align 4, !tbaa !5
  %10958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10959 = load i32, ptr @test_count, align 4, !tbaa !5
  %10960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10961 = load i32, ptr %10960, align 4, !tbaa !5
  %10962 = call ptr @s2n_strerror(i32 noundef %10961, ptr noundef @.str.4)
  %10963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10964 = load i32, ptr %10963, align 4, !tbaa !5
  %10965 = call ptr @s2n_strerror_debug(i32 noundef %10964, ptr noundef @.str.4)
  %10966 = call ptr @__errno_location() #11
  %10967 = load i32, ptr %10966, align 4, !tbaa !5
  %10968 = call ptr @strerror(i32 noundef %10967) #10
  %10969 = call ptr @__errno_location() #11
  %10970 = load i32, ptr %10969, align 4, !tbaa !5
  %10971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10958, ptr noundef @.str.5, i32 noundef %10959, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 513, ptr noundef %10962, ptr noundef %10965, ptr noundef %10968, i32 noundef %10970) #10
  br label %10972

10972:                                            ; preds = %10955, %10938
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #10
  br label %10973

10973:                                            ; preds = %10972
  br label %10974

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

10975:                                            ; No predecessors!
  br label %10976

10976:                                            ; preds = %10975
  br label %10977

10977:                                            ; preds = %10976, %10916
  br label %10978

10978:                                            ; preds = %10977
  br label %10979

10979:                                            ; preds = %10978
  br label %10980

10980:                                            ; preds = %10979
  %10981 = load i32, ptr @test_count, align 4, !tbaa !5
  %10982 = add nsw i32 %10981, 1
  store i32 %10982, ptr @test_count, align 4, !tbaa !5
  %10983 = load ptr, ptr %253, align 8, !tbaa !9
  %10984 = getelementptr inbounds %struct.s2n_connection, ptr %10983, i32 0, i32 23
  %10985 = load i8, ptr %10984, align 4, !tbaa !43
  %10986 = zext i8 %10985 to i32
  %10987 = icmp eq i32 %10986, 30
  br i1 %10987, label %11041, label %10988

10988:                                            ; preds = %10980
  br label %10989

10989:                                            ; preds = %10988
  br label %10990

10990:                                            ; preds = %10989
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #10
  %10991 = call ptr @__errno_location() #11
  %10992 = load i32, ptr %10991, align 4, !tbaa !5
  store i32 %10992, ptr %264, align 4, !tbaa !5
  %10993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10994 = call i32 @s2n_print_stacktrace(ptr noundef %10993)
  %10995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10996 = trunc i8 %10995 to i1
  br i1 %10996, label %10997, label %11019

10997:                                            ; preds = %10990
  %10998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10999 = call i32 @fileno(ptr noundef %10998) #10
  %11000 = call i32 @isatty(i32 noundef %10999) #10
  %11001 = icmp ne i32 %11000, 0
  br i1 %11001, label %11002, label %11019

11002:                                            ; preds = %10997
  %11003 = load i32, ptr %264, align 4, !tbaa !5
  %11004 = call ptr @__errno_location() #11
  store i32 %11003, ptr %11004, align 4, !tbaa !5
  %11005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11006 = load i32, ptr @test_count, align 4, !tbaa !5
  %11007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11008 = load i32, ptr %11007, align 4, !tbaa !5
  %11009 = call ptr @s2n_strerror(i32 noundef %11008, ptr noundef @.str.4)
  %11010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11011 = load i32, ptr %11010, align 4, !tbaa !5
  %11012 = call ptr @s2n_strerror_debug(i32 noundef %11011, ptr noundef @.str.4)
  %11013 = call ptr @__errno_location() #11
  %11014 = load i32, ptr %11013, align 4, !tbaa !5
  %11015 = call ptr @strerror(i32 noundef %11014) #10
  %11016 = call ptr @__errno_location() #11
  %11017 = load i32, ptr %11016, align 4, !tbaa !5
  %11018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11005, ptr noundef @.str.2, i32 noundef %11006, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 514, ptr noundef %11009, ptr noundef %11012, ptr noundef %11015, i32 noundef %11017) #10
  br label %11036

11019:                                            ; preds = %10997, %10990
  %11020 = load i32, ptr %264, align 4, !tbaa !5
  %11021 = call ptr @__errno_location() #11
  store i32 %11020, ptr %11021, align 4, !tbaa !5
  %11022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11023 = load i32, ptr @test_count, align 4, !tbaa !5
  %11024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11025 = load i32, ptr %11024, align 4, !tbaa !5
  %11026 = call ptr @s2n_strerror(i32 noundef %11025, ptr noundef @.str.4)
  %11027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11028 = load i32, ptr %11027, align 4, !tbaa !5
  %11029 = call ptr @s2n_strerror_debug(i32 noundef %11028, ptr noundef @.str.4)
  %11030 = call ptr @__errno_location() #11
  %11031 = load i32, ptr %11030, align 4, !tbaa !5
  %11032 = call ptr @strerror(i32 noundef %11031) #10
  %11033 = call ptr @__errno_location() #11
  %11034 = load i32, ptr %11033, align 4, !tbaa !5
  %11035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11022, ptr noundef @.str.5, i32 noundef %11023, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 514, ptr noundef %11026, ptr noundef %11029, ptr noundef %11032, i32 noundef %11034) #10
  br label %11036

11036:                                            ; preds = %11019, %11002
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #10
  br label %11037

11037:                                            ; preds = %11036
  br label %11038

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

11039:                                            ; No predecessors!
  br label %11040

11040:                                            ; preds = %11039
  br label %11041

11041:                                            ; preds = %11040, %10980
  br label %11042

11042:                                            ; preds = %11041
  br label %11043

11043:                                            ; preds = %11042
  br label %11044

11044:                                            ; preds = %11043
  %11045 = load i32, ptr @test_count, align 4, !tbaa !5
  %11046 = add nsw i32 %11045, 1
  store i32 %11046, ptr @test_count, align 4, !tbaa !5
  %11047 = load ptr, ptr %253, align 8, !tbaa !9
  %11048 = call i32 @s2n_send_client_hello_request(ptr noundef %11047)
  %11049 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  store i32 %11048, ptr %11049, align 4
  %11050 = getelementptr inbounds %struct.s2n_result, ptr %265, i32 0, i32 0
  %11051 = load i32, ptr %11050, align 4
  %11052 = call zeroext i1 @s2n_result_is_ok(i32 %11051)
  br i1 %11052, label %11106, label %11053

11053:                                            ; preds = %11044
  br label %11054

11054:                                            ; preds = %11053
  br label %11055

11055:                                            ; preds = %11054
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #10
  %11056 = call ptr @__errno_location() #11
  %11057 = load i32, ptr %11056, align 4, !tbaa !5
  store i32 %11057, ptr %266, align 4, !tbaa !5
  %11058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11059 = call i32 @s2n_print_stacktrace(ptr noundef %11058)
  %11060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11061 = trunc i8 %11060 to i1
  br i1 %11061, label %11062, label %11084

11062:                                            ; preds = %11055
  %11063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11064 = call i32 @fileno(ptr noundef %11063) #10
  %11065 = call i32 @isatty(i32 noundef %11064) #10
  %11066 = icmp ne i32 %11065, 0
  br i1 %11066, label %11067, label %11084

11067:                                            ; preds = %11062
  %11068 = load i32, ptr %266, align 4, !tbaa !5
  %11069 = call ptr @__errno_location() #11
  store i32 %11068, ptr %11069, align 4, !tbaa !5
  %11070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11071 = load i32, ptr @test_count, align 4, !tbaa !5
  %11072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11073 = load i32, ptr %11072, align 4, !tbaa !5
  %11074 = call ptr @s2n_strerror(i32 noundef %11073, ptr noundef @.str.4)
  %11075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11076 = load i32, ptr %11075, align 4, !tbaa !5
  %11077 = call ptr @s2n_strerror_debug(i32 noundef %11076, ptr noundef @.str.4)
  %11078 = call ptr @__errno_location() #11
  %11079 = load i32, ptr %11078, align 4, !tbaa !5
  %11080 = call ptr @strerror(i32 noundef %11079) #10
  %11081 = call ptr @__errno_location() #11
  %11082 = load i32, ptr %11081, align 4, !tbaa !5
  %11083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11070, ptr noundef @.str.2, i32 noundef %11071, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11074, ptr noundef %11077, ptr noundef %11080, i32 noundef %11082) #10
  br label %11101

11084:                                            ; preds = %11062, %11055
  %11085 = load i32, ptr %266, align 4, !tbaa !5
  %11086 = call ptr @__errno_location() #11
  store i32 %11085, ptr %11086, align 4, !tbaa !5
  %11087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11088 = load i32, ptr @test_count, align 4, !tbaa !5
  %11089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11090 = load i32, ptr %11089, align 4, !tbaa !5
  %11091 = call ptr @s2n_strerror(i32 noundef %11090, ptr noundef @.str.4)
  %11092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11093 = load i32, ptr %11092, align 4, !tbaa !5
  %11094 = call ptr @s2n_strerror_debug(i32 noundef %11093, ptr noundef @.str.4)
  %11095 = call ptr @__errno_location() #11
  %11096 = load i32, ptr %11095, align 4, !tbaa !5
  %11097 = call ptr @strerror(i32 noundef %11096) #10
  %11098 = call ptr @__errno_location() #11
  %11099 = load i32, ptr %11098, align 4, !tbaa !5
  %11100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11087, ptr noundef @.str.5, i32 noundef %11088, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11091, ptr noundef %11094, ptr noundef %11097, i32 noundef %11099) #10
  br label %11101

11101:                                            ; preds = %11084, %11067
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #10
  br label %11102

11102:                                            ; preds = %11101
  br label %11103

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

11104:                                            ; No predecessors!
  br label %11105

11105:                                            ; preds = %11104
  br label %11106

11106:                                            ; preds = %11105, %11044
  br label %11107

11107:                                            ; preds = %11106
  br label %11108

11108:                                            ; preds = %11107
  br label %11109

11109:                                            ; preds = %11108
  br label %11110

11110:                                            ; preds = %11109
  br label %11111

11111:                                            ; preds = %11110
  %11112 = load i32, ptr @test_count, align 4, !tbaa !5
  %11113 = add nsw i32 %11112, 1
  store i32 %11113, ptr @test_count, align 4, !tbaa !5
  %11114 = load ptr, ptr %247, align 8, !tbaa !9
  %11115 = getelementptr inbounds [1 x i8], ptr %260, i64 0, i64 0
  %11116 = call i64 @s2n_recv(ptr noundef %11114, ptr noundef %11115, i64 noundef 1, ptr noundef %261)
  %11117 = icmp eq i64 %11116, -1
  br i1 %11117, label %11171, label %11118

11118:                                            ; preds = %11111
  br label %11119

11119:                                            ; preds = %11118
  br label %11120

11120:                                            ; preds = %11119
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #10
  %11121 = call ptr @__errno_location() #11
  %11122 = load i32, ptr %11121, align 4, !tbaa !5
  store i32 %11122, ptr %267, align 4, !tbaa !5
  %11123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11124 = call i32 @s2n_print_stacktrace(ptr noundef %11123)
  %11125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11126 = trunc i8 %11125 to i1
  br i1 %11126, label %11127, label %11149

11127:                                            ; preds = %11120
  %11128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11129 = call i32 @fileno(ptr noundef %11128) #10
  %11130 = call i32 @isatty(i32 noundef %11129) #10
  %11131 = icmp ne i32 %11130, 0
  br i1 %11131, label %11132, label %11149

11132:                                            ; preds = %11127
  %11133 = load i32, ptr %267, align 4, !tbaa !5
  %11134 = call ptr @__errno_location() #11
  store i32 %11133, ptr %11134, align 4, !tbaa !5
  %11135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11136 = load i32, ptr @test_count, align 4, !tbaa !5
  %11137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11138 = load i32, ptr %11137, align 4, !tbaa !5
  %11139 = call ptr @s2n_strerror(i32 noundef %11138, ptr noundef @.str.4)
  %11140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11141 = load i32, ptr %11140, align 4, !tbaa !5
  %11142 = call ptr @s2n_strerror_debug(i32 noundef %11141, ptr noundef @.str.4)
  %11143 = call ptr @__errno_location() #11
  %11144 = load i32, ptr %11143, align 4, !tbaa !5
  %11145 = call ptr @strerror(i32 noundef %11144) #10
  %11146 = call ptr @__errno_location() #11
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11135, ptr noundef @.str.2, i32 noundef %11136, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 520, ptr noundef %11139, ptr noundef %11142, ptr noundef %11145, i32 noundef %11147) #10
  br label %11166

11149:                                            ; preds = %11127, %11120
  %11150 = load i32, ptr %267, align 4, !tbaa !5
  %11151 = call ptr @__errno_location() #11
  store i32 %11150, ptr %11151, align 4, !tbaa !5
  %11152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11153 = load i32, ptr @test_count, align 4, !tbaa !5
  %11154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11155 = load i32, ptr %11154, align 4, !tbaa !5
  %11156 = call ptr @s2n_strerror(i32 noundef %11155, ptr noundef @.str.4)
  %11157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11158 = load i32, ptr %11157, align 4, !tbaa !5
  %11159 = call ptr @s2n_strerror_debug(i32 noundef %11158, ptr noundef @.str.4)
  %11160 = call ptr @__errno_location() #11
  %11161 = load i32, ptr %11160, align 4, !tbaa !5
  %11162 = call ptr @strerror(i32 noundef %11161) #10
  %11163 = call ptr @__errno_location() #11
  %11164 = load i32, ptr %11163, align 4, !tbaa !5
  %11165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11152, ptr noundef @.str.5, i32 noundef %11153, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 520, ptr noundef %11156, ptr noundef %11159, ptr noundef %11162, i32 noundef %11164) #10
  br label %11166

11166:                                            ; preds = %11149, %11132
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #10
  br label %11167

11167:                                            ; preds = %11166
  br label %11168

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

11169:                                            ; No predecessors!
  br label %11170

11170:                                            ; preds = %11169
  br label %11171

11171:                                            ; preds = %11170, %11111
  br label %11172

11172:                                            ; preds = %11171
  br label %11173

11173:                                            ; preds = %11172
  br label %11174

11174:                                            ; preds = %11173
  %11175 = load i32, ptr @test_count, align 4, !tbaa !5
  %11176 = add nsw i32 %11175, 1
  store i32 %11176, ptr @test_count, align 4, !tbaa !5
  %11177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11178 = load i32, ptr %11177, align 4, !tbaa !5
  %11179 = icmp eq i32 %11178, 335544322
  br i1 %11179, label %11233, label %11180

11180:                                            ; preds = %11174
  br label %11181

11181:                                            ; preds = %11180
  br label %11182

11182:                                            ; preds = %11181
  call void @llvm.lifetime.start.p0(i64 4, ptr %268) #10
  %11183 = call ptr @__errno_location() #11
  %11184 = load i32, ptr %11183, align 4, !tbaa !5
  store i32 %11184, ptr %268, align 4, !tbaa !5
  %11185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11186 = call i32 @s2n_print_stacktrace(ptr noundef %11185)
  %11187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11188 = trunc i8 %11187 to i1
  br i1 %11188, label %11189, label %11211

11189:                                            ; preds = %11182
  %11190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11191 = call i32 @fileno(ptr noundef %11190) #10
  %11192 = call i32 @isatty(i32 noundef %11191) #10
  %11193 = icmp ne i32 %11192, 0
  br i1 %11193, label %11194, label %11211

11194:                                            ; preds = %11189
  %11195 = load i32, ptr %268, align 4, !tbaa !5
  %11196 = call ptr @__errno_location() #11
  store i32 %11195, ptr %11196, align 4, !tbaa !5
  %11197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11198 = load i32, ptr @test_count, align 4, !tbaa !5
  %11199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11200 = load i32, ptr %11199, align 4, !tbaa !5
  %11201 = call ptr @s2n_strerror(i32 noundef %11200, ptr noundef @.str.4)
  %11202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11203 = load i32, ptr %11202, align 4, !tbaa !5
  %11204 = call ptr @s2n_strerror_debug(i32 noundef %11203, ptr noundef @.str.4)
  %11205 = call ptr @__errno_location() #11
  %11206 = load i32, ptr %11205, align 4, !tbaa !5
  %11207 = call ptr @strerror(i32 noundef %11206) #10
  %11208 = call ptr @__errno_location() #11
  %11209 = load i32, ptr %11208, align 4, !tbaa !5
  %11210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11197, ptr noundef @.str.2, i32 noundef %11198, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 520, ptr noundef %11201, ptr noundef %11204, ptr noundef %11207, i32 noundef %11209) #10
  br label %11228

11211:                                            ; preds = %11189, %11182
  %11212 = load i32, ptr %268, align 4, !tbaa !5
  %11213 = call ptr @__errno_location() #11
  store i32 %11212, ptr %11213, align 4, !tbaa !5
  %11214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11215 = load i32, ptr @test_count, align 4, !tbaa !5
  %11216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11217 = load i32, ptr %11216, align 4, !tbaa !5
  %11218 = call ptr @s2n_strerror(i32 noundef %11217, ptr noundef @.str.4)
  %11219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11220 = load i32, ptr %11219, align 4, !tbaa !5
  %11221 = call ptr @s2n_strerror_debug(i32 noundef %11220, ptr noundef @.str.4)
  %11222 = call ptr @__errno_location() #11
  %11223 = load i32, ptr %11222, align 4, !tbaa !5
  %11224 = call ptr @strerror(i32 noundef %11223) #10
  %11225 = call ptr @__errno_location() #11
  %11226 = load i32, ptr %11225, align 4, !tbaa !5
  %11227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11214, ptr noundef @.str.5, i32 noundef %11215, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 520, ptr noundef %11218, ptr noundef %11221, ptr noundef %11224, i32 noundef %11226) #10
  br label %11228

11228:                                            ; preds = %11211, %11194
  call void @llvm.lifetime.end.p0(i64 4, ptr %268) #10
  br label %11229

11229:                                            ; preds = %11228
  br label %11230

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

11231:                                            ; No predecessors!
  br label %11232

11232:                                            ; preds = %11231
  br label %11233

11233:                                            ; preds = %11232, %11174
  br label %11234

11234:                                            ; preds = %11233
  br label %11235

11235:                                            ; preds = %11234
  br label %11236

11236:                                            ; preds = %11235
  %11237 = load i32, ptr @test_count, align 4, !tbaa !5
  %11238 = add nsw i32 %11237, 1
  store i32 %11238, ptr @test_count, align 4, !tbaa !5
  %11239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11240 = load i32, ptr %11239, align 4, !tbaa !5
  %11241 = call ptr @s2n_strerror_debug(i32 noundef %11240, ptr noundef @.str.4)
  %11242 = icmp eq ptr %11241, null
  br i1 %11242, label %11243, label %11296

11243:                                            ; preds = %11236
  br label %11244

11244:                                            ; preds = %11243
  br label %11245

11245:                                            ; preds = %11244
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #10
  %11246 = call ptr @__errno_location() #11
  %11247 = load i32, ptr %11246, align 4, !tbaa !5
  store i32 %11247, ptr %269, align 4, !tbaa !5
  %11248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11249 = call i32 @s2n_print_stacktrace(ptr noundef %11248)
  %11250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11251 = trunc i8 %11250 to i1
  br i1 %11251, label %11252, label %11274

11252:                                            ; preds = %11245
  %11253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11254 = call i32 @fileno(ptr noundef %11253) #10
  %11255 = call i32 @isatty(i32 noundef %11254) #10
  %11256 = icmp ne i32 %11255, 0
  br i1 %11256, label %11257, label %11274

11257:                                            ; preds = %11252
  %11258 = load i32, ptr %269, align 4, !tbaa !5
  %11259 = call ptr @__errno_location() #11
  store i32 %11258, ptr %11259, align 4, !tbaa !5
  %11260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11261 = load i32, ptr @test_count, align 4, !tbaa !5
  %11262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11263 = load i32, ptr %11262, align 4, !tbaa !5
  %11264 = call ptr @s2n_strerror(i32 noundef %11263, ptr noundef @.str.4)
  %11265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11266 = load i32, ptr %11265, align 4, !tbaa !5
  %11267 = call ptr @s2n_strerror_debug(i32 noundef %11266, ptr noundef @.str.4)
  %11268 = call ptr @__errno_location() #11
  %11269 = load i32, ptr %11268, align 4, !tbaa !5
  %11270 = call ptr @strerror(i32 noundef %11269) #10
  %11271 = call ptr @__errno_location() #11
  %11272 = load i32, ptr %11271, align 4, !tbaa !5
  %11273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11260, ptr noundef @.str.2, i32 noundef %11261, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 520, ptr noundef %11264, ptr noundef %11267, ptr noundef %11270, i32 noundef %11272) #10
  br label %11291

11274:                                            ; preds = %11252, %11245
  %11275 = load i32, ptr %269, align 4, !tbaa !5
  %11276 = call ptr @__errno_location() #11
  store i32 %11275, ptr %11276, align 4, !tbaa !5
  %11277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11278 = load i32, ptr @test_count, align 4, !tbaa !5
  %11279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11280 = load i32, ptr %11279, align 4, !tbaa !5
  %11281 = call ptr @s2n_strerror(i32 noundef %11280, ptr noundef @.str.4)
  %11282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11283 = load i32, ptr %11282, align 4, !tbaa !5
  %11284 = call ptr @s2n_strerror_debug(i32 noundef %11283, ptr noundef @.str.4)
  %11285 = call ptr @__errno_location() #11
  %11286 = load i32, ptr %11285, align 4, !tbaa !5
  %11287 = call ptr @strerror(i32 noundef %11286) #10
  %11288 = call ptr @__errno_location() #11
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  %11290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11277, ptr noundef @.str.5, i32 noundef %11278, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 520, ptr noundef %11281, ptr noundef %11284, ptr noundef %11287, i32 noundef %11289) #10
  br label %11291

11291:                                            ; preds = %11274, %11257
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #10
  br label %11292

11292:                                            ; preds = %11291
  br label %11293

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

11294:                                            ; No predecessors!
  br label %11295

11295:                                            ; preds = %11294
  br label %11296

11296:                                            ; preds = %11295, %11236
  br label %11297

11297:                                            ; preds = %11296
  br label %11298

11298:                                            ; preds = %11297
  br label %11299

11299:                                            ; preds = %11298
  br label %11300

11300:                                            ; preds = %11299
  br label %11301

11301:                                            ; preds = %11300
  %11302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11302, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11303 = call ptr @__errno_location() #11
  store i32 0, ptr %11303, align 4, !tbaa !5
  br label %11304

11304:                                            ; preds = %11301
  br label %11305

11305:                                            ; preds = %11304
  br label %11306

11306:                                            ; preds = %11305
  br label %11307

11307:                                            ; preds = %11306
  br label %11308

11308:                                            ; preds = %11307
  %11309 = load i32, ptr @test_count, align 4, !tbaa !5
  %11310 = add nsw i32 %11309, 1
  store i32 %11310, ptr @test_count, align 4, !tbaa !5
  %11311 = load ptr, ptr %247, align 8, !tbaa !9
  %11312 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %11311, i32 noundef 3)
  br i1 %11312, label %11366, label %11313

11313:                                            ; preds = %11308
  br label %11314

11314:                                            ; preds = %11313
  br label %11315

11315:                                            ; preds = %11314
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #10
  %11316 = call ptr @__errno_location() #11
  %11317 = load i32, ptr %11316, align 4, !tbaa !5
  store i32 %11317, ptr %270, align 4, !tbaa !5
  %11318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11319 = call i32 @s2n_print_stacktrace(ptr noundef %11318)
  %11320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11321 = trunc i8 %11320 to i1
  br i1 %11321, label %11322, label %11344

11322:                                            ; preds = %11315
  %11323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11324 = call i32 @fileno(ptr noundef %11323) #10
  %11325 = call i32 @isatty(i32 noundef %11324) #10
  %11326 = icmp ne i32 %11325, 0
  br i1 %11326, label %11327, label %11344

11327:                                            ; preds = %11322
  %11328 = load i32, ptr %270, align 4, !tbaa !5
  %11329 = call ptr @__errno_location() #11
  store i32 %11328, ptr %11329, align 4, !tbaa !5
  %11330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11331 = load i32, ptr @test_count, align 4, !tbaa !5
  %11332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11333 = load i32, ptr %11332, align 4, !tbaa !5
  %11334 = call ptr @s2n_strerror(i32 noundef %11333, ptr noundef @.str.4)
  %11335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11336 = load i32, ptr %11335, align 4, !tbaa !5
  %11337 = call ptr @s2n_strerror_debug(i32 noundef %11336, ptr noundef @.str.4)
  %11338 = call ptr @__errno_location() #11
  %11339 = load i32, ptr %11338, align 4, !tbaa !5
  %11340 = call ptr @strerror(i32 noundef %11339) #10
  %11341 = call ptr @__errno_location() #11
  %11342 = load i32, ptr %11341, align 4, !tbaa !5
  %11343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11330, ptr noundef @.str.2, i32 noundef %11331, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 521, ptr noundef %11334, ptr noundef %11337, ptr noundef %11340, i32 noundef %11342) #10
  br label %11361

11344:                                            ; preds = %11322, %11315
  %11345 = load i32, ptr %270, align 4, !tbaa !5
  %11346 = call ptr @__errno_location() #11
  store i32 %11345, ptr %11346, align 4, !tbaa !5
  %11347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11348 = load i32, ptr @test_count, align 4, !tbaa !5
  %11349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11350 = load i32, ptr %11349, align 4, !tbaa !5
  %11351 = call ptr @s2n_strerror(i32 noundef %11350, ptr noundef @.str.4)
  %11352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11353 = load i32, ptr %11352, align 4, !tbaa !5
  %11354 = call ptr @s2n_strerror_debug(i32 noundef %11353, ptr noundef @.str.4)
  %11355 = call ptr @__errno_location() #11
  %11356 = load i32, ptr %11355, align 4, !tbaa !5
  %11357 = call ptr @strerror(i32 noundef %11356) #10
  %11358 = call ptr @__errno_location() #11
  %11359 = load i32, ptr %11358, align 4, !tbaa !5
  %11360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11347, ptr noundef @.str.5, i32 noundef %11348, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 521, ptr noundef %11351, ptr noundef %11354, ptr noundef %11357, i32 noundef %11359) #10
  br label %11361

11361:                                            ; preds = %11344, %11327
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #10
  br label %11362

11362:                                            ; preds = %11361
  br label %11363

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

11364:                                            ; No predecessors!
  br label %11365

11365:                                            ; preds = %11364
  br label %11366

11366:                                            ; preds = %11365, %11308
  br label %11367

11367:                                            ; preds = %11366
  br label %11368

11368:                                            ; preds = %11367
  br label %11369

11369:                                            ; preds = %11368
  %11370 = load i32, ptr @test_count, align 4, !tbaa !5
  %11371 = add nsw i32 %11370, 1
  store i32 %11371, ptr @test_count, align 4, !tbaa !5
  %11372 = load ptr, ptr %247, align 8, !tbaa !9
  %11373 = getelementptr inbounds %struct.s2n_connection, ptr %11372, i32 0, i32 17
  %11374 = load i64, ptr %11373, align 8, !tbaa !55
  %11375 = icmp ugt i64 %11374, 0
  br i1 %11375, label %11429, label %11376

11376:                                            ; preds = %11369
  br label %11377

11377:                                            ; preds = %11376
  br label %11378

11378:                                            ; preds = %11377
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #10
  %11379 = call ptr @__errno_location() #11
  %11380 = load i32, ptr %11379, align 4, !tbaa !5
  store i32 %11380, ptr %271, align 4, !tbaa !5
  %11381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11382 = call i32 @s2n_print_stacktrace(ptr noundef %11381)
  %11383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11384 = trunc i8 %11383 to i1
  br i1 %11384, label %11385, label %11407

11385:                                            ; preds = %11378
  %11386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11387 = call i32 @fileno(ptr noundef %11386) #10
  %11388 = call i32 @isatty(i32 noundef %11387) #10
  %11389 = icmp ne i32 %11388, 0
  br i1 %11389, label %11390, label %11407

11390:                                            ; preds = %11385
  %11391 = load i32, ptr %271, align 4, !tbaa !5
  %11392 = call ptr @__errno_location() #11
  store i32 %11391, ptr %11392, align 4, !tbaa !5
  %11393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11394 = load i32, ptr @test_count, align 4, !tbaa !5
  %11395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11396 = load i32, ptr %11395, align 4, !tbaa !5
  %11397 = call ptr @s2n_strerror(i32 noundef %11396, ptr noundef @.str.4)
  %11398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11399 = load i32, ptr %11398, align 4, !tbaa !5
  %11400 = call ptr @s2n_strerror_debug(i32 noundef %11399, ptr noundef @.str.4)
  %11401 = call ptr @__errno_location() #11
  %11402 = load i32, ptr %11401, align 4, !tbaa !5
  %11403 = call ptr @strerror(i32 noundef %11402) #10
  %11404 = call ptr @__errno_location() #11
  %11405 = load i32, ptr %11404, align 4, !tbaa !5
  %11406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11393, ptr noundef @.str.2, i32 noundef %11394, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 525, ptr noundef %11397, ptr noundef %11400, ptr noundef %11403, i32 noundef %11405) #10
  br label %11424

11407:                                            ; preds = %11385, %11378
  %11408 = load i32, ptr %271, align 4, !tbaa !5
  %11409 = call ptr @__errno_location() #11
  store i32 %11408, ptr %11409, align 4, !tbaa !5
  %11410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11411 = load i32, ptr @test_count, align 4, !tbaa !5
  %11412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11413 = load i32, ptr %11412, align 4, !tbaa !5
  %11414 = call ptr @s2n_strerror(i32 noundef %11413, ptr noundef @.str.4)
  %11415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11416 = load i32, ptr %11415, align 4, !tbaa !5
  %11417 = call ptr @s2n_strerror_debug(i32 noundef %11416, ptr noundef @.str.4)
  %11418 = call ptr @__errno_location() #11
  %11419 = load i32, ptr %11418, align 4, !tbaa !5
  %11420 = call ptr @strerror(i32 noundef %11419) #10
  %11421 = call ptr @__errno_location() #11
  %11422 = load i32, ptr %11421, align 4, !tbaa !5
  %11423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11410, ptr noundef @.str.5, i32 noundef %11411, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 525, ptr noundef %11414, ptr noundef %11417, ptr noundef %11420, i32 noundef %11422) #10
  br label %11424

11424:                                            ; preds = %11407, %11390
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #10
  br label %11425

11425:                                            ; preds = %11424
  br label %11426

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

11427:                                            ; No predecessors!
  br label %11428

11428:                                            ; preds = %11427
  br label %11429

11429:                                            ; preds = %11428, %11369
  br label %11430

11430:                                            ; preds = %11429
  br label %11431

11431:                                            ; preds = %11430
  %11432 = load ptr, ptr %247, align 8, !tbaa !9
  %11433 = getelementptr inbounds %struct.s2n_connection, ptr %11432, i32 0, i32 17
  store i64 0, ptr %11433, align 8, !tbaa !55
  br label %11434

11434:                                            ; preds = %11431
  %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 %247, align 8, !tbaa !9
  %11438 = call i32 @s2n_shutdown_send(ptr noundef %11437, ptr noundef %261)
  %11439 = icmp eq i32 %11438, -1
  br i1 %11439, label %11440, label %11493

11440:                                            ; preds = %11434
  br label %11441

11441:                                            ; preds = %11440
  br label %11442

11442:                                            ; preds = %11441
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #10
  %11443 = call ptr @__errno_location() #11
  %11444 = load i32, ptr %11443, align 4, !tbaa !5
  store i32 %11444, ptr %272, align 4, !tbaa !5
  %11445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11446 = call i32 @s2n_print_stacktrace(ptr noundef %11445)
  %11447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11448 = trunc i8 %11447 to i1
  br i1 %11448, label %11449, label %11471

11449:                                            ; preds = %11442
  %11450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11451 = call i32 @fileno(ptr noundef %11450) #10
  %11452 = call i32 @isatty(i32 noundef %11451) #10
  %11453 = icmp ne i32 %11452, 0
  br i1 %11453, label %11454, label %11471

11454:                                            ; preds = %11449
  %11455 = load i32, ptr %272, align 4, !tbaa !5
  %11456 = call ptr @__errno_location() #11
  store i32 %11455, ptr %11456, align 4, !tbaa !5
  %11457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11458 = load i32, ptr @test_count, align 4, !tbaa !5
  %11459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11460 = load i32, ptr %11459, align 4, !tbaa !5
  %11461 = call ptr @s2n_strerror(i32 noundef %11460, ptr noundef @.str.4)
  %11462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11463 = load i32, ptr %11462, align 4, !tbaa !5
  %11464 = call ptr @s2n_strerror_debug(i32 noundef %11463, ptr noundef @.str.4)
  %11465 = call ptr @__errno_location() #11
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call ptr @strerror(i32 noundef %11466) #10
  %11468 = call ptr @__errno_location() #11
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11457, ptr noundef @.str.2, i32 noundef %11458, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 527, ptr noundef %11461, ptr noundef %11464, ptr noundef %11467, i32 noundef %11469) #10
  br label %11488

11471:                                            ; preds = %11449, %11442
  %11472 = load i32, ptr %272, align 4, !tbaa !5
  %11473 = call ptr @__errno_location() #11
  store i32 %11472, ptr %11473, align 4, !tbaa !5
  %11474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11475 = load i32, ptr @test_count, align 4, !tbaa !5
  %11476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11477 = load i32, ptr %11476, align 4, !tbaa !5
  %11478 = call ptr @s2n_strerror(i32 noundef %11477, ptr noundef @.str.4)
  %11479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  %11481 = call ptr @s2n_strerror_debug(i32 noundef %11480, ptr noundef @.str.4)
  %11482 = call ptr @__errno_location() #11
  %11483 = load i32, ptr %11482, align 4, !tbaa !5
  %11484 = call ptr @strerror(i32 noundef %11483) #10
  %11485 = call ptr @__errno_location() #11
  %11486 = load i32, ptr %11485, align 4, !tbaa !5
  %11487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11474, ptr noundef @.str.5, i32 noundef %11475, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 527, ptr noundef %11478, ptr noundef %11481, ptr noundef %11484, i32 noundef %11486) #10
  br label %11488

11488:                                            ; preds = %11471, %11454
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #10
  br label %11489

11489:                                            ; preds = %11488
  br label %11490

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

11491:                                            ; No predecessors!
  br label %11492

11492:                                            ; preds = %11491
  br label %11493

11493:                                            ; preds = %11492, %11434
  br label %11494

11494:                                            ; preds = %11493
  br label %11495

11495:                                            ; preds = %11494
  br label %11496

11496:                                            ; preds = %11495
  br label %11497

11497:                                            ; preds = %11496
  br label %11498

11498:                                            ; preds = %11497
  %11499 = load i32, ptr @test_count, align 4, !tbaa !5
  %11500 = add nsw i32 %11499, 1
  store i32 %11500, ptr @test_count, align 4, !tbaa !5
  %11501 = load ptr, ptr %253, align 8, !tbaa !9
  %11502 = getelementptr inbounds [1 x i8], ptr %260, i64 0, i64 0
  %11503 = call i64 @s2n_recv(ptr noundef %11501, ptr noundef %11502, i64 noundef 1, ptr noundef %261)
  %11504 = icmp eq i64 %11503, -1
  br i1 %11504, label %11558, label %11505

11505:                                            ; preds = %11498
  br label %11506

11506:                                            ; preds = %11505
  br label %11507

11507:                                            ; preds = %11506
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #10
  %11508 = call ptr @__errno_location() #11
  %11509 = load i32, ptr %11508, align 4, !tbaa !5
  store i32 %11509, ptr %273, align 4, !tbaa !5
  %11510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11511 = call i32 @s2n_print_stacktrace(ptr noundef %11510)
  %11512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11513 = trunc i8 %11512 to i1
  br i1 %11513, label %11514, label %11536

11514:                                            ; preds = %11507
  %11515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11516 = call i32 @fileno(ptr noundef %11515) #10
  %11517 = call i32 @isatty(i32 noundef %11516) #10
  %11518 = icmp ne i32 %11517, 0
  br i1 %11518, label %11519, label %11536

11519:                                            ; preds = %11514
  %11520 = load i32, ptr %273, align 4, !tbaa !5
  %11521 = call ptr @__errno_location() #11
  store i32 %11520, ptr %11521, align 4, !tbaa !5
  %11522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11523 = load i32, ptr @test_count, align 4, !tbaa !5
  %11524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11525 = load i32, ptr %11524, align 4, !tbaa !5
  %11526 = call ptr @s2n_strerror(i32 noundef %11525, ptr noundef @.str.4)
  %11527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11528 = load i32, ptr %11527, align 4, !tbaa !5
  %11529 = call ptr @s2n_strerror_debug(i32 noundef %11528, ptr noundef @.str.4)
  %11530 = call ptr @__errno_location() #11
  %11531 = load i32, ptr %11530, align 4, !tbaa !5
  %11532 = call ptr @strerror(i32 noundef %11531) #10
  %11533 = call ptr @__errno_location() #11
  %11534 = load i32, ptr %11533, align 4, !tbaa !5
  %11535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11522, ptr noundef @.str.2, i32 noundef %11523, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11526, ptr noundef %11529, ptr noundef %11532, i32 noundef %11534) #10
  br label %11553

11536:                                            ; preds = %11514, %11507
  %11537 = load i32, ptr %273, align 4, !tbaa !5
  %11538 = call ptr @__errno_location() #11
  store i32 %11537, ptr %11538, align 4, !tbaa !5
  %11539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11540 = load i32, ptr @test_count, align 4, !tbaa !5
  %11541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11542 = load i32, ptr %11541, align 4, !tbaa !5
  %11543 = call ptr @s2n_strerror(i32 noundef %11542, ptr noundef @.str.4)
  %11544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11545 = load i32, ptr %11544, align 4, !tbaa !5
  %11546 = call ptr @s2n_strerror_debug(i32 noundef %11545, ptr noundef @.str.4)
  %11547 = call ptr @__errno_location() #11
  %11548 = load i32, ptr %11547, align 4, !tbaa !5
  %11549 = call ptr @strerror(i32 noundef %11548) #10
  %11550 = call ptr @__errno_location() #11
  %11551 = load i32, ptr %11550, align 4, !tbaa !5
  %11552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11539, ptr noundef @.str.5, i32 noundef %11540, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11543, ptr noundef %11546, ptr noundef %11549, i32 noundef %11551) #10
  br label %11553

11553:                                            ; preds = %11536, %11519
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #10
  br label %11554

11554:                                            ; preds = %11553
  br label %11555

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

11556:                                            ; No predecessors!
  br label %11557

11557:                                            ; preds = %11556
  br label %11558

11558:                                            ; preds = %11557, %11498
  br label %11559

11559:                                            ; preds = %11558
  br label %11560

11560:                                            ; preds = %11559
  br label %11561

11561:                                            ; preds = %11560
  %11562 = load i32, ptr @test_count, align 4, !tbaa !5
  %11563 = add nsw i32 %11562, 1
  store i32 %11563, ptr @test_count, align 4, !tbaa !5
  %11564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11565 = load i32, ptr %11564, align 4, !tbaa !5
  %11566 = icmp eq i32 %11565, 268435456
  br i1 %11566, label %11620, label %11567

11567:                                            ; preds = %11561
  br label %11568

11568:                                            ; preds = %11567
  br label %11569

11569:                                            ; preds = %11568
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #10
  %11570 = call ptr @__errno_location() #11
  %11571 = load i32, ptr %11570, align 4, !tbaa !5
  store i32 %11571, ptr %274, align 4, !tbaa !5
  %11572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11573 = call i32 @s2n_print_stacktrace(ptr noundef %11572)
  %11574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11575 = trunc i8 %11574 to i1
  br i1 %11575, label %11576, label %11598

11576:                                            ; preds = %11569
  %11577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11578 = call i32 @fileno(ptr noundef %11577) #10
  %11579 = call i32 @isatty(i32 noundef %11578) #10
  %11580 = icmp ne i32 %11579, 0
  br i1 %11580, label %11581, label %11598

11581:                                            ; preds = %11576
  %11582 = load i32, ptr %274, align 4, !tbaa !5
  %11583 = call ptr @__errno_location() #11
  store i32 %11582, ptr %11583, align 4, !tbaa !5
  %11584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11585 = load i32, ptr @test_count, align 4, !tbaa !5
  %11586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11587 = load i32, ptr %11586, align 4, !tbaa !5
  %11588 = call ptr @s2n_strerror(i32 noundef %11587, ptr noundef @.str.4)
  %11589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11590 = load i32, ptr %11589, align 4, !tbaa !5
  %11591 = call ptr @s2n_strerror_debug(i32 noundef %11590, ptr noundef @.str.4)
  %11592 = call ptr @__errno_location() #11
  %11593 = load i32, ptr %11592, align 4, !tbaa !5
  %11594 = call ptr @strerror(i32 noundef %11593) #10
  %11595 = call ptr @__errno_location() #11
  %11596 = load i32, ptr %11595, align 4, !tbaa !5
  %11597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11584, ptr noundef @.str.2, i32 noundef %11585, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11588, ptr noundef %11591, ptr noundef %11594, i32 noundef %11596) #10
  br label %11615

11598:                                            ; preds = %11576, %11569
  %11599 = load i32, ptr %274, align 4, !tbaa !5
  %11600 = call ptr @__errno_location() #11
  store i32 %11599, ptr %11600, align 4, !tbaa !5
  %11601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11602 = load i32, ptr @test_count, align 4, !tbaa !5
  %11603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11604 = load i32, ptr %11603, align 4, !tbaa !5
  %11605 = call ptr @s2n_strerror(i32 noundef %11604, ptr noundef @.str.4)
  %11606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11607 = load i32, ptr %11606, align 4, !tbaa !5
  %11608 = call ptr @s2n_strerror_debug(i32 noundef %11607, ptr noundef @.str.4)
  %11609 = call ptr @__errno_location() #11
  %11610 = load i32, ptr %11609, align 4, !tbaa !5
  %11611 = call ptr @strerror(i32 noundef %11610) #10
  %11612 = call ptr @__errno_location() #11
  %11613 = load i32, ptr %11612, align 4, !tbaa !5
  %11614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11601, ptr noundef @.str.5, i32 noundef %11602, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11605, ptr noundef %11608, ptr noundef %11611, i32 noundef %11613) #10
  br label %11615

11615:                                            ; preds = %11598, %11581
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #10
  br label %11616

11616:                                            ; preds = %11615
  br label %11617

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

11618:                                            ; No predecessors!
  br label %11619

11619:                                            ; preds = %11618
  br label %11620

11620:                                            ; preds = %11619, %11561
  br label %11621

11621:                                            ; preds = %11620
  br label %11622

11622:                                            ; preds = %11621
  br label %11623

11623:                                            ; preds = %11622
  %11624 = load i32, ptr @test_count, align 4, !tbaa !5
  %11625 = add nsw i32 %11624, 1
  store i32 %11625, ptr @test_count, align 4, !tbaa !5
  %11626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11627 = load i32, ptr %11626, align 4, !tbaa !5
  %11628 = call ptr @s2n_strerror_debug(i32 noundef %11627, ptr noundef @.str.4)
  %11629 = icmp eq ptr %11628, null
  br i1 %11629, label %11630, label %11683

11630:                                            ; preds = %11623
  br label %11631

11631:                                            ; preds = %11630
  br label %11632

11632:                                            ; preds = %11631
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #10
  %11633 = call ptr @__errno_location() #11
  %11634 = load i32, ptr %11633, align 4, !tbaa !5
  store i32 %11634, ptr %275, align 4, !tbaa !5
  %11635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11636 = call i32 @s2n_print_stacktrace(ptr noundef %11635)
  %11637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11638 = trunc i8 %11637 to i1
  br i1 %11638, label %11639, label %11661

11639:                                            ; preds = %11632
  %11640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11641 = call i32 @fileno(ptr noundef %11640) #10
  %11642 = call i32 @isatty(i32 noundef %11641) #10
  %11643 = icmp ne i32 %11642, 0
  br i1 %11643, label %11644, label %11661

11644:                                            ; preds = %11639
  %11645 = load i32, ptr %275, align 4, !tbaa !5
  %11646 = call ptr @__errno_location() #11
  store i32 %11645, ptr %11646, align 4, !tbaa !5
  %11647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11648 = load i32, ptr @test_count, align 4, !tbaa !5
  %11649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11650 = load i32, ptr %11649, align 4, !tbaa !5
  %11651 = call ptr @s2n_strerror(i32 noundef %11650, ptr noundef @.str.4)
  %11652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11653 = load i32, ptr %11652, align 4, !tbaa !5
  %11654 = call ptr @s2n_strerror_debug(i32 noundef %11653, ptr noundef @.str.4)
  %11655 = call ptr @__errno_location() #11
  %11656 = load i32, ptr %11655, align 4, !tbaa !5
  %11657 = call ptr @strerror(i32 noundef %11656) #10
  %11658 = call ptr @__errno_location() #11
  %11659 = load i32, ptr %11658, align 4, !tbaa !5
  %11660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11647, ptr noundef @.str.2, i32 noundef %11648, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11651, ptr noundef %11654, ptr noundef %11657, i32 noundef %11659) #10
  br label %11678

11661:                                            ; preds = %11639, %11632
  %11662 = load i32, ptr %275, align 4, !tbaa !5
  %11663 = call ptr @__errno_location() #11
  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() #11
  %11673 = load i32, ptr %11672, align 4, !tbaa !5
  %11674 = call ptr @strerror(i32 noundef %11673) #10
  %11675 = call ptr @__errno_location() #11
  %11676 = load i32, ptr %11675, align 4, !tbaa !5
  %11677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11664, ptr noundef @.str.5, i32 noundef %11665, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 530, ptr noundef %11668, ptr noundef %11671, ptr noundef %11674, i32 noundef %11676) #10
  br label %11678

11678:                                            ; preds = %11661, %11644
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #10
  br label %11679

11679:                                            ; preds = %11678
  br label %11680

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

11681:                                            ; No predecessors!
  br label %11682

11682:                                            ; preds = %11681
  br label %11683

11683:                                            ; preds = %11682, %11623
  br label %11684

11684:                                            ; preds = %11683
  br label %11685

11685:                                            ; preds = %11684
  br label %11686

11686:                                            ; preds = %11685
  br label %11687

11687:                                            ; preds = %11686
  br label %11688

11688:                                            ; preds = %11687
  %11689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11689, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11690 = call ptr @__errno_location() #11
  store i32 0, ptr %11690, align 4, !tbaa !5
  br label %11691

11691:                                            ; preds = %11688
  br label %11692

11692:                                            ; preds = %11691
  br label %11693

11693:                                            ; preds = %11692
  br label %11694

11694:                                            ; preds = %11693
  br label %11695

11695:                                            ; preds = %11694
  %11696 = load i32, ptr @test_count, align 4, !tbaa !5
  %11697 = add nsw i32 %11696, 1
  store i32 %11697, ptr @test_count, align 4, !tbaa !5
  %11698 = load ptr, ptr %253, align 8, !tbaa !9
  %11699 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %11698, i32 noundef 3)
  br i1 %11699, label %11753, label %11700

11700:                                            ; preds = %11695
  br label %11701

11701:                                            ; preds = %11700
  br label %11702

11702:                                            ; preds = %11701
  call void @llvm.lifetime.start.p0(i64 4, ptr %276) #10
  %11703 = call ptr @__errno_location() #11
  %11704 = load i32, ptr %11703, align 4, !tbaa !5
  store i32 %11704, ptr %276, align 4, !tbaa !5
  %11705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11706 = call i32 @s2n_print_stacktrace(ptr noundef %11705)
  %11707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11708 = trunc i8 %11707 to i1
  br i1 %11708, label %11709, label %11731

11709:                                            ; preds = %11702
  %11710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11711 = call i32 @fileno(ptr noundef %11710) #10
  %11712 = call i32 @isatty(i32 noundef %11711) #10
  %11713 = icmp ne i32 %11712, 0
  br i1 %11713, label %11714, label %11731

11714:                                            ; preds = %11709
  %11715 = load i32, ptr %276, align 4, !tbaa !5
  %11716 = call ptr @__errno_location() #11
  store i32 %11715, ptr %11716, align 4, !tbaa !5
  %11717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11718 = load i32, ptr @test_count, align 4, !tbaa !5
  %11719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11720 = load i32, ptr %11719, align 4, !tbaa !5
  %11721 = call ptr @s2n_strerror(i32 noundef %11720, ptr noundef @.str.4)
  %11722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11723 = load i32, ptr %11722, align 4, !tbaa !5
  %11724 = call ptr @s2n_strerror_debug(i32 noundef %11723, ptr noundef @.str.4)
  %11725 = call ptr @__errno_location() #11
  %11726 = load i32, ptr %11725, align 4, !tbaa !5
  %11727 = call ptr @strerror(i32 noundef %11726) #10
  %11728 = call ptr @__errno_location() #11
  %11729 = load i32, ptr %11728, align 4, !tbaa !5
  %11730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11717, ptr noundef @.str.2, i32 noundef %11718, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 531, ptr noundef %11721, ptr noundef %11724, ptr noundef %11727, i32 noundef %11729) #10
  br label %11748

11731:                                            ; preds = %11709, %11702
  %11732 = load i32, ptr %276, align 4, !tbaa !5
  %11733 = call ptr @__errno_location() #11
  store i32 %11732, ptr %11733, align 4, !tbaa !5
  %11734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11735 = load i32, ptr @test_count, align 4, !tbaa !5
  %11736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11737 = load i32, ptr %11736, align 4, !tbaa !5
  %11738 = call ptr @s2n_strerror(i32 noundef %11737, ptr noundef @.str.4)
  %11739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11740 = load i32, ptr %11739, align 4, !tbaa !5
  %11741 = call ptr @s2n_strerror_debug(i32 noundef %11740, ptr noundef @.str.4)
  %11742 = call ptr @__errno_location() #11
  %11743 = load i32, ptr %11742, align 4, !tbaa !5
  %11744 = call ptr @strerror(i32 noundef %11743) #10
  %11745 = call ptr @__errno_location() #11
  %11746 = load i32, ptr %11745, align 4, !tbaa !5
  %11747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11734, ptr noundef @.str.5, i32 noundef %11735, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 531, ptr noundef %11738, ptr noundef %11741, ptr noundef %11744, i32 noundef %11746) #10
  br label %11748

11748:                                            ; preds = %11731, %11714
  call void @llvm.lifetime.end.p0(i64 4, ptr %276) #10
  br label %11749

11749:                                            ; preds = %11748
  br label %11750

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

11751:                                            ; No predecessors!
  br label %11752

11752:                                            ; preds = %11751
  br label %11753

11753:                                            ; preds = %11752, %11695
  br label %11754

11754:                                            ; preds = %11753
  br label %11755

11755:                                            ; preds = %11754
  br label %11756

11756:                                            ; preds = %11755
  %11757 = load i32, ptr @test_count, align 4, !tbaa !5
  %11758 = add nsw i32 %11757, 1
  store i32 %11758, ptr @test_count, align 4, !tbaa !5
  %11759 = load ptr, ptr %253, align 8, !tbaa !9
  %11760 = call i32 @s2n_connection_get_alert(ptr noundef %11759)
  %11761 = icmp eq i32 %11760, 40
  br i1 %11761, label %11815, label %11762

11762:                                            ; preds = %11756
  br label %11763

11763:                                            ; preds = %11762
  br label %11764

11764:                                            ; preds = %11763
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #10
  %11765 = call ptr @__errno_location() #11
  %11766 = load i32, ptr %11765, align 4, !tbaa !5
  store i32 %11766, ptr %277, align 4, !tbaa !5
  %11767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11768 = call i32 @s2n_print_stacktrace(ptr noundef %11767)
  %11769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11770 = trunc i8 %11769 to i1
  br i1 %11770, label %11771, label %11793

11771:                                            ; preds = %11764
  %11772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11773 = call i32 @fileno(ptr noundef %11772) #10
  %11774 = call i32 @isatty(i32 noundef %11773) #10
  %11775 = icmp ne i32 %11774, 0
  br i1 %11775, label %11776, label %11793

11776:                                            ; preds = %11771
  %11777 = load i32, ptr %277, align 4, !tbaa !5
  %11778 = call ptr @__errno_location() #11
  store i32 %11777, ptr %11778, align 4, !tbaa !5
  %11779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11780 = load i32, ptr @test_count, align 4, !tbaa !5
  %11781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11782 = load i32, ptr %11781, align 4, !tbaa !5
  %11783 = call ptr @s2n_strerror(i32 noundef %11782, ptr noundef @.str.4)
  %11784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11785 = load i32, ptr %11784, align 4, !tbaa !5
  %11786 = call ptr @s2n_strerror_debug(i32 noundef %11785, ptr noundef @.str.4)
  %11787 = call ptr @__errno_location() #11
  %11788 = load i32, ptr %11787, align 4, !tbaa !5
  %11789 = call ptr @strerror(i32 noundef %11788) #10
  %11790 = call ptr @__errno_location() #11
  %11791 = load i32, ptr %11790, align 4, !tbaa !5
  %11792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11779, ptr noundef @.str.2, i32 noundef %11780, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 532, ptr noundef %11783, ptr noundef %11786, ptr noundef %11789, i32 noundef %11791) #10
  br label %11810

11793:                                            ; preds = %11771, %11764
  %11794 = load i32, ptr %277, align 4, !tbaa !5
  %11795 = call ptr @__errno_location() #11
  store i32 %11794, ptr %11795, align 4, !tbaa !5
  %11796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11797 = load i32, ptr @test_count, align 4, !tbaa !5
  %11798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11799 = load i32, ptr %11798, align 4, !tbaa !5
  %11800 = call ptr @s2n_strerror(i32 noundef %11799, ptr noundef @.str.4)
  %11801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11802 = load i32, ptr %11801, align 4, !tbaa !5
  %11803 = call ptr @s2n_strerror_debug(i32 noundef %11802, ptr noundef @.str.4)
  %11804 = call ptr @__errno_location() #11
  %11805 = load i32, ptr %11804, align 4, !tbaa !5
  %11806 = call ptr @strerror(i32 noundef %11805) #10
  %11807 = call ptr @__errno_location() #11
  %11808 = load i32, ptr %11807, align 4, !tbaa !5
  %11809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11796, ptr noundef @.str.5, i32 noundef %11797, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 532, ptr noundef %11800, ptr noundef %11803, ptr noundef %11806, i32 noundef %11808) #10
  br label %11810

11810:                                            ; preds = %11793, %11776
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #10
  br label %11811

11811:                                            ; preds = %11810
  br label %11812

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

11813:                                            ; No predecessors!
  br label %11814

11814:                                            ; preds = %11813
  br label %11815

11815:                                            ; preds = %11814, %11756
  br label %11816

11816:                                            ; preds = %11815
  br label %11817

11817:                                            ; preds = %11816
  br label %11818

11818:                                            ; preds = %11817
  %11819 = load i32, ptr @test_count, align 4, !tbaa !5
  %11820 = add nsw i32 %11819, 1
  store i32 %11820, ptr @test_count, align 4, !tbaa !5
  %11821 = load ptr, ptr %247, align 8, !tbaa !9
  %11822 = getelementptr inbounds %struct.s2n_connection, ptr %11821, i32 0, i32 1
  %11823 = load ptr, ptr %11822, align 8, !tbaa !47
  %11824 = getelementptr inbounds %struct.s2n_config, ptr %11823, i32 0, i32 54
  %11825 = load ptr, ptr %11824, align 8, !tbaa !48
  %11826 = icmp eq ptr %11825, null
  br i1 %11826, label %11827, label %11880

11827:                                            ; preds = %11818
  br label %11828

11828:                                            ; preds = %11827
  br label %11829

11829:                                            ; preds = %11828
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #10
  %11830 = call ptr @__errno_location() #11
  %11831 = load i32, ptr %11830, align 4, !tbaa !5
  store i32 %11831, ptr %278, align 4, !tbaa !5
  %11832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11833 = call i32 @s2n_print_stacktrace(ptr noundef %11832)
  %11834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11835 = trunc i8 %11834 to i1
  br i1 %11835, label %11836, label %11858

11836:                                            ; preds = %11829
  %11837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11838 = call i32 @fileno(ptr noundef %11837) #10
  %11839 = call i32 @isatty(i32 noundef %11838) #10
  %11840 = icmp ne i32 %11839, 0
  br i1 %11840, label %11841, label %11858

11841:                                            ; preds = %11836
  %11842 = load i32, ptr %278, align 4, !tbaa !5
  %11843 = call ptr @__errno_location() #11
  store i32 %11842, ptr %11843, align 4, !tbaa !5
  %11844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11845 = load i32, ptr @test_count, align 4, !tbaa !5
  %11846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11847 = load i32, ptr %11846, align 4, !tbaa !5
  %11848 = call ptr @s2n_strerror(i32 noundef %11847, ptr noundef @.str.4)
  %11849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11850 = load i32, ptr %11849, align 4, !tbaa !5
  %11851 = call ptr @s2n_strerror_debug(i32 noundef %11850, ptr noundef @.str.4)
  %11852 = call ptr @__errno_location() #11
  %11853 = load i32, ptr %11852, align 4, !tbaa !5
  %11854 = call ptr @strerror(i32 noundef %11853) #10
  %11855 = call ptr @__errno_location() #11
  %11856 = load i32, ptr %11855, align 4, !tbaa !5
  %11857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11844, ptr noundef @.str.2, i32 noundef %11845, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11848, ptr noundef %11851, ptr noundef %11854, i32 noundef %11856) #10
  br label %11875

11858:                                            ; preds = %11836, %11829
  %11859 = load i32, ptr %278, align 4, !tbaa !5
  %11860 = call ptr @__errno_location() #11
  store i32 %11859, ptr %11860, align 4, !tbaa !5
  %11861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11862 = load i32, ptr @test_count, align 4, !tbaa !5
  %11863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11864 = load i32, ptr %11863, align 4, !tbaa !5
  %11865 = call ptr @s2n_strerror(i32 noundef %11864, ptr noundef @.str.4)
  %11866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11867 = load i32, ptr %11866, align 4, !tbaa !5
  %11868 = call ptr @s2n_strerror_debug(i32 noundef %11867, ptr noundef @.str.4)
  %11869 = call ptr @__errno_location() #11
  %11870 = load i32, ptr %11869, align 4, !tbaa !5
  %11871 = call ptr @strerror(i32 noundef %11870) #10
  %11872 = call ptr @__errno_location() #11
  %11873 = load i32, ptr %11872, align 4, !tbaa !5
  %11874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11861, ptr noundef @.str.5, i32 noundef %11862, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 535, ptr noundef %11865, ptr noundef %11868, ptr noundef %11871, i32 noundef %11873) #10
  br label %11875

11875:                                            ; preds = %11858, %11841
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #10
  br label %11876

11876:                                            ; preds = %11875
  br label %11877

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

11878:                                            ; No predecessors!
  br label %11879

11879:                                            ; preds = %11878
  br label %11880

11880:                                            ; preds = %11879, %11818
  br label %11881

11881:                                            ; preds = %11880
  br label %11882

11882:                                            ; preds = %11881
  br label %11883

11883:                                            ; preds = %11882
  %11884 = load i32, ptr @test_count, align 4, !tbaa !5
  %11885 = add nsw i32 %11884, 1
  store i32 %11885, ptr @test_count, align 4, !tbaa !5
  %11886 = getelementptr inbounds %struct.s2n_test_reneg_req_ctx, ptr %246, i32 0, i32 1
  %11887 = load i8, ptr %11886, align 4, !tbaa !52
  %11888 = zext i8 %11887 to i32
  %11889 = icmp eq i32 %11888, 1
  br i1 %11889, label %11943, label %11890

11890:                                            ; preds = %11883
  br label %11891

11891:                                            ; preds = %11890
  br label %11892

11892:                                            ; preds = %11891
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #10
  %11893 = call ptr @__errno_location() #11
  %11894 = load i32, ptr %11893, align 4, !tbaa !5
  store i32 %11894, ptr %279, align 4, !tbaa !5
  %11895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11896 = call i32 @s2n_print_stacktrace(ptr noundef %11895)
  %11897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11898 = trunc i8 %11897 to i1
  br i1 %11898, label %11899, label %11921

11899:                                            ; preds = %11892
  %11900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11901 = call i32 @fileno(ptr noundef %11900) #10
  %11902 = call i32 @isatty(i32 noundef %11901) #10
  %11903 = icmp ne i32 %11902, 0
  br i1 %11903, label %11904, label %11921

11904:                                            ; preds = %11899
  %11905 = load i32, ptr %279, align 4, !tbaa !5
  %11906 = call ptr @__errno_location() #11
  store i32 %11905, ptr %11906, align 4, !tbaa !5
  %11907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11908 = load i32, ptr @test_count, align 4, !tbaa !5
  %11909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11910 = load i32, ptr %11909, align 4, !tbaa !5
  %11911 = call ptr @s2n_strerror(i32 noundef %11910, ptr noundef @.str.4)
  %11912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11913 = load i32, ptr %11912, align 4, !tbaa !5
  %11914 = call ptr @s2n_strerror_debug(i32 noundef %11913, ptr noundef @.str.4)
  %11915 = call ptr @__errno_location() #11
  %11916 = load i32, ptr %11915, align 4, !tbaa !5
  %11917 = call ptr @strerror(i32 noundef %11916) #10
  %11918 = call ptr @__errno_location() #11
  %11919 = load i32, ptr %11918, align 4, !tbaa !5
  %11920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11907, ptr noundef @.str.2, i32 noundef %11908, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 536, ptr noundef %11911, ptr noundef %11914, ptr noundef %11917, i32 noundef %11919) #10
  br label %11938

11921:                                            ; preds = %11899, %11892
  %11922 = load i32, ptr %279, align 4, !tbaa !5
  %11923 = call ptr @__errno_location() #11
  store i32 %11922, ptr %11923, align 4, !tbaa !5
  %11924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11925 = load i32, ptr @test_count, align 4, !tbaa !5
  %11926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11927 = load i32, ptr %11926, align 4, !tbaa !5
  %11928 = call ptr @s2n_strerror(i32 noundef %11927, ptr noundef @.str.4)
  %11929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11930 = load i32, ptr %11929, align 4, !tbaa !5
  %11931 = call ptr @s2n_strerror_debug(i32 noundef %11930, ptr noundef @.str.4)
  %11932 = call ptr @__errno_location() #11
  %11933 = load i32, ptr %11932, align 4, !tbaa !5
  %11934 = call ptr @strerror(i32 noundef %11933) #10
  %11935 = call ptr @__errno_location() #11
  %11936 = load i32, ptr %11935, align 4, !tbaa !5
  %11937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11924, ptr noundef @.str.5, i32 noundef %11925, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 536, ptr noundef %11928, ptr noundef %11931, ptr noundef %11934, i32 noundef %11936) #10
  br label %11938

11938:                                            ; preds = %11921, %11904
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #10
  br label %11939

11939:                                            ; preds = %11938
  br label %11940

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

11941:                                            ; No predecessors!
  br label %11942

11942:                                            ; preds = %11941
  br label %11943

11943:                                            ; preds = %11942, %11883
  br label %11944

11944:                                            ; preds = %11943
  br label %11945

11945:                                            ; preds = %11944
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %260) #10
  %11946 = call i32 @s2n_io_pair_close(ptr noundef %257)
  call void @llvm.lifetime.end.p0(i64 8, ptr %257) #10
  %11947 = call i32 @s2n_connection_ptr_free(ptr noundef %253)
  %11948 = getelementptr inbounds %struct.s2n_result, ptr %280, i32 0, i32 0
  store i32 %11947, ptr %11948, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %253) #10
  %11949 = call i32 @s2n_connection_ptr_free(ptr noundef %247)
  %11950 = getelementptr inbounds %struct.s2n_result, ptr %281, i32 0, i32 0
  store i32 %11949, ptr %11950, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %246) #10
  br label %11951

11951:                                            ; preds = %11945, %10219
  br label %11952

11952:                                            ; preds = %11951
  %11953 = load i32, ptr @test_count, align 4, !tbaa !5
  %11954 = add nsw i32 %11953, 1
  store i32 %11954, ptr @test_count, align 4, !tbaa !5
  %11955 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %11956 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %11955)
  %11957 = icmp eq i32 %11956, -1
  br i1 %11957, label %11958, label %12011

11958:                                            ; preds = %11952
  br label %11959

11959:                                            ; preds = %11958
  br label %11960

11960:                                            ; preds = %11959
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #10
  %11961 = call ptr @__errno_location() #11
  %11962 = load i32, ptr %11961, align 4, !tbaa !5
  store i32 %11962, ptr %282, align 4, !tbaa !5
  %11963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11964 = call i32 @s2n_print_stacktrace(ptr noundef %11963)
  %11965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11966 = trunc i8 %11965 to i1
  br i1 %11966, label %11967, label %11989

11967:                                            ; preds = %11960
  %11968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11969 = call i32 @fileno(ptr noundef %11968) #10
  %11970 = call i32 @isatty(i32 noundef %11969) #10
  %11971 = icmp ne i32 %11970, 0
  br i1 %11971, label %11972, label %11989

11972:                                            ; preds = %11967
  %11973 = load i32, ptr %282, align 4, !tbaa !5
  %11974 = call ptr @__errno_location() #11
  store i32 %11973, ptr %11974, align 4, !tbaa !5
  %11975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11976 = load i32, ptr @test_count, align 4, !tbaa !5
  %11977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11978 = load i32, ptr %11977, align 4, !tbaa !5
  %11979 = call ptr @s2n_strerror(i32 noundef %11978, ptr noundef @.str.4)
  %11980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11981 = load i32, ptr %11980, align 4, !tbaa !5
  %11982 = call ptr @s2n_strerror_debug(i32 noundef %11981, ptr noundef @.str.4)
  %11983 = call ptr @__errno_location() #11
  %11984 = load i32, ptr %11983, align 4, !tbaa !5
  %11985 = call ptr @strerror(i32 noundef %11984) #10
  %11986 = call ptr @__errno_location() #11
  %11987 = load i32, ptr %11986, align 4, !tbaa !5
  %11988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11975, ptr noundef @.str.2, i32 noundef %11976, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 539, ptr noundef %11979, ptr noundef %11982, ptr noundef %11985, i32 noundef %11987) #10
  br label %12006

11989:                                            ; preds = %11967, %11960
  %11990 = load i32, ptr %282, align 4, !tbaa !5
  %11991 = call ptr @__errno_location() #11
  store i32 %11990, ptr %11991, align 4, !tbaa !5
  %11992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11993 = load i32, ptr @test_count, align 4, !tbaa !5
  %11994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call ptr @s2n_strerror(i32 noundef %11995, ptr noundef @.str.4)
  %11997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11998 = load i32, ptr %11997, align 4, !tbaa !5
  %11999 = call ptr @s2n_strerror_debug(i32 noundef %11998, ptr noundef @.str.4)
  %12000 = call ptr @__errno_location() #11
  %12001 = load i32, ptr %12000, align 4, !tbaa !5
  %12002 = call ptr @strerror(i32 noundef %12001) #10
  %12003 = call ptr @__errno_location() #11
  %12004 = load i32, ptr %12003, align 4, !tbaa !5
  %12005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11992, ptr noundef @.str.5, i32 noundef %11993, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 539, ptr noundef %11996, ptr noundef %11999, ptr noundef %12002, i32 noundef %12004) #10
  br label %12006

12006:                                            ; preds = %11989, %11972
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #10
  br label %12007

12007:                                            ; preds = %12006
  br label %12008

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

12009:                                            ; No predecessors!
  br label %12010

12010:                                            ; preds = %12009
  br label %12011

12011:                                            ; preds = %12010, %11952
  br label %12012

12012:                                            ; preds = %12011
  br label %12013

12013:                                            ; preds = %12012
  br label %12014

12014:                                            ; preds = %12013
  br label %12015

12015:                                            ; preds = %12014
  %12016 = call i32 @s2n_cleanup()
  %12017 = icmp eq i32 %12016, -1
  br i1 %12017, label %12018, label %12071

12018:                                            ; preds = %12015
  br label %12019

12019:                                            ; preds = %12018
  br label %12020

12020:                                            ; preds = %12019
  call void @llvm.lifetime.start.p0(i64 4, ptr %283) #10
  %12021 = call ptr @__errno_location() #11
  %12022 = load i32, ptr %12021, align 4, !tbaa !5
  store i32 %12022, ptr %283, align 4, !tbaa !5
  %12023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12024 = call i32 @s2n_print_stacktrace(ptr noundef %12023)
  %12025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12026 = trunc i8 %12025 to i1
  br i1 %12026, label %12027, label %12049

12027:                                            ; preds = %12020
  %12028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12029 = call i32 @fileno(ptr noundef %12028) #10
  %12030 = call i32 @isatty(i32 noundef %12029) #10
  %12031 = icmp ne i32 %12030, 0
  br i1 %12031, label %12032, label %12049

12032:                                            ; preds = %12027
  %12033 = load i32, ptr %283, align 4, !tbaa !5
  %12034 = call ptr @__errno_location() #11
  store i32 %12033, ptr %12034, align 4, !tbaa !5
  %12035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12036 = load i32, ptr @test_count, align 4, !tbaa !5
  %12037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12038 = load i32, ptr %12037, align 4, !tbaa !5
  %12039 = call ptr @s2n_strerror(i32 noundef %12038, ptr noundef @.str.4)
  %12040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12041 = load i32, ptr %12040, align 4, !tbaa !5
  %12042 = call ptr @s2n_strerror_debug(i32 noundef %12041, ptr noundef @.str.4)
  %12043 = call ptr @__errno_location() #11
  %12044 = load i32, ptr %12043, align 4, !tbaa !5
  %12045 = call ptr @strerror(i32 noundef %12044) #10
  %12046 = call ptr @__errno_location() #11
  %12047 = load i32, ptr %12046, align 4, !tbaa !5
  %12048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12035, ptr noundef @.str.2, i32 noundef %12036, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 540, ptr noundef %12039, ptr noundef %12042, ptr noundef %12045, i32 noundef %12047) #10
  br label %12066

12049:                                            ; preds = %12027, %12020
  %12050 = load i32, ptr %283, align 4, !tbaa !5
  %12051 = call ptr @__errno_location() #11
  store i32 %12050, ptr %12051, align 4, !tbaa !5
  %12052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12053 = load i32, ptr @test_count, align 4, !tbaa !5
  %12054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12055 = load i32, ptr %12054, align 4, !tbaa !5
  %12056 = call ptr @s2n_strerror(i32 noundef %12055, ptr noundef @.str.4)
  %12057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12058 = load i32, ptr %12057, align 4, !tbaa !5
  %12059 = call ptr @s2n_strerror_debug(i32 noundef %12058, ptr noundef @.str.4)
  %12060 = call ptr @__errno_location() #11
  %12061 = load i32, ptr %12060, align 4, !tbaa !5
  %12062 = call ptr @strerror(i32 noundef %12061) #10
  %12063 = call ptr @__errno_location() #11
  %12064 = load i32, ptr %12063, align 4, !tbaa !5
  %12065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12052, ptr noundef @.str.5, i32 noundef %12053, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 540, ptr noundef %12056, ptr noundef %12059, ptr noundef %12062, i32 noundef %12064) #10
  br label %12066

12066:                                            ; preds = %12049, %12032
  call void @llvm.lifetime.end.p0(i64 4, ptr %283) #10
  br label %12067

12067:                                            ; preds = %12066
  br label %12068

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

12069:                                            ; No predecessors!
  br label %12070

12070:                                            ; preds = %12069
  br label %12071

12071:                                            ; preds = %12070, %12015
  br label %12072

12072:                                            ; preds = %12071
  br label %12073

12073:                                            ; preds = %12072
  br label %12074

12074:                                            ; preds = %12073
  br label %12075

12075:                                            ; preds = %12074
  %12076 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %12077 = icmp eq i32 %12076, -1
  br i1 %12077, label %12078, label %12131

12078:                                            ; preds = %12075
  br label %12079

12079:                                            ; preds = %12078
  br label %12080

12080:                                            ; preds = %12079
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #10
  %12081 = call ptr @__errno_location() #11
  %12082 = load i32, ptr %12081, align 4, !tbaa !5
  store i32 %12082, ptr %284, align 4, !tbaa !5
  %12083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12084 = call i32 @s2n_print_stacktrace(ptr noundef %12083)
  %12085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12086 = trunc i8 %12085 to i1
  br i1 %12086, label %12087, label %12109

12087:                                            ; preds = %12080
  %12088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12089 = call i32 @fileno(ptr noundef %12088) #10
  %12090 = call i32 @isatty(i32 noundef %12089) #10
  %12091 = icmp ne i32 %12090, 0
  br i1 %12091, label %12092, label %12109

12092:                                            ; preds = %12087
  %12093 = load i32, ptr %284, align 4, !tbaa !5
  %12094 = call ptr @__errno_location() #11
  store i32 %12093, ptr %12094, align 4, !tbaa !5
  %12095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12096 = load i32, ptr @test_count, align 4, !tbaa !5
  %12097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  %12099 = call ptr @s2n_strerror(i32 noundef %12098, ptr noundef @.str.4)
  %12100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12101 = load i32, ptr %12100, align 4, !tbaa !5
  %12102 = call ptr @s2n_strerror_debug(i32 noundef %12101, ptr noundef @.str.4)
  %12103 = call ptr @__errno_location() #11
  %12104 = load i32, ptr %12103, align 4, !tbaa !5
  %12105 = call ptr @strerror(i32 noundef %12104) #10
  %12106 = call ptr @__errno_location() #11
  %12107 = load i32, ptr %12106, align 4, !tbaa !5
  %12108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12095, ptr noundef @.str.2, i32 noundef %12096, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 540, ptr noundef %12099, ptr noundef %12102, ptr noundef %12105, i32 noundef %12107) #10
  br label %12126

12109:                                            ; preds = %12087, %12080
  %12110 = load i32, ptr %284, align 4, !tbaa !5
  %12111 = call ptr @__errno_location() #11
  store i32 %12110, ptr %12111, align 4, !tbaa !5
  %12112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12113 = load i32, ptr @test_count, align 4, !tbaa !5
  %12114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12115 = load i32, ptr %12114, align 4, !tbaa !5
  %12116 = call ptr @s2n_strerror(i32 noundef %12115, ptr noundef @.str.4)
  %12117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12118 = load i32, ptr %12117, align 4, !tbaa !5
  %12119 = call ptr @s2n_strerror_debug(i32 noundef %12118, ptr noundef @.str.4)
  %12120 = call ptr @__errno_location() #11
  %12121 = load i32, ptr %12120, align 4, !tbaa !5
  %12122 = call ptr @strerror(i32 noundef %12121) #10
  %12123 = call ptr @__errno_location() #11
  %12124 = load i32, ptr %12123, align 4, !tbaa !5
  %12125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12112, ptr noundef @.str.5, i32 noundef %12113, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 540, ptr noundef %12116, ptr noundef %12119, ptr noundef %12122, i32 noundef %12124) #10
  br label %12126

12126:                                            ; preds = %12109, %12092
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #10
  br label %12127

12127:                                            ; preds = %12126
  br label %12128

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

12129:                                            ; No predecessors!
  br label %12130

12130:                                            ; preds = %12129
  br label %12131

12131:                                            ; preds = %12130, %12075
  br label %12132

12132:                                            ; preds = %12131
  br label %12133

12133:                                            ; preds = %12132
  %12134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12135 = trunc i8 %12134 to i1
  br i1 %12135, label %12136, label %12152

12136:                                            ; preds = %12133
  %12137 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12138 = call i32 @fileno(ptr noundef %12137) #10
  %12139 = call i32 @isatty(i32 noundef %12138) #10
  %12140 = icmp ne i32 %12139, 0
  br i1 %12140, label %12141, label %12152

12141:                                            ; preds = %12136
  %12142 = load i32, ptr @test_count, align 4, !tbaa !5
  %12143 = icmp ne i32 %12142, 0
  br i1 %12143, label %12144, label %12148

12144:                                            ; preds = %12141
  %12145 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12146 = load i32, ptr @test_count, align 4, !tbaa !5
  %12147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12145, ptr noundef @.str.88, i32 noundef %12146) #10
  br label %12151

12148:                                            ; preds = %12141
  %12149 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12149, ptr noundef @.str.89) #10
  br label %12151

12151:                                            ; preds = %12148, %12144
  br label %12163

12152:                                            ; preds = %12136, %12133
  %12153 = load i32, ptr @test_count, align 4, !tbaa !5
  %12154 = icmp ne i32 %12153, 0
  br i1 %12154, label %12155, label %12159

12155:                                            ; preds = %12152
  %12156 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12157 = load i32, ptr @test_count, align 4, !tbaa !5
  %12158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12156, ptr noundef @.str.90, i32 noundef %12157) #10
  br label %12162

12159:                                            ; preds = %12152
  %12160 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12160, ptr noundef @.str.91) #10
  br label %12162

12162:                                            ; preds = %12159, %12155
  br label %12163

12163:                                            ; preds = %12162, %12151
  store i32 0, ptr %3, align 4
  store i32 1, ptr %285, align 4
  br label %12168

12164:                                            ; No predecessors!
  br label %12165

12165:                                            ; preds = %12164
  br label %12166

12166:                                            ; preds = %12165
  br label %12167

12167:                                            ; preds = %12166
  store i32 0, ptr %285, align 4
  br label %12168

12168:                                            ; preds = %12167, %12163
  %12169 = call i32 @s2n_config_ptr_free(ptr noundef %17)
  %12170 = getelementptr inbounds %struct.s2n_result, ptr %286, i32 0, i32 0
  store i32 %12169, ptr %12170, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  %12171 = call i32 @s2n_config_ptr_free(ptr noundef %12)
  %12172 = getelementptr inbounds %struct.s2n_result, ptr %287, i32 0, i32 0
  store i32 %12171, ptr %12172, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  %12173 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %12174 = getelementptr inbounds %struct.s2n_result, ptr %288, i32 0, i32 0
  store i32 %12173, ptr %12174, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  %12175 = load i32, ptr %285, align 4
  switch i32 %12175, label %12178 [
    i32 0, label %12176
    i32 1, label %12176
  ]

12176:                                            ; preds = %12168, %12168
  %12177 = load i32, ptr %3, align 4
  ret i32 %12177

12178:                                            ; preds = %12168
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_reneg_req_cb(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #8

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_send_client_hello_request(ptr noundef) #0

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

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

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

declare void @s2n_debug_info_reset() #2

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

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

declare zeroext i1 @s2n_connection_check_io_status(ptr noundef, i32 noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) #8

declare i32 @s2n_connection_get_alert(ptr noundef) #2

declare zeroext i1 @s2n_hash_is_available(i32 noundef) #2

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

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

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 640}
!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, !10, i64 224}
!43 = !{!16, !7, i64 220}
!44 = !{!18, !18, i64 0}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!16, !10, i64 8}
!48 = !{!49, !10, i64 432}
!49 = !{!"s2n_config", !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, !10, i64 8, !10, i64 16, !50, i64 24, !25, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !18, i64 144, !10, i64 152, !18, i64 160, !18, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !51, i64 304, !31, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !25, i64 448}
!50 = !{!"certs_by_type", !7, i64 0}
!51 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!52 = !{!53, !7, i64 4}
!53 = !{!"s2n_test_reneg_req_ctx", !6, i64 0, !7, i64 4}
!54 = !{!16, !7, i64 218}
!55 = !{!16, !18, i64 176}


; 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_test_reneg_req_ctx = type { i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [88 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@main.chain_and_key = external hidden global ptr, align 8
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [155 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [75 x i8], align 1
@__const.main.ctx = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.57 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [37 x i8], align 1
@__const.main.ctx.64 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@__const.main.ctx.65 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.66 = external hidden unnamed_addr constant [37 x i8], align 1
@__const.main.ctx.67 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.68 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [48 x i8], align 1
@__const.main.ctx.70 = external hidden unnamed_addr constant %struct.s2n_test_reneg_req_ctx, align 4
@.str.71 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_test_io_pair, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_test_io_pair, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_test_io_pair, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca %struct.s2n_test_io_pair, align 8
  %19 = alloca %struct.s2n_test_reneg_req_ctx, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_test_io_pair, align 8
  %23 = alloca %struct.s2n_test_reneg_req_ctx, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %struct.s2n_test_io_pair, align 8
  %27 = alloca %struct.s2n_test_reneg_req_ctx, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %struct.s2n_test_io_pair, align 8
  %31 = alloca %struct.s2n_test_reneg_req_ctx, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %struct.s2n_test_io_pair, align 8
  %35 = alloca %struct.s2n_test_reneg_req_ctx, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca %struct.s2n_test_io_pair, align 8
  %39 = alloca %struct.s2n_test_reneg_req_ctx, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca %struct.s2n_test_io_pair, align 8
  %43 = alloca [1 x i8], align 1
  %44 = alloca i32, align 4
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %45 = load ptr, ptr @stdout, align 8, !tbaa !9
  %46 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %47 = load ptr, ptr @stdout, align 8, !tbaa !9
  %48 = tail call i32 @fflush(ptr noundef %47)
  %49 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %50 = icmp eq i32 %49, -1
  br i1 %50, label %51, label %75

51:                                               ; preds = %2
  %52 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %61 = tail call i32 @isatty(i32 noundef %60) #9
  %.not622 = icmp eq i32 %61, 0
  br i1 %.not622, label %62, label %63

62:                                               ; preds = %58, %51
  br label %63

63:                                               ; preds = %58, %62
  %.str.5.sink = 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) #9
  %69 = load i32, ptr %66, align 4, !tbaa !5
  %70 = tail call ptr @s2n_strerror_debug(i32 noundef %69, ptr noundef nonnull @.str.4) #9
  %71 = load i32, ptr %52, align 4, !tbaa !5
  %72 = tail call ptr @strerror(i32 noundef %71) #9
  %73 = load i32, ptr %52, align 4, !tbaa !5
  %74 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %64, ptr noundef nonnull %.str.5.sink, i32 noundef %65, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %68, ptr noundef %70, ptr noundef %72, i32 noundef %73) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

75:                                               ; preds = %2
  %76 = load i32, ptr @test_count, align 4, !tbaa !5
  %77 = add nsw i32 %76, 1
  store i32 %77, ptr @test_count, align 4, !tbaa !5
  %78 = tail call i32 @s2n_enable_atexit() #9
  %79 = icmp eq i32 %78, -1
  br i1 %79, label %80, label %104

80:                                               ; preds = %75
  %81 = tail call ptr @__errno_location() #10
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = tail call i32 @s2n_print_stacktrace(ptr noundef %83) #9
  %85 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %86 = trunc nuw i8 %85 to i1
  br i1 %86, label %87, label %91

87:                                               ; preds = %80
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = tail call i32 @fileno(ptr noundef %88) #9
  %90 = tail call i32 @isatty(i32 noundef %89) #9
  %.not621 = icmp eq i32 %90, 0
  br i1 %.not621, label %91, label %92

91:                                               ; preds = %87, %80
  br label %92

92:                                               ; preds = %87, %91
  %.str.5.sink634 = phi ptr [ @.str.5, %91 ], [ @.str.2, %87 ]
  store i32 %82, ptr %81, align 4, !tbaa !5
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = load i32, ptr @test_count, align 4, !tbaa !5
  %95 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = tail call ptr @s2n_strerror(i32 noundef %96, ptr noundef nonnull @.str.4) #9
  %98 = load i32, ptr %95, align 4, !tbaa !5
  %99 = tail call ptr @s2n_strerror_debug(i32 noundef %98, ptr noundef nonnull @.str.4) #9
  %100 = load i32, ptr %81, align 4, !tbaa !5
  %101 = tail call ptr @strerror(i32 noundef %100) #9
  %102 = load i32, ptr %81, align 4, !tbaa !5
  %103 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %93, ptr noundef nonnull %.str.5.sink634, i32 noundef %94, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %97, ptr noundef %99, ptr noundef %101, i32 noundef %102) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

104:                                              ; preds = %75
  %105 = tail call i32 @s2n_init() #9
  %106 = icmp eq i32 %105, -1
  br i1 %106, label %107, label %131

107:                                              ; preds = %104
  %108 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %117 = tail call i32 @isatty(i32 noundef %116) #9
  %.not620 = icmp eq i32 %117, 0
  br i1 %.not620, label %118, label %119

118:                                              ; preds = %114, %107
  br label %119

119:                                              ; preds = %114, %118
  %.str.5.sink645 = 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) #9
  %125 = load i32, ptr %122, align 4, !tbaa !5
  %126 = tail call ptr @s2n_strerror_debug(i32 noundef %125, ptr noundef nonnull @.str.4) #9
  %127 = load i32, ptr %108, align 4, !tbaa !5
  %128 = tail call ptr @strerror(i32 noundef %127) #9
  %129 = load i32, ptr %108, align 4, !tbaa !5
  %130 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef nonnull %.str.5.sink645, i32 noundef %121, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %124, ptr noundef %126, ptr noundef %128, i32 noundef %129) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

131:                                              ; preds = %104
  %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 i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull @main.chain_and_key, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #9
  %135 = icmp eq i32 %134, -1
  br i1 %135, label %136, label %160

136:                                              ; preds = %131
  %137 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %146 = tail call i32 @isatty(i32 noundef %145) #9
  %.not619 = icmp eq i32 %146, 0
  br i1 %.not619, label %147, label %148

147:                                              ; preds = %143, %136
  br label %148

148:                                              ; preds = %143, %147
  %.str.5.sink656 = 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) #9
  %154 = load i32, ptr %151, align 4, !tbaa !5
  %155 = tail call ptr @s2n_strerror_debug(i32 noundef %154, ptr noundef nonnull @.str.4) #9
  %156 = load i32, ptr %137, align 4, !tbaa !5
  %157 = tail call ptr @strerror(i32 noundef %156) #9
  %158 = load i32, ptr %137, align 4, !tbaa !5
  %159 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef nonnull %.str.5.sink656, i32 noundef %150, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %153, ptr noundef %155, ptr noundef %157, i32 noundef %158) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

160:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  store ptr null, ptr %3, align 8, !tbaa !9
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12) #9
  %164 = icmp eq i32 %163, -1
  br i1 %164, label %165, label %189

165:                                              ; preds = %160
  %166 = tail call ptr @__errno_location() #10
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = call i32 @s2n_print_stacktrace(ptr noundef %168) #9
  %170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %171 = trunc nuw i8 %170 to i1
  br i1 %171, label %172, label %176

172:                                              ; preds = %165
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @fileno(ptr noundef %173) #9
  %175 = call i32 @isatty(i32 noundef %174) #9
  %.not618 = icmp eq i32 %175, 0
  br i1 %.not618, label %176, label %177

176:                                              ; preds = %172, %165
  br label %177

177:                                              ; preds = %172, %176
  %.str.5.sink667 = phi ptr [ @.str.5, %176 ], [ @.str.2, %172 ]
  store i32 %167, ptr %166, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror(i32 noundef %181, ptr noundef nonnull @.str.4) #9
  %183 = load i32, ptr %180, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef nonnull @.str.4) #9
  %185 = load i32, ptr %166, align 4, !tbaa !5
  %186 = call ptr @strerror(i32 noundef %185) #9
  %187 = load i32, ptr %166, align 4, !tbaa !5
  %188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef nonnull %.str.5.sink667, i32 noundef %179, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %182, ptr noundef %184, ptr noundef %186, i32 noundef %187) #11
  call void @exit(i32 noundef 1) #12
  unreachable

189:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #9
  %190 = call ptr @s2n_config_new() #9
  store ptr %190, ptr %4, align 8, !tbaa !9
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = icmp eq ptr %190, null
  br i1 %193, label %194, label %218

194:                                              ; preds = %189
  %195 = tail call ptr @__errno_location() #10
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = call i32 @s2n_print_stacktrace(ptr noundef %197) #9
  %199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %205

201:                                              ; preds = %194
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = call i32 @fileno(ptr noundef %202) #9
  %204 = call i32 @isatty(i32 noundef %203) #9
  %.not617 = icmp eq i32 %204, 0
  br i1 %.not617, label %205, label %206

205:                                              ; preds = %201, %194
  br label %206

206:                                              ; preds = %201, %205
  %.str.5.sink678 = phi ptr [ @.str.5, %205 ], [ @.str.2, %201 ]
  store i32 %196, ptr %195, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror(i32 noundef %210, ptr noundef nonnull @.str.4) #9
  %212 = load i32, ptr %209, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror_debug(i32 noundef %212, ptr noundef nonnull @.str.4) #9
  %214 = load i32, ptr %195, align 4, !tbaa !5
  %215 = call ptr @strerror(i32 noundef %214) #9
  %216 = load i32, ptr %195, align 4, !tbaa !5
  %217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull %.str.5.sink678, i32 noundef %208, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %211, ptr noundef %213, ptr noundef %215, i32 noundef %216) #11
  call void @exit(i32 noundef 1) #12
  unreachable

218:                                              ; preds = %189
  %219 = add nsw i32 %191, 2
  store i32 %219, ptr @test_count, align 4, !tbaa !5
  %220 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %190, ptr noundef nonnull @.str.15) #9
  %221 = icmp eq i32 %220, -1
  br i1 %221, label %222, label %246

222:                                              ; preds = %218
  %223 = tail call ptr @__errno_location() #10
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = call i32 @s2n_print_stacktrace(ptr noundef %225) #9
  %227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %228 = trunc nuw i8 %227 to i1
  br i1 %228, label %229, label %233

229:                                              ; preds = %222
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = call i32 @fileno(ptr noundef %230) #9
  %232 = call i32 @isatty(i32 noundef %231) #9
  %.not616 = icmp eq i32 %232, 0
  br i1 %.not616, label %233, label %234

233:                                              ; preds = %229, %222
  br label %234

234:                                              ; preds = %229, %233
  %.str.5.sink689 = phi ptr [ @.str.5, %233 ], [ @.str.2, %229 ]
  store i32 %224, ptr %223, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror(i32 noundef %238, ptr noundef nonnull @.str.4) #9
  %240 = load i32, ptr %237, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef nonnull @.str.4) #9
  %242 = load i32, ptr %223, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #9
  %244 = load i32, ptr %223, align 4, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef nonnull %.str.5.sink689, i32 noundef %236, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %239, ptr noundef %241, ptr noundef %243, i32 noundef %244) #11
  call void @exit(i32 noundef 1) #12
  unreachable

246:                                              ; preds = %218
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = add nsw i32 %247, 1
  store i32 %248, ptr @test_count, align 4, !tbaa !5
  %249 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %190) #9
  %250 = icmp eq i32 %249, -1
  br i1 %250, label %251, label %275

251:                                              ; preds = %246
  %252 = tail call ptr @__errno_location() #10
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = call i32 @s2n_print_stacktrace(ptr noundef %254) #9
  %256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %257 = trunc nuw i8 %256 to i1
  br i1 %257, label %258, label %262

258:                                              ; preds = %251
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = call i32 @fileno(ptr noundef %259) #9
  %261 = call i32 @isatty(i32 noundef %260) #9
  %.not615 = icmp eq i32 %261, 0
  br i1 %.not615, label %262, label %263

262:                                              ; preds = %258, %251
  br label %263

263:                                              ; preds = %258, %262
  %.str.5.sink700 = phi ptr [ @.str.5, %262 ], [ @.str.2, %258 ]
  store i32 %253, ptr %252, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call ptr @s2n_strerror(i32 noundef %267, ptr noundef nonnull @.str.4) #9
  %269 = load i32, ptr %266, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror_debug(i32 noundef %269, ptr noundef nonnull @.str.4) #9
  %271 = load i32, ptr %252, align 4, !tbaa !5
  %272 = call ptr @strerror(i32 noundef %271) #9
  %273 = load i32, ptr %252, align 4, !tbaa !5
  %274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef nonnull %.str.5.sink700, i32 noundef %265, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %268, ptr noundef %270, ptr noundef %272, i32 noundef %273) #11
  call void @exit(i32 noundef 1) #12
  unreachable

275:                                              ; preds = %246
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr @test_count, align 4, !tbaa !5
  %278 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %279 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %190, ptr noundef %278) #9
  %280 = icmp eq i32 %279, -1
  br i1 %280, label %281, label %305

281:                                              ; preds = %275
  %282 = tail call ptr @__errno_location() #10
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = call i32 @s2n_print_stacktrace(ptr noundef %284) #9
  %286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %287 = trunc nuw i8 %286 to i1
  br i1 %287, label %288, label %292

288:                                              ; preds = %281
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = call i32 @fileno(ptr noundef %289) #9
  %291 = call i32 @isatty(i32 noundef %290) #9
  %.not614 = icmp eq i32 %291, 0
  br i1 %.not614, label %292, label %293

292:                                              ; preds = %288, %281
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink711 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %282, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror(i32 noundef %297, ptr noundef nonnull @.str.4) #9
  %299 = load i32, ptr %296, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef nonnull @.str.4) #9
  %301 = load i32, ptr %282, align 4, !tbaa !5
  %302 = call ptr @strerror(i32 noundef %301) #9
  %303 = load i32, ptr %282, align 4, !tbaa !5
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink711, i32 noundef %295, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %298, ptr noundef %300, ptr noundef %302, i32 noundef %303) #11
  call void @exit(i32 noundef 1) #12
  unreachable

305:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  %306 = call ptr @s2n_config_new() #9
  store ptr %306, ptr %5, align 8, !tbaa !9
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %308 = add nsw i32 %307, 1
  store i32 %308, ptr @test_count, align 4, !tbaa !5
  %309 = icmp eq ptr %306, null
  br i1 %309, label %310, label %334

310:                                              ; preds = %305
  %311 = tail call ptr @__errno_location() #10
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = call i32 @s2n_print_stacktrace(ptr noundef %313) #9
  %315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %316 = trunc nuw i8 %315 to i1
  br i1 %316, label %317, label %321

317:                                              ; preds = %310
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = call i32 @fileno(ptr noundef %318) #9
  %320 = call i32 @isatty(i32 noundef %319) #9
  %.not613 = icmp eq i32 %320, 0
  br i1 %.not613, label %321, label %322

321:                                              ; preds = %317, %310
  br label %322

322:                                              ; preds = %317, %321
  %.str.5.sink722 = phi ptr [ @.str.5, %321 ], [ @.str.2, %317 ]
  store i32 %312, ptr %311, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = load i32, ptr @test_count, align 4, !tbaa !5
  %325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror(i32 noundef %326, ptr noundef nonnull @.str.4) #9
  %328 = load i32, ptr %325, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef nonnull @.str.4) #9
  %330 = load i32, ptr %311, align 4, !tbaa !5
  %331 = call ptr @strerror(i32 noundef %330) #9
  %332 = load i32, ptr %311, align 4, !tbaa !5
  %333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %323, ptr noundef nonnull %.str.5.sink722, i32 noundef %324, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %327, ptr noundef %329, ptr noundef %331, i32 noundef %332) #11
  call void @exit(i32 noundef 1) #12
  unreachable

334:                                              ; preds = %305
  %335 = add nsw i32 %307, 2
  store i32 %335, ptr @test_count, align 4, !tbaa !5
  %336 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %306, ptr noundef nonnull @.str.15) #9
  %337 = icmp eq i32 %336, -1
  br i1 %337, label %338, label %362

338:                                              ; preds = %334
  %339 = tail call ptr @__errno_location() #10
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = call i32 @s2n_print_stacktrace(ptr noundef %341) #9
  %343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %344 = trunc nuw i8 %343 to i1
  br i1 %344, label %345, label %349

345:                                              ; preds = %338
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @fileno(ptr noundef %346) #9
  %348 = call i32 @isatty(i32 noundef %347) #9
  %.not612 = icmp eq i32 %348, 0
  br i1 %.not612, label %349, label %350

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.5.sink733 = phi ptr [ @.str.5, %349 ], [ @.str.2, %345 ]
  store i32 %340, ptr %339, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef nonnull @.str.4) #9
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.4) #9
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #9
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.5.sink733, i32 noundef %352, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #11
  call void @exit(i32 noundef 1) #12
  unreachable

362:                                              ; preds = %334
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %306) #9
  %366 = icmp eq i32 %365, -1
  br i1 %366, label %367, label %391

367:                                              ; preds = %362
  %368 = tail call ptr @__errno_location() #10
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = call i32 @s2n_print_stacktrace(ptr noundef %370) #9
  %372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %373 = trunc nuw i8 %372 to i1
  br i1 %373, label %374, label %378

374:                                              ; preds = %367
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = call i32 @fileno(ptr noundef %375) #9
  %377 = call i32 @isatty(i32 noundef %376) #9
  %.not611 = icmp eq i32 %377, 0
  br i1 %.not611, label %378, label %379

378:                                              ; preds = %374, %367
  br label %379

379:                                              ; preds = %374, %378
  %.str.5.sink744 = phi ptr [ @.str.5, %378 ], [ @.str.2, %374 ]
  store i32 %369, ptr %368, align 4, !tbaa !5
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @s2n_strerror(i32 noundef %383, ptr noundef nonnull @.str.4) #9
  %385 = load i32, ptr %382, align 4, !tbaa !5
  %386 = call ptr @s2n_strerror_debug(i32 noundef %385, ptr noundef nonnull @.str.4) #9
  %387 = load i32, ptr %368, align 4, !tbaa !5
  %388 = call ptr @strerror(i32 noundef %387) #9
  %389 = load i32, ptr %368, align 4, !tbaa !5
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %380, ptr noundef nonnull %.str.5.sink744, i32 noundef %381, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %384, ptr noundef %386, ptr noundef %388, i32 noundef %389) #11
  call void @exit(i32 noundef 1) #12
  unreachable

391:                                              ; preds = %362
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr @test_count, align 4, !tbaa !5
  %394 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %395 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %306, ptr noundef %394) #9
  %396 = icmp eq i32 %395, -1
  br i1 %396, label %397, label %421

397:                                              ; preds = %391
  %398 = tail call ptr @__errno_location() #10
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @s2n_print_stacktrace(ptr noundef %400) #9
  %402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %403 = trunc nuw i8 %402 to i1
  br i1 %403, label %404, label %408

404:                                              ; preds = %397
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @fileno(ptr noundef %405) #9
  %407 = call i32 @isatty(i32 noundef %406) #9
  %.not610 = icmp eq i32 %407, 0
  br i1 %.not610, label %408, label %409

408:                                              ; preds = %404, %397
  br label %409

409:                                              ; preds = %404, %408
  %.str.5.sink755 = phi ptr [ @.str.5, %408 ], [ @.str.2, %404 ]
  store i32 %399, ptr %398, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror(i32 noundef %413, ptr noundef nonnull @.str.4) #9
  %415 = load i32, ptr %412, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror_debug(i32 noundef %415, ptr noundef nonnull @.str.4) #9
  %417 = load i32, ptr %398, align 4, !tbaa !5
  %418 = call ptr @strerror(i32 noundef %417) #9
  %419 = load i32, ptr %398, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef nonnull %.str.5.sink755, i32 noundef %411, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %414, ptr noundef %416, ptr noundef %418, i32 noundef %419) #11
  call void @exit(i32 noundef 1) #12
  unreachable

421:                                              ; preds = %391
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr @test_count, align 4, !tbaa !5
  %424 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef null) #9
  %425 = icmp eq i32 %424, -1
  br i1 %425, label %426, label %450

426:                                              ; preds = %421
  %427 = tail call ptr @__errno_location() #10
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @s2n_print_stacktrace(ptr noundef %429) #9
  %431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %432 = trunc nuw i8 %431 to i1
  br i1 %432, label %433, label %437

433:                                              ; preds = %426
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @fileno(ptr noundef %434) #9
  %436 = call i32 @isatty(i32 noundef %435) #9
  %.not609 = icmp eq i32 %436, 0
  br i1 %.not609, label %437, label %438

437:                                              ; preds = %433, %426
  br label %438

438:                                              ; preds = %433, %437
  %.str.5.sink766 = phi ptr [ @.str.5, %437 ], [ @.str.2, %433 ]
  store i32 %428, ptr %427, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror(i32 noundef %442, ptr noundef nonnull @.str.4) #9
  %444 = load i32, ptr %441, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror_debug(i32 noundef %444, ptr noundef nonnull @.str.4) #9
  %446 = load i32, ptr %427, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #9
  %448 = load i32, ptr %427, align 4, !tbaa !5
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull %.str.5.sink766, i32 noundef %440, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %443, ptr noundef %445, ptr noundef %447, i32 noundef %448) #11
  call void @exit(i32 noundef 1) #12
  unreachable

450:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %451 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %451, ptr %6, align 8, !tbaa !9
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr @test_count, align 4, !tbaa !5
  %454 = icmp eq ptr %451, null
  br i1 %454, label %455, label %479

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

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

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

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

479:                                              ; preds = %450
  %480 = add nsw i32 %452, 2
  store i32 %480, ptr @test_count, align 4, !tbaa !5
  %481 = call i32 @s2n_connection_set_config(ptr noundef nonnull %451, ptr noundef nonnull %190) #9
  %482 = icmp eq i32 %481, -1
  br i1 %482, label %483, label %507

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

490:                                              ; preds = %483
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @fileno(ptr noundef %491) #9
  %493 = call i32 @isatty(i32 noundef %492) #9
  %.not607 = icmp eq i32 %493, 0
  br i1 %.not607, label %494, label %495

494:                                              ; preds = %490, %483
  br label %495

495:                                              ; preds = %490, %494
  %.str.5.sink788 = phi ptr [ @.str.5, %494 ], [ @.str.2, %490 ]
  store i32 %485, ptr %484, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef nonnull @.str.4) #9
  %501 = load i32, ptr %498, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef %501, ptr noundef nonnull @.str.4) #9
  %503 = load i32, ptr %484, align 4, !tbaa !5
  %504 = call ptr @strerror(i32 noundef %503) #9
  %505 = load i32, ptr %484, align 4, !tbaa !5
  %506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef nonnull %.str.5.sink788, i32 noundef %497, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %500, ptr noundef %502, ptr noundef %504, i32 noundef %505) #11
  call void @exit(i32 noundef 1) #12
  unreachable

507:                                              ; preds = %479
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %508 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %508, ptr %7, align 8, !tbaa !9
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  %511 = icmp eq ptr %508, null
  br i1 %511, label %512, label %536

512:                                              ; preds = %507
  %513 = tail call ptr @__errno_location() #10
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @s2n_print_stacktrace(ptr noundef %515) #9
  %517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %518 = trunc nuw i8 %517 to i1
  br i1 %518, label %519, label %523

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

523:                                              ; preds = %519, %512
  br label %524

524:                                              ; preds = %519, %523
  %.str.5.sink799 = phi ptr [ @.str.5, %523 ], [ @.str.2, %519 ]
  store i32 %514, ptr %513, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef nonnull @.str.4) #9
  %530 = load i32, ptr %527, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef nonnull @.str.4) #9
  %532 = load i32, ptr %513, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #9
  %534 = load i32, ptr %513, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %525, ptr noundef nonnull %.str.5.sink799, i32 noundef %526, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %529, ptr noundef %531, ptr noundef %533, i32 noundef %534) #11
  call void @exit(i32 noundef 1) #12
  unreachable

536:                                              ; preds = %507
  %537 = add nsw i32 %509, 2
  store i32 %537, ptr @test_count, align 4, !tbaa !5
  %538 = call i32 @s2n_connection_set_config(ptr noundef nonnull %508, ptr noundef nonnull %190) #9
  %539 = icmp eq i32 %538, -1
  br i1 %539, label %540, label %564

540:                                              ; preds = %536
  %541 = tail call ptr @__errno_location() #10
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @s2n_print_stacktrace(ptr noundef %543) #9
  %545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %546 = trunc nuw i8 %545 to i1
  br i1 %546, label %547, label %551

547:                                              ; preds = %540
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @fileno(ptr noundef %548) #9
  %550 = call i32 @isatty(i32 noundef %549) #9
  %.not605 = icmp eq i32 %550, 0
  br i1 %.not605, label %551, label %552

551:                                              ; preds = %547, %540
  br label %552

552:                                              ; preds = %547, %551
  %.str.5.sink810 = phi ptr [ @.str.5, %551 ], [ @.str.2, %547 ]
  store i32 %542, ptr %541, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef nonnull @.str.4) #9
  %558 = load i32, ptr %555, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror_debug(i32 noundef %558, ptr noundef nonnull @.str.4) #9
  %560 = load i32, ptr %541, align 4, !tbaa !5
  %561 = call ptr @strerror(i32 noundef %560) #9
  %562 = load i32, ptr %541, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.5.sink810, i32 noundef %554, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %557, ptr noundef %559, ptr noundef %561, i32 noundef %562) #11
  call void @exit(i32 noundef 1) #12
  unreachable

564:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  store i64 0, ptr %8, align 8
  %565 = load i32, ptr @test_count, align 4, !tbaa !5
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr @test_count, align 4, !tbaa !5
  %567 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %8) #9
  %568 = icmp eq i32 %567, -1
  br i1 %568, label %569, label %593

569:                                              ; preds = %564
  %570 = tail call ptr @__errno_location() #10
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @s2n_print_stacktrace(ptr noundef %572) #9
  %574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %580

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #9
  %579 = call i32 @isatty(i32 noundef %578) #9
  %.not604 = icmp eq i32 %579, 0
  br i1 %.not604, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.5.sink821 = phi ptr [ @.str.5, %580 ], [ @.str.2, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef nonnull @.str.4) #9
  %587 = load i32, ptr %584, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror_debug(i32 noundef %587, ptr noundef nonnull @.str.4) #9
  %589 = load i32, ptr %570, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #9
  %591 = load i32, ptr %570, align 4, !tbaa !5
  %592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.5.sink821, i32 noundef %583, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %586, ptr noundef %588, ptr noundef %590, i32 noundef %591) #11
  call void @exit(i32 noundef 1) #12
  unreachable

593:                                              ; preds = %564
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = add nsw i32 %594, 1
  store i32 %595, ptr @test_count, align 4, !tbaa !5
  %596 = load ptr, ptr %6, align 8, !tbaa !9
  %597 = call i32 @s2n_connection_set_io_pair(ptr noundef %596, ptr noundef nonnull %8) #9
  %598 = icmp eq i32 %597, -1
  br i1 %598, label %599, label %623

599:                                              ; preds = %593
  %600 = tail call ptr @__errno_location() #10
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @s2n_print_stacktrace(ptr noundef %602) #9
  %604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %605 = trunc nuw i8 %604 to i1
  br i1 %605, label %606, label %610

606:                                              ; preds = %599
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = call i32 @fileno(ptr noundef %607) #9
  %609 = call i32 @isatty(i32 noundef %608) #9
  %.not603 = icmp eq i32 %609, 0
  br i1 %.not603, label %610, label %611

610:                                              ; preds = %606, %599
  br label %611

611:                                              ; preds = %606, %610
  %.str.5.sink832 = phi ptr [ @.str.5, %610 ], [ @.str.2, %606 ]
  store i32 %601, ptr %600, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef nonnull @.str.4) #9
  %617 = load i32, ptr %614, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror_debug(i32 noundef %617, ptr noundef nonnull @.str.4) #9
  %619 = load i32, ptr %600, align 4, !tbaa !5
  %620 = call ptr @strerror(i32 noundef %619) #9
  %621 = load i32, ptr %600, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %612, ptr noundef nonnull %.str.5.sink832, i32 noundef %613, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %616, ptr noundef %618, ptr noundef %620, i32 noundef %621) #11
  call void @exit(i32 noundef 1) #12
  unreachable

623:                                              ; preds = %593
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = load ptr, ptr %7, align 8, !tbaa !9
  %627 = call i32 @s2n_connection_set_io_pair(ptr noundef %626, ptr noundef nonnull %8) #9
  %628 = icmp eq i32 %627, -1
  br i1 %628, label %629, label %653

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

636:                                              ; preds = %629
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @fileno(ptr noundef %637) #9
  %639 = call i32 @isatty(i32 noundef %638) #9
  %.not602 = icmp eq i32 %639, 0
  br i1 %.not602, label %640, label %641

640:                                              ; preds = %636, %629
  br label %641

641:                                              ; preds = %636, %640
  %.str.5.sink843 = phi ptr [ @.str.5, %640 ], [ @.str.2, %636 ]
  store i32 %631, ptr %630, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %645 = load i32, ptr %644, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef nonnull @.str.4) #9
  %647 = load i32, ptr %644, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef nonnull @.str.4) #9
  %649 = load i32, ptr %630, align 4, !tbaa !5
  %650 = call ptr @strerror(i32 noundef %649) #9
  %651 = load i32, ptr %630, align 4, !tbaa !5
  %652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef nonnull %.str.5.sink843, i32 noundef %643, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %646, ptr noundef %648, ptr noundef %650, i32 noundef %651) #11
  call void @exit(i32 noundef 1) #12
  unreachable

653:                                              ; preds = %623
  %654 = load i32, ptr @test_count, align 4, !tbaa !5
  %655 = add nsw i32 %654, 1
  store i32 %655, ptr @test_count, align 4, !tbaa !5
  %656 = load ptr, ptr %7, align 8, !tbaa !9
  %657 = load ptr, ptr %6, align 8, !tbaa !9
  %658 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %656, ptr noundef %657, i32 noundef 7) #9
  %659 = call zeroext i1 @s2n_result_is_ok(i32 %658)
  br i1 %659, label %684, label %660

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

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

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

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

684:                                              ; preds = %653
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr @test_count, align 4, !tbaa !5
  %687 = load ptr, ptr %7, align 8, !tbaa !9
  %688 = getelementptr inbounds i8, ptr %687, i64 640
  %689 = load ptr, ptr %688, align 8, !tbaa !15
  %690 = getelementptr inbounds i8, ptr %687, i64 224
  %691 = load ptr, ptr %690, align 8, !tbaa !42
  %692 = icmp eq ptr %689, %691
  br i1 %692, label %717, label %693

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

700:                                              ; preds = %693
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @fileno(ptr noundef %701) #9
  %703 = call i32 @isatty(i32 noundef %702) #9
  %.not429 = icmp eq i32 %703, 0
  br i1 %.not429, label %704, label %705

704:                                              ; preds = %700, %693
  br label %705

705:                                              ; preds = %700, %704
  %.str.5.sink865 = phi ptr [ @.str.5, %704 ], [ @.str.2, %700 ]
  store i32 %695, ptr %694, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef nonnull @.str.4) #9
  %711 = load i32, ptr %708, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror_debug(i32 noundef %711, ptr noundef nonnull @.str.4) #9
  %713 = load i32, ptr %694, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #9
  %715 = load i32, ptr %694, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef nonnull %.str.5.sink865, i32 noundef %707, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %710, ptr noundef %712, ptr noundef %714, i32 noundef %715) #11
  call void @exit(i32 noundef 1) #12
  unreachable

717:                                              ; preds = %684
  %718 = add nsw i32 %685, 2
  store i32 %718, ptr @test_count, align 4, !tbaa !5
  %719 = call i32 @s2n_send_client_hello_request(ptr noundef nonnull %687)
  %720 = call zeroext i1 @s2n_result_is_ok(i32 %719)
  br i1 %720, label %745, label %721

721:                                              ; preds = %717
  %722 = tail call ptr @__errno_location() #10
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @s2n_print_stacktrace(ptr noundef %724) #9
  %726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %727 = trunc nuw i8 %726 to i1
  br i1 %727, label %728, label %732

728:                                              ; preds = %721
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @fileno(ptr noundef %729) #9
  %731 = call i32 @isatty(i32 noundef %730) #9
  %.not430 = icmp eq i32 %731, 0
  br i1 %.not430, label %732, label %733

732:                                              ; preds = %728, %721
  br label %733

733:                                              ; preds = %728, %732
  %.str.5.sink876 = phi ptr [ @.str.5, %732 ], [ @.str.2, %728 ]
  store i32 %723, ptr %722, align 4, !tbaa !5
  %734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call ptr @s2n_strerror(i32 noundef %737, ptr noundef nonnull @.str.4) #9
  %739 = load i32, ptr %736, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef nonnull @.str.4) #9
  %741 = load i32, ptr %722, align 4, !tbaa !5
  %742 = call ptr @strerror(i32 noundef %741) #9
  %743 = load i32, ptr %722, align 4, !tbaa !5
  %744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %734, ptr noundef nonnull %.str.5.sink876, i32 noundef %735, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %738, ptr noundef %740, ptr noundef %742, i32 noundef %743) #11
  call void @exit(i32 noundef 1) #12
  unreachable

745:                                              ; preds = %717
  %746 = load i32, ptr @test_count, align 4, !tbaa !5
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr @test_count, align 4, !tbaa !5
  %748 = load ptr, ptr %7, align 8, !tbaa !9
  %749 = load ptr, ptr %6, align 8, !tbaa !9
  %750 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %748, ptr noundef %749) #9
  %751 = icmp eq i32 %750, -1
  br i1 %751, label %752, label %776

752:                                              ; preds = %745
  %753 = tail call ptr @__errno_location() #10
  %754 = load i32, ptr %753, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = call i32 @s2n_print_stacktrace(ptr noundef %755) #9
  %757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %758 = trunc nuw i8 %757 to i1
  br i1 %758, label %759, label %763

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

763:                                              ; preds = %759, %752
  br label %764

764:                                              ; preds = %759, %763
  %.str.5.sink887 = phi ptr [ @.str.5, %763 ], [ @.str.2, %759 ]
  store i32 %754, ptr %753, align 4, !tbaa !5
  %765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %766 = load i32, ptr @test_count, align 4, !tbaa !5
  %767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror(i32 noundef %768, ptr noundef nonnull @.str.4) #9
  %770 = load i32, ptr %767, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror_debug(i32 noundef %770, ptr noundef nonnull @.str.4) #9
  %772 = load i32, ptr %753, align 4, !tbaa !5
  %773 = call ptr @strerror(i32 noundef %772) #9
  %774 = load i32, ptr %753, align 4, !tbaa !5
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %765, ptr noundef nonnull %.str.5.sink887, i32 noundef %766, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %769, ptr noundef %771, ptr noundef %773, i32 noundef %774) #11
  call void @exit(i32 noundef 1) #12
  unreachable

776:                                              ; preds = %745
  %777 = call i32 @s2n_io_pair_close(ptr noundef nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  %778 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  %779 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  %780 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #9
  br i1 %780, label %781, label %1317

781:                                              ; preds = %776
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  %782 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %782, ptr %9, align 8, !tbaa !9
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr @test_count, align 4, !tbaa !5
  %785 = icmp eq ptr %782, null
  br i1 %785, label %786, label %810

786:                                              ; preds = %781
  %787 = tail call ptr @__errno_location() #10
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @s2n_print_stacktrace(ptr noundef %789) #9
  %791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %792 = trunc nuw i8 %791 to i1
  br i1 %792, label %793, label %797

793:                                              ; preds = %786
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = call i32 @fileno(ptr noundef %794) #9
  %796 = call i32 @isatty(i32 noundef %795) #9
  %.not600 = icmp eq i32 %796, 0
  br i1 %.not600, label %797, label %798

797:                                              ; preds = %793, %786
  br label %798

798:                                              ; preds = %793, %797
  %.str.5.sink898 = phi ptr [ @.str.5, %797 ], [ @.str.2, %793 ]
  store i32 %788, ptr %787, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror(i32 noundef %802, ptr noundef nonnull @.str.4) #9
  %804 = load i32, ptr %801, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef nonnull @.str.4) #9
  %806 = load i32, ptr %787, align 4, !tbaa !5
  %807 = call ptr @strerror(i32 noundef %806) #9
  %808 = load i32, ptr %787, align 4, !tbaa !5
  %809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef nonnull %.str.5.sink898, i32 noundef %800, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %803, ptr noundef %805, ptr noundef %807, i32 noundef %808) #11
  call void @exit(i32 noundef 1) #12
  unreachable

810:                                              ; preds = %781
  %811 = add nsw i32 %783, 2
  store i32 %811, ptr @test_count, align 4, !tbaa !5
  %812 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %782, ptr noundef nonnull @.str.35) #9
  %813 = icmp eq i32 %812, -1
  br i1 %813, label %814, label %838

814:                                              ; preds = %810
  %815 = tail call ptr @__errno_location() #10
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @s2n_print_stacktrace(ptr noundef %817) #9
  %819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %820 = trunc nuw i8 %819 to i1
  br i1 %820, label %821, label %825

821:                                              ; preds = %814
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = call i32 @fileno(ptr noundef %822) #9
  %824 = call i32 @isatty(i32 noundef %823) #9
  %.not599 = icmp eq i32 %824, 0
  br i1 %.not599, label %825, label %826

825:                                              ; preds = %821, %814
  br label %826

826:                                              ; preds = %821, %825
  %.str.5.sink909 = phi ptr [ @.str.5, %825 ], [ @.str.2, %821 ]
  store i32 %816, ptr %815, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror(i32 noundef %830, ptr noundef nonnull @.str.4) #9
  %832 = load i32, ptr %829, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror_debug(i32 noundef %832, ptr noundef nonnull @.str.4) #9
  %834 = load i32, ptr %815, align 4, !tbaa !5
  %835 = call ptr @strerror(i32 noundef %834) #9
  %836 = load i32, ptr %815, align 4, !tbaa !5
  %837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %827, ptr noundef nonnull %.str.5.sink909, i32 noundef %828, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %831, ptr noundef %833, ptr noundef %835, i32 noundef %836) #11
  call void @exit(i32 noundef 1) #12
  unreachable

838:                                              ; preds = %810
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr @test_count, align 4, !tbaa !5
  %841 = load ptr, ptr %9, align 8, !tbaa !9
  %842 = call i32 @s2n_connection_set_config(ptr noundef %841, ptr noundef nonnull %190) #9
  %843 = icmp eq i32 %842, -1
  br i1 %843, label %844, label %868

844:                                              ; preds = %838
  %845 = tail call ptr @__errno_location() #10
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @s2n_print_stacktrace(ptr noundef %847) #9
  %849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %850 = trunc nuw i8 %849 to i1
  br i1 %850, label %851, label %855

851:                                              ; preds = %844
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @fileno(ptr noundef %852) #9
  %854 = call i32 @isatty(i32 noundef %853) #9
  %.not598 = icmp eq i32 %854, 0
  br i1 %.not598, label %855, label %856

855:                                              ; preds = %851, %844
  br label %856

856:                                              ; preds = %851, %855
  %.str.5.sink920 = phi ptr [ @.str.5, %855 ], [ @.str.2, %851 ]
  store i32 %846, ptr %845, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror(i32 noundef %860, ptr noundef nonnull @.str.4) #9
  %862 = load i32, ptr %859, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror_debug(i32 noundef %862, ptr noundef nonnull @.str.4) #9
  %864 = load i32, ptr %845, align 4, !tbaa !5
  %865 = call ptr @strerror(i32 noundef %864) #9
  %866 = load i32, ptr %845, align 4, !tbaa !5
  %867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef nonnull %.str.5.sink920, i32 noundef %858, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %861, ptr noundef %863, ptr noundef %865, i32 noundef %866) #11
  call void @exit(i32 noundef 1) #12
  unreachable

868:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  %869 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %869, ptr %10, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = add nsw i32 %870, 1
  store i32 %871, ptr @test_count, align 4, !tbaa !5
  %872 = icmp eq ptr %869, null
  br i1 %872, label %873, label %897

873:                                              ; preds = %868
  %874 = tail call ptr @__errno_location() #10
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @s2n_print_stacktrace(ptr noundef %876) #9
  %878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %879 = trunc nuw i8 %878 to i1
  br i1 %879, label %880, label %884

880:                                              ; preds = %873
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = call i32 @fileno(ptr noundef %881) #9
  %883 = call i32 @isatty(i32 noundef %882) #9
  %.not597 = icmp eq i32 %883, 0
  br i1 %.not597, label %884, label %885

884:                                              ; preds = %880, %873
  br label %885

885:                                              ; preds = %880, %884
  %.str.5.sink931 = phi ptr [ @.str.5, %884 ], [ @.str.2, %880 ]
  store i32 %875, ptr %874, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #9
  %891 = load i32, ptr %888, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #9
  %893 = load i32, ptr %874, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #9
  %895 = load i32, ptr %874, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %886, ptr noundef nonnull %.str.5.sink931, i32 noundef %887, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #11
  call void @exit(i32 noundef 1) #12
  unreachable

897:                                              ; preds = %868
  %898 = add nsw i32 %870, 2
  store i32 %898, ptr @test_count, align 4, !tbaa !5
  %899 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %869, ptr noundef nonnull @.str.35) #9
  %900 = icmp eq i32 %899, -1
  br i1 %900, label %901, label %925

901:                                              ; preds = %897
  %902 = tail call ptr @__errno_location() #10
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @s2n_print_stacktrace(ptr noundef %904) #9
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  br i1 %907, label %908, label %912

908:                                              ; preds = %901
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @fileno(ptr noundef %909) #9
  %911 = call i32 @isatty(i32 noundef %910) #9
  %.not596 = icmp eq i32 %911, 0
  br i1 %.not596, label %912, label %913

912:                                              ; preds = %908, %901
  br label %913

913:                                              ; preds = %908, %912
  %.str.5.sink942 = phi ptr [ @.str.5, %912 ], [ @.str.2, %908 ]
  store i32 %903, ptr %902, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %917, ptr noundef nonnull @.str.4) #9
  %919 = load i32, ptr %916, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef nonnull @.str.4) #9
  %921 = load i32, ptr %902, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #9
  %923 = load i32, ptr %902, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.5.sink942, i32 noundef %915, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %918, ptr noundef %920, ptr noundef %922, i32 noundef %923) #11
  call void @exit(i32 noundef 1) #12
  unreachable

925:                                              ; preds = %897
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = add nsw i32 %926, 1
  store i32 %927, ptr @test_count, align 4, !tbaa !5
  %928 = load ptr, ptr %10, align 8, !tbaa !9
  %929 = call i32 @s2n_connection_set_config(ptr noundef %928, ptr noundef nonnull %190) #9
  %930 = icmp eq i32 %929, -1
  br i1 %930, label %931, label %955

931:                                              ; preds = %925
  %932 = tail call ptr @__errno_location() #10
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @s2n_print_stacktrace(ptr noundef %934) #9
  %936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %937 = trunc nuw i8 %936 to i1
  br i1 %937, label %938, label %942

938:                                              ; preds = %931
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #9
  %941 = call i32 @isatty(i32 noundef %940) #9
  %.not595 = icmp eq i32 %941, 0
  br i1 %.not595, label %942, label %943

942:                                              ; preds = %938, %931
  br label %943

943:                                              ; preds = %938, %942
  %.str.5.sink953 = phi ptr [ @.str.5, %942 ], [ @.str.2, %938 ]
  store i32 %933, ptr %932, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror(i32 noundef %947, ptr noundef nonnull @.str.4) #9
  %949 = load i32, ptr %946, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror_debug(i32 noundef %949, ptr noundef nonnull @.str.4) #9
  %951 = load i32, ptr %932, align 4, !tbaa !5
  %952 = call ptr @strerror(i32 noundef %951) #9
  %953 = load i32, ptr %932, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef nonnull %.str.5.sink953, i32 noundef %945, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %948, ptr noundef %950, ptr noundef %952, i32 noundef %953) #11
  call void @exit(i32 noundef 1) #12
  unreachable

955:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  store i64 0, ptr %11, align 8
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = add nsw i32 %956, 1
  store i32 %957, ptr @test_count, align 4, !tbaa !5
  %958 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #9
  %959 = icmp eq i32 %958, -1
  br i1 %959, label %960, label %984

960:                                              ; preds = %955
  %961 = tail call ptr @__errno_location() #10
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @s2n_print_stacktrace(ptr noundef %963) #9
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc nuw i8 %965 to i1
  br i1 %966, label %967, label %971

967:                                              ; preds = %960
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #9
  %970 = call i32 @isatty(i32 noundef %969) #9
  %.not594 = icmp eq i32 %970, 0
  br i1 %.not594, label %971, label %972

971:                                              ; preds = %967, %960
  br label %972

972:                                              ; preds = %967, %971
  %.str.5.sink964 = phi ptr [ @.str.5, %971 ], [ @.str.2, %967 ]
  store i32 %962, ptr %961, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror(i32 noundef %976, ptr noundef nonnull @.str.4) #9
  %978 = load i32, ptr %975, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef nonnull @.str.4) #9
  %980 = load i32, ptr %961, align 4, !tbaa !5
  %981 = call ptr @strerror(i32 noundef %980) #9
  %982 = load i32, ptr %961, align 4, !tbaa !5
  %983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef nonnull %.str.5.sink964, i32 noundef %974, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %977, ptr noundef %979, ptr noundef %981, i32 noundef %982) #11
  call void @exit(i32 noundef 1) #12
  unreachable

984:                                              ; preds = %955
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr @test_count, align 4, !tbaa !5
  %987 = load ptr, ptr %9, align 8, !tbaa !9
  %988 = call i32 @s2n_connection_set_io_pair(ptr noundef %987, ptr noundef nonnull %11) #9
  %989 = icmp eq i32 %988, -1
  br i1 %989, label %990, label %1014

990:                                              ; preds = %984
  %991 = tail call ptr @__errno_location() #10
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @s2n_print_stacktrace(ptr noundef %993) #9
  %995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %996 = trunc nuw i8 %995 to i1
  br i1 %996, label %997, label %1001

997:                                              ; preds = %990
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = call i32 @fileno(ptr noundef %998) #9
  %1000 = call i32 @isatty(i32 noundef %999) #9
  %.not593 = icmp eq i32 %1000, 0
  br i1 %.not593, label %1001, label %1002

1001:                                             ; preds = %997, %990
  br label %1002

1002:                                             ; preds = %997, %1001
  %.str.5.sink975 = phi ptr [ @.str.5, %1001 ], [ @.str.2, %997 ]
  store i32 %992, ptr %991, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror(i32 noundef %1006, ptr noundef nonnull @.str.4) #9
  %1008 = load i32, ptr %1005, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror_debug(i32 noundef %1008, ptr noundef nonnull @.str.4) #9
  %1010 = load i32, ptr %991, align 4, !tbaa !5
  %1011 = call ptr @strerror(i32 noundef %1010) #9
  %1012 = load i32, ptr %991, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1003, ptr noundef nonnull %.str.5.sink975, i32 noundef %1004, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1007, ptr noundef %1009, ptr noundef %1011, i32 noundef %1012) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1014:                                             ; preds = %984
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = add nsw i32 %1015, 1
  store i32 %1016, ptr @test_count, align 4, !tbaa !5
  %1017 = load ptr, ptr %10, align 8, !tbaa !9
  %1018 = call i32 @s2n_connection_set_io_pair(ptr noundef %1017, ptr noundef nonnull %11) #9
  %1019 = icmp eq i32 %1018, -1
  br i1 %1019, label %1020, label %1044

1020:                                             ; preds = %1014
  %1021 = tail call ptr @__errno_location() #10
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @s2n_print_stacktrace(ptr noundef %1023) #9
  %1025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1026 = trunc nuw i8 %1025 to i1
  br i1 %1026, label %1027, label %1031

1027:                                             ; preds = %1020
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = call i32 @fileno(ptr noundef %1028) #9
  %1030 = call i32 @isatty(i32 noundef %1029) #9
  %.not592 = icmp eq i32 %1030, 0
  br i1 %.not592, label %1031, label %1032

1031:                                             ; preds = %1027, %1020
  br label %1032

1032:                                             ; preds = %1027, %1031
  %.str.5.sink986 = phi ptr [ @.str.5, %1031 ], [ @.str.2, %1027 ]
  store i32 %1022, ptr %1021, 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 nonnull @.str.4) #9
  %1038 = load i32, ptr %1035, align 4, !tbaa !5
  %1039 = call ptr @s2n_strerror_debug(i32 noundef %1038, ptr noundef nonnull @.str.4) #9
  %1040 = load i32, ptr %1021, align 4, !tbaa !5
  %1041 = call ptr @strerror(i32 noundef %1040) #9
  %1042 = load i32, ptr %1021, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1033, ptr noundef nonnull %.str.5.sink986, i32 noundef %1034, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1037, ptr noundef %1039, ptr noundef %1041, i32 noundef %1042) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1044:                                             ; preds = %1014
  %1045 = load i32, ptr @test_count, align 4, !tbaa !5
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr @test_count, align 4, !tbaa !5
  %1047 = load ptr, ptr %10, align 8, !tbaa !9
  %1048 = load ptr, ptr %9, align 8, !tbaa !9
  %1049 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1047, ptr noundef %1048, i32 noundef 1) #9
  %1050 = call zeroext i1 @s2n_result_is_ok(i32 %1049)
  br i1 %1050, label %1075, label %1051

1051:                                             ; preds = %1044
  %1052 = tail call ptr @__errno_location() #10
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @s2n_print_stacktrace(ptr noundef %1054) #9
  %1056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1057 = trunc nuw i8 %1056 to i1
  br i1 %1057, label %1058, label %1062

1058:                                             ; preds = %1051
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = call i32 @fileno(ptr noundef %1059) #9
  %1061 = call i32 @isatty(i32 noundef %1060) #9
  %.not431 = icmp eq i32 %1061, 0
  br i1 %.not431, label %1062, label %1063

1062:                                             ; preds = %1058, %1051
  br label %1063

1063:                                             ; preds = %1058, %1062
  %.str.5.sink997 = phi ptr [ @.str.5, %1062 ], [ @.str.2, %1058 ]
  store i32 %1053, ptr %1052, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror(i32 noundef %1067, ptr noundef nonnull @.str.4) #9
  %1069 = load i32, ptr %1066, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror_debug(i32 noundef %1069, ptr noundef nonnull @.str.4) #9
  %1071 = load i32, ptr %1052, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #9
  %1073 = load i32, ptr %1052, align 4, !tbaa !5
  %1074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1064, ptr noundef nonnull %.str.5.sink997, i32 noundef %1065, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1068, ptr noundef %1070, ptr noundef %1072, i32 noundef %1073) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1075:                                             ; preds = %1044
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = load ptr, ptr %10, align 8, !tbaa !9
  %1079 = call i32 @s2n_send_client_hello_request(ptr noundef %1078)
  %1080 = call zeroext i1 @s2n_result_is_ok(i32 %1079)
  br i1 %1080, label %1105, label %1081

1081:                                             ; preds = %1075
  %1082 = tail call ptr @__errno_location() #10
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = call i32 @s2n_print_stacktrace(ptr noundef %1084) #9
  %1086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1087 = trunc nuw i8 %1086 to i1
  br i1 %1087, label %1088, label %1092

1088:                                             ; preds = %1081
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @fileno(ptr noundef %1089) #9
  %1091 = call i32 @isatty(i32 noundef %1090) #9
  %.not432 = icmp eq i32 %1091, 0
  br i1 %.not432, label %1092, label %1093

1092:                                             ; preds = %1088, %1081
  br label %1093

1093:                                             ; preds = %1088, %1092
  %.str.5.sink1008 = phi ptr [ @.str.5, %1092 ], [ @.str.2, %1088 ]
  store i32 %1083, ptr %1082, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef nonnull @.str.4) #9
  %1099 = load i32, ptr %1096, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef nonnull @.str.4) #9
  %1101 = load i32, ptr %1082, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #9
  %1103 = load i32, ptr %1082, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1094, ptr noundef nonnull %.str.5.sink1008, i32 noundef %1095, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1098, ptr noundef %1100, ptr noundef %1102, i32 noundef %1103) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1105:                                             ; preds = %1075
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = add nsw i32 %1106, 1
  store i32 %1107, ptr @test_count, align 4, !tbaa !5
  %1108 = load ptr, ptr %10, align 8, !tbaa !9
  %1109 = load ptr, ptr %9, align 8, !tbaa !9
  %1110 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1108, ptr noundef %1109, i32 noundef 16) #9
  %1111 = call zeroext i1 @s2n_result_is_ok(i32 %1110)
  br i1 %1111, label %1136, label %1112

1112:                                             ; preds = %1105
  %1113 = tail call ptr @__errno_location() #10
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @s2n_print_stacktrace(ptr noundef %1115) #9
  %1117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1118 = trunc nuw i8 %1117 to i1
  br i1 %1118, label %1119, label %1123

1119:                                             ; preds = %1112
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @fileno(ptr noundef %1120) #9
  %1122 = call i32 @isatty(i32 noundef %1121) #9
  %.not433 = icmp eq i32 %1122, 0
  br i1 %.not433, label %1123, label %1124

1123:                                             ; preds = %1119, %1112
  br label %1124

1124:                                             ; preds = %1119, %1123
  %.str.5.sink1019 = phi ptr [ @.str.5, %1123 ], [ @.str.2, %1119 ]
  store i32 %1114, ptr %1113, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror(i32 noundef %1128, ptr noundef nonnull @.str.4) #9
  %1130 = load i32, ptr %1127, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef nonnull @.str.4) #9
  %1132 = load i32, ptr %1113, align 4, !tbaa !5
  %1133 = call ptr @strerror(i32 noundef %1132) #9
  %1134 = load i32, ptr %1113, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1125, ptr noundef nonnull %.str.5.sink1019, i32 noundef %1126, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1129, ptr noundef %1131, ptr noundef %1133, i32 noundef %1134) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1136:                                             ; preds = %1105
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = add nsw i32 %1137, 1
  store i32 %1138, ptr @test_count, align 4, !tbaa !5
  %1139 = load ptr, ptr %10, align 8, !tbaa !9
  %1140 = getelementptr inbounds i8, ptr %1139, i64 220
  %1141 = load i8, ptr %1140, align 4, !tbaa !43
  %1142 = icmp eq i8 %1141, 34
  br i1 %1142, label %1167, label %1143

1143:                                             ; preds = %1136
  %1144 = tail call ptr @__errno_location() #10
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @s2n_print_stacktrace(ptr noundef %1146) #9
  %1148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1149 = trunc nuw i8 %1148 to i1
  br i1 %1149, label %1150, label %1154

1150:                                             ; preds = %1143
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = call i32 @fileno(ptr noundef %1151) #9
  %1153 = call i32 @isatty(i32 noundef %1152) #9
  %.not434 = icmp eq i32 %1153, 0
  br i1 %.not434, label %1154, label %1155

1154:                                             ; preds = %1150, %1143
  br label %1155

1155:                                             ; preds = %1150, %1154
  %.str.5.sink1030 = phi ptr [ @.str.5, %1154 ], [ @.str.2, %1150 ]
  store i32 %1145, ptr %1144, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror(i32 noundef %1159, ptr noundef nonnull @.str.4) #9
  %1161 = load i32, ptr %1158, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror_debug(i32 noundef %1161, ptr noundef nonnull @.str.4) #9
  %1163 = load i32, ptr %1144, align 4, !tbaa !5
  %1164 = call ptr @strerror(i32 noundef %1163) #9
  %1165 = load i32, ptr %1144, align 4, !tbaa !5
  %1166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef nonnull %.str.5.sink1030, i32 noundef %1157, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1160, ptr noundef %1162, ptr noundef %1164, i32 noundef %1165) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1167:                                             ; preds = %1136
  %1168 = add nsw i32 %1137, 2
  store i32 %1168, ptr @test_count, align 4, !tbaa !5
  %1169 = load ptr, ptr %9, align 8, !tbaa !9
  %1170 = getelementptr inbounds i8, ptr %1169, i64 220
  %1171 = load i8, ptr %1170, align 4, !tbaa !43
  %1172 = icmp eq i8 %1171, 34
  br i1 %1172, label %1197, label %1173

1173:                                             ; preds = %1167
  %1174 = tail call ptr @__errno_location() #10
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1177 = call i32 @s2n_print_stacktrace(ptr noundef %1176) #9
  %1178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1179 = trunc nuw i8 %1178 to i1
  br i1 %1179, label %1180, label %1184

1180:                                             ; preds = %1173
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @fileno(ptr noundef %1181) #9
  %1183 = call i32 @isatty(i32 noundef %1182) #9
  %.not435 = icmp eq i32 %1183, 0
  br i1 %.not435, label %1184, label %1185

1184:                                             ; preds = %1180, %1173
  br label %1185

1185:                                             ; preds = %1180, %1184
  %.str.5.sink1041 = phi ptr [ @.str.5, %1184 ], [ @.str.2, %1180 ]
  store i32 %1175, ptr %1174, align 4, !tbaa !5
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = load i32, ptr @test_count, align 4, !tbaa !5
  %1188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror(i32 noundef %1189, ptr noundef nonnull @.str.4) #9
  %1191 = load i32, ptr %1188, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror_debug(i32 noundef %1191, ptr noundef nonnull @.str.4) #9
  %1193 = load i32, ptr %1174, align 4, !tbaa !5
  %1194 = call ptr @strerror(i32 noundef %1193) #9
  %1195 = load i32, ptr %1174, align 4, !tbaa !5
  %1196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1186, ptr noundef nonnull %.str.5.sink1041, i32 noundef %1187, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1190, ptr noundef %1192, ptr noundef %1194, i32 noundef %1195) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1197:                                             ; preds = %1167
  %1198 = add nsw i32 %1137, 3
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  %1199 = call i32 @s2n_send_client_hello_request(ptr noundef nonnull %1139)
  %1200 = call zeroext i1 @s2n_result_is_ok(i32 %1199)
  br i1 %1200, label %1225, label %1201

1201:                                             ; preds = %1197
  %1202 = tail call ptr @__errno_location() #10
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @s2n_print_stacktrace(ptr noundef %1204) #9
  %1206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1207 = trunc nuw i8 %1206 to i1
  br i1 %1207, label %1208, label %1212

1208:                                             ; preds = %1201
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @fileno(ptr noundef %1209) #9
  %1211 = call i32 @isatty(i32 noundef %1210) #9
  %.not436 = icmp eq i32 %1211, 0
  br i1 %.not436, label %1212, label %1213

1212:                                             ; preds = %1208, %1201
  br label %1213

1213:                                             ; preds = %1208, %1212
  %.str.5.sink1052 = phi ptr [ @.str.5, %1212 ], [ @.str.2, %1208 ]
  store i32 %1203, ptr %1202, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = load i32, ptr @test_count, align 4, !tbaa !5
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror(i32 noundef %1217, ptr noundef nonnull @.str.4) #9
  %1219 = load i32, ptr %1216, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef nonnull @.str.4) #9
  %1221 = load i32, ptr %1202, align 4, !tbaa !5
  %1222 = call ptr @strerror(i32 noundef %1221) #9
  %1223 = load i32, ptr %1202, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1214, ptr noundef nonnull %.str.5.sink1052, i32 noundef %1215, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1218, ptr noundef %1220, ptr noundef %1222, i32 noundef %1223) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1225:                                             ; preds = %1197
  %1226 = load i32, ptr @test_count, align 4, !tbaa !5
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr @test_count, align 4, !tbaa !5
  %1228 = load ptr, ptr %10, align 8, !tbaa !9
  %1229 = load ptr, ptr %9, align 8, !tbaa !9
  %1230 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1228, ptr noundef %1229) #9
  %1231 = icmp eq i32 %1230, -1
  br i1 %1231, label %1256, label %1232

1232:                                             ; preds = %1225
  %1233 = tail call ptr @__errno_location() #10
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #9
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1232
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #9
  %1242 = call i32 @isatty(i32 noundef %1241) #9
  %.not437 = icmp eq i32 %1242, 0
  br i1 %.not437, label %1243, label %1244

1243:                                             ; preds = %1239, %1232
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.5.sink1063 = phi ptr [ @.str.5, %1243 ], [ @.str.2, %1239 ]
  store i32 %1234, ptr %1233, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef nonnull @.str.4) #9
  %1250 = load i32, ptr %1247, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1250, ptr noundef nonnull @.str.4) #9
  %1252 = load i32, ptr %1233, align 4, !tbaa !5
  %1253 = call ptr @strerror(i32 noundef %1252) #9
  %1254 = load i32, ptr %1233, align 4, !tbaa !5
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.5.sink1063, i32 noundef %1246, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1249, ptr noundef %1251, ptr noundef %1253, i32 noundef %1254) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1256:                                             ; preds = %1225
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = add nsw i32 %1257, 1
  store i32 %1258, ptr @test_count, align 4, !tbaa !5
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = icmp eq i32 %1260, 335544322
  br i1 %1261, label %1285, label %1262

1262:                                             ; preds = %1256
  %1263 = tail call ptr @__errno_location() #10
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @s2n_print_stacktrace(ptr noundef %1265) #9
  %1267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1268 = trunc nuw i8 %1267 to i1
  br i1 %1268, label %1269, label %1273

1269:                                             ; preds = %1262
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @fileno(ptr noundef %1270) #9
  %1272 = call i32 @isatty(i32 noundef %1271) #9
  %.not438 = icmp eq i32 %1272, 0
  br i1 %.not438, label %1273, label %1274

1273:                                             ; preds = %1269, %1262
  br label %1274

1274:                                             ; preds = %1269, %1273
  %.str.5.sink1074 = phi ptr [ @.str.5, %1273 ], [ @.str.2, %1269 ]
  store i32 %1264, ptr %1263, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = load i32, ptr %1259, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror(i32 noundef %1277, ptr noundef nonnull @.str.4) #9
  %1279 = load i32, ptr %1259, align 4, !tbaa !5
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef nonnull @.str.4) #9
  %1281 = load i32, ptr %1263, align 4, !tbaa !5
  %1282 = call ptr @strerror(i32 noundef %1281) #9
  %1283 = load i32, ptr %1263, align 4, !tbaa !5
  %1284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1275, ptr noundef nonnull %.str.5.sink1074, i32 noundef %1276, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1278, ptr noundef %1280, ptr noundef %1282, i32 noundef %1283) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1285:                                             ; preds = %1256
  %1286 = add nsw i32 %1257, 2
  store i32 %1286, ptr @test_count, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #9
  %1288 = icmp eq ptr %1287, null
  br i1 %1288, label %1289, label %1312

1289:                                             ; preds = %1285
  %1290 = tail call ptr @__errno_location() #10
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @s2n_print_stacktrace(ptr noundef %1292) #9
  %1294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1295 = trunc nuw i8 %1294 to i1
  br i1 %1295, label %1296, label %1300

1296:                                             ; preds = %1289
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = call i32 @fileno(ptr noundef %1297) #9
  %1299 = call i32 @isatty(i32 noundef %1298) #9
  %.not591 = icmp eq i32 %1299, 0
  br i1 %.not591, label %1300, label %1301

1300:                                             ; preds = %1296, %1289
  br label %1301

1301:                                             ; preds = %1296, %1300
  %.str.5.sink1083 = phi ptr [ @.str.5, %1300 ], [ @.str.2, %1296 ]
  store i32 %1291, ptr %1290, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = load i32, ptr @test_count, align 4, !tbaa !5
  %1304 = load i32, ptr %1259, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef nonnull @.str.4) #9
  %1306 = load i32, ptr %1259, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef nonnull @.str.4) #9
  %1308 = load i32, ptr %1290, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #9
  %1310 = load i32, ptr %1290, align 4, !tbaa !5
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1302, ptr noundef nonnull %.str.5.sink1083, i32 noundef %1303, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1305, ptr noundef %1307, ptr noundef %1309, i32 noundef %1310) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1312:                                             ; preds = %1285
  store i32 0, ptr %1259, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %1313 = tail call ptr @__errno_location() #10
  store i32 0, ptr %1313, align 4, !tbaa !5
  %1314 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  %1315 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  %1316 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %1317

1317:                                             ; preds = %1312, %776
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %1318 = call ptr @s2n_config_new() #9
  store ptr %1318, ptr %12, align 8, !tbaa !9
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = icmp eq ptr %1318, null
  br i1 %1321, label %1322, label %1346

1322:                                             ; preds = %1317
  %1323 = tail call ptr @__errno_location() #10
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = call i32 @s2n_print_stacktrace(ptr noundef %1325) #9
  %1327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1328 = trunc nuw i8 %1327 to i1
  br i1 %1328, label %1329, label %1333

1329:                                             ; preds = %1322
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @fileno(ptr noundef %1330) #9
  %1332 = call i32 @isatty(i32 noundef %1331) #9
  %.not590 = icmp eq i32 %1332, 0
  br i1 %.not590, label %1333, label %1334

1333:                                             ; preds = %1329, %1322
  br label %1334

1334:                                             ; preds = %1329, %1333
  %.str.5.sink1092 = phi ptr [ @.str.5, %1333 ], [ @.str.2, %1329 ]
  store i32 %1324, ptr %1323, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef nonnull @.str.4) #9
  %1340 = load i32, ptr %1337, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef nonnull @.str.4) #9
  %1342 = load i32, ptr %1323, align 4, !tbaa !5
  %1343 = call ptr @strerror(i32 noundef %1342) #9
  %1344 = load i32, ptr %1323, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef nonnull %.str.5.sink1092, i32 noundef %1336, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1339, ptr noundef %1341, ptr noundef %1343, i32 noundef %1344) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1346:                                             ; preds = %1317
  %1347 = add nsw i32 %1319, 2
  store i32 %1347, ptr @test_count, align 4, !tbaa !5
  %1348 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1318, ptr noundef nonnull @.str.15) #9
  %1349 = icmp eq i32 %1348, -1
  br i1 %1349, label %1350, label %1374

1350:                                             ; preds = %1346
  %1351 = tail call ptr @__errno_location() #10
  %1352 = load i32, ptr %1351, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = call i32 @s2n_print_stacktrace(ptr noundef %1353) #9
  %1355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1356 = trunc nuw i8 %1355 to i1
  br i1 %1356, label %1357, label %1361

1357:                                             ; preds = %1350
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @fileno(ptr noundef %1358) #9
  %1360 = call i32 @isatty(i32 noundef %1359) #9
  %.not589 = icmp eq i32 %1360, 0
  br i1 %.not589, label %1361, label %1362

1361:                                             ; preds = %1357, %1350
  br label %1362

1362:                                             ; preds = %1357, %1361
  %.str.5.sink1103 = phi ptr [ @.str.5, %1361 ], [ @.str.2, %1357 ]
  store i32 %1352, ptr %1351, align 4, !tbaa !5
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror(i32 noundef %1366, ptr noundef nonnull @.str.4) #9
  %1368 = load i32, ptr %1365, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef nonnull @.str.4) #9
  %1370 = load i32, ptr %1351, align 4, !tbaa !5
  %1371 = call ptr @strerror(i32 noundef %1370) #9
  %1372 = load i32, ptr %1351, align 4, !tbaa !5
  %1373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1363, ptr noundef nonnull %.str.5.sink1103, i32 noundef %1364, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1367, ptr noundef %1369, ptr noundef %1371, i32 noundef %1372) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1374:                                             ; preds = %1346
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = add nsw i32 %1375, 1
  store i32 %1376, ptr @test_count, align 4, !tbaa !5
  %1377 = load ptr, ptr %12, align 8, !tbaa !9
  %1378 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1377) #9
  %1379 = icmp eq i32 %1378, -1
  br i1 %1379, label %1380, label %1404

1380:                                             ; preds = %1374
  %1381 = tail call ptr @__errno_location() #10
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = call i32 @s2n_print_stacktrace(ptr noundef %1383) #9
  %1385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1386 = trunc nuw i8 %1385 to i1
  br i1 %1386, label %1387, label %1391

1387:                                             ; preds = %1380
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @fileno(ptr noundef %1388) #9
  %1390 = call i32 @isatty(i32 noundef %1389) #9
  %.not588 = icmp eq i32 %1390, 0
  br i1 %.not588, label %1391, label %1392

1391:                                             ; preds = %1387, %1380
  br label %1392

1392:                                             ; preds = %1387, %1391
  %.str.5.sink1114 = phi ptr [ @.str.5, %1391 ], [ @.str.2, %1387 ]
  store i32 %1382, ptr %1381, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = load i32, ptr @test_count, align 4, !tbaa !5
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef nonnull @.str.4) #9
  %1398 = load i32, ptr %1395, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.4) #9
  %1400 = load i32, ptr %1381, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #9
  %1402 = load i32, ptr %1381, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef nonnull %.str.5.sink1114, i32 noundef %1394, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1404:                                             ; preds = %1374
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = add nsw i32 %1405, 1
  store i32 %1406, ptr @test_count, align 4, !tbaa !5
  %1407 = load ptr, ptr %12, align 8, !tbaa !9
  %1408 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %1409 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1407, ptr noundef %1408) #9
  %1410 = icmp eq i32 %1409, -1
  br i1 %1410, label %1411, label %1435

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

1418:                                             ; preds = %1411
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = call i32 @fileno(ptr noundef %1419) #9
  %1421 = call i32 @isatty(i32 noundef %1420) #9
  %.not587 = icmp eq i32 %1421, 0
  br i1 %.not587, label %1422, label %1423

1422:                                             ; preds = %1418, %1411
  br label %1423

1423:                                             ; preds = %1418, %1422
  %.str.5.sink1125 = phi ptr [ @.str.5, %1422 ], [ @.str.2, %1418 ]
  store i32 %1413, ptr %1412, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror(i32 noundef %1427, ptr noundef nonnull @.str.4) #9
  %1429 = load i32, ptr %1426, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror_debug(i32 noundef %1429, ptr noundef nonnull @.str.4) #9
  %1431 = load i32, ptr %1412, align 4, !tbaa !5
  %1432 = call ptr @strerror(i32 noundef %1431) #9
  %1433 = load i32, ptr %1412, align 4, !tbaa !5
  %1434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef nonnull %.str.5.sink1125, i32 noundef %1425, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1428, ptr noundef %1430, ptr noundef %1432, i32 noundef %1433) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1435:                                             ; preds = %1404
  %1436 = load i32, ptr @test_count, align 4, !tbaa !5
  %1437 = add nsw i32 %1436, 1
  store i32 %1437, ptr @test_count, align 4, !tbaa !5
  %1438 = load ptr, ptr %12, align 8, !tbaa !9
  %1439 = call i32 @s2n_config_set_alert_behavior(ptr noundef %1438, i32 noundef 1) #9
  %1440 = icmp eq i32 %1439, -1
  br i1 %1440, label %1441, label %1465

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

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

1452:                                             ; preds = %1448, %1441
  br label %1453

1453:                                             ; preds = %1448, %1452
  %.str.5.sink1136 = phi ptr [ @.str.5, %1452 ], [ @.str.2, %1448 ]
  store i32 %1443, ptr %1442, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef nonnull @.str.4) #9
  %1459 = load i32, ptr %1456, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef nonnull @.str.4) #9
  %1461 = load i32, ptr %1442, align 4, !tbaa !5
  %1462 = call ptr @strerror(i32 noundef %1461) #9
  %1463 = load i32, ptr %1442, align 4, !tbaa !5
  %1464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef nonnull %.str.5.sink1136, i32 noundef %1455, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1458, ptr noundef %1460, ptr noundef %1462, i32 noundef %1463) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1465:                                             ; preds = %1435
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %1466 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %1466, ptr %13, align 8, !tbaa !9
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = add nsw i32 %1467, 1
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = icmp eq ptr %1466, null
  br i1 %1469, label %1470, label %1494

1470:                                             ; preds = %1465
  %1471 = tail call ptr @__errno_location() #10
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @s2n_print_stacktrace(ptr noundef %1473) #9
  %1475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1476 = trunc nuw i8 %1475 to i1
  br i1 %1476, label %1477, label %1481

1477:                                             ; preds = %1470
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @fileno(ptr noundef %1478) #9
  %1480 = call i32 @isatty(i32 noundef %1479) #9
  %.not585 = icmp eq i32 %1480, 0
  br i1 %.not585, label %1481, label %1482

1481:                                             ; preds = %1477, %1470
  br label %1482

1482:                                             ; preds = %1477, %1481
  %.str.5.sink1147 = phi ptr [ @.str.5, %1481 ], [ @.str.2, %1477 ]
  store i32 %1472, ptr %1471, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef nonnull @.str.4) #9
  %1488 = load i32, ptr %1485, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror_debug(i32 noundef %1488, ptr noundef nonnull @.str.4) #9
  %1490 = load i32, ptr %1471, align 4, !tbaa !5
  %1491 = call ptr @strerror(i32 noundef %1490) #9
  %1492 = load i32, ptr %1471, align 4, !tbaa !5
  %1493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef nonnull %.str.5.sink1147, i32 noundef %1484, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1487, ptr noundef %1489, ptr noundef %1491, i32 noundef %1492) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1494:                                             ; preds = %1465
  %1495 = add nsw i32 %1467, 2
  store i32 %1495, ptr @test_count, align 4, !tbaa !5
  %1496 = load ptr, ptr %12, align 8, !tbaa !9
  %1497 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1466, ptr noundef %1496) #9
  %1498 = icmp eq i32 %1497, -1
  br i1 %1498, label %1499, label %1523

1499:                                             ; preds = %1494
  %1500 = tail call ptr @__errno_location() #10
  %1501 = load i32, ptr %1500, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @s2n_print_stacktrace(ptr noundef %1502) #9
  %1504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1505 = trunc nuw i8 %1504 to i1
  br i1 %1505, label %1506, label %1510

1506:                                             ; preds = %1499
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @fileno(ptr noundef %1507) #9
  %1509 = call i32 @isatty(i32 noundef %1508) #9
  %.not584 = icmp eq i32 %1509, 0
  br i1 %.not584, label %1510, label %1511

1510:                                             ; preds = %1506, %1499
  br label %1511

1511:                                             ; preds = %1506, %1510
  %.str.5.sink1158 = phi ptr [ @.str.5, %1510 ], [ @.str.2, %1506 ]
  store i32 %1501, ptr %1500, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef nonnull @.str.4) #9
  %1517 = load i32, ptr %1514, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef nonnull @.str.4) #9
  %1519 = load i32, ptr %1500, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #9
  %1521 = load i32, ptr %1500, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1512, ptr noundef nonnull %.str.5.sink1158, i32 noundef %1513, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1516, ptr noundef %1518, ptr noundef %1520, i32 noundef %1521) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1523:                                             ; preds = %1494
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %1524 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %1524, ptr %14, align 8, !tbaa !9
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = add nsw i32 %1525, 1
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = icmp eq ptr %1524, null
  br i1 %1527, label %1528, label %1552

1528:                                             ; preds = %1523
  %1529 = tail call ptr @__errno_location() #10
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = call i32 @s2n_print_stacktrace(ptr noundef %1531) #9
  %1533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1534 = trunc nuw i8 %1533 to i1
  br i1 %1534, label %1535, label %1539

1535:                                             ; preds = %1528
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = call i32 @fileno(ptr noundef %1536) #9
  %1538 = call i32 @isatty(i32 noundef %1537) #9
  %.not583 = icmp eq i32 %1538, 0
  br i1 %.not583, label %1539, label %1540

1539:                                             ; preds = %1535, %1528
  br label %1540

1540:                                             ; preds = %1535, %1539
  %.str.5.sink1169 = phi ptr [ @.str.5, %1539 ], [ @.str.2, %1535 ]
  store i32 %1530, ptr %1529, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror(i32 noundef %1544, ptr noundef nonnull @.str.4) #9
  %1546 = load i32, ptr %1543, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror_debug(i32 noundef %1546, ptr noundef nonnull @.str.4) #9
  %1548 = load i32, ptr %1529, align 4, !tbaa !5
  %1549 = call ptr @strerror(i32 noundef %1548) #9
  %1550 = load i32, ptr %1529, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1541, ptr noundef nonnull %.str.5.sink1169, i32 noundef %1542, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1545, ptr noundef %1547, ptr noundef %1549, i32 noundef %1550) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1552:                                             ; preds = %1523
  %1553 = add nsw i32 %1525, 2
  store i32 %1553, ptr @test_count, align 4, !tbaa !5
  %1554 = load ptr, ptr %12, align 8, !tbaa !9
  %1555 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1524, ptr noundef %1554) #9
  %1556 = icmp eq i32 %1555, -1
  br i1 %1556, label %1557, label %1581

1557:                                             ; preds = %1552
  %1558 = tail call ptr @__errno_location() #10
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = call i32 @s2n_print_stacktrace(ptr noundef %1560) #9
  %1562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1563 = trunc nuw i8 %1562 to i1
  br i1 %1563, label %1564, label %1568

1564:                                             ; preds = %1557
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = call i32 @fileno(ptr noundef %1565) #9
  %1567 = call i32 @isatty(i32 noundef %1566) #9
  %.not582 = icmp eq i32 %1567, 0
  br i1 %.not582, label %1568, label %1569

1568:                                             ; preds = %1564, %1557
  br label %1569

1569:                                             ; preds = %1564, %1568
  %.str.5.sink1180 = phi ptr [ @.str.5, %1568 ], [ @.str.2, %1564 ]
  store i32 %1559, ptr %1558, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef nonnull @.str.4) #9
  %1575 = load i32, ptr %1572, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef nonnull @.str.4) #9
  %1577 = load i32, ptr %1558, align 4, !tbaa !5
  %1578 = call ptr @strerror(i32 noundef %1577) #9
  %1579 = load i32, ptr %1558, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef nonnull %.str.5.sink1180, i32 noundef %1571, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1574, ptr noundef %1576, ptr noundef %1578, i32 noundef %1579) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1581:                                             ; preds = %1552
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  store i64 0, ptr %15, align 8
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %15) #9
  %1585 = icmp eq i32 %1584, -1
  br i1 %1585, label %1586, label %1610

1586:                                             ; preds = %1581
  %1587 = tail call ptr @__errno_location() #10
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @s2n_print_stacktrace(ptr noundef %1589) #9
  %1591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1592 = trunc nuw i8 %1591 to i1
  br i1 %1592, label %1593, label %1597

1593:                                             ; preds = %1586
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @fileno(ptr noundef %1594) #9
  %1596 = call i32 @isatty(i32 noundef %1595) #9
  %.not581 = icmp eq i32 %1596, 0
  br i1 %.not581, label %1597, label %1598

1597:                                             ; preds = %1593, %1586
  br label %1598

1598:                                             ; preds = %1593, %1597
  %.str.5.sink1191 = phi ptr [ @.str.5, %1597 ], [ @.str.2, %1593 ]
  store i32 %1588, ptr %1587, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror(i32 noundef %1602, ptr noundef nonnull @.str.4) #9
  %1604 = load i32, ptr %1601, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror_debug(i32 noundef %1604, ptr noundef nonnull @.str.4) #9
  %1606 = load i32, ptr %1587, align 4, !tbaa !5
  %1607 = call ptr @strerror(i32 noundef %1606) #9
  %1608 = load i32, ptr %1587, align 4, !tbaa !5
  %1609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef nonnull %.str.5.sink1191, i32 noundef %1600, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %1603, ptr noundef %1605, ptr noundef %1607, i32 noundef %1608) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1610:                                             ; preds = %1581
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = add nsw i32 %1611, 1
  store i32 %1612, ptr @test_count, align 4, !tbaa !5
  %1613 = load ptr, ptr %13, align 8, !tbaa !9
  %1614 = call i32 @s2n_connection_set_io_pair(ptr noundef %1613, ptr noundef nonnull %15) #9
  %1615 = icmp eq i32 %1614, -1
  br i1 %1615, label %1616, label %1640

1616:                                             ; preds = %1610
  %1617 = tail call ptr @__errno_location() #10
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @s2n_print_stacktrace(ptr noundef %1619) #9
  %1621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1622 = trunc nuw i8 %1621 to i1
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1616
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @fileno(ptr noundef %1624) #9
  %1626 = call i32 @isatty(i32 noundef %1625) #9
  %.not580 = icmp eq i32 %1626, 0
  br i1 %.not580, label %1627, label %1628

1627:                                             ; preds = %1623, %1616
  br label %1628

1628:                                             ; preds = %1623, %1627
  %.str.5.sink1202 = phi ptr [ @.str.5, %1627 ], [ @.str.2, %1623 ]
  store i32 %1618, ptr %1617, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef nonnull @.str.4) #9
  %1634 = load i32, ptr %1631, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef nonnull @.str.4) #9
  %1636 = load i32, ptr %1617, align 4, !tbaa !5
  %1637 = call ptr @strerror(i32 noundef %1636) #9
  %1638 = load i32, ptr %1617, align 4, !tbaa !5
  %1639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull %.str.5.sink1202, i32 noundef %1630, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1633, ptr noundef %1635, ptr noundef %1637, i32 noundef %1638) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1640:                                             ; preds = %1610
  %1641 = load i32, ptr @test_count, align 4, !tbaa !5
  %1642 = add nsw i32 %1641, 1
  store i32 %1642, ptr @test_count, align 4, !tbaa !5
  %1643 = load ptr, ptr %14, align 8, !tbaa !9
  %1644 = call i32 @s2n_connection_set_io_pair(ptr noundef %1643, ptr noundef nonnull %15) #9
  %1645 = icmp eq i32 %1644, -1
  br i1 %1645, label %1646, label %1670

1646:                                             ; preds = %1640
  %1647 = tail call ptr @__errno_location() #10
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @s2n_print_stacktrace(ptr noundef %1649) #9
  %1651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1652 = trunc nuw i8 %1651 to i1
  br i1 %1652, label %1653, label %1657

1653:                                             ; preds = %1646
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @fileno(ptr noundef %1654) #9
  %1656 = call i32 @isatty(i32 noundef %1655) #9
  %.not579 = icmp eq i32 %1656, 0
  br i1 %.not579, label %1657, label %1658

1657:                                             ; preds = %1653, %1646
  br label %1658

1658:                                             ; preds = %1653, %1657
  %.str.5.sink1213 = phi ptr [ @.str.5, %1657 ], [ @.str.2, %1653 ]
  store i32 %1648, ptr %1647, align 4, !tbaa !5
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror(i32 noundef %1662, ptr noundef nonnull @.str.4) #9
  %1664 = load i32, ptr %1661, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1664, ptr noundef nonnull @.str.4) #9
  %1666 = load i32, ptr %1647, align 4, !tbaa !5
  %1667 = call ptr @strerror(i32 noundef %1666) #9
  %1668 = load i32, ptr %1647, align 4, !tbaa !5
  %1669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1659, ptr noundef nonnull %.str.5.sink1213, i32 noundef %1660, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1663, ptr noundef %1665, ptr noundef %1667, i32 noundef %1668) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1670:                                             ; preds = %1640
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = add nsw i32 %1671, 1
  store i32 %1672, ptr @test_count, align 4, !tbaa !5
  %1673 = load ptr, ptr %14, align 8, !tbaa !9
  %1674 = load ptr, ptr %13, align 8, !tbaa !9
  %1675 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1673, ptr noundef %1674) #9
  %1676 = icmp eq i32 %1675, -1
  br i1 %1676, label %1677, label %1701

1677:                                             ; preds = %1670
  %1678 = tail call ptr @__errno_location() #10
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @s2n_print_stacktrace(ptr noundef %1680) #9
  %1682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1683 = trunc nuw i8 %1682 to i1
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #9
  %1687 = call i32 @isatty(i32 noundef %1686) #9
  %.not578 = icmp eq i32 %1687, 0
  br i1 %.not578, label %1688, label %1689

1688:                                             ; preds = %1684, %1677
  br label %1689

1689:                                             ; preds = %1684, %1688
  %.str.5.sink1224 = phi ptr [ @.str.5, %1688 ], [ @.str.2, %1684 ]
  store i32 %1679, ptr %1678, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.4) #9
  %1695 = load i32, ptr %1692, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.4) #9
  %1697 = load i32, ptr %1678, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #9
  %1699 = load i32, ptr %1678, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull %.str.5.sink1224, i32 noundef %1691, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1701:                                             ; preds = %1670
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = add nsw i32 %1702, 1
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = load ptr, ptr %13, align 8, !tbaa !9
  %1705 = load i32, ptr %1704, align 8
  %1706 = and i32 %1705, 8
  %.not439 = icmp eq i32 %1706, 0
  br i1 %.not439, label %1707, label %1731

1707:                                             ; preds = %1701
  %1708 = tail call ptr @__errno_location() #10
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1711 = call i32 @s2n_print_stacktrace(ptr noundef %1710) #9
  %1712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1713 = trunc nuw i8 %1712 to i1
  br i1 %1713, label %1714, label %1718

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

1718:                                             ; preds = %1714, %1707
  br label %1719

1719:                                             ; preds = %1714, %1718
  %.str.5.sink1235 = phi ptr [ @.str.5, %1718 ], [ @.str.2, %1714 ]
  store i32 %1709, ptr %1708, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror(i32 noundef %1723, ptr noundef nonnull @.str.4) #9
  %1725 = load i32, ptr %1722, align 4, !tbaa !5
  %1726 = call ptr @s2n_strerror_debug(i32 noundef %1725, ptr noundef nonnull @.str.4) #9
  %1727 = load i32, ptr %1708, align 4, !tbaa !5
  %1728 = call ptr @strerror(i32 noundef %1727) #9
  %1729 = load i32, ptr %1708, align 4, !tbaa !5
  %1730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1720, ptr noundef nonnull %.str.5.sink1235, i32 noundef %1721, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1724, ptr noundef %1726, ptr noundef %1728, i32 noundef %1729) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1731:                                             ; preds = %1701
  %1732 = add nsw i32 %1702, 2
  store i32 %1732, ptr @test_count, align 4, !tbaa !5
  %1733 = load ptr, ptr %14, align 8, !tbaa !9
  %1734 = call i32 @s2n_send_and_recv_test(ptr noundef %1733, ptr noundef nonnull %1704) #9
  %1735 = call zeroext i1 @s2n_result_is_ok(i32 %1734)
  br i1 %1735, label %1760, label %1736

1736:                                             ; preds = %1731
  %1737 = tail call ptr @__errno_location() #10
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = call i32 @s2n_print_stacktrace(ptr noundef %1739) #9
  %1741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1742 = trunc nuw i8 %1741 to i1
  br i1 %1742, label %1743, label %1747

1743:                                             ; preds = %1736
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @fileno(ptr noundef %1744) #9
  %1746 = call i32 @isatty(i32 noundef %1745) #9
  %.not441 = icmp eq i32 %1746, 0
  br i1 %.not441, label %1747, label %1748

1747:                                             ; preds = %1743, %1736
  br label %1748

1748:                                             ; preds = %1743, %1747
  %.str.5.sink1246 = phi ptr [ @.str.5, %1747 ], [ @.str.2, %1743 ]
  store i32 %1738, ptr %1737, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef nonnull @.str.4) #9
  %1754 = load i32, ptr %1751, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror_debug(i32 noundef %1754, ptr noundef nonnull @.str.4) #9
  %1756 = load i32, ptr %1737, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #9
  %1758 = load i32, ptr %1737, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1749, ptr noundef nonnull %.str.5.sink1246, i32 noundef %1750, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1753, ptr noundef %1755, ptr noundef %1757, i32 noundef %1758) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1760:                                             ; preds = %1731
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = add nsw i32 %1761, 1
  store i32 %1762, ptr @test_count, align 4, !tbaa !5
  %1763 = load ptr, ptr %13, align 8, !tbaa !9
  %1764 = load ptr, ptr %14, align 8, !tbaa !9
  %1765 = call i32 @s2n_send_and_recv_test(ptr noundef %1763, ptr noundef %1764) #9
  %1766 = call zeroext i1 @s2n_result_is_ok(i32 %1765)
  br i1 %1766, label %1791, label %1767

1767:                                             ; preds = %1760
  %1768 = tail call ptr @__errno_location() #10
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = call i32 @s2n_print_stacktrace(ptr noundef %1770) #9
  %1772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1773 = trunc nuw i8 %1772 to i1
  br i1 %1773, label %1774, label %1778

1774:                                             ; preds = %1767
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = call i32 @fileno(ptr noundef %1775) #9
  %1777 = call i32 @isatty(i32 noundef %1776) #9
  %.not442 = icmp eq i32 %1777, 0
  br i1 %.not442, label %1778, label %1779

1778:                                             ; preds = %1774, %1767
  br label %1779

1779:                                             ; preds = %1774, %1778
  %.str.5.sink1257 = phi ptr [ @.str.5, %1778 ], [ @.str.2, %1774 ]
  store i32 %1769, ptr %1768, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = load i32, ptr @test_count, align 4, !tbaa !5
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror(i32 noundef %1783, ptr noundef nonnull @.str.4) #9
  %1785 = load i32, ptr %1782, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror_debug(i32 noundef %1785, ptr noundef nonnull @.str.4) #9
  %1787 = load i32, ptr %1768, align 4, !tbaa !5
  %1788 = call ptr @strerror(i32 noundef %1787) #9
  %1789 = load i32, ptr %1768, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1780, ptr noundef nonnull %.str.5.sink1257, i32 noundef %1781, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1784, ptr noundef %1786, ptr noundef %1788, i32 noundef %1789) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1791:                                             ; preds = %1760
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = load ptr, ptr %14, align 8, !tbaa !9
  %1795 = call i32 @s2n_send_client_hello_request(ptr noundef %1794)
  %1796 = call zeroext i1 @s2n_result_is_ok(i32 %1795)
  br i1 %1796, label %.preheader, label %1797

1797:                                             ; preds = %1791
  %1798 = tail call ptr @__errno_location() #10
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = call i32 @s2n_print_stacktrace(ptr noundef %1800) #9
  %1802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1803 = trunc nuw i8 %1802 to i1
  br i1 %1803, label %1804, label %1808

1804:                                             ; preds = %1797
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @fileno(ptr noundef %1805) #9
  %1807 = call i32 @isatty(i32 noundef %1806) #9
  %.not443 = icmp eq i32 %1807, 0
  br i1 %.not443, label %1808, label %1809

1808:                                             ; preds = %1804, %1797
  br label %1809

1809:                                             ; preds = %1804, %1808
  %.str.5.sink1268 = phi ptr [ @.str.5, %1808 ], [ @.str.2, %1804 ]
  store i32 %1799, ptr %1798, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror(i32 noundef %1813, ptr noundef nonnull @.str.4) #9
  %1815 = load i32, ptr %1812, align 4, !tbaa !5
  %1816 = call ptr @s2n_strerror_debug(i32 noundef %1815, ptr noundef nonnull @.str.4) #9
  %1817 = load i32, ptr %1798, align 4, !tbaa !5
  %1818 = call ptr @strerror(i32 noundef %1817) #9
  %1819 = load i32, ptr %1798, align 4, !tbaa !5
  %1820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1810, ptr noundef nonnull %.str.5.sink1268, i32 noundef %1811, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1814, ptr noundef %1816, ptr noundef %1818, i32 noundef %1819) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1821:                                             ; preds = %1893
  %1822 = add nuw nsw i64 %.0623, 1
  %exitcond.not = icmp eq i64 %1822, 10
  br i1 %exitcond.not, label %1823, label %.preheader, !llvm.loop !44

1823:                                             ; preds = %1821
  %1824 = call i32 @s2n_io_pair_close(ptr noundef nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  %1825 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  %1826 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %1827 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #9
  %1828 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %1828, ptr %16, align 8, !tbaa !9
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = add nsw i32 %1829, 1
  store i32 %1830, ptr @test_count, align 4, !tbaa !5
  %1831 = icmp eq ptr %1828, null
  br i1 %1831, label %1922, label %1946

.preheader:                                       ; preds = %1791, %1821
  %.0623 = phi i64 [ %1822, %1821 ], [ 0, %1791 ]
  %1832 = load i32, ptr @test_count, align 4, !tbaa !5
  %1833 = add nsw i32 %1832, 1
  store i32 %1833, ptr @test_count, align 4, !tbaa !5
  %1834 = load ptr, ptr %14, align 8, !tbaa !9
  %1835 = load ptr, ptr %13, align 8, !tbaa !9
  %1836 = call i32 @s2n_send_and_recv_test(ptr noundef %1834, ptr noundef %1835) #9
  %1837 = call zeroext i1 @s2n_result_is_ok(i32 %1836)
  br i1 %1837, label %1862, label %1838

1838:                                             ; preds = %.preheader
  %1839 = tail call ptr @__errno_location() #10
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = call i32 @s2n_print_stacktrace(ptr noundef %1841) #9
  %1843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1844 = trunc nuw i8 %1843 to i1
  br i1 %1844, label %1845, label %1849

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

1849:                                             ; preds = %1845, %1838
  br label %1850

1850:                                             ; preds = %1845, %1849
  %.str.5.sink1279 = phi ptr [ @.str.5, %1849 ], [ @.str.2, %1845 ]
  store i32 %1840, ptr %1839, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef nonnull @.str.4) #9
  %1856 = load i32, ptr %1853, align 4, !tbaa !5
  %1857 = call ptr @s2n_strerror_debug(i32 noundef %1856, ptr noundef nonnull @.str.4) #9
  %1858 = load i32, ptr %1839, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #9
  %1860 = load i32, ptr %1839, align 4, !tbaa !5
  %1861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef nonnull %.str.5.sink1279, i32 noundef %1852, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %1855, ptr noundef %1857, ptr noundef %1859, i32 noundef %1860) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1862:                                             ; preds = %.preheader
  %1863 = load i32, ptr @test_count, align 4, !tbaa !5
  %1864 = add nsw i32 %1863, 1
  store i32 %1864, ptr @test_count, align 4, !tbaa !5
  %1865 = load ptr, ptr %13, align 8, !tbaa !9
  %1866 = load ptr, ptr %14, align 8, !tbaa !9
  %1867 = call i32 @s2n_send_and_recv_test(ptr noundef %1865, ptr noundef %1866) #9
  %1868 = call zeroext i1 @s2n_result_is_ok(i32 %1867)
  br i1 %1868, label %1893, label %1869

1869:                                             ; preds = %1862
  %1870 = tail call ptr @__errno_location() #10
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = call i32 @s2n_print_stacktrace(ptr noundef %1872) #9
  %1874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1875 = trunc nuw i8 %1874 to i1
  br i1 %1875, label %1876, label %1880

1876:                                             ; preds = %1869
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @fileno(ptr noundef %1877) #9
  %1879 = call i32 @isatty(i32 noundef %1878) #9
  %.not576 = icmp eq i32 %1879, 0
  br i1 %.not576, label %1880, label %1881

1880:                                             ; preds = %1876, %1869
  br label %1881

1881:                                             ; preds = %1876, %1880
  %.str.5.sink1290 = phi ptr [ @.str.5, %1880 ], [ @.str.2, %1876 ]
  store i32 %1871, ptr %1870, align 4, !tbaa !5
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = load i32, ptr @test_count, align 4, !tbaa !5
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror(i32 noundef %1885, ptr noundef nonnull @.str.4) #9
  %1887 = load i32, ptr %1884, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror_debug(i32 noundef %1887, ptr noundef nonnull @.str.4) #9
  %1889 = load i32, ptr %1870, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #9
  %1891 = load i32, ptr %1870, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1882, ptr noundef nonnull %.str.5.sink1290, i32 noundef %1883, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1886, ptr noundef %1888, ptr noundef %1890, i32 noundef %1891) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1893:                                             ; preds = %1862
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = add nsw i32 %1894, 1
  store i32 %1895, ptr @test_count, align 4, !tbaa !5
  %1896 = load ptr, ptr %13, align 8, !tbaa !9
  %1897 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %1896, i32 noundef 2) #9
  br i1 %1897, label %1821, label %1898

1898:                                             ; preds = %1893
  %1899 = tail call ptr @__errno_location() #10
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1902 = call i32 @s2n_print_stacktrace(ptr noundef %1901) #9
  %1903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1904 = trunc nuw i8 %1903 to i1
  br i1 %1904, label %1905, label %1909

1905:                                             ; preds = %1898
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @fileno(ptr noundef %1906) #9
  %1908 = call i32 @isatty(i32 noundef %1907) #9
  %.not577 = icmp eq i32 %1908, 0
  br i1 %.not577, label %1909, label %1910

1909:                                             ; preds = %1905, %1898
  br label %1910

1910:                                             ; preds = %1905, %1909
  %.str.5.sink1301 = phi ptr [ @.str.5, %1909 ], [ @.str.2, %1905 ]
  store i32 %1900, ptr %1899, align 4, !tbaa !5
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = load i32, ptr @test_count, align 4, !tbaa !5
  %1913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @s2n_strerror(i32 noundef %1914, ptr noundef nonnull @.str.4) #9
  %1916 = load i32, ptr %1913, align 4, !tbaa !5
  %1917 = call ptr @s2n_strerror_debug(i32 noundef %1916, ptr noundef nonnull @.str.4) #9
  %1918 = load i32, ptr %1899, align 4, !tbaa !5
  %1919 = call ptr @strerror(i32 noundef %1918) #9
  %1920 = load i32, ptr %1899, align 4, !tbaa !5
  %1921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1911, ptr noundef nonnull %.str.5.sink1301, i32 noundef %1912, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1915, ptr noundef %1917, ptr noundef %1919, i32 noundef %1920) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1922:                                             ; preds = %1823
  %1923 = tail call ptr @__errno_location() #10
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @s2n_print_stacktrace(ptr noundef %1925) #9
  %1927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1928 = trunc nuw i8 %1927 to i1
  br i1 %1928, label %1929, label %1933

1929:                                             ; preds = %1922
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @fileno(ptr noundef %1930) #9
  %1932 = call i32 @isatty(i32 noundef %1931) #9
  %.not574 = icmp eq i32 %1932, 0
  br i1 %.not574, label %1933, label %1934

1933:                                             ; preds = %1929, %1922
  br label %1934

1934:                                             ; preds = %1929, %1933
  %.str.5.sink1312 = phi ptr [ @.str.5, %1933 ], [ @.str.2, %1929 ]
  store i32 %1924, ptr %1923, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef nonnull @.str.4) #9
  %1940 = load i32, ptr %1937, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror_debug(i32 noundef %1940, ptr noundef nonnull @.str.4) #9
  %1942 = load i32, ptr %1923, align 4, !tbaa !5
  %1943 = call ptr @strerror(i32 noundef %1942) #9
  %1944 = load i32, ptr %1923, align 4, !tbaa !5
  %1945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef nonnull %.str.5.sink1312, i32 noundef %1936, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1939, ptr noundef %1941, ptr noundef %1943, i32 noundef %1944) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1946:                                             ; preds = %1823
  %1947 = add nsw i32 %1829, 2
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1828, ptr noundef nonnull %190) #9
  %1949 = icmp eq i32 %1948, -1
  br i1 %1949, label %1950, label %1974

1950:                                             ; preds = %1946
  %1951 = tail call ptr @__errno_location() #10
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @s2n_print_stacktrace(ptr noundef %1953) #9
  %1955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1956 = trunc nuw i8 %1955 to i1
  br i1 %1956, label %1957, label %1961

1957:                                             ; preds = %1950
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @fileno(ptr noundef %1958) #9
  %1960 = call i32 @isatty(i32 noundef %1959) #9
  %.not573 = icmp eq i32 %1960, 0
  br i1 %.not573, label %1961, label %1962

1961:                                             ; preds = %1957, %1950
  br label %1962

1962:                                             ; preds = %1957, %1961
  %.str.5.sink1323 = phi ptr [ @.str.5, %1961 ], [ @.str.2, %1957 ]
  store i32 %1952, ptr %1951, align 4, !tbaa !5
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror(i32 noundef %1966, ptr noundef nonnull @.str.4) #9
  %1968 = load i32, ptr %1965, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef nonnull @.str.4) #9
  %1970 = load i32, ptr %1951, align 4, !tbaa !5
  %1971 = call ptr @strerror(i32 noundef %1970) #9
  %1972 = load i32, ptr %1951, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1963, ptr noundef nonnull %.str.5.sink1323, i32 noundef %1964, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1967, ptr noundef %1969, ptr noundef %1971, i32 noundef %1972) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1974:                                             ; preds = %1946
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load ptr, ptr %16, align 8, !tbaa !9
  %1978 = getelementptr inbounds i8, ptr %1977, i64 8
  %1979 = load ptr, ptr %1978, align 8, !tbaa !46
  %1980 = getelementptr inbounds i8, ptr %1979, i64 432
  %1981 = load ptr, ptr %1980, align 8, !tbaa !47
  %1982 = icmp eq ptr %1981, null
  br i1 %1982, label %2007, label %1983

1983:                                             ; preds = %1974
  %1984 = tail call ptr @__errno_location() #10
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1987 = call i32 @s2n_print_stacktrace(ptr noundef %1986) #9
  %1988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1989 = trunc nuw i8 %1988 to i1
  br i1 %1989, label %1990, label %1994

1990:                                             ; preds = %1983
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = call i32 @fileno(ptr noundef %1991) #9
  %1993 = call i32 @isatty(i32 noundef %1992) #9
  %.not444 = icmp eq i32 %1993, 0
  br i1 %.not444, label %1994, label %1995

1994:                                             ; preds = %1990, %1983
  br label %1995

1995:                                             ; preds = %1990, %1994
  %.str.5.sink1334 = phi ptr [ @.str.5, %1994 ], [ @.str.2, %1990 ]
  store i32 %1985, ptr %1984, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = load i32, ptr @test_count, align 4, !tbaa !5
  %1998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror(i32 noundef %1999, ptr noundef nonnull @.str.4) #9
  %2001 = load i32, ptr %1998, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror_debug(i32 noundef %2001, ptr noundef nonnull @.str.4) #9
  %2003 = load i32, ptr %1984, align 4, !tbaa !5
  %2004 = call ptr @strerror(i32 noundef %2003) #9
  %2005 = load i32, ptr %1984, align 4, !tbaa !5
  %2006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1996, ptr noundef nonnull %.str.5.sink1334, i32 noundef %1997, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %2000, ptr noundef %2002, ptr noundef %2004, i32 noundef %2005) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2007:                                             ; preds = %1974
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  %2008 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %2008, ptr %17, align 8, !tbaa !9
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = add nsw i32 %2009, 1
  store i32 %2010, ptr @test_count, align 4, !tbaa !5
  %2011 = icmp eq ptr %2008, null
  br i1 %2011, label %2012, label %2036

2012:                                             ; preds = %2007
  %2013 = tail call ptr @__errno_location() #10
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @s2n_print_stacktrace(ptr noundef %2015) #9
  %2017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2018 = trunc nuw i8 %2017 to i1
  br i1 %2018, label %2019, label %2023

2019:                                             ; preds = %2012
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #9
  %2022 = call i32 @isatty(i32 noundef %2021) #9
  %.not572 = icmp eq i32 %2022, 0
  br i1 %.not572, label %2023, label %2024

2023:                                             ; preds = %2019, %2012
  br label %2024

2024:                                             ; preds = %2019, %2023
  %.str.5.sink1345 = phi ptr [ @.str.5, %2023 ], [ @.str.2, %2019 ]
  store i32 %2014, ptr %2013, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef nonnull @.str.4) #9
  %2030 = load i32, ptr %2027, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef nonnull @.str.4) #9
  %2032 = load i32, ptr %2013, align 4, !tbaa !5
  %2033 = call ptr @strerror(i32 noundef %2032) #9
  %2034 = load i32, ptr %2013, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef nonnull %.str.5.sink1345, i32 noundef %2026, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %2029, ptr noundef %2031, ptr noundef %2033, i32 noundef %2034) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2036:                                             ; preds = %2007
  %2037 = add nsw i32 %2009, 2
  store i32 %2037, ptr @test_count, align 4, !tbaa !5
  %2038 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2008, ptr noundef nonnull %190) #9
  %2039 = icmp eq i32 %2038, -1
  br i1 %2039, label %2040, label %2064

2040:                                             ; preds = %2036
  %2041 = tail call ptr @__errno_location() #10
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @s2n_print_stacktrace(ptr noundef %2043) #9
  %2045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2046 = trunc nuw i8 %2045 to i1
  br i1 %2046, label %2047, label %2051

2047:                                             ; preds = %2040
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @fileno(ptr noundef %2048) #9
  %2050 = call i32 @isatty(i32 noundef %2049) #9
  %.not571 = icmp eq i32 %2050, 0
  br i1 %.not571, label %2051, label %2052

2051:                                             ; preds = %2047, %2040
  br label %2052

2052:                                             ; preds = %2047, %2051
  %.str.5.sink1356 = phi ptr [ @.str.5, %2051 ], [ @.str.2, %2047 ]
  store i32 %2042, ptr %2041, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef nonnull @.str.4) #9
  %2058 = load i32, ptr %2055, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef nonnull @.str.4) #9
  %2060 = load i32, ptr %2041, align 4, !tbaa !5
  %2061 = call ptr @strerror(i32 noundef %2060) #9
  %2062 = load i32, ptr %2041, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef nonnull %.str.5.sink1356, i32 noundef %2054, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2057, ptr noundef %2059, ptr noundef %2061, i32 noundef %2062) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2064:                                             ; preds = %2036
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  store i64 0, ptr %18, align 8
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = add nsw i32 %2065, 1
  store i32 %2066, ptr @test_count, align 4, !tbaa !5
  %2067 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %18) #9
  %2068 = icmp eq i32 %2067, -1
  br i1 %2068, label %2069, label %2093

2069:                                             ; preds = %2064
  %2070 = tail call ptr @__errno_location() #10
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = call i32 @s2n_print_stacktrace(ptr noundef %2072) #9
  %2074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2075 = trunc nuw i8 %2074 to i1
  br i1 %2075, label %2076, label %2080

2076:                                             ; preds = %2069
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @fileno(ptr noundef %2077) #9
  %2079 = call i32 @isatty(i32 noundef %2078) #9
  %.not570 = icmp eq i32 %2079, 0
  br i1 %.not570, label %2080, label %2081

2080:                                             ; preds = %2076, %2069
  br label %2081

2081:                                             ; preds = %2076, %2080
  %.str.5.sink1367 = phi ptr [ @.str.5, %2080 ], [ @.str.2, %2076 ]
  store i32 %2071, ptr %2070, align 4, !tbaa !5
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = load i32, ptr @test_count, align 4, !tbaa !5
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror(i32 noundef %2085, ptr noundef nonnull @.str.4) #9
  %2087 = load i32, ptr %2084, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror_debug(i32 noundef %2087, ptr noundef nonnull @.str.4) #9
  %2089 = load i32, ptr %2070, align 4, !tbaa !5
  %2090 = call ptr @strerror(i32 noundef %2089) #9
  %2091 = load i32, ptr %2070, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2082, ptr noundef nonnull %.str.5.sink1367, i32 noundef %2083, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 231, ptr noundef %2086, ptr noundef %2088, ptr noundef %2090, i32 noundef %2091) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2093:                                             ; preds = %2064
  %2094 = load i32, ptr @test_count, align 4, !tbaa !5
  %2095 = add nsw i32 %2094, 1
  store i32 %2095, ptr @test_count, align 4, !tbaa !5
  %2096 = load ptr, ptr %16, align 8, !tbaa !9
  %2097 = call i32 @s2n_connection_set_io_pair(ptr noundef %2096, ptr noundef nonnull %18) #9
  %2098 = icmp eq i32 %2097, -1
  br i1 %2098, label %2099, label %2123

2099:                                             ; preds = %2093
  %2100 = tail call ptr @__errno_location() #10
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = call i32 @s2n_print_stacktrace(ptr noundef %2102) #9
  %2104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2105 = trunc nuw i8 %2104 to i1
  br i1 %2105, label %2106, label %2110

2106:                                             ; preds = %2099
  %2107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2108 = call i32 @fileno(ptr noundef %2107) #9
  %2109 = call i32 @isatty(i32 noundef %2108) #9
  %.not569 = icmp eq i32 %2109, 0
  br i1 %.not569, label %2110, label %2111

2110:                                             ; preds = %2106, %2099
  br label %2111

2111:                                             ; preds = %2106, %2110
  %.str.5.sink1378 = phi ptr [ @.str.5, %2110 ], [ @.str.2, %2106 ]
  store i32 %2101, ptr %2100, 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 nonnull @.str.4) #9
  %2117 = load i32, ptr %2114, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror_debug(i32 noundef %2117, ptr noundef nonnull @.str.4) #9
  %2119 = load i32, ptr %2100, align 4, !tbaa !5
  %2120 = call ptr @strerror(i32 noundef %2119) #9
  %2121 = load i32, ptr %2100, align 4, !tbaa !5
  %2122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2112, ptr noundef nonnull %.str.5.sink1378, i32 noundef %2113, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %2116, ptr noundef %2118, ptr noundef %2120, i32 noundef %2121) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2123:                                             ; preds = %2093
  %2124 = load i32, ptr @test_count, align 4, !tbaa !5
  %2125 = add nsw i32 %2124, 1
  store i32 %2125, ptr @test_count, align 4, !tbaa !5
  %2126 = load ptr, ptr %17, align 8, !tbaa !9
  %2127 = call i32 @s2n_connection_set_io_pair(ptr noundef %2126, ptr noundef nonnull %18) #9
  %2128 = icmp eq i32 %2127, -1
  br i1 %2128, label %2129, label %2153

2129:                                             ; preds = %2123
  %2130 = tail call ptr @__errno_location() #10
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2133 = call i32 @s2n_print_stacktrace(ptr noundef %2132) #9
  %2134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2135 = trunc nuw i8 %2134 to i1
  br i1 %2135, label %2136, label %2140

2136:                                             ; preds = %2129
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = call i32 @fileno(ptr noundef %2137) #9
  %2139 = call i32 @isatty(i32 noundef %2138) #9
  %.not568 = icmp eq i32 %2139, 0
  br i1 %.not568, label %2140, label %2141

2140:                                             ; preds = %2136, %2129
  br label %2141

2141:                                             ; preds = %2136, %2140
  %.str.5.sink1389 = phi ptr [ @.str.5, %2140 ], [ @.str.2, %2136 ]
  store i32 %2131, ptr %2130, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror(i32 noundef %2145, ptr noundef nonnull @.str.4) #9
  %2147 = load i32, ptr %2144, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror_debug(i32 noundef %2147, ptr noundef nonnull @.str.4) #9
  %2149 = load i32, ptr %2130, align 4, !tbaa !5
  %2150 = call ptr @strerror(i32 noundef %2149) #9
  %2151 = load i32, ptr %2130, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2142, ptr noundef nonnull %.str.5.sink1389, i32 noundef %2143, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2146, ptr noundef %2148, ptr noundef %2150, i32 noundef %2151) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2153:                                             ; preds = %2123
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr @test_count, align 4, !tbaa !5
  %2156 = load ptr, ptr %17, align 8, !tbaa !9
  %2157 = load ptr, ptr %16, align 8, !tbaa !9
  %2158 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2156, ptr noundef %2157) #9
  %2159 = icmp eq i32 %2158, -1
  br i1 %2159, label %2160, label %2184

2160:                                             ; preds = %2153
  %2161 = tail call ptr @__errno_location() #10
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @s2n_print_stacktrace(ptr noundef %2163) #9
  %2165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2166 = trunc nuw i8 %2165 to i1
  br i1 %2166, label %2167, label %2171

2167:                                             ; preds = %2160
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @fileno(ptr noundef %2168) #9
  %2170 = call i32 @isatty(i32 noundef %2169) #9
  %.not567 = icmp eq i32 %2170, 0
  br i1 %.not567, label %2171, label %2172

2171:                                             ; preds = %2167, %2160
  br label %2172

2172:                                             ; preds = %2167, %2171
  %.str.5.sink1400 = phi ptr [ @.str.5, %2171 ], [ @.str.2, %2167 ]
  store i32 %2162, ptr %2161, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror(i32 noundef %2176, ptr noundef nonnull @.str.4) #9
  %2178 = load i32, ptr %2175, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef nonnull @.str.4) #9
  %2180 = load i32, ptr %2161, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #9
  %2182 = load i32, ptr %2161, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2173, ptr noundef nonnull %.str.5.sink1400, i32 noundef %2174, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2177, ptr noundef %2179, ptr noundef %2181, i32 noundef %2182) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2184:                                             ; preds = %2153
  %2185 = load i32, ptr @test_count, align 4, !tbaa !5
  %2186 = add nsw i32 %2185, 1
  store i32 %2186, ptr @test_count, align 4, !tbaa !5
  %2187 = load ptr, ptr %16, align 8, !tbaa !9
  %2188 = load i32, ptr %2187, align 8
  %2189 = and i32 %2188, 8
  %.not445 = icmp eq i32 %2189, 0
  br i1 %.not445, label %2190, label %2214

2190:                                             ; preds = %2184
  %2191 = tail call ptr @__errno_location() #10
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = call i32 @s2n_print_stacktrace(ptr noundef %2193) #9
  %2195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2196 = trunc nuw i8 %2195 to i1
  br i1 %2196, label %2197, label %2201

2197:                                             ; preds = %2190
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @fileno(ptr noundef %2198) #9
  %2200 = call i32 @isatty(i32 noundef %2199) #9
  %.not446 = icmp eq i32 %2200, 0
  br i1 %.not446, label %2201, label %2202

2201:                                             ; preds = %2197, %2190
  br label %2202

2202:                                             ; preds = %2197, %2201
  %.str.5.sink1411 = phi ptr [ @.str.5, %2201 ], [ @.str.2, %2197 ]
  store i32 %2192, ptr %2191, align 4, !tbaa !5
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror(i32 noundef %2206, ptr noundef nonnull @.str.4) #9
  %2208 = load i32, ptr %2205, align 4, !tbaa !5
  %2209 = call ptr @s2n_strerror_debug(i32 noundef %2208, ptr noundef nonnull @.str.4) #9
  %2210 = load i32, ptr %2191, align 4, !tbaa !5
  %2211 = call ptr @strerror(i32 noundef %2210) #9
  %2212 = load i32, ptr %2191, align 4, !tbaa !5
  %2213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2203, ptr noundef nonnull %.str.5.sink1411, i32 noundef %2204, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %2207, ptr noundef %2209, ptr noundef %2211, i32 noundef %2212) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2214:                                             ; preds = %2184
  %2215 = add nsw i32 %2185, 2
  store i32 %2215, ptr @test_count, align 4, !tbaa !5
  %2216 = load ptr, ptr %17, align 8, !tbaa !9
  %2217 = call i32 @s2n_send_client_hello_request(ptr noundef %2216)
  %2218 = call zeroext i1 @s2n_result_is_ok(i32 %2217)
  br i1 %2218, label %2243, label %2219

2219:                                             ; preds = %2214
  %2220 = tail call ptr @__errno_location() #10
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = call i32 @s2n_print_stacktrace(ptr noundef %2222) #9
  %2224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2225 = trunc nuw i8 %2224 to i1
  br i1 %2225, label %2226, label %2230

2226:                                             ; preds = %2219
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @fileno(ptr noundef %2227) #9
  %2229 = call i32 @isatty(i32 noundef %2228) #9
  %.not447 = icmp eq i32 %2229, 0
  br i1 %.not447, label %2230, label %2231

2230:                                             ; preds = %2226, %2219
  br label %2231

2231:                                             ; preds = %2226, %2230
  %.str.5.sink1422 = phi ptr [ @.str.5, %2230 ], [ @.str.2, %2226 ]
  store i32 %2221, ptr %2220, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef nonnull @.str.4) #9
  %2237 = load i32, ptr %2234, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror_debug(i32 noundef %2237, ptr noundef nonnull @.str.4) #9
  %2239 = load i32, ptr %2220, align 4, !tbaa !5
  %2240 = call ptr @strerror(i32 noundef %2239) #9
  %2241 = load i32, ptr %2220, align 4, !tbaa !5
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef nonnull %.str.5.sink1422, i32 noundef %2233, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2236, ptr noundef %2238, ptr noundef %2240, i32 noundef %2241) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2243:                                             ; preds = %2214
  %2244 = load i32, ptr @test_count, align 4, !tbaa !5
  %2245 = add nsw i32 %2244, 1
  store i32 %2245, ptr @test_count, align 4, !tbaa !5
  %2246 = load ptr, ptr %17, align 8, !tbaa !9
  %2247 = load ptr, ptr %16, align 8, !tbaa !9
  %2248 = call i32 @s2n_send_and_recv_test(ptr noundef %2246, ptr noundef %2247) #9
  %2249 = call zeroext i1 @s2n_result_is_ok(i32 %2248)
  br i1 %2249, label %2274, label %2250

2250:                                             ; preds = %2243
  %2251 = tail call ptr @__errno_location() #10
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #9
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2250
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #9
  %2260 = call i32 @isatty(i32 noundef %2259) #9
  %.not448 = icmp eq i32 %2260, 0
  br i1 %.not448, label %2261, label %2262

2261:                                             ; preds = %2257, %2250
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.5.sink1433 = phi ptr [ @.str.5, %2261 ], [ @.str.2, %2257 ]
  store i32 %2252, ptr %2251, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2266 = load i32, ptr %2265, align 4, !tbaa !5
  %2267 = call ptr @s2n_strerror(i32 noundef %2266, ptr noundef nonnull @.str.4) #9
  %2268 = load i32, ptr %2265, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror_debug(i32 noundef %2268, ptr noundef nonnull @.str.4) #9
  %2270 = load i32, ptr %2251, align 4, !tbaa !5
  %2271 = call ptr @strerror(i32 noundef %2270) #9
  %2272 = load i32, ptr %2251, align 4, !tbaa !5
  %2273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.5.sink1433, i32 noundef %2264, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2267, ptr noundef %2269, ptr noundef %2271, i32 noundef %2272) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2274:                                             ; preds = %2243
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = add nsw i32 %2275, 1
  store i32 %2276, ptr @test_count, align 4, !tbaa !5
  %2277 = load ptr, ptr %16, align 8, !tbaa !9
  %2278 = load ptr, ptr %17, align 8, !tbaa !9
  %2279 = call i32 @s2n_send_and_recv_test(ptr noundef %2277, ptr noundef %2278) #9
  %2280 = call zeroext i1 @s2n_result_is_ok(i32 %2279)
  br i1 %2280, label %2305, label %2281

2281:                                             ; preds = %2274
  %2282 = tail call ptr @__errno_location() #10
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = call i32 @s2n_print_stacktrace(ptr noundef %2284) #9
  %2286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2287 = trunc nuw i8 %2286 to i1
  br i1 %2287, label %2288, label %2292

2288:                                             ; preds = %2281
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = call i32 @fileno(ptr noundef %2289) #9
  %2291 = call i32 @isatty(i32 noundef %2290) #9
  %.not449 = icmp eq i32 %2291, 0
  br i1 %.not449, label %2292, label %2293

2292:                                             ; preds = %2288, %2281
  br label %2293

2293:                                             ; preds = %2288, %2292
  %.str.5.sink1444 = phi ptr [ @.str.5, %2292 ], [ @.str.2, %2288 ]
  store i32 %2283, ptr %2282, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror(i32 noundef %2297, ptr noundef nonnull @.str.4) #9
  %2299 = load i32, ptr %2296, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror_debug(i32 noundef %2299, ptr noundef nonnull @.str.4) #9
  %2301 = load i32, ptr %2282, align 4, !tbaa !5
  %2302 = call ptr @strerror(i32 noundef %2301) #9
  %2303 = load i32, ptr %2282, align 4, !tbaa !5
  %2304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2294, ptr noundef nonnull %.str.5.sink1444, i32 noundef %2295, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2298, ptr noundef %2300, ptr noundef %2302, i32 noundef %2303) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2305:                                             ; preds = %2274
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = add nsw i32 %2306, 1
  store i32 %2307, ptr @test_count, align 4, !tbaa !5
  %2308 = load ptr, ptr %16, align 8, !tbaa !9
  %2309 = getelementptr inbounds i8, ptr %2308, i64 8
  %2310 = load ptr, ptr %2309, align 8, !tbaa !46
  %2311 = getelementptr inbounds i8, ptr %2310, i64 432
  %2312 = load ptr, ptr %2311, align 8, !tbaa !47
  %2313 = icmp eq ptr %2312, null
  br i1 %2313, label %2338, label %2314

2314:                                             ; preds = %2305
  %2315 = tail call ptr @__errno_location() #10
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = call i32 @s2n_print_stacktrace(ptr noundef %2317) #9
  %2319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2320 = trunc nuw i8 %2319 to i1
  br i1 %2320, label %2321, label %2325

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

2325:                                             ; preds = %2321, %2314
  br label %2326

2326:                                             ; preds = %2321, %2325
  %.str.5.sink1455 = phi ptr [ @.str.5, %2325 ], [ @.str.2, %2321 ]
  store i32 %2316, ptr %2315, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror(i32 noundef %2330, ptr noundef nonnull @.str.4) #9
  %2332 = load i32, ptr %2329, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror_debug(i32 noundef %2332, ptr noundef nonnull @.str.4) #9
  %2334 = load i32, ptr %2315, align 4, !tbaa !5
  %2335 = call ptr @strerror(i32 noundef %2334) #9
  %2336 = load i32, ptr %2315, align 4, !tbaa !5
  %2337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2327, ptr noundef nonnull %.str.5.sink1455, i32 noundef %2328, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2331, ptr noundef %2333, ptr noundef %2335, i32 noundef %2336) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2338:                                             ; preds = %2305
  %2339 = call i32 @s2n_io_pair_close(ptr noundef nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  %2340 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  %2341 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  %2342 = load i64, ptr @__const.main.ctx, align 4
  store i64 %2342, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  %2343 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %2343, ptr %20, align 8, !tbaa !9
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = add nsw i32 %2344, 1
  store i32 %2345, ptr @test_count, align 4, !tbaa !5
  %2346 = icmp eq ptr %2343, null
  br i1 %2346, label %2347, label %2371

2347:                                             ; preds = %2338
  %2348 = tail call ptr @__errno_location() #10
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @s2n_print_stacktrace(ptr noundef %2350) #9
  %2352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2353 = trunc nuw i8 %2352 to i1
  br i1 %2353, label %2354, label %2358

2354:                                             ; preds = %2347
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @fileno(ptr noundef %2355) #9
  %2357 = call i32 @isatty(i32 noundef %2356) #9
  %.not566 = icmp eq i32 %2357, 0
  br i1 %.not566, label %2358, label %2359

2358:                                             ; preds = %2354, %2347
  br label %2359

2359:                                             ; preds = %2354, %2358
  %.str.5.sink1466 = phi ptr [ @.str.5, %2358 ], [ @.str.2, %2354 ]
  store i32 %2349, ptr %2348, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror(i32 noundef %2363, ptr noundef nonnull @.str.4) #9
  %2365 = load i32, ptr %2362, align 4, !tbaa !5
  %2366 = call ptr @s2n_strerror_debug(i32 noundef %2365, ptr noundef nonnull @.str.4) #9
  %2367 = load i32, ptr %2348, align 4, !tbaa !5
  %2368 = call ptr @strerror(i32 noundef %2367) #9
  %2369 = load i32, ptr %2348, align 4, !tbaa !5
  %2370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2360, ptr noundef nonnull %.str.5.sink1466, i32 noundef %2361, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2364, ptr noundef %2366, ptr noundef %2368, i32 noundef %2369) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2371:                                             ; preds = %2338
  %2372 = add nsw i32 %2344, 2
  store i32 %2372, ptr @test_count, align 4, !tbaa !5
  %2373 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2343, ptr noundef nonnull %306) #9
  %2374 = icmp eq i32 %2373, -1
  br i1 %2374, label %2375, label %2399

2375:                                             ; preds = %2371
  %2376 = tail call ptr @__errno_location() #10
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @s2n_print_stacktrace(ptr noundef %2378) #9
  %2380 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2381 = trunc nuw i8 %2380 to i1
  br i1 %2381, label %2382, label %2386

2382:                                             ; preds = %2375
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @fileno(ptr noundef %2383) #9
  %2385 = call i32 @isatty(i32 noundef %2384) #9
  %.not565 = icmp eq i32 %2385, 0
  br i1 %.not565, label %2386, label %2387

2386:                                             ; preds = %2382, %2375
  br label %2387

2387:                                             ; preds = %2382, %2386
  %.str.5.sink1477 = phi ptr [ @.str.5, %2386 ], [ @.str.2, %2382 ]
  store i32 %2377, ptr %2376, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = load i32, ptr @test_count, align 4, !tbaa !5
  %2390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror(i32 noundef %2391, ptr noundef nonnull @.str.4) #9
  %2393 = load i32, ptr %2390, align 4, !tbaa !5
  %2394 = call ptr @s2n_strerror_debug(i32 noundef %2393, ptr noundef nonnull @.str.4) #9
  %2395 = load i32, ptr %2376, align 4, !tbaa !5
  %2396 = call ptr @strerror(i32 noundef %2395) #9
  %2397 = load i32, ptr %2376, align 4, !tbaa !5
  %2398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2388, ptr noundef nonnull %.str.5.sink1477, i32 noundef %2389, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2392, ptr noundef %2394, ptr noundef %2396, i32 noundef %2397) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2399:                                             ; preds = %2371
  %2400 = load i32, ptr @test_count, align 4, !tbaa !5
  %2401 = add nsw i32 %2400, 1
  store i32 %2401, ptr @test_count, align 4, !tbaa !5
  %2402 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef nonnull %19) #9
  %2403 = icmp eq i32 %2402, -1
  br i1 %2403, label %2404, label %2428

2404:                                             ; preds = %2399
  %2405 = tail call ptr @__errno_location() #10
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = call i32 @s2n_print_stacktrace(ptr noundef %2407) #9
  %2409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2410 = trunc nuw i8 %2409 to i1
  br i1 %2410, label %2411, label %2415

2411:                                             ; preds = %2404
  %2412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2413 = call i32 @fileno(ptr noundef %2412) #9
  %2414 = call i32 @isatty(i32 noundef %2413) #9
  %.not564 = icmp eq i32 %2414, 0
  br i1 %.not564, label %2415, label %2416

2415:                                             ; preds = %2411, %2404
  br label %2416

2416:                                             ; preds = %2411, %2415
  %.str.5.sink1488 = phi ptr [ @.str.5, %2415 ], [ @.str.2, %2411 ]
  store i32 %2406, ptr %2405, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror(i32 noundef %2420, ptr noundef nonnull @.str.4) #9
  %2422 = load i32, ptr %2419, align 4, !tbaa !5
  %2423 = call ptr @s2n_strerror_debug(i32 noundef %2422, ptr noundef nonnull @.str.4) #9
  %2424 = load i32, ptr %2405, align 4, !tbaa !5
  %2425 = call ptr @strerror(i32 noundef %2424) #9
  %2426 = load i32, ptr %2405, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef nonnull %.str.5.sink1488, i32 noundef %2418, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %2421, ptr noundef %2423, ptr noundef %2425, i32 noundef %2426) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2428:                                             ; preds = %2399
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  %2429 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %2429, ptr %21, align 8, !tbaa !9
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = add nsw i32 %2430, 1
  store i32 %2431, ptr @test_count, align 4, !tbaa !5
  %2432 = icmp eq ptr %2429, null
  br i1 %2432, label %2433, label %2457

2433:                                             ; preds = %2428
  %2434 = tail call ptr @__errno_location() #10
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = call i32 @s2n_print_stacktrace(ptr noundef %2436) #9
  %2438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2439 = trunc nuw i8 %2438 to i1
  br i1 %2439, label %2440, label %2444

2440:                                             ; preds = %2433
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = call i32 @fileno(ptr noundef %2441) #9
  %2443 = call i32 @isatty(i32 noundef %2442) #9
  %.not563 = icmp eq i32 %2443, 0
  br i1 %.not563, label %2444, label %2445

2444:                                             ; preds = %2440, %2433
  br label %2445

2445:                                             ; preds = %2440, %2444
  %.str.5.sink1499 = phi ptr [ @.str.5, %2444 ], [ @.str.2, %2440 ]
  store i32 %2435, ptr %2434, align 4, !tbaa !5
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror(i32 noundef %2449, ptr noundef nonnull @.str.4) #9
  %2451 = load i32, ptr %2448, align 4, !tbaa !5
  %2452 = call ptr @s2n_strerror_debug(i32 noundef %2451, ptr noundef nonnull @.str.4) #9
  %2453 = load i32, ptr %2434, align 4, !tbaa !5
  %2454 = call ptr @strerror(i32 noundef %2453) #9
  %2455 = load i32, ptr %2434, align 4, !tbaa !5
  %2456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2446, ptr noundef nonnull %.str.5.sink1499, i32 noundef %2447, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %2450, ptr noundef %2452, ptr noundef %2454, i32 noundef %2455) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2457:                                             ; preds = %2428
  %2458 = add nsw i32 %2430, 2
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2429, ptr noundef nonnull %190) #9
  %2460 = icmp eq i32 %2459, -1
  br i1 %2460, label %2461, label %2485

2461:                                             ; preds = %2457
  %2462 = tail call ptr @__errno_location() #10
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = call i32 @s2n_print_stacktrace(ptr noundef %2464) #9
  %2466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2467 = trunc nuw i8 %2466 to i1
  br i1 %2467, label %2468, label %2472

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

2472:                                             ; preds = %2468, %2461
  br label %2473

2473:                                             ; preds = %2468, %2472
  %.str.5.sink1510 = phi ptr [ @.str.5, %2472 ], [ @.str.2, %2468 ]
  store i32 %2463, ptr %2462, align 4, !tbaa !5
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = load i32, ptr @test_count, align 4, !tbaa !5
  %2476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror(i32 noundef %2477, ptr noundef nonnull @.str.4) #9
  %2479 = load i32, ptr %2476, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror_debug(i32 noundef %2479, ptr noundef nonnull @.str.4) #9
  %2481 = load i32, ptr %2462, align 4, !tbaa !5
  %2482 = call ptr @strerror(i32 noundef %2481) #9
  %2483 = load i32, ptr %2462, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2474, ptr noundef nonnull %.str.5.sink1510, i32 noundef %2475, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %2478, ptr noundef %2480, ptr noundef %2482, i32 noundef %2483) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2485:                                             ; preds = %2457
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  store i64 0, ptr %22, align 8
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = add nsw i32 %2486, 1
  store i32 %2487, ptr @test_count, align 4, !tbaa !5
  %2488 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %22) #9
  %2489 = icmp eq i32 %2488, -1
  br i1 %2489, label %2490, label %2514

2490:                                             ; preds = %2485
  %2491 = tail call ptr @__errno_location() #10
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = call i32 @s2n_print_stacktrace(ptr noundef %2493) #9
  %2495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2496 = trunc nuw i8 %2495 to i1
  br i1 %2496, label %2497, label %2501

2497:                                             ; preds = %2490
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @fileno(ptr noundef %2498) #9
  %2500 = call i32 @isatty(i32 noundef %2499) #9
  %.not561 = icmp eq i32 %2500, 0
  br i1 %.not561, label %2501, label %2502

2501:                                             ; preds = %2497, %2490
  br label %2502

2502:                                             ; preds = %2497, %2501
  %.str.5.sink1521 = phi ptr [ @.str.5, %2501 ], [ @.str.2, %2497 ]
  store i32 %2492, ptr %2491, align 4, !tbaa !5
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = load i32, ptr @test_count, align 4, !tbaa !5
  %2505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2506 = load i32, ptr %2505, align 4, !tbaa !5
  %2507 = call ptr @s2n_strerror(i32 noundef %2506, ptr noundef nonnull @.str.4) #9
  %2508 = load i32, ptr %2505, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror_debug(i32 noundef %2508, ptr noundef nonnull @.str.4) #9
  %2510 = load i32, ptr %2491, align 4, !tbaa !5
  %2511 = call ptr @strerror(i32 noundef %2510) #9
  %2512 = load i32, ptr %2491, align 4, !tbaa !5
  %2513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2503, ptr noundef nonnull %.str.5.sink1521, i32 noundef %2504, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 279, ptr noundef %2507, ptr noundef %2509, ptr noundef %2511, i32 noundef %2512) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2514:                                             ; preds = %2485
  %2515 = load i32, ptr @test_count, align 4, !tbaa !5
  %2516 = add nsw i32 %2515, 1
  store i32 %2516, ptr @test_count, align 4, !tbaa !5
  %2517 = load ptr, ptr %20, align 8, !tbaa !9
  %2518 = call i32 @s2n_connection_set_io_pair(ptr noundef %2517, ptr noundef nonnull %22) #9
  %2519 = icmp eq i32 %2518, -1
  br i1 %2519, label %2520, label %2544

2520:                                             ; preds = %2514
  %2521 = tail call ptr @__errno_location() #10
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @s2n_print_stacktrace(ptr noundef %2523) #9
  %2525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2526 = trunc nuw i8 %2525 to i1
  br i1 %2526, label %2527, label %2531

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

2531:                                             ; preds = %2527, %2520
  br label %2532

2532:                                             ; preds = %2527, %2531
  %.str.5.sink1532 = phi ptr [ @.str.5, %2531 ], [ @.str.2, %2527 ]
  store i32 %2522, ptr %2521, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = load i32, ptr @test_count, align 4, !tbaa !5
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef nonnull @.str.4) #9
  %2538 = load i32, ptr %2535, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror_debug(i32 noundef %2538, ptr noundef nonnull @.str.4) #9
  %2540 = load i32, ptr %2521, align 4, !tbaa !5
  %2541 = call ptr @strerror(i32 noundef %2540) #9
  %2542 = load i32, ptr %2521, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef nonnull %.str.5.sink1532, i32 noundef %2534, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %2537, ptr noundef %2539, ptr noundef %2541, i32 noundef %2542) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2544:                                             ; preds = %2514
  %2545 = load i32, ptr @test_count, align 4, !tbaa !5
  %2546 = add nsw i32 %2545, 1
  store i32 %2546, ptr @test_count, align 4, !tbaa !5
  %2547 = load ptr, ptr %21, align 8, !tbaa !9
  %2548 = call i32 @s2n_connection_set_io_pair(ptr noundef %2547, ptr noundef nonnull %22) #9
  %2549 = icmp eq i32 %2548, -1
  br i1 %2549, label %2550, label %2574

2550:                                             ; preds = %2544
  %2551 = tail call ptr @__errno_location() #10
  %2552 = load i32, ptr %2551, align 4, !tbaa !5
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = call i32 @s2n_print_stacktrace(ptr noundef %2553) #9
  %2555 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2556 = trunc nuw i8 %2555 to i1
  br i1 %2556, label %2557, label %2561

2557:                                             ; preds = %2550
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = call i32 @fileno(ptr noundef %2558) #9
  %2560 = call i32 @isatty(i32 noundef %2559) #9
  %.not559 = icmp eq i32 %2560, 0
  br i1 %.not559, label %2561, label %2562

2561:                                             ; preds = %2557, %2550
  br label %2562

2562:                                             ; preds = %2557, %2561
  %.str.5.sink1543 = phi ptr [ @.str.5, %2561 ], [ @.str.2, %2557 ]
  store i32 %2552, ptr %2551, align 4, !tbaa !5
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call ptr @s2n_strerror(i32 noundef %2566, ptr noundef nonnull @.str.4) #9
  %2568 = load i32, ptr %2565, align 4, !tbaa !5
  %2569 = call ptr @s2n_strerror_debug(i32 noundef %2568, ptr noundef nonnull @.str.4) #9
  %2570 = load i32, ptr %2551, align 4, !tbaa !5
  %2571 = call ptr @strerror(i32 noundef %2570) #9
  %2572 = load i32, ptr %2551, align 4, !tbaa !5
  %2573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2563, ptr noundef nonnull %.str.5.sink1543, i32 noundef %2564, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2567, ptr noundef %2569, ptr noundef %2571, i32 noundef %2572) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2574:                                             ; preds = %2544
  %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 %21, align 8, !tbaa !9
  %2578 = load ptr, ptr %20, align 8, !tbaa !9
  %2579 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2577, ptr noundef %2578) #9
  %2580 = icmp eq i32 %2579, -1
  br i1 %2580, label %2581, label %2605

2581:                                             ; preds = %2574
  %2582 = tail call ptr @__errno_location() #10
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @s2n_print_stacktrace(ptr noundef %2584) #9
  %2586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2587 = trunc nuw i8 %2586 to i1
  br i1 %2587, label %2588, label %2592

2588:                                             ; preds = %2581
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @fileno(ptr noundef %2589) #9
  %2591 = call i32 @isatty(i32 noundef %2590) #9
  %.not558 = icmp eq i32 %2591, 0
  br i1 %.not558, label %2592, label %2593

2592:                                             ; preds = %2588, %2581
  br label %2593

2593:                                             ; preds = %2588, %2592
  %.str.5.sink1554 = phi ptr [ @.str.5, %2592 ], [ @.str.2, %2588 ]
  store i32 %2583, ptr %2582, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = load i32, ptr @test_count, align 4, !tbaa !5
  %2596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror(i32 noundef %2597, ptr noundef nonnull @.str.4) #9
  %2599 = load i32, ptr %2596, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef nonnull @.str.4) #9
  %2601 = load i32, ptr %2582, align 4, !tbaa !5
  %2602 = call ptr @strerror(i32 noundef %2601) #9
  %2603 = load i32, ptr %2582, align 4, !tbaa !5
  %2604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2594, ptr noundef nonnull %.str.5.sink1554, i32 noundef %2595, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2598, ptr noundef %2600, ptr noundef %2602, i32 noundef %2603) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2605:                                             ; preds = %2574
  %2606 = load i32, ptr @test_count, align 4, !tbaa !5
  %2607 = add nsw i32 %2606, 1
  store i32 %2607, ptr @test_count, align 4, !tbaa !5
  %2608 = load ptr, ptr %20, align 8, !tbaa !9
  %2609 = load i32, ptr %2608, align 8
  %2610 = and i32 %2609, 8
  %.not451 = icmp eq i32 %2610, 0
  br i1 %.not451, label %2611, label %2635

2611:                                             ; preds = %2605
  %2612 = tail call ptr @__errno_location() #10
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @s2n_print_stacktrace(ptr noundef %2614) #9
  %2616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2617 = trunc nuw i8 %2616 to i1
  br i1 %2617, label %2618, label %2622

2618:                                             ; preds = %2611
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @fileno(ptr noundef %2619) #9
  %2621 = call i32 @isatty(i32 noundef %2620) #9
  %.not452 = icmp eq i32 %2621, 0
  br i1 %.not452, label %2622, label %2623

2622:                                             ; preds = %2618, %2611
  br label %2623

2623:                                             ; preds = %2618, %2622
  %.str.5.sink1565 = phi ptr [ @.str.5, %2622 ], [ @.str.2, %2618 ]
  store i32 %2613, ptr %2612, align 4, !tbaa !5
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call ptr @s2n_strerror(i32 noundef %2627, ptr noundef nonnull @.str.4) #9
  %2629 = load i32, ptr %2626, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror_debug(i32 noundef %2629, ptr noundef nonnull @.str.4) #9
  %2631 = load i32, ptr %2612, align 4, !tbaa !5
  %2632 = call ptr @strerror(i32 noundef %2631) #9
  %2633 = load i32, ptr %2612, align 4, !tbaa !5
  %2634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2624, ptr noundef nonnull %.str.5.sink1565, i32 noundef %2625, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2628, ptr noundef %2630, ptr noundef %2632, i32 noundef %2633) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2635:                                             ; preds = %2605
  %2636 = add nsw i32 %2606, 2
  store i32 %2636, ptr @test_count, align 4, !tbaa !5
  %2637 = load ptr, ptr %21, align 8, !tbaa !9
  %2638 = call i32 @s2n_send_client_hello_request(ptr noundef %2637)
  %2639 = call zeroext i1 @s2n_result_is_ok(i32 %2638)
  br i1 %2639, label %2664, label %2640

2640:                                             ; preds = %2635
  %2641 = tail call ptr @__errno_location() #10
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @s2n_print_stacktrace(ptr noundef %2643) #9
  %2645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2646 = trunc nuw i8 %2645 to i1
  br i1 %2646, label %2647, label %2651

2647:                                             ; preds = %2640
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @fileno(ptr noundef %2648) #9
  %2650 = call i32 @isatty(i32 noundef %2649) #9
  %.not453 = icmp eq i32 %2650, 0
  br i1 %.not453, label %2651, label %2652

2651:                                             ; preds = %2647, %2640
  br label %2652

2652:                                             ; preds = %2647, %2651
  %.str.5.sink1576 = phi ptr [ @.str.5, %2651 ], [ @.str.2, %2647 ]
  store i32 %2642, ptr %2641, align 4, !tbaa !5
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror(i32 noundef %2656, ptr noundef nonnull @.str.4) #9
  %2658 = load i32, ptr %2655, align 4, !tbaa !5
  %2659 = call ptr @s2n_strerror_debug(i32 noundef %2658, ptr noundef nonnull @.str.4) #9
  %2660 = load i32, ptr %2641, align 4, !tbaa !5
  %2661 = call ptr @strerror(i32 noundef %2660) #9
  %2662 = load i32, ptr %2641, align 4, !tbaa !5
  %2663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2653, ptr noundef nonnull %.str.5.sink1576, i32 noundef %2654, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2657, ptr noundef %2659, ptr noundef %2661, i32 noundef %2662) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2664:                                             ; preds = %2635
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = add nsw i32 %2665, 1
  store i32 %2666, ptr @test_count, align 4, !tbaa !5
  %2667 = load ptr, ptr %21, align 8, !tbaa !9
  %2668 = load ptr, ptr %20, align 8, !tbaa !9
  %2669 = call i32 @s2n_send_and_recv_test(ptr noundef %2667, ptr noundef %2668) #9
  %2670 = call zeroext i1 @s2n_result_is_ok(i32 %2669)
  br i1 %2670, label %2695, label %2671

2671:                                             ; preds = %2664
  %2672 = tail call ptr @__errno_location() #10
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = call i32 @s2n_print_stacktrace(ptr noundef %2674) #9
  %2676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2677 = trunc nuw i8 %2676 to i1
  br i1 %2677, label %2678, label %2682

2678:                                             ; preds = %2671
  %2679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2680 = call i32 @fileno(ptr noundef %2679) #9
  %2681 = call i32 @isatty(i32 noundef %2680) #9
  %.not454 = icmp eq i32 %2681, 0
  br i1 %.not454, label %2682, label %2683

2682:                                             ; preds = %2678, %2671
  br label %2683

2683:                                             ; preds = %2678, %2682
  %.str.5.sink1587 = phi ptr [ @.str.5, %2682 ], [ @.str.2, %2678 ]
  store i32 %2673, ptr %2672, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror(i32 noundef %2687, ptr noundef nonnull @.str.4) #9
  %2689 = load i32, ptr %2686, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror_debug(i32 noundef %2689, ptr noundef nonnull @.str.4) #9
  %2691 = load i32, ptr %2672, align 4, !tbaa !5
  %2692 = call ptr @strerror(i32 noundef %2691) #9
  %2693 = load i32, ptr %2672, align 4, !tbaa !5
  %2694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef nonnull %.str.5.sink1587, i32 noundef %2685, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %2688, ptr noundef %2690, ptr noundef %2692, i32 noundef %2693) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2695:                                             ; preds = %2664
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = add nsw i32 %2696, 1
  store i32 %2697, ptr @test_count, align 4, !tbaa !5
  %2698 = load ptr, ptr %20, align 8, !tbaa !9
  %2699 = load ptr, ptr %21, align 8, !tbaa !9
  %2700 = call i32 @s2n_send_and_recv_test(ptr noundef %2698, ptr noundef %2699) #9
  %2701 = call zeroext i1 @s2n_result_is_error(i32 %2700)
  br i1 %2701, label %2726, label %2702

2702:                                             ; preds = %2695
  %2703 = tail call ptr @__errno_location() #10
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @s2n_print_stacktrace(ptr noundef %2705) #9
  %2707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2708 = trunc nuw i8 %2707 to i1
  br i1 %2708, label %2709, label %2713

2709:                                             ; preds = %2702
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = call i32 @fileno(ptr noundef %2710) #9
  %2712 = call i32 @isatty(i32 noundef %2711) #9
  %.not455 = icmp eq i32 %2712, 0
  br i1 %.not455, label %2713, label %2714

2713:                                             ; preds = %2709, %2702
  br label %2714

2714:                                             ; preds = %2709, %2713
  %.str.5.sink1598 = phi ptr [ @.str.5, %2713 ], [ @.str.2, %2709 ]
  store i32 %2704, ptr %2703, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef nonnull @.str.4) #9
  %2720 = load i32, ptr %2717, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror_debug(i32 noundef %2720, ptr noundef nonnull @.str.4) #9
  %2722 = load i32, ptr %2703, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #9
  %2724 = load i32, ptr %2703, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2715, ptr noundef nonnull %.str.5.sink1598, i32 noundef %2716, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2719, ptr noundef %2721, ptr noundef %2723, i32 noundef %2724) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2726:                                             ; preds = %2695
  %2727 = load i32, ptr @test_count, align 4, !tbaa !5
  %2728 = add nsw i32 %2727, 1
  store i32 %2728, 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 = icmp eq i32 %2730, 268435456
  br i1 %2731, label %2755, label %2732

2732:                                             ; preds = %2726
  %2733 = tail call ptr @__errno_location() #10
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = call i32 @s2n_print_stacktrace(ptr noundef %2735) #9
  %2737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2738 = trunc nuw i8 %2737 to i1
  br i1 %2738, label %2739, label %2743

2739:                                             ; preds = %2732
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @fileno(ptr noundef %2740) #9
  %2742 = call i32 @isatty(i32 noundef %2741) #9
  %.not456 = icmp eq i32 %2742, 0
  br i1 %.not456, label %2743, label %2744

2743:                                             ; preds = %2739, %2732
  br label %2744

2744:                                             ; preds = %2739, %2743
  %.str.5.sink1609 = phi ptr [ @.str.5, %2743 ], [ @.str.2, %2739 ]
  store i32 %2734, ptr %2733, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = load i32, ptr @test_count, align 4, !tbaa !5
  %2747 = load i32, ptr %2729, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror(i32 noundef %2747, ptr noundef nonnull @.str.4) #9
  %2749 = load i32, ptr %2729, align 4, !tbaa !5
  %2750 = call ptr @s2n_strerror_debug(i32 noundef %2749, ptr noundef nonnull @.str.4) #9
  %2751 = load i32, ptr %2733, align 4, !tbaa !5
  %2752 = call ptr @strerror(i32 noundef %2751) #9
  %2753 = load i32, ptr %2733, align 4, !tbaa !5
  %2754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2745, ptr noundef nonnull %.str.5.sink1609, i32 noundef %2746, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2748, ptr noundef %2750, ptr noundef %2752, i32 noundef %2753) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2755:                                             ; preds = %2726
  %2756 = add nsw i32 %2727, 2
  store i32 %2756, ptr @test_count, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror_debug(i32 noundef 268435456, ptr noundef nonnull @.str.4) #9
  %2758 = icmp eq ptr %2757, null
  br i1 %2758, label %2759, label %2782

2759:                                             ; preds = %2755
  %2760 = tail call ptr @__errno_location() #10
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @s2n_print_stacktrace(ptr noundef %2762) #9
  %2764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2765 = trunc nuw i8 %2764 to i1
  br i1 %2765, label %2766, label %2770

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

2770:                                             ; preds = %2766, %2759
  br label %2771

2771:                                             ; preds = %2766, %2770
  %.str.5.sink1618 = phi ptr [ @.str.5, %2770 ], [ @.str.2, %2766 ]
  store i32 %2761, ptr %2760, align 4, !tbaa !5
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = load i32, ptr @test_count, align 4, !tbaa !5
  %2774 = load i32, ptr %2729, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror(i32 noundef %2774, ptr noundef nonnull @.str.4) #9
  %2776 = load i32, ptr %2729, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror_debug(i32 noundef %2776, ptr noundef nonnull @.str.4) #9
  %2778 = load i32, ptr %2760, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #9
  %2780 = load i32, ptr %2760, align 4, !tbaa !5
  %2781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2772, ptr noundef nonnull %.str.5.sink1618, i32 noundef %2773, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2775, ptr noundef %2777, ptr noundef %2779, i32 noundef %2780) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2782:                                             ; preds = %2755
  store i32 0, ptr %2729, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %2783 = tail call ptr @__errno_location() #10
  store i32 0, ptr %2783, align 4, !tbaa !5
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = add nsw i32 %2784, 1
  store i32 %2785, ptr @test_count, align 4, !tbaa !5
  %2786 = load ptr, ptr %21, align 8, !tbaa !9
  %2787 = call i32 @s2n_connection_get_alert(ptr noundef %2786) #9
  %2788 = icmp eq i32 %2787, 100
  br i1 %2788, label %2811, label %2789

2789:                                             ; preds = %2782
  %2790 = load i32, ptr %2783, align 4, !tbaa !5
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = call i32 @s2n_print_stacktrace(ptr noundef %2791) #9
  %2793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2794 = trunc nuw i8 %2793 to i1
  br i1 %2794, label %2795, label %2799

2795:                                             ; preds = %2789
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = call i32 @fileno(ptr noundef %2796) #9
  %2798 = call i32 @isatty(i32 noundef %2797) #9
  %.not457 = icmp eq i32 %2798, 0
  br i1 %.not457, label %2799, label %2800

2799:                                             ; preds = %2795, %2789
  br label %2800

2800:                                             ; preds = %2795, %2799
  %.str.5.sink1627 = phi ptr [ @.str.5, %2799 ], [ @.str.2, %2795 ]
  store i32 %2790, ptr %2783, align 4, !tbaa !5
  %2801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2802 = load i32, ptr @test_count, align 4, !tbaa !5
  %2803 = load i32, ptr %2729, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef nonnull @.str.4) #9
  %2805 = load i32, ptr %2729, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror_debug(i32 noundef %2805, ptr noundef nonnull @.str.4) #9
  %2807 = load i32, ptr %2783, align 4, !tbaa !5
  %2808 = call ptr @strerror(i32 noundef %2807) #9
  %2809 = load i32, ptr %2783, align 4, !tbaa !5
  %2810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2801, ptr noundef nonnull %.str.5.sink1627, i32 noundef %2802, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2804, ptr noundef %2806, ptr noundef %2808, i32 noundef %2809) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2811:                                             ; preds = %2782
  %2812 = load i32, ptr @test_count, align 4, !tbaa !5
  %2813 = add nsw i32 %2812, 1
  store i32 %2813, ptr @test_count, align 4, !tbaa !5
  %2814 = load ptr, ptr %20, align 8, !tbaa !9
  %2815 = getelementptr inbounds i8, ptr %2814, i64 8
  %2816 = load ptr, ptr %2815, align 8, !tbaa !46
  %2817 = getelementptr inbounds i8, ptr %2816, i64 432
  %2818 = load ptr, ptr %2817, align 8, !tbaa !47
  %2819 = icmp eq ptr %2818, null
  br i1 %2819, label %2820, label %2842

2820:                                             ; preds = %2811
  %2821 = load i32, ptr %2783, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @s2n_print_stacktrace(ptr noundef %2822) #9
  %2824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2825 = trunc nuw i8 %2824 to i1
  br i1 %2825, label %2826, label %2830

2826:                                             ; preds = %2820
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @fileno(ptr noundef %2827) #9
  %2829 = call i32 @isatty(i32 noundef %2828) #9
  %.not556 = icmp eq i32 %2829, 0
  br i1 %.not556, label %2830, label %2831

2830:                                             ; preds = %2826, %2820
  br label %2831

2831:                                             ; preds = %2826, %2830
  %.str.5.sink1636 = phi ptr [ @.str.5, %2830 ], [ @.str.2, %2826 ]
  store i32 %2821, ptr %2783, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = load i32, ptr @test_count, align 4, !tbaa !5
  %2834 = load i32, ptr %2729, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror(i32 noundef %2834, ptr noundef nonnull @.str.4) #9
  %2836 = load i32, ptr %2729, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror_debug(i32 noundef %2836, ptr noundef nonnull @.str.4) #9
  %2838 = load i32, ptr %2783, align 4, !tbaa !5
  %2839 = call ptr @strerror(i32 noundef %2838) #9
  %2840 = load i32, ptr %2783, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef nonnull %.str.5.sink1636, i32 noundef %2833, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2835, ptr noundef %2837, ptr noundef %2839, i32 noundef %2840) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2842:                                             ; preds = %2811
  %2843 = add nsw i32 %2812, 2
  store i32 %2843, ptr @test_count, align 4, !tbaa !5
  %2844 = getelementptr inbounds i8, ptr %19, i64 4
  %2845 = load i8, ptr %2844, align 4, !tbaa !51
  %2846 = icmp eq i8 %2845, 1
  br i1 %2846, label %2869, label %2847

2847:                                             ; preds = %2842
  %2848 = load i32, ptr %2783, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @s2n_print_stacktrace(ptr noundef %2849) #9
  %2851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2852 = trunc nuw i8 %2851 to i1
  br i1 %2852, label %2853, label %2857

2853:                                             ; preds = %2847
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @fileno(ptr noundef %2854) #9
  %2856 = call i32 @isatty(i32 noundef %2855) #9
  %.not458 = icmp eq i32 %2856, 0
  br i1 %.not458, label %2857, label %2858

2857:                                             ; preds = %2853, %2847
  br label %2858

2858:                                             ; preds = %2853, %2857
  %.str.5.sink1645 = phi ptr [ @.str.5, %2857 ], [ @.str.2, %2853 ]
  store i32 %2848, ptr %2783, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = load i32, ptr %2729, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror(i32 noundef %2861, ptr noundef nonnull @.str.4) #9
  %2863 = load i32, ptr %2729, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror_debug(i32 noundef %2863, ptr noundef nonnull @.str.4) #9
  %2865 = load i32, ptr %2783, align 4, !tbaa !5
  %2866 = call ptr @strerror(i32 noundef %2865) #9
  %2867 = load i32, ptr %2783, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2859, ptr noundef nonnull %.str.5.sink1645, i32 noundef %2860, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2862, ptr noundef %2864, ptr noundef %2866, i32 noundef %2867) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2869:                                             ; preds = %2842
  %2870 = call i32 @s2n_io_pair_close(ptr noundef nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  %2871 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  %2872 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  %2873 = load i64, ptr @__const.main.ctx.64, align 4
  store i64 %2873, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %2874 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %2874, ptr %24, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = icmp eq ptr %2874, null
  br i1 %2877, label %2878, label %2900

2878:                                             ; preds = %2869
  %2879 = load i32, ptr %2783, align 4, !tbaa !5
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @s2n_print_stacktrace(ptr noundef %2880) #9
  %2882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2883 = trunc nuw i8 %2882 to i1
  br i1 %2883, label %2884, label %2888

2884:                                             ; preds = %2878
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = call i32 @fileno(ptr noundef %2885) #9
  %2887 = call i32 @isatty(i32 noundef %2886) #9
  %.not555 = icmp eq i32 %2887, 0
  br i1 %.not555, label %2888, label %2889

2888:                                             ; preds = %2884, %2878
  br label %2889

2889:                                             ; preds = %2884, %2888
  %.str.5.sink1654 = phi ptr [ @.str.5, %2888 ], [ @.str.2, %2884 ]
  store i32 %2879, ptr %2783, align 4, !tbaa !5
  %2890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2891 = load i32, ptr @test_count, align 4, !tbaa !5
  %2892 = load i32, ptr %2729, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror(i32 noundef %2892, ptr noundef nonnull @.str.4) #9
  %2894 = load i32, ptr %2729, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror_debug(i32 noundef %2894, ptr noundef nonnull @.str.4) #9
  %2896 = load i32, ptr %2783, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #9
  %2898 = load i32, ptr %2783, align 4, !tbaa !5
  %2899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2890, ptr noundef nonnull %.str.5.sink1654, i32 noundef %2891, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %2893, ptr noundef %2895, ptr noundef %2897, i32 noundef %2898) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2900:                                             ; preds = %2869
  %2901 = add nsw i32 %2875, 2
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2874, ptr noundef nonnull %306) #9
  %2903 = icmp eq i32 %2902, -1
  br i1 %2903, label %2904, label %2926

2904:                                             ; preds = %2900
  %2905 = load i32, ptr %2783, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = call i32 @s2n_print_stacktrace(ptr noundef %2906) #9
  %2908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2909 = trunc nuw i8 %2908 to i1
  br i1 %2909, label %2910, label %2914

2910:                                             ; preds = %2904
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = call i32 @fileno(ptr noundef %2911) #9
  %2913 = call i32 @isatty(i32 noundef %2912) #9
  %.not554 = icmp eq i32 %2913, 0
  br i1 %.not554, label %2914, label %2915

2914:                                             ; preds = %2910, %2904
  br label %2915

2915:                                             ; preds = %2910, %2914
  %.str.5.sink1663 = phi ptr [ @.str.5, %2914 ], [ @.str.2, %2910 ]
  store i32 %2905, ptr %2783, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = load i32, ptr %2729, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef nonnull @.str.4) #9
  %2920 = load i32, ptr %2729, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef nonnull @.str.4) #9
  %2922 = load i32, ptr %2783, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #9
  %2924 = load i32, ptr %2783, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef nonnull %.str.5.sink1663, i32 noundef %2917, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2919, ptr noundef %2921, ptr noundef %2923, i32 noundef %2924) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2926:                                             ; preds = %2900
  %2927 = load i32, ptr @test_count, align 4, !tbaa !5
  %2928 = add nsw i32 %2927, 1
  store i32 %2928, ptr @test_count, align 4, !tbaa !5
  %2929 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef nonnull %23) #9
  %2930 = icmp eq i32 %2929, -1
  br i1 %2930, label %2931, label %2953

2931:                                             ; preds = %2926
  %2932 = load i32, ptr %2783, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #9
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2936 = trunc nuw i8 %2935 to i1
  br i1 %2936, label %2937, label %2941

2937:                                             ; preds = %2931
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = call i32 @fileno(ptr noundef %2938) #9
  %2940 = call i32 @isatty(i32 noundef %2939) #9
  %.not553 = icmp eq i32 %2940, 0
  br i1 %.not553, label %2941, label %2942

2941:                                             ; preds = %2937, %2931
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.5.sink1672 = phi ptr [ @.str.5, %2941 ], [ @.str.2, %2937 ]
  store i32 %2932, ptr %2783, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = load i32, ptr %2729, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror(i32 noundef %2945, ptr noundef nonnull @.str.4) #9
  %2947 = load i32, ptr %2729, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror_debug(i32 noundef %2947, ptr noundef nonnull @.str.4) #9
  %2949 = load i32, ptr %2783, align 4, !tbaa !5
  %2950 = call ptr @strerror(i32 noundef %2949) #9
  %2951 = load i32, ptr %2783, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.5.sink1672, i32 noundef %2944, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 315, ptr noundef %2946, ptr noundef %2948, ptr noundef %2950, i32 noundef %2951) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2953:                                             ; preds = %2926
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #9
  %2954 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %2954, ptr %25, align 8, !tbaa !9
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = add nsw i32 %2955, 1
  store i32 %2956, ptr @test_count, align 4, !tbaa !5
  %2957 = icmp eq ptr %2954, null
  br i1 %2957, label %2958, label %2980

2958:                                             ; preds = %2953
  %2959 = load i32, ptr %2783, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @s2n_print_stacktrace(ptr noundef %2960) #9
  %2962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2963 = trunc nuw i8 %2962 to i1
  br i1 %2963, label %2964, label %2968

2964:                                             ; preds = %2958
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = call i32 @fileno(ptr noundef %2965) #9
  %2967 = call i32 @isatty(i32 noundef %2966) #9
  %.not552 = icmp eq i32 %2967, 0
  br i1 %.not552, label %2968, label %2969

2968:                                             ; preds = %2964, %2958
  br label %2969

2969:                                             ; preds = %2964, %2968
  %.str.5.sink1681 = phi ptr [ @.str.5, %2968 ], [ @.str.2, %2964 ]
  store i32 %2959, ptr %2783, align 4, !tbaa !5
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = load i32, ptr %2729, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror(i32 noundef %2972, ptr noundef nonnull @.str.4) #9
  %2974 = load i32, ptr %2729, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror_debug(i32 noundef %2974, ptr noundef nonnull @.str.4) #9
  %2976 = load i32, ptr %2783, align 4, !tbaa !5
  %2977 = call ptr @strerror(i32 noundef %2976) #9
  %2978 = load i32, ptr %2783, align 4, !tbaa !5
  %2979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef nonnull %.str.5.sink1681, i32 noundef %2971, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %2973, ptr noundef %2975, ptr noundef %2977, i32 noundef %2978) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2980:                                             ; preds = %2953
  %2981 = add nsw i32 %2955, 2
  store i32 %2981, ptr @test_count, align 4, !tbaa !5
  %2982 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2954, ptr noundef nonnull %190) #9
  %2983 = icmp eq i32 %2982, -1
  br i1 %2983, label %2984, label %3006

2984:                                             ; preds = %2980
  %2985 = load i32, ptr %2783, align 4, !tbaa !5
  %2986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2987 = call i32 @s2n_print_stacktrace(ptr noundef %2986) #9
  %2988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2989 = trunc nuw i8 %2988 to i1
  br i1 %2989, label %2990, label %2994

2990:                                             ; preds = %2984
  %2991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2992 = call i32 @fileno(ptr noundef %2991) #9
  %2993 = call i32 @isatty(i32 noundef %2992) #9
  %.not551 = icmp eq i32 %2993, 0
  br i1 %.not551, label %2994, label %2995

2994:                                             ; preds = %2990, %2984
  br label %2995

2995:                                             ; preds = %2990, %2994
  %.str.5.sink1690 = phi ptr [ @.str.5, %2994 ], [ @.str.2, %2990 ]
  store i32 %2985, ptr %2783, align 4, !tbaa !5
  %2996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2997 = load i32, ptr @test_count, align 4, !tbaa !5
  %2998 = load i32, ptr %2729, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror(i32 noundef %2998, ptr noundef nonnull @.str.4) #9
  %3000 = load i32, ptr %2729, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror_debug(i32 noundef %3000, ptr noundef nonnull @.str.4) #9
  %3002 = load i32, ptr %2783, align 4, !tbaa !5
  %3003 = call ptr @strerror(i32 noundef %3002) #9
  %3004 = load i32, ptr %2783, align 4, !tbaa !5
  %3005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2996, ptr noundef nonnull %.str.5.sink1690, i32 noundef %2997, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 320, ptr noundef %2999, ptr noundef %3001, ptr noundef %3003, i32 noundef %3004) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3006:                                             ; preds = %2980
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  store i64 0, ptr %26, align 8
  %3007 = load i32, ptr @test_count, align 4, !tbaa !5
  %3008 = add nsw i32 %3007, 1
  store i32 %3008, ptr @test_count, align 4, !tbaa !5
  %3009 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %26) #9
  %3010 = icmp eq i32 %3009, -1
  br i1 %3010, label %3011, label %3033

3011:                                             ; preds = %3006
  %3012 = load i32, ptr %2783, align 4, !tbaa !5
  %3013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3014 = call i32 @s2n_print_stacktrace(ptr noundef %3013) #9
  %3015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3016 = trunc nuw i8 %3015 to i1
  br i1 %3016, label %3017, label %3021

3017:                                             ; preds = %3011
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = call i32 @fileno(ptr noundef %3018) #9
  %3020 = call i32 @isatty(i32 noundef %3019) #9
  %.not550 = icmp eq i32 %3020, 0
  br i1 %.not550, label %3021, label %3022

3021:                                             ; preds = %3017, %3011
  br label %3022

3022:                                             ; preds = %3017, %3021
  %.str.5.sink1699 = phi ptr [ @.str.5, %3021 ], [ @.str.2, %3017 ]
  store i32 %3012, ptr %2783, align 4, !tbaa !5
  %3023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3024 = load i32, ptr @test_count, align 4, !tbaa !5
  %3025 = load i32, ptr %2729, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror(i32 noundef %3025, ptr noundef nonnull @.str.4) #9
  %3027 = load i32, ptr %2729, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror_debug(i32 noundef %3027, ptr noundef nonnull @.str.4) #9
  %3029 = load i32, ptr %2783, align 4, !tbaa !5
  %3030 = call ptr @strerror(i32 noundef %3029) #9
  %3031 = load i32, ptr %2783, align 4, !tbaa !5
  %3032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3023, ptr noundef nonnull %.str.5.sink1699, i32 noundef %3024, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 323, ptr noundef %3026, ptr noundef %3028, ptr noundef %3030, i32 noundef %3031) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3033:                                             ; preds = %3006
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = add nsw i32 %3034, 1
  store i32 %3035, ptr @test_count, align 4, !tbaa !5
  %3036 = load ptr, ptr %24, align 8, !tbaa !9
  %3037 = call i32 @s2n_connection_set_io_pair(ptr noundef %3036, ptr noundef nonnull %26) #9
  %3038 = icmp eq i32 %3037, -1
  br i1 %3038, label %3039, label %3061

3039:                                             ; preds = %3033
  %3040 = load i32, ptr %2783, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041) #9
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc nuw i8 %3043 to i1
  br i1 %3044, label %3045, label %3049

3045:                                             ; preds = %3039
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #9
  %3048 = call i32 @isatty(i32 noundef %3047) #9
  %.not549 = icmp eq i32 %3048, 0
  br i1 %.not549, label %3049, label %3050

3049:                                             ; preds = %3045, %3039
  br label %3050

3050:                                             ; preds = %3045, %3049
  %.str.5.sink1708 = phi ptr [ @.str.5, %3049 ], [ @.str.2, %3045 ]
  store i32 %3040, ptr %2783, align 4, !tbaa !5
  %3051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = load i32, ptr %2729, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef nonnull @.str.4) #9
  %3055 = load i32, ptr %2729, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef nonnull @.str.4) #9
  %3057 = load i32, ptr %2783, align 4, !tbaa !5
  %3058 = call ptr @strerror(i32 noundef %3057) #9
  %3059 = load i32, ptr %2783, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3051, ptr noundef nonnull %.str.5.sink1708, i32 noundef %3052, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 324, ptr noundef %3054, ptr noundef %3056, ptr noundef %3058, i32 noundef %3059) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3061:                                             ; preds = %3033
  %3062 = load i32, ptr @test_count, align 4, !tbaa !5
  %3063 = add nsw i32 %3062, 1
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = load ptr, ptr %25, align 8, !tbaa !9
  %3065 = call i32 @s2n_connection_set_io_pair(ptr noundef %3064, ptr noundef nonnull %26) #9
  %3066 = icmp eq i32 %3065, -1
  br i1 %3066, label %3067, label %3089

3067:                                             ; preds = %3061
  %3068 = load i32, ptr %2783, align 4, !tbaa !5
  %3069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3070 = call i32 @s2n_print_stacktrace(ptr noundef %3069) #9
  %3071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3072 = trunc nuw i8 %3071 to i1
  br i1 %3072, label %3073, label %3077

3073:                                             ; preds = %3067
  %3074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3075 = call i32 @fileno(ptr noundef %3074) #9
  %3076 = call i32 @isatty(i32 noundef %3075) #9
  %.not548 = icmp eq i32 %3076, 0
  br i1 %.not548, label %3077, label %3078

3077:                                             ; preds = %3073, %3067
  br label %3078

3078:                                             ; preds = %3073, %3077
  %.str.5.sink1717 = phi ptr [ @.str.5, %3077 ], [ @.str.2, %3073 ]
  store i32 %3068, ptr %2783, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = load i32, ptr %2729, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror(i32 noundef %3081, ptr noundef nonnull @.str.4) #9
  %3083 = load i32, ptr %2729, align 4, !tbaa !5
  %3084 = call ptr @s2n_strerror_debug(i32 noundef %3083, ptr noundef nonnull @.str.4) #9
  %3085 = load i32, ptr %2783, align 4, !tbaa !5
  %3086 = call ptr @strerror(i32 noundef %3085) #9
  %3087 = load i32, ptr %2783, align 4, !tbaa !5
  %3088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef nonnull %.str.5.sink1717, i32 noundef %3080, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %3082, ptr noundef %3084, ptr noundef %3086, i32 noundef %3087) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3089:                                             ; preds = %3061
  %3090 = load i32, ptr @test_count, align 4, !tbaa !5
  %3091 = add nsw i32 %3090, 1
  store i32 %3091, ptr @test_count, align 4, !tbaa !5
  %3092 = load ptr, ptr %25, align 8, !tbaa !9
  %3093 = load ptr, ptr %24, align 8, !tbaa !9
  %3094 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3092, ptr noundef %3093) #9
  %3095 = icmp eq i32 %3094, -1
  br i1 %3095, label %3096, label %3118

3096:                                             ; preds = %3089
  %3097 = load i32, ptr %2783, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @s2n_print_stacktrace(ptr noundef %3098) #9
  %3100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3101 = trunc nuw i8 %3100 to i1
  br i1 %3101, label %3102, label %3106

3102:                                             ; preds = %3096
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @fileno(ptr noundef %3103) #9
  %3105 = call i32 @isatty(i32 noundef %3104) #9
  %.not547 = icmp eq i32 %3105, 0
  br i1 %.not547, label %3106, label %3107

3106:                                             ; preds = %3102, %3096
  br label %3107

3107:                                             ; preds = %3102, %3106
  %.str.5.sink1726 = phi ptr [ @.str.5, %3106 ], [ @.str.2, %3102 ]
  store i32 %3097, ptr %2783, align 4, !tbaa !5
  %3108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3109 = load i32, ptr @test_count, align 4, !tbaa !5
  %3110 = load i32, ptr %2729, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror(i32 noundef %3110, ptr noundef nonnull @.str.4) #9
  %3112 = load i32, ptr %2729, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror_debug(i32 noundef %3112, ptr noundef nonnull @.str.4) #9
  %3114 = load i32, ptr %2783, align 4, !tbaa !5
  %3115 = call ptr @strerror(i32 noundef %3114) #9
  %3116 = load i32, ptr %2783, align 4, !tbaa !5
  %3117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3108, ptr noundef nonnull %.str.5.sink1726, i32 noundef %3109, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3111, ptr noundef %3113, ptr noundef %3115, i32 noundef %3116) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3118:                                             ; preds = %3089
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = add nsw i32 %3119, 1
  store i32 %3120, ptr @test_count, align 4, !tbaa !5
  %3121 = load ptr, ptr %24, align 8, !tbaa !9
  %3122 = load i32, ptr %3121, align 8
  %3123 = and i32 %3122, 8
  %.not459 = icmp eq i32 %3123, 0
  br i1 %.not459, label %3124, label %3146

3124:                                             ; preds = %3118
  %3125 = load i32, ptr %2783, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @s2n_print_stacktrace(ptr noundef %3126) #9
  %3128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3129 = trunc nuw i8 %3128 to i1
  br i1 %3129, label %3130, label %3134

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

3134:                                             ; preds = %3130, %3124
  br label %3135

3135:                                             ; preds = %3130, %3134
  %.str.5.sink1735 = phi ptr [ @.str.5, %3134 ], [ @.str.2, %3130 ]
  store i32 %3125, ptr %2783, align 4, !tbaa !5
  %3136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3137 = load i32, ptr @test_count, align 4, !tbaa !5
  %3138 = load i32, ptr %2729, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror(i32 noundef %3138, ptr noundef nonnull @.str.4) #9
  %3140 = load i32, ptr %2729, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror_debug(i32 noundef %3140, ptr noundef nonnull @.str.4) #9
  %3142 = load i32, ptr %2783, align 4, !tbaa !5
  %3143 = call ptr @strerror(i32 noundef %3142) #9
  %3144 = load i32, ptr %2783, align 4, !tbaa !5
  %3145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3136, ptr noundef nonnull %.str.5.sink1735, i32 noundef %3137, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %3139, ptr noundef %3141, ptr noundef %3143, i32 noundef %3144) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3146:                                             ; preds = %3118
  %3147 = add nsw i32 %3119, 2
  store i32 %3147, ptr @test_count, align 4, !tbaa !5
  %3148 = load ptr, ptr %25, align 8, !tbaa !9
  %3149 = call i32 @s2n_send_client_hello_request(ptr noundef %3148)
  %3150 = call zeroext i1 @s2n_result_is_ok(i32 %3149)
  br i1 %3150, label %3173, label %3151

3151:                                             ; preds = %3146
  %3152 = load i32, ptr %2783, align 4, !tbaa !5
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @s2n_print_stacktrace(ptr noundef %3153) #9
  %3155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3156 = trunc nuw i8 %3155 to i1
  br i1 %3156, label %3157, label %3161

3157:                                             ; preds = %3151
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @fileno(ptr noundef %3158) #9
  %3160 = call i32 @isatty(i32 noundef %3159) #9
  %.not461 = icmp eq i32 %3160, 0
  br i1 %.not461, label %3161, label %3162

3161:                                             ; preds = %3157, %3151
  br label %3162

3162:                                             ; preds = %3157, %3161
  %.str.5.sink1744 = phi ptr [ @.str.5, %3161 ], [ @.str.2, %3157 ]
  store i32 %3152, ptr %2783, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = load i32, ptr %2729, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror(i32 noundef %3165, ptr noundef nonnull @.str.4) #9
  %3167 = load i32, ptr %2729, align 4, !tbaa !5
  %3168 = call ptr @s2n_strerror_debug(i32 noundef %3167, ptr noundef nonnull @.str.4) #9
  %3169 = load i32, ptr %2783, align 4, !tbaa !5
  %3170 = call ptr @strerror(i32 noundef %3169) #9
  %3171 = load i32, ptr %2783, align 4, !tbaa !5
  %3172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3163, ptr noundef nonnull %.str.5.sink1744, i32 noundef %3164, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3166, ptr noundef %3168, ptr noundef %3170, i32 noundef %3171) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3173:                                             ; preds = %3146
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = add nsw i32 %3174, 1
  store i32 %3175, ptr @test_count, align 4, !tbaa !5
  %3176 = load ptr, ptr %25, align 8, !tbaa !9
  %3177 = load ptr, ptr %24, align 8, !tbaa !9
  %3178 = call i32 @s2n_send_and_recv_test(ptr noundef %3176, ptr noundef %3177) #9
  %3179 = call zeroext i1 @s2n_result_is_ok(i32 %3178)
  br i1 %3179, label %3202, label %3180

3180:                                             ; preds = %3173
  %3181 = load i32, ptr %2783, align 4, !tbaa !5
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3183 = call i32 @s2n_print_stacktrace(ptr noundef %3182) #9
  %3184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3185 = trunc nuw i8 %3184 to i1
  br i1 %3185, label %3186, label %3190

3186:                                             ; preds = %3180
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = call i32 @fileno(ptr noundef %3187) #9
  %3189 = call i32 @isatty(i32 noundef %3188) #9
  %.not462 = icmp eq i32 %3189, 0
  br i1 %.not462, label %3190, label %3191

3190:                                             ; preds = %3186, %3180
  br label %3191

3191:                                             ; preds = %3186, %3190
  %.str.5.sink1753 = phi ptr [ @.str.5, %3190 ], [ @.str.2, %3186 ]
  store i32 %3181, ptr %2783, align 4, !tbaa !5
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = load i32, ptr %2729, align 4, !tbaa !5
  %3195 = call ptr @s2n_strerror(i32 noundef %3194, ptr noundef nonnull @.str.4) #9
  %3196 = load i32, ptr %2729, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3196, ptr noundef nonnull @.str.4) #9
  %3198 = load i32, ptr %2783, align 4, !tbaa !5
  %3199 = call ptr @strerror(i32 noundef %3198) #9
  %3200 = load i32, ptr %2783, align 4, !tbaa !5
  %3201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3192, ptr noundef nonnull %.str.5.sink1753, i32 noundef %3193, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %3195, ptr noundef %3197, ptr noundef %3199, i32 noundef %3200) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3202:                                             ; preds = %3173
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = add nsw i32 %3203, 1
  store i32 %3204, ptr @test_count, align 4, !tbaa !5
  %3205 = load ptr, ptr %24, align 8, !tbaa !9
  %3206 = load ptr, ptr %25, align 8, !tbaa !9
  %3207 = call i32 @s2n_send_and_recv_test(ptr noundef %3205, ptr noundef %3206) #9
  %3208 = call zeroext i1 @s2n_result_is_ok(i32 %3207)
  br i1 %3208, label %3231, label %3209

3209:                                             ; preds = %3202
  %3210 = load i32, ptr %2783, align 4, !tbaa !5
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3212 = call i32 @s2n_print_stacktrace(ptr noundef %3211) #9
  %3213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3214 = trunc nuw i8 %3213 to i1
  br i1 %3214, label %3215, label %3219

3215:                                             ; preds = %3209
  %3216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3217 = call i32 @fileno(ptr noundef %3216) #9
  %3218 = call i32 @isatty(i32 noundef %3217) #9
  %.not463 = icmp eq i32 %3218, 0
  br i1 %.not463, label %3219, label %3220

3219:                                             ; preds = %3215, %3209
  br label %3220

3220:                                             ; preds = %3215, %3219
  %.str.5.sink1762 = phi ptr [ @.str.5, %3219 ], [ @.str.2, %3215 ]
  store i32 %3210, ptr %2783, align 4, !tbaa !5
  %3221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = load i32, ptr %2729, align 4, !tbaa !5
  %3224 = call ptr @s2n_strerror(i32 noundef %3223, ptr noundef nonnull @.str.4) #9
  %3225 = load i32, ptr %2729, align 4, !tbaa !5
  %3226 = call ptr @s2n_strerror_debug(i32 noundef %3225, ptr noundef nonnull @.str.4) #9
  %3227 = load i32, ptr %2783, align 4, !tbaa !5
  %3228 = call ptr @strerror(i32 noundef %3227) #9
  %3229 = load i32, ptr %2783, align 4, !tbaa !5
  %3230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3221, ptr noundef nonnull %.str.5.sink1762, i32 noundef %3222, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %3224, ptr noundef %3226, ptr noundef %3228, i32 noundef %3229) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3231:                                             ; preds = %3202
  %3232 = load i32, ptr @test_count, align 4, !tbaa !5
  %3233 = add nsw i32 %3232, 1
  store i32 %3233, ptr @test_count, align 4, !tbaa !5
  %3234 = load ptr, ptr %24, align 8, !tbaa !9
  %3235 = getelementptr inbounds i8, ptr %3234, i64 8
  %3236 = load ptr, ptr %3235, align 8, !tbaa !46
  %3237 = getelementptr inbounds i8, ptr %3236, i64 432
  %3238 = load ptr, ptr %3237, align 8, !tbaa !47
  %3239 = icmp eq ptr %3238, null
  br i1 %3239, label %3240, label %3262

3240:                                             ; preds = %3231
  %3241 = load i32, ptr %2783, align 4, !tbaa !5
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @s2n_print_stacktrace(ptr noundef %3242) #9
  %3244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3245 = trunc nuw i8 %3244 to i1
  br i1 %3245, label %3246, label %3250

3246:                                             ; preds = %3240
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @fileno(ptr noundef %3247) #9
  %3249 = call i32 @isatty(i32 noundef %3248) #9
  %.not546 = icmp eq i32 %3249, 0
  br i1 %.not546, label %3250, label %3251

3250:                                             ; preds = %3246, %3240
  br label %3251

3251:                                             ; preds = %3246, %3250
  %.str.5.sink1771 = phi ptr [ @.str.5, %3250 ], [ @.str.2, %3246 ]
  store i32 %3241, ptr %2783, align 4, !tbaa !5
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = load i32, ptr @test_count, align 4, !tbaa !5
  %3254 = load i32, ptr %2729, align 4, !tbaa !5
  %3255 = call ptr @s2n_strerror(i32 noundef %3254, ptr noundef nonnull @.str.4) #9
  %3256 = load i32, ptr %2729, align 4, !tbaa !5
  %3257 = call ptr @s2n_strerror_debug(i32 noundef %3256, ptr noundef nonnull @.str.4) #9
  %3258 = load i32, ptr %2783, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #9
  %3260 = load i32, ptr %2783, align 4, !tbaa !5
  %3261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3252, ptr noundef nonnull %.str.5.sink1771, i32 noundef %3253, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3255, ptr noundef %3257, ptr noundef %3259, i32 noundef %3260) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3262:                                             ; preds = %3231
  %3263 = add nsw i32 %3232, 2
  store i32 %3263, ptr @test_count, align 4, !tbaa !5
  %3264 = getelementptr inbounds i8, ptr %23, i64 4
  %3265 = load i8, ptr %3264, align 4, !tbaa !51
  %3266 = icmp eq i8 %3265, 1
  br i1 %3266, label %3289, label %3267

3267:                                             ; preds = %3262
  %3268 = load i32, ptr %2783, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = call i32 @s2n_print_stacktrace(ptr noundef %3269) #9
  %3271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3272 = trunc nuw i8 %3271 to i1
  br i1 %3272, label %3273, label %3277

3273:                                             ; preds = %3267
  %3274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3275 = call i32 @fileno(ptr noundef %3274) #9
  %3276 = call i32 @isatty(i32 noundef %3275) #9
  %.not464 = icmp eq i32 %3276, 0
  br i1 %.not464, label %3277, label %3278

3277:                                             ; preds = %3273, %3267
  br label %3278

3278:                                             ; preds = %3273, %3277
  %.str.5.sink1780 = phi ptr [ @.str.5, %3277 ], [ @.str.2, %3273 ]
  store i32 %3268, ptr %2783, align 4, !tbaa !5
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = load i32, ptr @test_count, align 4, !tbaa !5
  %3281 = load i32, ptr %2729, align 4, !tbaa !5
  %3282 = call ptr @s2n_strerror(i32 noundef %3281, ptr noundef nonnull @.str.4) #9
  %3283 = load i32, ptr %2729, align 4, !tbaa !5
  %3284 = call ptr @s2n_strerror_debug(i32 noundef %3283, ptr noundef nonnull @.str.4) #9
  %3285 = load i32, ptr %2783, align 4, !tbaa !5
  %3286 = call ptr @strerror(i32 noundef %3285) #9
  %3287 = load i32, ptr %2783, align 4, !tbaa !5
  %3288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3279, ptr noundef nonnull %.str.5.sink1780, i32 noundef %3280, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %3282, ptr noundef %3284, ptr noundef %3286, i32 noundef %3287) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3289:                                             ; preds = %3262
  %3290 = call i32 @s2n_io_pair_close(ptr noundef nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  %3291 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #9
  %3292 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  store i64 0, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  %3293 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %3293, ptr %28, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = add nsw i32 %3294, 1
  store i32 %3295, ptr @test_count, align 4, !tbaa !5
  %3296 = icmp eq ptr %3293, null
  br i1 %3296, label %3297, label %3319

3297:                                             ; preds = %3289
  %3298 = load i32, ptr %2783, align 4, !tbaa !5
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = call i32 @s2n_print_stacktrace(ptr noundef %3299) #9
  %3301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3302 = trunc nuw i8 %3301 to i1
  br i1 %3302, label %3303, label %3307

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

3307:                                             ; preds = %3303, %3297
  br label %3308

3308:                                             ; preds = %3303, %3307
  %.str.5.sink1789 = phi ptr [ @.str.5, %3307 ], [ @.str.2, %3303 ]
  store i32 %3298, ptr %2783, align 4, !tbaa !5
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = load i32, ptr %2729, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror(i32 noundef %3311, ptr noundef nonnull @.str.4) #9
  %3313 = load i32, ptr %2729, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror_debug(i32 noundef %3313, ptr noundef nonnull @.str.4) #9
  %3315 = load i32, ptr %2783, align 4, !tbaa !5
  %3316 = call ptr @strerror(i32 noundef %3315) #9
  %3317 = load i32, ptr %2783, align 4, !tbaa !5
  %3318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3309, ptr noundef nonnull %.str.5.sink1789, i32 noundef %3310, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %3312, ptr noundef %3314, ptr noundef %3316, i32 noundef %3317) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3319:                                             ; preds = %3289
  %3320 = add nsw i32 %3294, 2
  store i32 %3320, ptr @test_count, align 4, !tbaa !5
  %3321 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3293, ptr noundef nonnull %306) #9
  %3322 = icmp eq i32 %3321, -1
  br i1 %3322, label %3323, label %3345

3323:                                             ; preds = %3319
  %3324 = load i32, ptr %2783, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = call i32 @s2n_print_stacktrace(ptr noundef %3325) #9
  %3327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3328 = trunc nuw i8 %3327 to i1
  br i1 %3328, label %3329, label %3333

3329:                                             ; preds = %3323
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = call i32 @fileno(ptr noundef %3330) #9
  %3332 = call i32 @isatty(i32 noundef %3331) #9
  %.not544 = icmp eq i32 %3332, 0
  br i1 %.not544, label %3333, label %3334

3333:                                             ; preds = %3329, %3323
  br label %3334

3334:                                             ; preds = %3329, %3333
  %.str.5.sink1798 = phi ptr [ @.str.5, %3333 ], [ @.str.2, %3329 ]
  store i32 %3324, ptr %2783, align 4, !tbaa !5
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = load i32, ptr %2729, align 4, !tbaa !5
  %3338 = call ptr @s2n_strerror(i32 noundef %3337, ptr noundef nonnull @.str.4) #9
  %3339 = load i32, ptr %2729, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror_debug(i32 noundef %3339, ptr noundef nonnull @.str.4) #9
  %3341 = load i32, ptr %2783, align 4, !tbaa !5
  %3342 = call ptr @strerror(i32 noundef %3341) #9
  %3343 = load i32, ptr %2783, align 4, !tbaa !5
  %3344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3335, ptr noundef nonnull %.str.5.sink1798, i32 noundef %3336, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 352, ptr noundef %3338, ptr noundef %3340, ptr noundef %3342, i32 noundef %3343) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3345:                                             ; preds = %3319
  %3346 = load i32, ptr @test_count, align 4, !tbaa !5
  %3347 = add nsw i32 %3346, 1
  store i32 %3347, ptr @test_count, align 4, !tbaa !5
  %3348 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef nonnull %27) #9
  %3349 = icmp eq i32 %3348, -1
  br i1 %3349, label %3350, label %3372

3350:                                             ; preds = %3345
  %3351 = load i32, ptr %2783, align 4, !tbaa !5
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @s2n_print_stacktrace(ptr noundef %3352) #9
  %3354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3355 = trunc nuw i8 %3354 to i1
  br i1 %3355, label %3356, label %3360

3356:                                             ; preds = %3350
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = call i32 @fileno(ptr noundef %3357) #9
  %3359 = call i32 @isatty(i32 noundef %3358) #9
  %.not543 = icmp eq i32 %3359, 0
  br i1 %.not543, label %3360, label %3361

3360:                                             ; preds = %3356, %3350
  br label %3361

3361:                                             ; preds = %3356, %3360
  %.str.5.sink1807 = phi ptr [ @.str.5, %3360 ], [ @.str.2, %3356 ]
  store i32 %3351, ptr %2783, align 4, !tbaa !5
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = load i32, ptr @test_count, align 4, !tbaa !5
  %3364 = load i32, ptr %2729, align 4, !tbaa !5
  %3365 = call ptr @s2n_strerror(i32 noundef %3364, ptr noundef nonnull @.str.4) #9
  %3366 = load i32, ptr %2729, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror_debug(i32 noundef %3366, ptr noundef nonnull @.str.4) #9
  %3368 = load i32, ptr %2783, align 4, !tbaa !5
  %3369 = call ptr @strerror(i32 noundef %3368) #9
  %3370 = load i32, ptr %2783, align 4, !tbaa !5
  %3371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3362, ptr noundef nonnull %.str.5.sink1807, i32 noundef %3363, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %3365, ptr noundef %3367, ptr noundef %3369, i32 noundef %3370) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3372:                                             ; preds = %3345
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  %3373 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %3373, ptr %29, align 8, !tbaa !9
  %3374 = load i32, ptr @test_count, align 4, !tbaa !5
  %3375 = add nsw i32 %3374, 1
  store i32 %3375, ptr @test_count, align 4, !tbaa !5
  %3376 = icmp eq ptr %3373, null
  br i1 %3376, label %3377, label %3399

3377:                                             ; preds = %3372
  %3378 = load i32, ptr %2783, align 4, !tbaa !5
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = call i32 @s2n_print_stacktrace(ptr noundef %3379) #9
  %3381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3382 = trunc nuw i8 %3381 to i1
  br i1 %3382, label %3383, label %3387

3383:                                             ; preds = %3377
  %3384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3385 = call i32 @fileno(ptr noundef %3384) #9
  %3386 = call i32 @isatty(i32 noundef %3385) #9
  %.not542 = icmp eq i32 %3386, 0
  br i1 %.not542, label %3387, label %3388

3387:                                             ; preds = %3383, %3377
  br label %3388

3388:                                             ; preds = %3383, %3387
  %.str.5.sink1816 = phi ptr [ @.str.5, %3387 ], [ @.str.2, %3383 ]
  store i32 %3378, ptr %2783, align 4, !tbaa !5
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = load i32, ptr %2729, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror(i32 noundef %3391, ptr noundef nonnull @.str.4) #9
  %3393 = load i32, ptr %2729, align 4, !tbaa !5
  %3394 = call ptr @s2n_strerror_debug(i32 noundef %3393, ptr noundef nonnull @.str.4) #9
  %3395 = load i32, ptr %2783, align 4, !tbaa !5
  %3396 = call ptr @strerror(i32 noundef %3395) #9
  %3397 = load i32, ptr %2783, align 4, !tbaa !5
  %3398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3389, ptr noundef nonnull %.str.5.sink1816, i32 noundef %3390, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %3392, ptr noundef %3394, ptr noundef %3396, i32 noundef %3397) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3399:                                             ; preds = %3372
  %3400 = add nsw i32 %3374, 2
  store i32 %3400, ptr @test_count, align 4, !tbaa !5
  %3401 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3373, ptr noundef nonnull %190) #9
  %3402 = icmp eq i32 %3401, -1
  br i1 %3402, label %3403, label %3425

3403:                                             ; preds = %3399
  %3404 = load i32, ptr %2783, align 4, !tbaa !5
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @s2n_print_stacktrace(ptr noundef %3405) #9
  %3407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3408 = trunc nuw i8 %3407 to i1
  br i1 %3408, label %3409, label %3413

3409:                                             ; preds = %3403
  %3410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3411 = call i32 @fileno(ptr noundef %3410) #9
  %3412 = call i32 @isatty(i32 noundef %3411) #9
  %.not541 = icmp eq i32 %3412, 0
  br i1 %.not541, label %3413, label %3414

3413:                                             ; preds = %3409, %3403
  br label %3414

3414:                                             ; preds = %3409, %3413
  %.str.5.sink1825 = phi ptr [ @.str.5, %3413 ], [ @.str.2, %3409 ]
  store i32 %3404, ptr %2783, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = load i32, ptr @test_count, align 4, !tbaa !5
  %3417 = load i32, ptr %2729, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror(i32 noundef %3417, ptr noundef nonnull @.str.4) #9
  %3419 = load i32, ptr %2729, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror_debug(i32 noundef %3419, ptr noundef nonnull @.str.4) #9
  %3421 = load i32, ptr %2783, align 4, !tbaa !5
  %3422 = call ptr @strerror(i32 noundef %3421) #9
  %3423 = load i32, ptr %2783, align 4, !tbaa !5
  %3424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3415, ptr noundef nonnull %.str.5.sink1825, i32 noundef %3416, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %3418, ptr noundef %3420, ptr noundef %3422, i32 noundef %3423) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3425:                                             ; preds = %3399
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  store i64 0, ptr %30, align 8
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = add nsw i32 %3426, 1
  store i32 %3427, ptr @test_count, align 4, !tbaa !5
  %3428 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %30) #9
  %3429 = icmp eq i32 %3428, -1
  br i1 %3429, label %3430, label %3452

3430:                                             ; preds = %3425
  %3431 = load i32, ptr %2783, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @s2n_print_stacktrace(ptr noundef %3432) #9
  %3434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3435 = trunc nuw i8 %3434 to i1
  br i1 %3435, label %3436, label %3440

3436:                                             ; preds = %3430
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @fileno(ptr noundef %3437) #9
  %3439 = call i32 @isatty(i32 noundef %3438) #9
  %.not540 = icmp eq i32 %3439, 0
  br i1 %.not540, label %3440, label %3441

3440:                                             ; preds = %3436, %3430
  br label %3441

3441:                                             ; preds = %3436, %3440
  %.str.5.sink1834 = phi ptr [ @.str.5, %3440 ], [ @.str.2, %3436 ]
  store i32 %3431, ptr %2783, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = load i32, ptr @test_count, align 4, !tbaa !5
  %3444 = load i32, ptr %2729, align 4, !tbaa !5
  %3445 = call ptr @s2n_strerror(i32 noundef %3444, ptr noundef nonnull @.str.4) #9
  %3446 = load i32, ptr %2729, align 4, !tbaa !5
  %3447 = call ptr @s2n_strerror_debug(i32 noundef %3446, ptr noundef nonnull @.str.4) #9
  %3448 = load i32, ptr %2783, align 4, !tbaa !5
  %3449 = call ptr @strerror(i32 noundef %3448) #9
  %3450 = load i32, ptr %2783, align 4, !tbaa !5
  %3451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3442, ptr noundef nonnull %.str.5.sink1834, i32 noundef %3443, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3445, ptr noundef %3447, ptr noundef %3449, i32 noundef %3450) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3452:                                             ; preds = %3425
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = add nsw i32 %3453, 1
  store i32 %3454, ptr @test_count, align 4, !tbaa !5
  %3455 = load ptr, ptr %28, align 8, !tbaa !9
  %3456 = call i32 @s2n_connection_set_io_pair(ptr noundef %3455, ptr noundef nonnull %30) #9
  %3457 = icmp eq i32 %3456, -1
  br i1 %3457, label %3458, label %3480

3458:                                             ; preds = %3452
  %3459 = load i32, ptr %2783, align 4, !tbaa !5
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = call i32 @s2n_print_stacktrace(ptr noundef %3460) #9
  %3462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3463 = trunc nuw i8 %3462 to i1
  br i1 %3463, label %3464, label %3468

3464:                                             ; preds = %3458
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = call i32 @fileno(ptr noundef %3465) #9
  %3467 = call i32 @isatty(i32 noundef %3466) #9
  %.not539 = icmp eq i32 %3467, 0
  br i1 %.not539, label %3468, label %3469

3468:                                             ; preds = %3464, %3458
  br label %3469

3469:                                             ; preds = %3464, %3468
  %.str.5.sink1843 = phi ptr [ @.str.5, %3468 ], [ @.str.2, %3464 ]
  store i32 %3459, ptr %2783, align 4, !tbaa !5
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = load i32, ptr %2729, align 4, !tbaa !5
  %3473 = call ptr @s2n_strerror(i32 noundef %3472, ptr noundef nonnull @.str.4) #9
  %3474 = load i32, ptr %2729, align 4, !tbaa !5
  %3475 = call ptr @s2n_strerror_debug(i32 noundef %3474, ptr noundef nonnull @.str.4) #9
  %3476 = load i32, ptr %2783, align 4, !tbaa !5
  %3477 = call ptr @strerror(i32 noundef %3476) #9
  %3478 = load i32, ptr %2783, align 4, !tbaa !5
  %3479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3470, ptr noundef nonnull %.str.5.sink1843, i32 noundef %3471, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 362, ptr noundef %3473, ptr noundef %3475, ptr noundef %3477, i32 noundef %3478) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3480:                                             ; preds = %3452
  %3481 = load i32, ptr @test_count, align 4, !tbaa !5
  %3482 = add nsw i32 %3481, 1
  store i32 %3482, ptr @test_count, align 4, !tbaa !5
  %3483 = load ptr, ptr %29, align 8, !tbaa !9
  %3484 = call i32 @s2n_connection_set_io_pair(ptr noundef %3483, ptr noundef nonnull %30) #9
  %3485 = icmp eq i32 %3484, -1
  br i1 %3485, label %3486, label %3508

3486:                                             ; preds = %3480
  %3487 = load i32, ptr %2783, align 4, !tbaa !5
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = call i32 @s2n_print_stacktrace(ptr noundef %3488) #9
  %3490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3491 = trunc nuw i8 %3490 to i1
  br i1 %3491, label %3492, label %3496

3492:                                             ; preds = %3486
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = call i32 @fileno(ptr noundef %3493) #9
  %3495 = call i32 @isatty(i32 noundef %3494) #9
  %.not538 = icmp eq i32 %3495, 0
  br i1 %.not538, label %3496, label %3497

3496:                                             ; preds = %3492, %3486
  br label %3497

3497:                                             ; preds = %3492, %3496
  %.str.5.sink1852 = phi ptr [ @.str.5, %3496 ], [ @.str.2, %3492 ]
  store i32 %3487, ptr %2783, align 4, !tbaa !5
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = load i32, ptr @test_count, align 4, !tbaa !5
  %3500 = load i32, ptr %2729, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror(i32 noundef %3500, ptr noundef nonnull @.str.4) #9
  %3502 = load i32, ptr %2729, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef nonnull @.str.4) #9
  %3504 = load i32, ptr %2783, align 4, !tbaa !5
  %3505 = call ptr @strerror(i32 noundef %3504) #9
  %3506 = load i32, ptr %2783, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3498, ptr noundef nonnull %.str.5.sink1852, i32 noundef %3499, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %3501, ptr noundef %3503, ptr noundef %3505, i32 noundef %3506) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3508:                                             ; preds = %3480
  %3509 = load i32, ptr @test_count, align 4, !tbaa !5
  %3510 = add nsw i32 %3509, 1
  store i32 %3510, ptr @test_count, align 4, !tbaa !5
  %3511 = load ptr, ptr %29, align 8, !tbaa !9
  %3512 = load ptr, ptr %28, align 8, !tbaa !9
  %3513 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3511, ptr noundef %3512) #9
  %3514 = icmp eq i32 %3513, -1
  br i1 %3514, label %3515, label %3537

3515:                                             ; preds = %3508
  %3516 = load i32, ptr %2783, align 4, !tbaa !5
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @s2n_print_stacktrace(ptr noundef %3517) #9
  %3519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3520 = trunc nuw i8 %3519 to i1
  br i1 %3520, label %3521, label %3525

3521:                                             ; preds = %3515
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @fileno(ptr noundef %3522) #9
  %3524 = call i32 @isatty(i32 noundef %3523) #9
  %.not537 = icmp eq i32 %3524, 0
  br i1 %.not537, label %3525, label %3526

3525:                                             ; preds = %3521, %3515
  br label %3526

3526:                                             ; preds = %3521, %3525
  %.str.5.sink1861 = phi ptr [ @.str.5, %3525 ], [ @.str.2, %3521 ]
  store i32 %3516, ptr %2783, align 4, !tbaa !5
  %3527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3528 = load i32, ptr @test_count, align 4, !tbaa !5
  %3529 = load i32, ptr %2729, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror(i32 noundef %3529, ptr noundef nonnull @.str.4) #9
  %3531 = load i32, ptr %2729, align 4, !tbaa !5
  %3532 = call ptr @s2n_strerror_debug(i32 noundef %3531, ptr noundef nonnull @.str.4) #9
  %3533 = load i32, ptr %2783, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #9
  %3535 = load i32, ptr %2783, align 4, !tbaa !5
  %3536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3527, ptr noundef nonnull %.str.5.sink1861, i32 noundef %3528, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %3530, ptr noundef %3532, ptr noundef %3534, i32 noundef %3535) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3537:                                             ; preds = %3508
  %3538 = load i32, ptr @test_count, align 4, !tbaa !5
  %3539 = add nsw i32 %3538, 1
  store i32 %3539, ptr @test_count, align 4, !tbaa !5
  %3540 = load ptr, ptr %28, align 8, !tbaa !9
  %3541 = load i32, ptr %3540, align 8
  %3542 = and i32 %3541, 8
  %.not465 = icmp eq i32 %3542, 0
  br i1 %.not465, label %3543, label %3565

3543:                                             ; preds = %3537
  %3544 = load i32, ptr %2783, align 4, !tbaa !5
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @s2n_print_stacktrace(ptr noundef %3545) #9
  %3547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3548 = trunc nuw i8 %3547 to i1
  br i1 %3548, label %3549, label %3553

3549:                                             ; preds = %3543
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = call i32 @fileno(ptr noundef %3550) #9
  %3552 = call i32 @isatty(i32 noundef %3551) #9
  %.not466 = icmp eq i32 %3552, 0
  br i1 %.not466, label %3553, label %3554

3553:                                             ; preds = %3549, %3543
  br label %3554

3554:                                             ; preds = %3549, %3553
  %.str.5.sink1870 = phi ptr [ @.str.5, %3553 ], [ @.str.2, %3549 ]
  store i32 %3544, ptr %2783, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = load i32, ptr %2729, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror(i32 noundef %3557, ptr noundef nonnull @.str.4) #9
  %3559 = load i32, ptr %2729, align 4, !tbaa !5
  %3560 = call ptr @s2n_strerror_debug(i32 noundef %3559, ptr noundef nonnull @.str.4) #9
  %3561 = load i32, ptr %2783, align 4, !tbaa !5
  %3562 = call ptr @strerror(i32 noundef %3561) #9
  %3563 = load i32, ptr %2783, align 4, !tbaa !5
  %3564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3555, ptr noundef nonnull %.str.5.sink1870, i32 noundef %3556, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %3558, ptr noundef %3560, ptr noundef %3562, i32 noundef %3563) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3565:                                             ; preds = %3537
  %3566 = add nsw i32 %3538, 2
  store i32 %3566, ptr @test_count, align 4, !tbaa !5
  %3567 = load ptr, ptr %29, align 8, !tbaa !9
  %3568 = call i32 @s2n_send_client_hello_request(ptr noundef %3567)
  %3569 = call zeroext i1 @s2n_result_is_ok(i32 %3568)
  br i1 %3569, label %3592, label %3570

3570:                                             ; preds = %3565
  %3571 = load i32, ptr %2783, align 4, !tbaa !5
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = call i32 @s2n_print_stacktrace(ptr noundef %3572) #9
  %3574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3575 = trunc nuw i8 %3574 to i1
  br i1 %3575, label %3576, label %3580

3576:                                             ; preds = %3570
  %3577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3578 = call i32 @fileno(ptr noundef %3577) #9
  %3579 = call i32 @isatty(i32 noundef %3578) #9
  %.not467 = icmp eq i32 %3579, 0
  br i1 %.not467, label %3580, label %3581

3580:                                             ; preds = %3576, %3570
  br label %3581

3581:                                             ; preds = %3576, %3580
  %.str.5.sink1879 = phi ptr [ @.str.5, %3580 ], [ @.str.2, %3576 ]
  store i32 %3571, ptr %2783, align 4, !tbaa !5
  %3582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3583 = load i32, ptr @test_count, align 4, !tbaa !5
  %3584 = load i32, ptr %2729, align 4, !tbaa !5
  %3585 = call ptr @s2n_strerror(i32 noundef %3584, ptr noundef nonnull @.str.4) #9
  %3586 = load i32, ptr %2729, align 4, !tbaa !5
  %3587 = call ptr @s2n_strerror_debug(i32 noundef %3586, ptr noundef nonnull @.str.4) #9
  %3588 = load i32, ptr %2783, align 4, !tbaa !5
  %3589 = call ptr @strerror(i32 noundef %3588) #9
  %3590 = load i32, ptr %2783, align 4, !tbaa !5
  %3591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3582, ptr noundef nonnull %.str.5.sink1879, i32 noundef %3583, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3585, ptr noundef %3587, ptr noundef %3589, i32 noundef %3590) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3592:                                             ; preds = %3565
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = add nsw i32 %3593, 1
  store i32 %3594, ptr @test_count, align 4, !tbaa !5
  %3595 = load ptr, ptr %29, align 8, !tbaa !9
  %3596 = load ptr, ptr %28, align 8, !tbaa !9
  %3597 = call i32 @s2n_send_and_recv_test(ptr noundef %3595, ptr noundef %3596) #9
  %3598 = call zeroext i1 @s2n_result_is_ok(i32 %3597)
  br i1 %3598, label %3621, label %3599

3599:                                             ; preds = %3592
  %3600 = load i32, ptr %2783, align 4, !tbaa !5
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = call i32 @s2n_print_stacktrace(ptr noundef %3601) #9
  %3603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3604 = trunc nuw i8 %3603 to i1
  br i1 %3604, label %3605, label %3609

3605:                                             ; preds = %3599
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = call i32 @fileno(ptr noundef %3606) #9
  %3608 = call i32 @isatty(i32 noundef %3607) #9
  %.not468 = icmp eq i32 %3608, 0
  br i1 %.not468, label %3609, label %3610

3609:                                             ; preds = %3605, %3599
  br label %3610

3610:                                             ; preds = %3605, %3609
  %.str.5.sink1888 = phi ptr [ @.str.5, %3609 ], [ @.str.2, %3605 ]
  store i32 %3600, ptr %2783, align 4, !tbaa !5
  %3611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = load i32, ptr %2729, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror(i32 noundef %3613, ptr noundef nonnull @.str.4) #9
  %3615 = load i32, ptr %2729, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror_debug(i32 noundef %3615, ptr noundef nonnull @.str.4) #9
  %3617 = load i32, ptr %2783, align 4, !tbaa !5
  %3618 = call ptr @strerror(i32 noundef %3617) #9
  %3619 = load i32, ptr %2783, align 4, !tbaa !5
  %3620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3611, ptr noundef nonnull %.str.5.sink1888, i32 noundef %3612, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 373, ptr noundef %3614, ptr noundef %3616, ptr noundef %3618, i32 noundef %3619) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3621:                                             ; preds = %3592
  %3622 = load i32, ptr @test_count, align 4, !tbaa !5
  %3623 = add nsw i32 %3622, 1
  store i32 %3623, ptr @test_count, align 4, !tbaa !5
  %3624 = load ptr, ptr %28, align 8, !tbaa !9
  %3625 = load ptr, ptr %29, align 8, !tbaa !9
  %3626 = call i32 @s2n_send_and_recv_test(ptr noundef %3624, ptr noundef %3625) #9
  %3627 = call zeroext i1 @s2n_result_is_ok(i32 %3626)
  br i1 %3627, label %3650, label %3628

3628:                                             ; preds = %3621
  %3629 = load i32, ptr %2783, align 4, !tbaa !5
  %3630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3631 = call i32 @s2n_print_stacktrace(ptr noundef %3630) #9
  %3632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3633 = trunc nuw i8 %3632 to i1
  br i1 %3633, label %3634, label %3638

3634:                                             ; preds = %3628
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = call i32 @fileno(ptr noundef %3635) #9
  %3637 = call i32 @isatty(i32 noundef %3636) #9
  %.not469 = icmp eq i32 %3637, 0
  br i1 %.not469, label %3638, label %3639

3638:                                             ; preds = %3634, %3628
  br label %3639

3639:                                             ; preds = %3634, %3638
  %.str.5.sink1897 = phi ptr [ @.str.5, %3638 ], [ @.str.2, %3634 ]
  store i32 %3629, ptr %2783, align 4, !tbaa !5
  %3640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3641 = load i32, ptr @test_count, align 4, !tbaa !5
  %3642 = load i32, ptr %2729, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror(i32 noundef %3642, ptr noundef nonnull @.str.4) #9
  %3644 = load i32, ptr %2729, align 4, !tbaa !5
  %3645 = call ptr @s2n_strerror_debug(i32 noundef %3644, ptr noundef nonnull @.str.4) #9
  %3646 = load i32, ptr %2783, align 4, !tbaa !5
  %3647 = call ptr @strerror(i32 noundef %3646) #9
  %3648 = load i32, ptr %2783, align 4, !tbaa !5
  %3649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3640, ptr noundef nonnull %.str.5.sink1897, i32 noundef %3641, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3643, ptr noundef %3645, ptr noundef %3647, i32 noundef %3648) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3650:                                             ; preds = %3621
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = add nsw i32 %3651, 1
  store i32 %3652, ptr @test_count, align 4, !tbaa !5
  %3653 = load ptr, ptr %28, align 8, !tbaa !9
  %3654 = getelementptr inbounds i8, ptr %3653, i64 8
  %3655 = load ptr, ptr %3654, align 8, !tbaa !46
  %3656 = getelementptr inbounds i8, ptr %3655, i64 432
  %3657 = load ptr, ptr %3656, align 8, !tbaa !47
  %3658 = icmp eq ptr %3657, null
  br i1 %3658, label %3659, label %3681

3659:                                             ; preds = %3650
  %3660 = load i32, ptr %2783, align 4, !tbaa !5
  %3661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3662 = call i32 @s2n_print_stacktrace(ptr noundef %3661) #9
  %3663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3664 = trunc nuw i8 %3663 to i1
  br i1 %3664, label %3665, label %3669

3665:                                             ; preds = %3659
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = call i32 @fileno(ptr noundef %3666) #9
  %3668 = call i32 @isatty(i32 noundef %3667) #9
  %.not536 = icmp eq i32 %3668, 0
  br i1 %.not536, label %3669, label %3670

3669:                                             ; preds = %3665, %3659
  br label %3670

3670:                                             ; preds = %3665, %3669
  %.str.5.sink1906 = phi ptr [ @.str.5, %3669 ], [ @.str.2, %3665 ]
  store i32 %3660, ptr %2783, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = load i32, ptr %2729, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror(i32 noundef %3673, ptr noundef nonnull @.str.4) #9
  %3675 = load i32, ptr %2729, align 4, !tbaa !5
  %3676 = call ptr @s2n_strerror_debug(i32 noundef %3675, ptr noundef nonnull @.str.4) #9
  %3677 = load i32, ptr %2783, align 4, !tbaa !5
  %3678 = call ptr @strerror(i32 noundef %3677) #9
  %3679 = load i32, ptr %2783, align 4, !tbaa !5
  %3680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3671, ptr noundef nonnull %.str.5.sink1906, i32 noundef %3672, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %3674, ptr noundef %3676, ptr noundef %3678, i32 noundef %3679) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3681:                                             ; preds = %3650
  %3682 = add nsw i32 %3651, 2
  store i32 %3682, ptr @test_count, align 4, !tbaa !5
  %3683 = getelementptr inbounds i8, ptr %27, i64 4
  %3684 = load i8, ptr %3683, align 4, !tbaa !51
  %3685 = icmp eq i8 %3684, 1
  br i1 %3685, label %3708, label %3686

3686:                                             ; preds = %3681
  %3687 = load i32, ptr %2783, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @s2n_print_stacktrace(ptr noundef %3688) #9
  %3690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3691 = trunc nuw i8 %3690 to i1
  br i1 %3691, label %3692, label %3696

3692:                                             ; preds = %3686
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = call i32 @fileno(ptr noundef %3693) #9
  %3695 = call i32 @isatty(i32 noundef %3694) #9
  %.not470 = icmp eq i32 %3695, 0
  br i1 %.not470, label %3696, label %3697

3696:                                             ; preds = %3692, %3686
  br label %3697

3697:                                             ; preds = %3692, %3696
  %.str.5.sink1915 = phi ptr [ @.str.5, %3696 ], [ @.str.2, %3692 ]
  store i32 %3687, ptr %2783, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = load i32, ptr %2729, align 4, !tbaa !5
  %3701 = call ptr @s2n_strerror(i32 noundef %3700, ptr noundef nonnull @.str.4) #9
  %3702 = load i32, ptr %2729, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror_debug(i32 noundef %3702, ptr noundef nonnull @.str.4) #9
  %3704 = load i32, ptr %2783, align 4, !tbaa !5
  %3705 = call ptr @strerror(i32 noundef %3704) #9
  %3706 = load i32, ptr %2783, align 4, !tbaa !5
  %3707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3698, ptr noundef nonnull %.str.5.sink1915, i32 noundef %3699, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %3701, ptr noundef %3703, ptr noundef %3705, i32 noundef %3706) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3708:                                             ; preds = %3681
  %3709 = call i32 @s2n_io_pair_close(ptr noundef nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  %3710 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  %3711 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  %3712 = load i64, ptr @__const.main.ctx.65, align 4
  store i64 %3712, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  %3713 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %3713, ptr %32, align 8, !tbaa !9
  %3714 = load i32, ptr @test_count, align 4, !tbaa !5
  %3715 = add nsw i32 %3714, 1
  store i32 %3715, ptr @test_count, align 4, !tbaa !5
  %3716 = icmp eq ptr %3713, null
  br i1 %3716, label %3717, label %3739

3717:                                             ; preds = %3708
  %3718 = load i32, ptr %2783, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @s2n_print_stacktrace(ptr noundef %3719) #9
  %3721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3722 = trunc nuw i8 %3721 to i1
  br i1 %3722, label %3723, label %3727

3723:                                             ; preds = %3717
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = call i32 @fileno(ptr noundef %3724) #9
  %3726 = call i32 @isatty(i32 noundef %3725) #9
  %.not535 = icmp eq i32 %3726, 0
  br i1 %.not535, label %3727, label %3728

3727:                                             ; preds = %3723, %3717
  br label %3728

3728:                                             ; preds = %3723, %3727
  %.str.5.sink1924 = phi ptr [ @.str.5, %3727 ], [ @.str.2, %3723 ]
  store i32 %3718, ptr %2783, align 4, !tbaa !5
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = load i32, ptr @test_count, align 4, !tbaa !5
  %3731 = load i32, ptr %2729, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror(i32 noundef %3731, ptr noundef nonnull @.str.4) #9
  %3733 = load i32, ptr %2729, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror_debug(i32 noundef %3733, ptr noundef nonnull @.str.4) #9
  %3735 = load i32, ptr %2783, align 4, !tbaa !5
  %3736 = call ptr @strerror(i32 noundef %3735) #9
  %3737 = load i32, ptr %2783, align 4, !tbaa !5
  %3738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3729, ptr noundef nonnull %.str.5.sink1924, i32 noundef %3730, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 403, ptr noundef %3732, ptr noundef %3734, ptr noundef %3736, i32 noundef %3737) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3739:                                             ; preds = %3708
  %3740 = add nsw i32 %3714, 2
  store i32 %3740, ptr @test_count, align 4, !tbaa !5
  %3741 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3713, ptr noundef nonnull %306) #9
  %3742 = icmp eq i32 %3741, -1
  br i1 %3742, label %3743, label %3765

3743:                                             ; preds = %3739
  %3744 = load i32, ptr %2783, align 4, !tbaa !5
  %3745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3746 = call i32 @s2n_print_stacktrace(ptr noundef %3745) #9
  %3747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3748 = trunc nuw i8 %3747 to i1
  br i1 %3748, label %3749, label %3753

3749:                                             ; preds = %3743
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @fileno(ptr noundef %3750) #9
  %3752 = call i32 @isatty(i32 noundef %3751) #9
  %.not534 = icmp eq i32 %3752, 0
  br i1 %.not534, label %3753, label %3754

3753:                                             ; preds = %3749, %3743
  br label %3754

3754:                                             ; preds = %3749, %3753
  %.str.5.sink1933 = phi ptr [ @.str.5, %3753 ], [ @.str.2, %3749 ]
  store i32 %3744, ptr %2783, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = load i32, ptr %2729, align 4, !tbaa !5
  %3758 = call ptr @s2n_strerror(i32 noundef %3757, ptr noundef nonnull @.str.4) #9
  %3759 = load i32, ptr %2729, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror_debug(i32 noundef %3759, ptr noundef nonnull @.str.4) #9
  %3761 = load i32, ptr %2783, align 4, !tbaa !5
  %3762 = call ptr @strerror(i32 noundef %3761) #9
  %3763 = load i32, ptr %2783, align 4, !tbaa !5
  %3764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef nonnull %.str.5.sink1933, i32 noundef %3756, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %3758, ptr noundef %3760, ptr noundef %3762, i32 noundef %3763) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3765:                                             ; preds = %3739
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = add nsw i32 %3766, 1
  store i32 %3767, ptr @test_count, align 4, !tbaa !5
  %3768 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef nonnull %31) #9
  %3769 = icmp eq i32 %3768, -1
  br i1 %3769, label %3770, label %3792

3770:                                             ; preds = %3765
  %3771 = load i32, ptr %2783, align 4, !tbaa !5
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @s2n_print_stacktrace(ptr noundef %3772) #9
  %3774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3775 = trunc nuw i8 %3774 to i1
  br i1 %3775, label %3776, label %3780

3776:                                             ; preds = %3770
  %3777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3778 = call i32 @fileno(ptr noundef %3777) #9
  %3779 = call i32 @isatty(i32 noundef %3778) #9
  %.not533 = icmp eq i32 %3779, 0
  br i1 %.not533, label %3780, label %3781

3780:                                             ; preds = %3776, %3770
  br label %3781

3781:                                             ; preds = %3776, %3780
  %.str.5.sink1942 = phi ptr [ @.str.5, %3780 ], [ @.str.2, %3776 ]
  store i32 %3771, ptr %2783, align 4, !tbaa !5
  %3782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = load i32, ptr %2729, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror(i32 noundef %3784, ptr noundef nonnull @.str.4) #9
  %3786 = load i32, ptr %2729, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef nonnull @.str.4) #9
  %3788 = load i32, ptr %2783, align 4, !tbaa !5
  %3789 = call ptr @strerror(i32 noundef %3788) #9
  %3790 = load i32, ptr %2783, align 4, !tbaa !5
  %3791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3782, ptr noundef nonnull %.str.5.sink1942, i32 noundef %3783, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %3785, ptr noundef %3787, ptr noundef %3789, i32 noundef %3790) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3792:                                             ; preds = %3765
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #9
  %3793 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %3793, ptr %33, align 8, !tbaa !9
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = add nsw i32 %3794, 1
  store i32 %3795, ptr @test_count, align 4, !tbaa !5
  %3796 = icmp eq ptr %3793, null
  br i1 %3796, label %3797, label %3819

3797:                                             ; preds = %3792
  %3798 = load i32, ptr %2783, align 4, !tbaa !5
  %3799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3800 = call i32 @s2n_print_stacktrace(ptr noundef %3799) #9
  %3801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3802 = trunc nuw i8 %3801 to i1
  br i1 %3802, label %3803, label %3807

3803:                                             ; preds = %3797
  %3804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3805 = call i32 @fileno(ptr noundef %3804) #9
  %3806 = call i32 @isatty(i32 noundef %3805) #9
  %.not532 = icmp eq i32 %3806, 0
  br i1 %.not532, label %3807, label %3808

3807:                                             ; preds = %3803, %3797
  br label %3808

3808:                                             ; preds = %3803, %3807
  %.str.5.sink1951 = phi ptr [ @.str.5, %3807 ], [ @.str.2, %3803 ]
  store i32 %3798, ptr %2783, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = load i32, ptr %2729, align 4, !tbaa !5
  %3812 = call ptr @s2n_strerror(i32 noundef %3811, ptr noundef nonnull @.str.4) #9
  %3813 = load i32, ptr %2729, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror_debug(i32 noundef %3813, ptr noundef nonnull @.str.4) #9
  %3815 = load i32, ptr %2783, align 4, !tbaa !5
  %3816 = call ptr @strerror(i32 noundef %3815) #9
  %3817 = load i32, ptr %2783, align 4, !tbaa !5
  %3818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3809, ptr noundef nonnull %.str.5.sink1951, i32 noundef %3810, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %3812, ptr noundef %3814, ptr noundef %3816, i32 noundef %3817) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3819:                                             ; preds = %3792
  %3820 = add nsw i32 %3794, 2
  store i32 %3820, ptr @test_count, align 4, !tbaa !5
  %3821 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3793, ptr noundef nonnull %190) #9
  %3822 = icmp eq i32 %3821, -1
  br i1 %3822, label %3823, label %3845

3823:                                             ; preds = %3819
  %3824 = load i32, ptr %2783, align 4, !tbaa !5
  %3825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3826 = call i32 @s2n_print_stacktrace(ptr noundef %3825) #9
  %3827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3828 = trunc nuw i8 %3827 to i1
  br i1 %3828, label %3829, label %3833

3829:                                             ; preds = %3823
  %3830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3831 = call i32 @fileno(ptr noundef %3830) #9
  %3832 = call i32 @isatty(i32 noundef %3831) #9
  %.not531 = icmp eq i32 %3832, 0
  br i1 %.not531, label %3833, label %3834

3833:                                             ; preds = %3829, %3823
  br label %3834

3834:                                             ; preds = %3829, %3833
  %.str.5.sink1960 = phi ptr [ @.str.5, %3833 ], [ @.str.2, %3829 ]
  store i32 %3824, ptr %2783, align 4, !tbaa !5
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = load i32, ptr @test_count, align 4, !tbaa !5
  %3837 = load i32, ptr %2729, align 4, !tbaa !5
  %3838 = call ptr @s2n_strerror(i32 noundef %3837, ptr noundef nonnull @.str.4) #9
  %3839 = load i32, ptr %2729, align 4, !tbaa !5
  %3840 = call ptr @s2n_strerror_debug(i32 noundef %3839, ptr noundef nonnull @.str.4) #9
  %3841 = load i32, ptr %2783, align 4, !tbaa !5
  %3842 = call ptr @strerror(i32 noundef %3841) #9
  %3843 = load i32, ptr %2783, align 4, !tbaa !5
  %3844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3835, ptr noundef nonnull %.str.5.sink1960, i32 noundef %3836, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %3838, ptr noundef %3840, ptr noundef %3842, i32 noundef %3843) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3845:                                             ; preds = %3819
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  store i64 0, ptr %34, align 8
  %3846 = load i32, ptr @test_count, align 4, !tbaa !5
  %3847 = add nsw i32 %3846, 1
  store i32 %3847, ptr @test_count, align 4, !tbaa !5
  %3848 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %34) #9
  %3849 = icmp eq i32 %3848, -1
  br i1 %3849, label %3850, label %3872

3850:                                             ; preds = %3845
  %3851 = load i32, ptr %2783, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = call i32 @s2n_print_stacktrace(ptr noundef %3852) #9
  %3854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3855 = trunc nuw i8 %3854 to i1
  br i1 %3855, label %3856, label %3860

3856:                                             ; preds = %3850
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @fileno(ptr noundef %3857) #9
  %3859 = call i32 @isatty(i32 noundef %3858) #9
  %.not530 = icmp eq i32 %3859, 0
  br i1 %.not530, label %3860, label %3861

3860:                                             ; preds = %3856, %3850
  br label %3861

3861:                                             ; preds = %3856, %3860
  %.str.5.sink1969 = phi ptr [ @.str.5, %3860 ], [ @.str.2, %3856 ]
  store i32 %3851, ptr %2783, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = load i32, ptr %2729, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror(i32 noundef %3864, ptr noundef nonnull @.str.4) #9
  %3866 = load i32, ptr %2729, align 4, !tbaa !5
  %3867 = call ptr @s2n_strerror_debug(i32 noundef %3866, ptr noundef nonnull @.str.4) #9
  %3868 = load i32, ptr %2783, align 4, !tbaa !5
  %3869 = call ptr @strerror(i32 noundef %3868) #9
  %3870 = load i32, ptr %2783, align 4, !tbaa !5
  %3871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3862, ptr noundef nonnull %.str.5.sink1969, i32 noundef %3863, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 413, ptr noundef %3865, ptr noundef %3867, ptr noundef %3869, i32 noundef %3870) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3872:                                             ; preds = %3845
  %3873 = load i32, ptr @test_count, align 4, !tbaa !5
  %3874 = add nsw i32 %3873, 1
  store i32 %3874, ptr @test_count, align 4, !tbaa !5
  %3875 = load ptr, ptr %32, align 8, !tbaa !9
  %3876 = call i32 @s2n_connection_set_io_pair(ptr noundef %3875, ptr noundef nonnull %34) #9
  %3877 = icmp eq i32 %3876, -1
  br i1 %3877, label %3878, label %3900

3878:                                             ; preds = %3872
  %3879 = load i32, ptr %2783, align 4, !tbaa !5
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @s2n_print_stacktrace(ptr noundef %3880) #9
  %3882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3883 = trunc nuw i8 %3882 to i1
  br i1 %3883, label %3884, label %3888

3884:                                             ; preds = %3878
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @fileno(ptr noundef %3885) #9
  %3887 = call i32 @isatty(i32 noundef %3886) #9
  %.not529 = icmp eq i32 %3887, 0
  br i1 %.not529, label %3888, label %3889

3888:                                             ; preds = %3884, %3878
  br label %3889

3889:                                             ; preds = %3884, %3888
  %.str.5.sink1978 = phi ptr [ @.str.5, %3888 ], [ @.str.2, %3884 ]
  store i32 %3879, ptr %2783, align 4, !tbaa !5
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = load i32, ptr @test_count, align 4, !tbaa !5
  %3892 = load i32, ptr %2729, align 4, !tbaa !5
  %3893 = call ptr @s2n_strerror(i32 noundef %3892, ptr noundef nonnull @.str.4) #9
  %3894 = load i32, ptr %2729, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror_debug(i32 noundef %3894, ptr noundef nonnull @.str.4) #9
  %3896 = load i32, ptr %2783, align 4, !tbaa !5
  %3897 = call ptr @strerror(i32 noundef %3896) #9
  %3898 = load i32, ptr %2783, align 4, !tbaa !5
  %3899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3890, ptr noundef nonnull %.str.5.sink1978, i32 noundef %3891, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3893, ptr noundef %3895, ptr noundef %3897, i32 noundef %3898) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3900:                                             ; preds = %3872
  %3901 = load i32, ptr @test_count, align 4, !tbaa !5
  %3902 = add nsw i32 %3901, 1
  store i32 %3902, ptr @test_count, align 4, !tbaa !5
  %3903 = load ptr, ptr %33, align 8, !tbaa !9
  %3904 = call i32 @s2n_connection_set_io_pair(ptr noundef %3903, ptr noundef nonnull %34) #9
  %3905 = icmp eq i32 %3904, -1
  br i1 %3905, label %3906, label %3928

3906:                                             ; preds = %3900
  %3907 = load i32, ptr %2783, align 4, !tbaa !5
  %3908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3909 = call i32 @s2n_print_stacktrace(ptr noundef %3908) #9
  %3910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3911 = trunc nuw i8 %3910 to i1
  br i1 %3911, label %3912, label %3916

3912:                                             ; preds = %3906
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = call i32 @fileno(ptr noundef %3913) #9
  %3915 = call i32 @isatty(i32 noundef %3914) #9
  %.not528 = icmp eq i32 %3915, 0
  br i1 %.not528, label %3916, label %3917

3916:                                             ; preds = %3912, %3906
  br label %3917

3917:                                             ; preds = %3912, %3916
  %.str.5.sink1987 = phi ptr [ @.str.5, %3916 ], [ @.str.2, %3912 ]
  store i32 %3907, ptr %2783, align 4, !tbaa !5
  %3918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3919 = load i32, ptr @test_count, align 4, !tbaa !5
  %3920 = load i32, ptr %2729, align 4, !tbaa !5
  %3921 = call ptr @s2n_strerror(i32 noundef %3920, ptr noundef nonnull @.str.4) #9
  %3922 = load i32, ptr %2729, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror_debug(i32 noundef %3922, ptr noundef nonnull @.str.4) #9
  %3924 = load i32, ptr %2783, align 4, !tbaa !5
  %3925 = call ptr @strerror(i32 noundef %3924) #9
  %3926 = load i32, ptr %2783, align 4, !tbaa !5
  %3927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3918, ptr noundef nonnull %.str.5.sink1987, i32 noundef %3919, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %3921, ptr noundef %3923, ptr noundef %3925, i32 noundef %3926) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3928:                                             ; preds = %3900
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = add nsw i32 %3929, 1
  store i32 %3930, ptr @test_count, align 4, !tbaa !5
  %3931 = load ptr, ptr %33, align 8, !tbaa !9
  %3932 = load ptr, ptr %32, align 8, !tbaa !9
  %3933 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3931, ptr noundef %3932) #9
  %3934 = icmp eq i32 %3933, -1
  br i1 %3934, label %3935, label %3957

3935:                                             ; preds = %3928
  %3936 = load i32, ptr %2783, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = call i32 @s2n_print_stacktrace(ptr noundef %3937) #9
  %3939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3940 = trunc nuw i8 %3939 to i1
  br i1 %3940, label %3941, label %3945

3941:                                             ; preds = %3935
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = call i32 @fileno(ptr noundef %3942) #9
  %3944 = call i32 @isatty(i32 noundef %3943) #9
  %.not527 = icmp eq i32 %3944, 0
  br i1 %.not527, label %3945, label %3946

3945:                                             ; preds = %3941, %3935
  br label %3946

3946:                                             ; preds = %3941, %3945
  %.str.5.sink1996 = phi ptr [ @.str.5, %3945 ], [ @.str.2, %3941 ]
  store i32 %3936, ptr %2783, align 4, !tbaa !5
  %3947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3948 = load i32, ptr @test_count, align 4, !tbaa !5
  %3949 = load i32, ptr %2729, align 4, !tbaa !5
  %3950 = call ptr @s2n_strerror(i32 noundef %3949, ptr noundef nonnull @.str.4) #9
  %3951 = load i32, ptr %2729, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror_debug(i32 noundef %3951, ptr noundef nonnull @.str.4) #9
  %3953 = load i32, ptr %2783, align 4, !tbaa !5
  %3954 = call ptr @strerror(i32 noundef %3953) #9
  %3955 = load i32, ptr %2783, align 4, !tbaa !5
  %3956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3947, ptr noundef nonnull %.str.5.sink1996, i32 noundef %3948, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 418, ptr noundef %3950, ptr noundef %3952, ptr noundef %3954, i32 noundef %3955) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3957:                                             ; preds = %3928
  %3958 = load ptr, ptr %32, align 8, !tbaa !9
  %3959 = load i32, ptr %3958, align 8
  %3960 = and i32 %3959, -9
  store i32 %3960, ptr %3958, align 8
  %3961 = load i32, ptr @test_count, align 4, !tbaa !5
  %3962 = add nsw i32 %3961, 1
  store i32 %3962, ptr @test_count, align 4, !tbaa !5
  %3963 = load ptr, ptr %33, align 8, !tbaa !9
  %3964 = call i32 @s2n_send_client_hello_request(ptr noundef %3963)
  %3965 = call zeroext i1 @s2n_result_is_ok(i32 %3964)
  br i1 %3965, label %3988, label %3966

3966:                                             ; preds = %3957
  %3967 = load i32, ptr %2783, align 4, !tbaa !5
  %3968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3969 = call i32 @s2n_print_stacktrace(ptr noundef %3968) #9
  %3970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3971 = trunc nuw i8 %3970 to i1
  br i1 %3971, label %3972, label %3976

3972:                                             ; preds = %3966
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = call i32 @fileno(ptr noundef %3973) #9
  %3975 = call i32 @isatty(i32 noundef %3974) #9
  %.not471 = icmp eq i32 %3975, 0
  br i1 %.not471, label %3976, label %3977

3976:                                             ; preds = %3972, %3966
  br label %3977

3977:                                             ; preds = %3972, %3976
  %.str.5.sink2005 = phi ptr [ @.str.5, %3976 ], [ @.str.2, %3972 ]
  store i32 %3967, ptr %2783, align 4, !tbaa !5
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = load i32, ptr @test_count, align 4, !tbaa !5
  %3980 = load i32, ptr %2729, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror(i32 noundef %3980, ptr noundef nonnull @.str.4) #9
  %3982 = load i32, ptr %2729, align 4, !tbaa !5
  %3983 = call ptr @s2n_strerror_debug(i32 noundef %3982, ptr noundef nonnull @.str.4) #9
  %3984 = load i32, ptr %2783, align 4, !tbaa !5
  %3985 = call ptr @strerror(i32 noundef %3984) #9
  %3986 = load i32, ptr %2783, align 4, !tbaa !5
  %3987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3978, ptr noundef nonnull %.str.5.sink2005, i32 noundef %3979, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %3981, ptr noundef %3983, ptr noundef %3985, i32 noundef %3986) #11
  call void @exit(i32 noundef 1) #12
  unreachable

3988:                                             ; preds = %3957
  %3989 = load i32, ptr @test_count, align 4, !tbaa !5
  %3990 = add nsw i32 %3989, 1
  store i32 %3990, ptr @test_count, align 4, !tbaa !5
  %3991 = load ptr, ptr %33, align 8, !tbaa !9
  %3992 = load ptr, ptr %32, align 8, !tbaa !9
  %3993 = call i32 @s2n_send_and_recv_test(ptr noundef %3991, ptr noundef %3992) #9
  %3994 = call zeroext i1 @s2n_result_is_ok(i32 %3993)
  br i1 %3994, label %4017, label %3995

3995:                                             ; preds = %3988
  %3996 = load i32, ptr %2783, align 4, !tbaa !5
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3998 = call i32 @s2n_print_stacktrace(ptr noundef %3997) #9
  %3999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4000 = trunc nuw i8 %3999 to i1
  br i1 %4000, label %4001, label %4005

4001:                                             ; preds = %3995
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = call i32 @fileno(ptr noundef %4002) #9
  %4004 = call i32 @isatty(i32 noundef %4003) #9
  %.not472 = icmp eq i32 %4004, 0
  br i1 %.not472, label %4005, label %4006

4005:                                             ; preds = %4001, %3995
  br label %4006

4006:                                             ; preds = %4001, %4005
  %.str.5.sink2014 = phi ptr [ @.str.5, %4005 ], [ @.str.2, %4001 ]
  store i32 %3996, ptr %2783, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = load i32, ptr %2729, align 4, !tbaa !5
  %4010 = call ptr @s2n_strerror(i32 noundef %4009, ptr noundef nonnull @.str.4) #9
  %4011 = load i32, ptr %2729, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef nonnull @.str.4) #9
  %4013 = load i32, ptr %2783, align 4, !tbaa !5
  %4014 = call ptr @strerror(i32 noundef %4013) #9
  %4015 = load i32, ptr %2783, align 4, !tbaa !5
  %4016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4007, ptr noundef nonnull %.str.5.sink2014, i32 noundef %4008, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 427, ptr noundef %4010, ptr noundef %4012, ptr noundef %4014, i32 noundef %4015) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4017:                                             ; preds = %3988
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = add nsw i32 %4018, 1
  store i32 %4019, ptr @test_count, align 4, !tbaa !5
  %4020 = load ptr, ptr %32, align 8, !tbaa !9
  %4021 = load ptr, ptr %33, align 8, !tbaa !9
  %4022 = call i32 @s2n_send_and_recv_test(ptr noundef %4020, ptr noundef %4021) #9
  %4023 = call zeroext i1 @s2n_result_is_error(i32 %4022)
  br i1 %4023, label %4046, label %4024

4024:                                             ; preds = %4017
  %4025 = load i32, ptr %2783, align 4, !tbaa !5
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = call i32 @s2n_print_stacktrace(ptr noundef %4026) #9
  %4028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4029 = trunc nuw i8 %4028 to i1
  br i1 %4029, label %4030, label %4034

4030:                                             ; preds = %4024
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = call i32 @fileno(ptr noundef %4031) #9
  %4033 = call i32 @isatty(i32 noundef %4032) #9
  %.not473 = icmp eq i32 %4033, 0
  br i1 %.not473, label %4034, label %4035

4034:                                             ; preds = %4030, %4024
  br label %4035

4035:                                             ; preds = %4030, %4034
  %.str.5.sink2023 = phi ptr [ @.str.5, %4034 ], [ @.str.2, %4030 ]
  store i32 %4025, ptr %2783, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = load i32, ptr %2729, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef nonnull @.str.4) #9
  %4040 = load i32, ptr %2729, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef nonnull @.str.4) #9
  %4042 = load i32, ptr %2783, align 4, !tbaa !5
  %4043 = call ptr @strerror(i32 noundef %4042) #9
  %4044 = load i32, ptr %2783, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef nonnull %.str.5.sink2023, i32 noundef %4037, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4039, ptr noundef %4041, ptr noundef %4043, i32 noundef %4044) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4046:                                             ; preds = %4017
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = add nsw i32 %4047, 1
  store i32 %4048, ptr @test_count, align 4, !tbaa !5
  %4049 = load i32, ptr %2729, align 4, !tbaa !5
  %4050 = icmp eq i32 %4049, 268435456
  br i1 %4050, label %4073, label %4051

4051:                                             ; preds = %4046
  %4052 = load i32, ptr %2783, align 4, !tbaa !5
  %4053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4054 = call i32 @s2n_print_stacktrace(ptr noundef %4053) #9
  %4055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4056 = trunc nuw i8 %4055 to i1
  br i1 %4056, label %4057, label %4061

4057:                                             ; preds = %4051
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = call i32 @fileno(ptr noundef %4058) #9
  %4060 = call i32 @isatty(i32 noundef %4059) #9
  %.not474 = icmp eq i32 %4060, 0
  br i1 %.not474, label %4061, label %4062

4061:                                             ; preds = %4057, %4051
  br label %4062

4062:                                             ; preds = %4057, %4061
  %.str.5.sink2032 = phi ptr [ @.str.5, %4061 ], [ @.str.2, %4057 ]
  store i32 %4052, ptr %2783, align 4, !tbaa !5
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = load i32, ptr @test_count, align 4, !tbaa !5
  %4065 = load i32, ptr %2729, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror(i32 noundef %4065, ptr noundef nonnull @.str.4) #9
  %4067 = load i32, ptr %2729, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror_debug(i32 noundef %4067, ptr noundef nonnull @.str.4) #9
  %4069 = load i32, ptr %2783, align 4, !tbaa !5
  %4070 = call ptr @strerror(i32 noundef %4069) #9
  %4071 = load i32, ptr %2783, align 4, !tbaa !5
  %4072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4063, ptr noundef nonnull %.str.5.sink2032, i32 noundef %4064, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4066, ptr noundef %4068, ptr noundef %4070, i32 noundef %4071) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4073:                                             ; preds = %4046
  %4074 = add nsw i32 %4047, 2
  store i32 %4074, ptr @test_count, align 4, !tbaa !5
  %4075 = call ptr @s2n_strerror_debug(i32 noundef 268435456, ptr noundef nonnull @.str.4) #9
  %4076 = icmp eq ptr %4075, null
  br i1 %4076, label %4077, label %4099

4077:                                             ; preds = %4073
  %4078 = load i32, ptr %2783, align 4, !tbaa !5
  %4079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4080 = call i32 @s2n_print_stacktrace(ptr noundef %4079) #9
  %4081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4082 = trunc nuw i8 %4081 to i1
  br i1 %4082, label %4083, label %4087

4083:                                             ; preds = %4077
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = call i32 @fileno(ptr noundef %4084) #9
  %4086 = call i32 @isatty(i32 noundef %4085) #9
  %.not526 = icmp eq i32 %4086, 0
  br i1 %.not526, label %4087, label %4088

4087:                                             ; preds = %4083, %4077
  br label %4088

4088:                                             ; preds = %4083, %4087
  %.str.5.sink2041 = phi ptr [ @.str.5, %4087 ], [ @.str.2, %4083 ]
  store i32 %4078, ptr %2783, align 4, !tbaa !5
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = load i32, ptr @test_count, align 4, !tbaa !5
  %4091 = load i32, ptr %2729, align 4, !tbaa !5
  %4092 = call ptr @s2n_strerror(i32 noundef %4091, ptr noundef nonnull @.str.4) #9
  %4093 = load i32, ptr %2729, align 4, !tbaa !5
  %4094 = call ptr @s2n_strerror_debug(i32 noundef %4093, ptr noundef nonnull @.str.4) #9
  %4095 = load i32, ptr %2783, align 4, !tbaa !5
  %4096 = call ptr @strerror(i32 noundef %4095) #9
  %4097 = load i32, ptr %2783, align 4, !tbaa !5
  %4098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4089, ptr noundef nonnull %.str.5.sink2041, i32 noundef %4090, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4092, ptr noundef %4094, ptr noundef %4096, i32 noundef %4097) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4099:                                             ; preds = %4073
  store i32 0, ptr %2729, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %2783, align 4, !tbaa !5
  %4100 = load i32, ptr @test_count, align 4, !tbaa !5
  %4101 = add nsw i32 %4100, 1
  store i32 %4101, ptr @test_count, align 4, !tbaa !5
  %4102 = load ptr, ptr %33, align 8, !tbaa !9
  %4103 = call i32 @s2n_connection_get_alert(ptr noundef %4102) #9
  %4104 = icmp eq i32 %4103, 100
  br i1 %4104, label %4127, label %4105

4105:                                             ; preds = %4099
  %4106 = load i32, ptr %2783, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = call i32 @s2n_print_stacktrace(ptr noundef %4107) #9
  %4109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4110 = trunc nuw i8 %4109 to i1
  br i1 %4110, label %4111, label %4115

4111:                                             ; preds = %4105
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = call i32 @fileno(ptr noundef %4112) #9
  %4114 = call i32 @isatty(i32 noundef %4113) #9
  %.not475 = icmp eq i32 %4114, 0
  br i1 %.not475, label %4115, label %4116

4115:                                             ; preds = %4111, %4105
  br label %4116

4116:                                             ; preds = %4111, %4115
  %.str.5.sink2050 = phi ptr [ @.str.5, %4115 ], [ @.str.2, %4111 ]
  store i32 %4106, ptr %2783, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = load i32, ptr %2729, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror(i32 noundef %4119, ptr noundef nonnull @.str.4) #9
  %4121 = load i32, ptr %2729, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror_debug(i32 noundef %4121, ptr noundef nonnull @.str.4) #9
  %4123 = load i32, ptr %2783, align 4, !tbaa !5
  %4124 = call ptr @strerror(i32 noundef %4123) #9
  %4125 = load i32, ptr %2783, align 4, !tbaa !5
  %4126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4117, ptr noundef nonnull %.str.5.sink2050, i32 noundef %4118, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 429, ptr noundef %4120, ptr noundef %4122, ptr noundef %4124, i32 noundef %4125) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4127:                                             ; preds = %4099
  %4128 = load i32, ptr @test_count, align 4, !tbaa !5
  %4129 = add nsw i32 %4128, 1
  store i32 %4129, ptr @test_count, align 4, !tbaa !5
  %4130 = load ptr, ptr %32, align 8, !tbaa !9
  %4131 = getelementptr inbounds i8, ptr %4130, i64 8
  %4132 = load ptr, ptr %4131, align 8, !tbaa !46
  %4133 = getelementptr inbounds i8, ptr %4132, i64 432
  %4134 = load ptr, ptr %4133, align 8, !tbaa !47
  %4135 = icmp eq ptr %4134, null
  br i1 %4135, label %4136, label %4158

4136:                                             ; preds = %4127
  %4137 = load i32, ptr %2783, align 4, !tbaa !5
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @s2n_print_stacktrace(ptr noundef %4138) #9
  %4140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4141 = trunc nuw i8 %4140 to i1
  br i1 %4141, label %4142, label %4146

4142:                                             ; preds = %4136
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @fileno(ptr noundef %4143) #9
  %4145 = call i32 @isatty(i32 noundef %4144) #9
  %.not525 = icmp eq i32 %4145, 0
  br i1 %.not525, label %4146, label %4147

4146:                                             ; preds = %4142, %4136
  br label %4147

4147:                                             ; preds = %4142, %4146
  %.str.5.sink2059 = phi ptr [ @.str.5, %4146 ], [ @.str.2, %4142 ]
  store i32 %4137, ptr %2783, align 4, !tbaa !5
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %4150 = load i32, ptr %2729, align 4, !tbaa !5
  %4151 = call ptr @s2n_strerror(i32 noundef %4150, ptr noundef nonnull @.str.4) #9
  %4152 = load i32, ptr %2729, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror_debug(i32 noundef %4152, ptr noundef nonnull @.str.4) #9
  %4154 = load i32, ptr %2783, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #9
  %4156 = load i32, ptr %2783, align 4, !tbaa !5
  %4157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4148, ptr noundef nonnull %.str.5.sink2059, i32 noundef %4149, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 432, ptr noundef %4151, ptr noundef %4153, ptr noundef %4155, i32 noundef %4156) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4158:                                             ; preds = %4127
  %4159 = add nsw i32 %4128, 2
  store i32 %4159, ptr @test_count, align 4, !tbaa !5
  %4160 = getelementptr inbounds i8, ptr %31, i64 4
  %4161 = load i8, ptr %4160, align 4, !tbaa !51
  %4162 = icmp eq i8 %4161, 0
  br i1 %4162, label %4185, label %4163

4163:                                             ; preds = %4158
  %4164 = load i32, ptr %2783, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = call i32 @s2n_print_stacktrace(ptr noundef %4165) #9
  %4167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4168 = trunc nuw i8 %4167 to i1
  br i1 %4168, label %4169, label %4173

4169:                                             ; preds = %4163
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = call i32 @fileno(ptr noundef %4170) #9
  %4172 = call i32 @isatty(i32 noundef %4171) #9
  %.not476 = icmp eq i32 %4172, 0
  br i1 %.not476, label %4173, label %4174

4173:                                             ; preds = %4169, %4163
  br label %4174

4174:                                             ; preds = %4169, %4173
  %.str.5.sink2068 = phi ptr [ @.str.5, %4173 ], [ @.str.2, %4169 ]
  store i32 %4164, ptr %2783, align 4, !tbaa !5
  %4175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4176 = load i32, ptr @test_count, align 4, !tbaa !5
  %4177 = load i32, ptr %2729, align 4, !tbaa !5
  %4178 = call ptr @s2n_strerror(i32 noundef %4177, ptr noundef nonnull @.str.4) #9
  %4179 = load i32, ptr %2729, align 4, !tbaa !5
  %4180 = call ptr @s2n_strerror_debug(i32 noundef %4179, ptr noundef nonnull @.str.4) #9
  %4181 = load i32, ptr %2783, align 4, !tbaa !5
  %4182 = call ptr @strerror(i32 noundef %4181) #9
  %4183 = load i32, ptr %2783, align 4, !tbaa !5
  %4184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4175, ptr noundef nonnull %.str.5.sink2068, i32 noundef %4176, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 433, ptr noundef %4178, ptr noundef %4180, ptr noundef %4182, i32 noundef %4183) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4185:                                             ; preds = %4158
  %4186 = call i32 @s2n_io_pair_close(ptr noundef nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  %4187 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  %4188 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  %4189 = load i64, ptr @__const.main.ctx.67, align 4
  store i64 %4189, ptr %35, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #9
  %4190 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %4190, ptr %36, align 8, !tbaa !9
  %4191 = load i32, ptr @test_count, align 4, !tbaa !5
  %4192 = add nsw i32 %4191, 1
  store i32 %4192, ptr @test_count, align 4, !tbaa !5
  %4193 = icmp eq ptr %4190, null
  br i1 %4193, label %4194, label %4216

4194:                                             ; preds = %4185
  %4195 = load i32, ptr %2783, align 4, !tbaa !5
  %4196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4197 = call i32 @s2n_print_stacktrace(ptr noundef %4196) #9
  %4198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4199 = trunc nuw i8 %4198 to i1
  br i1 %4199, label %4200, label %4204

4200:                                             ; preds = %4194
  %4201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4202 = call i32 @fileno(ptr noundef %4201) #9
  %4203 = call i32 @isatty(i32 noundef %4202) #9
  %.not524 = icmp eq i32 %4203, 0
  br i1 %.not524, label %4204, label %4205

4204:                                             ; preds = %4200, %4194
  br label %4205

4205:                                             ; preds = %4200, %4204
  %.str.5.sink2077 = phi ptr [ @.str.5, %4204 ], [ @.str.2, %4200 ]
  store i32 %4195, ptr %2783, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = load i32, ptr %2729, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror(i32 noundef %4208, ptr noundef nonnull @.str.4) #9
  %4210 = load i32, ptr %2729, align 4, !tbaa !5
  %4211 = call ptr @s2n_strerror_debug(i32 noundef %4210, ptr noundef nonnull @.str.4) #9
  %4212 = load i32, ptr %2783, align 4, !tbaa !5
  %4213 = call ptr @strerror(i32 noundef %4212) #9
  %4214 = load i32, ptr %2783, align 4, !tbaa !5
  %4215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4206, ptr noundef nonnull %.str.5.sink2077, i32 noundef %4207, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 442, ptr noundef %4209, ptr noundef %4211, ptr noundef %4213, i32 noundef %4214) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4216:                                             ; preds = %4185
  %4217 = add nsw i32 %4191, 2
  store i32 %4217, ptr @test_count, align 4, !tbaa !5
  %4218 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4190, ptr noundef nonnull %306) #9
  %4219 = icmp eq i32 %4218, -1
  br i1 %4219, label %4220, label %4242

4220:                                             ; preds = %4216
  %4221 = load i32, ptr %2783, align 4, !tbaa !5
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = call i32 @s2n_print_stacktrace(ptr noundef %4222) #9
  %4224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4225 = trunc nuw i8 %4224 to i1
  br i1 %4225, label %4226, label %4230

4226:                                             ; preds = %4220
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = call i32 @fileno(ptr noundef %4227) #9
  %4229 = call i32 @isatty(i32 noundef %4228) #9
  %.not523 = icmp eq i32 %4229, 0
  br i1 %.not523, label %4230, label %4231

4230:                                             ; preds = %4226, %4220
  br label %4231

4231:                                             ; preds = %4226, %4230
  %.str.5.sink2086 = phi ptr [ @.str.5, %4230 ], [ @.str.2, %4226 ]
  store i32 %4221, ptr %2783, align 4, !tbaa !5
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = load i32, ptr %2729, align 4, !tbaa !5
  %4235 = call ptr @s2n_strerror(i32 noundef %4234, ptr noundef nonnull @.str.4) #9
  %4236 = load i32, ptr %2729, align 4, !tbaa !5
  %4237 = call ptr @s2n_strerror_debug(i32 noundef %4236, ptr noundef nonnull @.str.4) #9
  %4238 = load i32, ptr %2783, align 4, !tbaa !5
  %4239 = call ptr @strerror(i32 noundef %4238) #9
  %4240 = load i32, ptr %2783, align 4, !tbaa !5
  %4241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4232, ptr noundef nonnull %.str.5.sink2086, i32 noundef %4233, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %4235, ptr noundef %4237, ptr noundef %4239, i32 noundef %4240) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4242:                                             ; preds = %4216
  %4243 = load i32, ptr @test_count, align 4, !tbaa !5
  %4244 = add nsw i32 %4243, 1
  store i32 %4244, ptr @test_count, align 4, !tbaa !5
  %4245 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef nonnull %35) #9
  %4246 = icmp eq i32 %4245, -1
  br i1 %4246, label %4247, label %4269

4247:                                             ; preds = %4242
  %4248 = load i32, ptr %2783, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = call i32 @s2n_print_stacktrace(ptr noundef %4249) #9
  %4251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4252 = trunc nuw i8 %4251 to i1
  br i1 %4252, label %4253, label %4257

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

4257:                                             ; preds = %4253, %4247
  br label %4258

4258:                                             ; preds = %4253, %4257
  %.str.5.sink2095 = phi ptr [ @.str.5, %4257 ], [ @.str.2, %4253 ]
  store i32 %4248, ptr %2783, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = load i32, ptr %2729, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror(i32 noundef %4261, ptr noundef nonnull @.str.4) #9
  %4263 = load i32, ptr %2729, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror_debug(i32 noundef %4263, ptr noundef nonnull @.str.4) #9
  %4265 = load i32, ptr %2783, align 4, !tbaa !5
  %4266 = call ptr @strerror(i32 noundef %4265) #9
  %4267 = load i32, ptr %2783, align 4, !tbaa !5
  %4268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef nonnull %.str.5.sink2095, i32 noundef %4260, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 444, ptr noundef %4262, ptr noundef %4264, ptr noundef %4266, i32 noundef %4267) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4269:                                             ; preds = %4242
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #9
  %4270 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %4270, ptr %37, align 8, !tbaa !9
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = add nsw i32 %4271, 1
  store i32 %4272, ptr @test_count, align 4, !tbaa !5
  %4273 = icmp eq ptr %4270, null
  br i1 %4273, label %4274, label %4296

4274:                                             ; preds = %4269
  %4275 = load i32, ptr %2783, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = call i32 @s2n_print_stacktrace(ptr noundef %4276) #9
  %4278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4279 = trunc nuw i8 %4278 to i1
  br i1 %4279, label %4280, label %4284

4280:                                             ; preds = %4274
  %4281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4282 = call i32 @fileno(ptr noundef %4281) #9
  %4283 = call i32 @isatty(i32 noundef %4282) #9
  %.not521 = icmp eq i32 %4283, 0
  br i1 %.not521, label %4284, label %4285

4284:                                             ; preds = %4280, %4274
  br label %4285

4285:                                             ; preds = %4280, %4284
  %.str.5.sink2104 = phi ptr [ @.str.5, %4284 ], [ @.str.2, %4280 ]
  store i32 %4275, ptr %2783, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = load i32, ptr @test_count, align 4, !tbaa !5
  %4288 = load i32, ptr %2729, align 4, !tbaa !5
  %4289 = call ptr @s2n_strerror(i32 noundef %4288, ptr noundef nonnull @.str.4) #9
  %4290 = load i32, ptr %2729, align 4, !tbaa !5
  %4291 = call ptr @s2n_strerror_debug(i32 noundef %4290, ptr noundef nonnull @.str.4) #9
  %4292 = load i32, ptr %2783, align 4, !tbaa !5
  %4293 = call ptr @strerror(i32 noundef %4292) #9
  %4294 = load i32, ptr %2783, align 4, !tbaa !5
  %4295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4286, ptr noundef nonnull %.str.5.sink2104, i32 noundef %4287, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 448, ptr noundef %4289, ptr noundef %4291, ptr noundef %4293, i32 noundef %4294) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4296:                                             ; preds = %4269
  %4297 = add nsw i32 %4271, 2
  store i32 %4297, ptr @test_count, align 4, !tbaa !5
  %4298 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4270, ptr noundef nonnull %190) #9
  %4299 = icmp eq i32 %4298, -1
  br i1 %4299, label %4300, label %4322

4300:                                             ; preds = %4296
  %4301 = load i32, ptr %2783, align 4, !tbaa !5
  %4302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4303 = call i32 @s2n_print_stacktrace(ptr noundef %4302) #9
  %4304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4305 = trunc nuw i8 %4304 to i1
  br i1 %4305, label %4306, label %4310

4306:                                             ; preds = %4300
  %4307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4308 = call i32 @fileno(ptr noundef %4307) #9
  %4309 = call i32 @isatty(i32 noundef %4308) #9
  %.not520 = icmp eq i32 %4309, 0
  br i1 %.not520, label %4310, label %4311

4310:                                             ; preds = %4306, %4300
  br label %4311

4311:                                             ; preds = %4306, %4310
  %.str.5.sink2113 = phi ptr [ @.str.5, %4310 ], [ @.str.2, %4306 ]
  store i32 %4301, ptr %2783, align 4, !tbaa !5
  %4312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4313 = load i32, ptr @test_count, align 4, !tbaa !5
  %4314 = load i32, ptr %2729, align 4, !tbaa !5
  %4315 = call ptr @s2n_strerror(i32 noundef %4314, ptr noundef nonnull @.str.4) #9
  %4316 = load i32, ptr %2729, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror_debug(i32 noundef %4316, ptr noundef nonnull @.str.4) #9
  %4318 = load i32, ptr %2783, align 4, !tbaa !5
  %4319 = call ptr @strerror(i32 noundef %4318) #9
  %4320 = load i32, ptr %2783, align 4, !tbaa !5
  %4321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4312, ptr noundef nonnull %.str.5.sink2113, i32 noundef %4313, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %4315, ptr noundef %4317, ptr noundef %4319, i32 noundef %4320) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4322:                                             ; preds = %4296
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #9
  store i64 0, ptr %38, align 8
  %4323 = load i32, ptr @test_count, align 4, !tbaa !5
  %4324 = add nsw i32 %4323, 1
  store i32 %4324, ptr @test_count, align 4, !tbaa !5
  %4325 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %38) #9
  %4326 = icmp eq i32 %4325, -1
  br i1 %4326, label %4327, label %4349

4327:                                             ; preds = %4322
  %4328 = load i32, ptr %2783, align 4, !tbaa !5
  %4329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4330 = call i32 @s2n_print_stacktrace(ptr noundef %4329) #9
  %4331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4332 = trunc nuw i8 %4331 to i1
  br i1 %4332, label %4333, label %4337

4333:                                             ; preds = %4327
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = call i32 @fileno(ptr noundef %4334) #9
  %4336 = call i32 @isatty(i32 noundef %4335) #9
  %.not519 = icmp eq i32 %4336, 0
  br i1 %.not519, label %4337, label %4338

4337:                                             ; preds = %4333, %4327
  br label %4338

4338:                                             ; preds = %4333, %4337
  %.str.5.sink2122 = phi ptr [ @.str.5, %4337 ], [ @.str.2, %4333 ]
  store i32 %4328, ptr %2783, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = load i32, ptr @test_count, align 4, !tbaa !5
  %4341 = load i32, ptr %2729, align 4, !tbaa !5
  %4342 = call ptr @s2n_strerror(i32 noundef %4341, ptr noundef nonnull @.str.4) #9
  %4343 = load i32, ptr %2729, align 4, !tbaa !5
  %4344 = call ptr @s2n_strerror_debug(i32 noundef %4343, ptr noundef nonnull @.str.4) #9
  %4345 = load i32, ptr %2783, align 4, !tbaa !5
  %4346 = call ptr @strerror(i32 noundef %4345) #9
  %4347 = load i32, ptr %2783, align 4, !tbaa !5
  %4348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4339, ptr noundef nonnull %.str.5.sink2122, i32 noundef %4340, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %4342, ptr noundef %4344, ptr noundef %4346, i32 noundef %4347) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4349:                                             ; preds = %4322
  %4350 = load i32, ptr @test_count, align 4, !tbaa !5
  %4351 = add nsw i32 %4350, 1
  store i32 %4351, ptr @test_count, align 4, !tbaa !5
  %4352 = load ptr, ptr %36, align 8, !tbaa !9
  %4353 = call i32 @s2n_connection_set_io_pair(ptr noundef %4352, ptr noundef nonnull %38) #9
  %4354 = icmp eq i32 %4353, -1
  br i1 %4354, label %4355, label %4377

4355:                                             ; preds = %4349
  %4356 = load i32, ptr %2783, align 4, !tbaa !5
  %4357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4358 = call i32 @s2n_print_stacktrace(ptr noundef %4357) #9
  %4359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4360 = trunc nuw i8 %4359 to i1
  br i1 %4360, label %4361, label %4365

4361:                                             ; preds = %4355
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = call i32 @fileno(ptr noundef %4362) #9
  %4364 = call i32 @isatty(i32 noundef %4363) #9
  %.not518 = icmp eq i32 %4364, 0
  br i1 %.not518, label %4365, label %4366

4365:                                             ; preds = %4361, %4355
  br label %4366

4366:                                             ; preds = %4361, %4365
  %.str.5.sink2131 = phi ptr [ @.str.5, %4365 ], [ @.str.2, %4361 ]
  store i32 %4356, ptr %2783, align 4, !tbaa !5
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = load i32, ptr @test_count, align 4, !tbaa !5
  %4369 = load i32, ptr %2729, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror(i32 noundef %4369, ptr noundef nonnull @.str.4) #9
  %4371 = load i32, ptr %2729, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror_debug(i32 noundef %4371, ptr noundef nonnull @.str.4) #9
  %4373 = load i32, ptr %2783, align 4, !tbaa !5
  %4374 = call ptr @strerror(i32 noundef %4373) #9
  %4375 = load i32, ptr %2783, align 4, !tbaa !5
  %4376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4367, ptr noundef nonnull %.str.5.sink2131, i32 noundef %4368, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %4370, ptr noundef %4372, ptr noundef %4374, i32 noundef %4375) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4377:                                             ; preds = %4349
  %4378 = load i32, ptr @test_count, align 4, !tbaa !5
  %4379 = add nsw i32 %4378, 1
  store i32 %4379, ptr @test_count, align 4, !tbaa !5
  %4380 = load ptr, ptr %37, align 8, !tbaa !9
  %4381 = call i32 @s2n_connection_set_io_pair(ptr noundef %4380, ptr noundef nonnull %38) #9
  %4382 = icmp eq i32 %4381, -1
  br i1 %4382, label %4383, label %4405

4383:                                             ; preds = %4377
  %4384 = load i32, ptr %2783, align 4, !tbaa !5
  %4385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4386 = call i32 @s2n_print_stacktrace(ptr noundef %4385) #9
  %4387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4388 = trunc nuw i8 %4387 to i1
  br i1 %4388, label %4389, label %4393

4389:                                             ; preds = %4383
  %4390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4391 = call i32 @fileno(ptr noundef %4390) #9
  %4392 = call i32 @isatty(i32 noundef %4391) #9
  %.not517 = icmp eq i32 %4392, 0
  br i1 %.not517, label %4393, label %4394

4393:                                             ; preds = %4389, %4383
  br label %4394

4394:                                             ; preds = %4389, %4393
  %.str.5.sink2140 = phi ptr [ @.str.5, %4393 ], [ @.str.2, %4389 ]
  store i32 %4384, ptr %2783, align 4, !tbaa !5
  %4395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4396 = load i32, ptr @test_count, align 4, !tbaa !5
  %4397 = load i32, ptr %2729, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef nonnull @.str.4) #9
  %4399 = load i32, ptr %2729, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror_debug(i32 noundef %4399, ptr noundef nonnull @.str.4) #9
  %4401 = load i32, ptr %2783, align 4, !tbaa !5
  %4402 = call ptr @strerror(i32 noundef %4401) #9
  %4403 = load i32, ptr %2783, align 4, !tbaa !5
  %4404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4395, ptr noundef nonnull %.str.5.sink2140, i32 noundef %4396, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %4398, ptr noundef %4400, ptr noundef %4402, i32 noundef %4403) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4405:                                             ; preds = %4377
  %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 = load ptr, ptr %37, align 8, !tbaa !9
  %4409 = load ptr, ptr %36, align 8, !tbaa !9
  %4410 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4408, ptr noundef %4409) #9
  %4411 = icmp eq i32 %4410, -1
  br i1 %4411, label %4412, label %4434

4412:                                             ; preds = %4405
  %4413 = load i32, ptr %2783, align 4, !tbaa !5
  %4414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4415 = call i32 @s2n_print_stacktrace(ptr noundef %4414) #9
  %4416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4417 = trunc nuw i8 %4416 to i1
  br i1 %4417, label %4418, label %4422

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

4422:                                             ; preds = %4418, %4412
  br label %4423

4423:                                             ; preds = %4418, %4422
  %.str.5.sink2149 = phi ptr [ @.str.5, %4422 ], [ @.str.2, %4418 ]
  store i32 %4413, ptr %2783, align 4, !tbaa !5
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = load i32, ptr @test_count, align 4, !tbaa !5
  %4426 = load i32, ptr %2729, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror(i32 noundef %4426, ptr noundef nonnull @.str.4) #9
  %4428 = load i32, ptr %2729, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror_debug(i32 noundef %4428, ptr noundef nonnull @.str.4) #9
  %4430 = load i32, ptr %2783, align 4, !tbaa !5
  %4431 = call ptr @strerror(i32 noundef %4430) #9
  %4432 = load i32, ptr %2783, align 4, !tbaa !5
  %4433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4424, ptr noundef nonnull %.str.5.sink2149, i32 noundef %4425, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %4427, ptr noundef %4429, ptr noundef %4431, i32 noundef %4432) #11
  call void @exit(i32 noundef 1) #12
  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 = load ptr, ptr %37, align 8, !tbaa !9
  %4438 = call i32 @s2n_send_client_hello_request(ptr noundef %4437)
  %4439 = call zeroext i1 @s2n_result_is_ok(i32 %4438)
  br i1 %4439, label %4462, label %4440

4440:                                             ; preds = %4434
  %4441 = load i32, ptr %2783, align 4, !tbaa !5
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = call i32 @s2n_print_stacktrace(ptr noundef %4442) #9
  %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 = %4440
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = call i32 @fileno(ptr noundef %4447) #9
  %4449 = call i32 @isatty(i32 noundef %4448) #9
  %.not477 = icmp eq i32 %4449, 0
  br i1 %.not477, label %4450, label %4451

4450:                                             ; preds = %4446, %4440
  br label %4451

4451:                                             ; preds = %4446, %4450
  %.str.5.sink2158 = phi ptr [ @.str.5, %4450 ], [ @.str.2, %4446 ]
  store i32 %4441, ptr %2783, align 4, !tbaa !5
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = load i32, ptr %2729, align 4, !tbaa !5
  %4455 = call ptr @s2n_strerror(i32 noundef %4454, ptr noundef nonnull @.str.4) #9
  %4456 = load i32, ptr %2729, align 4, !tbaa !5
  %4457 = call ptr @s2n_strerror_debug(i32 noundef %4456, ptr noundef nonnull @.str.4) #9
  %4458 = load i32, ptr %2783, align 4, !tbaa !5
  %4459 = call ptr @strerror(i32 noundef %4458) #9
  %4460 = load i32, ptr %2783, align 4, !tbaa !5
  %4461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4452, ptr noundef nonnull %.str.5.sink2158, i32 noundef %4453, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %4455, ptr noundef %4457, ptr noundef %4459, i32 noundef %4460) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4462:                                             ; preds = %4434
  %4463 = load i32, ptr @test_count, align 4, !tbaa !5
  %4464 = add nsw i32 %4463, 1
  store i32 %4464, ptr @test_count, align 4, !tbaa !5
  %4465 = load ptr, ptr %36, align 8, !tbaa !9
  %4466 = getelementptr inbounds i8, ptr %4465, i64 8
  %4467 = load ptr, ptr %4466, align 8, !tbaa !46
  %4468 = getelementptr inbounds i8, ptr %4467, i64 432
  %4469 = load ptr, ptr %4468, align 8, !tbaa !47
  %4470 = icmp eq ptr %4469, null
  br i1 %4470, label %4471, label %4493

4471:                                             ; preds = %4462
  %4472 = load i32, ptr %2783, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @s2n_print_stacktrace(ptr noundef %4473) #9
  %4475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4476 = trunc nuw i8 %4475 to i1
  br i1 %4476, label %4477, label %4481

4477:                                             ; preds = %4471
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @fileno(ptr noundef %4478) #9
  %4480 = call i32 @isatty(i32 noundef %4479) #9
  %.not515 = icmp eq i32 %4480, 0
  br i1 %.not515, label %4481, label %4482

4481:                                             ; preds = %4477, %4471
  br label %4482

4482:                                             ; preds = %4477, %4481
  %.str.5.sink2167 = phi ptr [ @.str.5, %4481 ], [ @.str.2, %4477 ]
  store i32 %4472, ptr %2783, align 4, !tbaa !5
  %4483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4484 = load i32, ptr @test_count, align 4, !tbaa !5
  %4485 = load i32, ptr %2729, align 4, !tbaa !5
  %4486 = call ptr @s2n_strerror(i32 noundef %4485, ptr noundef nonnull @.str.4) #9
  %4487 = load i32, ptr %2729, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror_debug(i32 noundef %4487, ptr noundef nonnull @.str.4) #9
  %4489 = load i32, ptr %2783, align 4, !tbaa !5
  %4490 = call ptr @strerror(i32 noundef %4489) #9
  %4491 = load i32, ptr %2783, align 4, !tbaa !5
  %4492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4483, ptr noundef nonnull %.str.5.sink2167, i32 noundef %4484, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %4486, ptr noundef %4488, ptr noundef %4490, i32 noundef %4491) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4493:                                             ; preds = %4462
  %4494 = getelementptr inbounds i8, ptr %35, i64 4
  store i8 -1, ptr %4494, align 4, !tbaa !51
  %4495 = add nsw i32 %4463, 2
  store i32 %4495, ptr @test_count, align 4, !tbaa !5
  %4496 = load ptr, ptr %37, align 8, !tbaa !9
  %4497 = call i32 @s2n_send_and_recv_test(ptr noundef %4496, ptr noundef nonnull %4465) #9
  %4498 = call zeroext i1 @s2n_result_is_error(i32 %4497)
  br i1 %4498, label %4521, label %4499

4499:                                             ; preds = %4493
  %4500 = load i32, ptr %2783, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = call i32 @s2n_print_stacktrace(ptr noundef %4501) #9
  %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 = %4499
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = call i32 @fileno(ptr noundef %4506) #9
  %4508 = call i32 @isatty(i32 noundef %4507) #9
  %.not478 = icmp eq i32 %4508, 0
  br i1 %.not478, label %4509, label %4510

4509:                                             ; preds = %4505, %4499
  br label %4510

4510:                                             ; preds = %4505, %4509
  %.str.5.sink2176 = phi ptr [ @.str.5, %4509 ], [ @.str.2, %4505 ]
  store i32 %4500, ptr %2783, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4512 = load i32, ptr @test_count, align 4, !tbaa !5
  %4513 = load i32, ptr %2729, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror(i32 noundef %4513, ptr noundef nonnull @.str.4) #9
  %4515 = load i32, ptr %2729, align 4, !tbaa !5
  %4516 = call ptr @s2n_strerror_debug(i32 noundef %4515, ptr noundef nonnull @.str.4) #9
  %4517 = load i32, ptr %2783, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #9
  %4519 = load i32, ptr %2783, align 4, !tbaa !5
  %4520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4511, ptr noundef nonnull %.str.5.sink2176, i32 noundef %4512, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4514, ptr noundef %4516, ptr noundef %4518, i32 noundef %4519) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4521:                                             ; preds = %4493
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = add nsw i32 %4522, 1
  store i32 %4523, ptr @test_count, align 4, !tbaa !5
  %4524 = load i32, ptr %2729, align 4, !tbaa !5
  %4525 = icmp eq i32 %4524, 335544386
  br i1 %4525, label %4548, label %4526

4526:                                             ; preds = %4521
  %4527 = load i32, ptr %2783, align 4, !tbaa !5
  %4528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4529 = call i32 @s2n_print_stacktrace(ptr noundef %4528) #9
  %4530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4531 = trunc nuw i8 %4530 to i1
  br i1 %4531, label %4532, label %4536

4532:                                             ; preds = %4526
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = call i32 @fileno(ptr noundef %4533) #9
  %4535 = call i32 @isatty(i32 noundef %4534) #9
  %.not479 = icmp eq i32 %4535, 0
  br i1 %.not479, label %4536, label %4537

4536:                                             ; preds = %4532, %4526
  br label %4537

4537:                                             ; preds = %4532, %4536
  %.str.5.sink2185 = phi ptr [ @.str.5, %4536 ], [ @.str.2, %4532 ]
  store i32 %4527, ptr %2783, align 4, !tbaa !5
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = load i32, ptr @test_count, align 4, !tbaa !5
  %4540 = load i32, ptr %2729, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef nonnull @.str.4) #9
  %4542 = load i32, ptr %2729, align 4, !tbaa !5
  %4543 = call ptr @s2n_strerror_debug(i32 noundef %4542, ptr noundef nonnull @.str.4) #9
  %4544 = load i32, ptr %2783, align 4, !tbaa !5
  %4545 = call ptr @strerror(i32 noundef %4544) #9
  %4546 = load i32, ptr %2783, align 4, !tbaa !5
  %4547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4538, ptr noundef nonnull %.str.5.sink2185, i32 noundef %4539, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4541, ptr noundef %4543, ptr noundef %4545, i32 noundef %4546) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4548:                                             ; preds = %4521
  %4549 = add nsw i32 %4522, 2
  store i32 %4549, ptr @test_count, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror_debug(i32 noundef 335544386, ptr noundef nonnull @.str.4) #9
  %4551 = icmp eq ptr %4550, null
  br i1 %4551, label %4552, label %4574

4552:                                             ; preds = %4548
  %4553 = load i32, ptr %2783, align 4, !tbaa !5
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = call i32 @s2n_print_stacktrace(ptr noundef %4554) #9
  %4556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4557 = trunc nuw i8 %4556 to i1
  br i1 %4557, label %4558, label %4562

4558:                                             ; preds = %4552
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = call i32 @fileno(ptr noundef %4559) #9
  %4561 = call i32 @isatty(i32 noundef %4560) #9
  %.not514 = icmp eq i32 %4561, 0
  br i1 %.not514, label %4562, label %4563

4562:                                             ; preds = %4558, %4552
  br label %4563

4563:                                             ; preds = %4558, %4562
  %.str.5.sink2194 = phi ptr [ @.str.5, %4562 ], [ @.str.2, %4558 ]
  store i32 %4553, ptr %2783, align 4, !tbaa !5
  %4564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4565 = load i32, ptr @test_count, align 4, !tbaa !5
  %4566 = load i32, ptr %2729, align 4, !tbaa !5
  %4567 = call ptr @s2n_strerror(i32 noundef %4566, ptr noundef nonnull @.str.4) #9
  %4568 = load i32, ptr %2729, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror_debug(i32 noundef %4568, ptr noundef nonnull @.str.4) #9
  %4570 = load i32, ptr %2783, align 4, !tbaa !5
  %4571 = call ptr @strerror(i32 noundef %4570) #9
  %4572 = load i32, ptr %2783, align 4, !tbaa !5
  %4573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4564, ptr noundef nonnull %.str.5.sink2194, i32 noundef %4565, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %4567, ptr noundef %4569, ptr noundef %4571, i32 noundef %4572) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4574:                                             ; preds = %4548
  store i32 0, ptr %2729, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %2783, align 4, !tbaa !5
  %4575 = call i32 @s2n_io_pair_close(ptr noundef nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #9
  %4576 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  %4577 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  %4578 = call zeroext i1 @s2n_hash_is_available(i32 noundef 1) #9
  br i1 %4578, label %4579, label %5310

4579:                                             ; preds = %4574
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #9
  %4580 = load i64, ptr @__const.main.ctx.70, align 4
  store i64 %4580, ptr %39, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #9
  %4581 = call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %4581, ptr %40, align 8, !tbaa !9
  %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 = icmp eq ptr %4581, null
  br i1 %4584, label %4585, label %4607

4585:                                             ; preds = %4579
  %4586 = load i32, ptr %2783, align 4, !tbaa !5
  %4587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4588 = call i32 @s2n_print_stacktrace(ptr noundef %4587) #9
  %4589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4590 = trunc nuw i8 %4589 to i1
  br i1 %4590, label %4591, label %4595

4591:                                             ; preds = %4585
  %4592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4593 = call i32 @fileno(ptr noundef %4592) #9
  %4594 = call i32 @isatty(i32 noundef %4593) #9
  %.not513 = icmp eq i32 %4594, 0
  br i1 %.not513, label %4595, label %4596

4595:                                             ; preds = %4591, %4585
  br label %4596

4596:                                             ; preds = %4591, %4595
  %.str.5.sink2203 = phi ptr [ @.str.5, %4595 ], [ @.str.2, %4591 ]
  store i32 %4586, ptr %2783, align 4, !tbaa !5
  %4597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4598 = load i32, ptr @test_count, align 4, !tbaa !5
  %4599 = load i32, ptr %2729, align 4, !tbaa !5
  %4600 = call ptr @s2n_strerror(i32 noundef %4599, ptr noundef nonnull @.str.4) #9
  %4601 = load i32, ptr %2729, align 4, !tbaa !5
  %4602 = call ptr @s2n_strerror_debug(i32 noundef %4601, ptr noundef nonnull @.str.4) #9
  %4603 = load i32, ptr %2783, align 4, !tbaa !5
  %4604 = call ptr @strerror(i32 noundef %4603) #9
  %4605 = load i32, ptr %2783, align 4, !tbaa !5
  %4606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4597, ptr noundef nonnull %.str.5.sink2203, i32 noundef %4598, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %4600, ptr noundef %4602, ptr noundef %4604, i32 noundef %4605) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4607:                                             ; preds = %4579
  %4608 = add nsw i32 %4582, 2
  store i32 %4608, ptr @test_count, align 4, !tbaa !5
  %4609 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4581, ptr noundef nonnull %306) #9
  %4610 = icmp eq i32 %4609, -1
  br i1 %4610, label %4611, label %4633

4611:                                             ; preds = %4607
  %4612 = load i32, ptr %2783, align 4, !tbaa !5
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = call i32 @s2n_print_stacktrace(ptr noundef %4613) #9
  %4615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4616 = trunc nuw i8 %4615 to i1
  br i1 %4616, label %4617, label %4621

4617:                                             ; preds = %4611
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = call i32 @fileno(ptr noundef %4618) #9
  %4620 = call i32 @isatty(i32 noundef %4619) #9
  %.not512 = icmp eq i32 %4620, 0
  br i1 %.not512, label %4621, label %4622

4621:                                             ; preds = %4617, %4611
  br label %4622

4622:                                             ; preds = %4617, %4621
  %.str.5.sink2212 = phi ptr [ @.str.5, %4621 ], [ @.str.2, %4617 ]
  store i32 %4612, ptr %2783, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = load i32, ptr @test_count, align 4, !tbaa !5
  %4625 = load i32, ptr %2729, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror(i32 noundef %4625, ptr noundef nonnull @.str.4) #9
  %4627 = load i32, ptr %2729, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror_debug(i32 noundef %4627, ptr noundef nonnull @.str.4) #9
  %4629 = load i32, ptr %2783, align 4, !tbaa !5
  %4630 = call ptr @strerror(i32 noundef %4629) #9
  %4631 = load i32, ptr %2783, align 4, !tbaa !5
  %4632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4623, ptr noundef nonnull %.str.5.sink2212, i32 noundef %4624, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %4626, ptr noundef %4628, ptr noundef %4630, i32 noundef %4631) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4633:                                             ; preds = %4607
  %4634 = load i32, ptr @test_count, align 4, !tbaa !5
  %4635 = add nsw i32 %4634, 1
  store i32 %4635, ptr @test_count, align 4, !tbaa !5
  %4636 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4581, ptr noundef nonnull @.str.71) #9
  %4637 = icmp eq i32 %4636, -1
  br i1 %4637, label %4638, label %4660

4638:                                             ; preds = %4633
  %4639 = load i32, ptr %2783, align 4, !tbaa !5
  %4640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4641 = call i32 @s2n_print_stacktrace(ptr noundef %4640) #9
  %4642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4643 = trunc nuw i8 %4642 to i1
  br i1 %4643, label %4644, label %4648

4644:                                             ; preds = %4638
  %4645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4646 = call i32 @fileno(ptr noundef %4645) #9
  %4647 = call i32 @isatty(i32 noundef %4646) #9
  %.not511 = icmp eq i32 %4647, 0
  br i1 %.not511, label %4648, label %4649

4648:                                             ; preds = %4644, %4638
  br label %4649

4649:                                             ; preds = %4644, %4648
  %.str.5.sink2221 = phi ptr [ @.str.5, %4648 ], [ @.str.2, %4644 ]
  store i32 %4639, ptr %2783, align 4, !tbaa !5
  %4650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4651 = load i32, ptr @test_count, align 4, !tbaa !5
  %4652 = load i32, ptr %2729, align 4, !tbaa !5
  %4653 = call ptr @s2n_strerror(i32 noundef %4652, ptr noundef nonnull @.str.4) #9
  %4654 = load i32, ptr %2729, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror_debug(i32 noundef %4654, ptr noundef nonnull @.str.4) #9
  %4656 = load i32, ptr %2783, align 4, !tbaa !5
  %4657 = call ptr @strerror(i32 noundef %4656) #9
  %4658 = load i32, ptr %2783, align 4, !tbaa !5
  %4659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4650, ptr noundef nonnull %.str.5.sink2221, i32 noundef %4651, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4653, ptr noundef %4655, ptr noundef %4657, i32 noundef %4658) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4660:                                             ; preds = %4633
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = add nsw i32 %4661, 1
  store i32 %4662, ptr @test_count, align 4, !tbaa !5
  %4663 = call i32 @s2n_config_set_renegotiate_request_cb(ptr noundef nonnull %306, ptr noundef nonnull @s2n_test_reneg_req_cb, ptr noundef nonnull %39) #9
  %4664 = icmp eq i32 %4663, -1
  br i1 %4664, label %4665, label %4687

4665:                                             ; preds = %4660
  %4666 = load i32, ptr %2783, align 4, !tbaa !5
  %4667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4668 = call i32 @s2n_print_stacktrace(ptr noundef %4667) #9
  %4669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4670 = trunc nuw i8 %4669 to i1
  br i1 %4670, label %4671, label %4675

4671:                                             ; preds = %4665
  %4672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4673 = call i32 @fileno(ptr noundef %4672) #9
  %4674 = call i32 @isatty(i32 noundef %4673) #9
  %.not510 = icmp eq i32 %4674, 0
  br i1 %.not510, label %4675, label %4676

4675:                                             ; preds = %4671, %4665
  br label %4676

4676:                                             ; preds = %4671, %4675
  %.str.5.sink2230 = phi ptr [ @.str.5, %4675 ], [ @.str.2, %4671 ]
  store i32 %4666, ptr %2783, align 4, !tbaa !5
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = load i32, ptr @test_count, align 4, !tbaa !5
  %4679 = load i32, ptr %2729, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror(i32 noundef %4679, ptr noundef nonnull @.str.4) #9
  %4681 = load i32, ptr %2729, align 4, !tbaa !5
  %4682 = call ptr @s2n_strerror_debug(i32 noundef %4681, ptr noundef nonnull @.str.4) #9
  %4683 = load i32, ptr %2783, align 4, !tbaa !5
  %4684 = call ptr @strerror(i32 noundef %4683) #9
  %4685 = load i32, ptr %2783, align 4, !tbaa !5
  %4686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4677, ptr noundef nonnull %.str.5.sink2230, i32 noundef %4678, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 493, ptr noundef %4680, ptr noundef %4682, ptr noundef %4684, i32 noundef %4685) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4687:                                             ; preds = %4660
  %4688 = load i32, ptr @test_count, align 4, !tbaa !5
  %4689 = add nsw i32 %4688, 1
  store i32 %4689, ptr @test_count, align 4, !tbaa !5
  %4690 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %4581, i32 noundef 1) #9
  %4691 = icmp eq i32 %4690, -1
  br i1 %4691, label %4692, label %4714

4692:                                             ; preds = %4687
  %4693 = load i32, ptr %2783, align 4, !tbaa !5
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = call i32 @s2n_print_stacktrace(ptr noundef %4694) #9
  %4696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4697 = trunc nuw i8 %4696 to i1
  br i1 %4697, label %4698, label %4702

4698:                                             ; preds = %4692
  %4699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4700 = call i32 @fileno(ptr noundef %4699) #9
  %4701 = call i32 @isatty(i32 noundef %4700) #9
  %.not509 = icmp eq i32 %4701, 0
  br i1 %.not509, label %4702, label %4703

4702:                                             ; preds = %4698, %4692
  br label %4703

4703:                                             ; preds = %4698, %4702
  %.str.5.sink2239 = phi ptr [ @.str.5, %4702 ], [ @.str.2, %4698 ]
  store i32 %4693, ptr %2783, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = load i32, ptr @test_count, align 4, !tbaa !5
  %4706 = load i32, ptr %2729, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror(i32 noundef %4706, ptr noundef nonnull @.str.4) #9
  %4708 = load i32, ptr %2729, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror_debug(i32 noundef %4708, ptr noundef nonnull @.str.4) #9
  %4710 = load i32, ptr %2783, align 4, !tbaa !5
  %4711 = call ptr @strerror(i32 noundef %4710) #9
  %4712 = load i32, ptr %2783, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4704, ptr noundef nonnull %.str.5.sink2239, i32 noundef %4705, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 494, ptr noundef %4707, ptr noundef %4709, ptr noundef %4711, i32 noundef %4712) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4714:                                             ; preds = %4687
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #9
  %4715 = call ptr @s2n_connection_new(i32 noundef 0) #9
  store ptr %4715, ptr %41, align 8, !tbaa !9
  %4716 = load i32, ptr @test_count, align 4, !tbaa !5
  %4717 = add nsw i32 %4716, 1
  store i32 %4717, ptr @test_count, align 4, !tbaa !5
  %4718 = icmp eq ptr %4715, null
  br i1 %4718, label %4719, label %4741

4719:                                             ; preds = %4714
  %4720 = load i32, ptr %2783, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = call i32 @s2n_print_stacktrace(ptr noundef %4721) #9
  %4723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4724 = trunc nuw i8 %4723 to i1
  br i1 %4724, label %4725, label %4729

4725:                                             ; preds = %4719
  %4726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4727 = call i32 @fileno(ptr noundef %4726) #9
  %4728 = call i32 @isatty(i32 noundef %4727) #9
  %.not508 = icmp eq i32 %4728, 0
  br i1 %.not508, label %4729, label %4730

4729:                                             ; preds = %4725, %4719
  br label %4730

4730:                                             ; preds = %4725, %4729
  %.str.5.sink2248 = phi ptr [ @.str.5, %4729 ], [ @.str.2, %4725 ]
  store i32 %4720, ptr %2783, align 4, !tbaa !5
  %4731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4732 = load i32, ptr @test_count, align 4, !tbaa !5
  %4733 = load i32, ptr %2729, align 4, !tbaa !5
  %4734 = call ptr @s2n_strerror(i32 noundef %4733, ptr noundef nonnull @.str.4) #9
  %4735 = load i32, ptr %2729, align 4, !tbaa !5
  %4736 = call ptr @s2n_strerror_debug(i32 noundef %4735, ptr noundef nonnull @.str.4) #9
  %4737 = load i32, ptr %2783, align 4, !tbaa !5
  %4738 = call ptr @strerror(i32 noundef %4737) #9
  %4739 = load i32, ptr %2783, align 4, !tbaa !5
  %4740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4731, ptr noundef nonnull %.str.5.sink2248, i32 noundef %4732, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %4734, ptr noundef %4736, ptr noundef %4738, i32 noundef %4739) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4741:                                             ; preds = %4714
  %4742 = add nsw i32 %4716, 2
  store i32 %4742, ptr @test_count, align 4, !tbaa !5
  %4743 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4715, ptr noundef nonnull %190) #9
  %4744 = icmp eq i32 %4743, -1
  br i1 %4744, label %4745, label %4767

4745:                                             ; preds = %4741
  %4746 = load i32, ptr %2783, align 4, !tbaa !5
  %4747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4748 = call i32 @s2n_print_stacktrace(ptr noundef %4747) #9
  %4749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4750 = trunc nuw i8 %4749 to i1
  br i1 %4750, label %4751, label %4755

4751:                                             ; preds = %4745
  %4752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4753 = call i32 @fileno(ptr noundef %4752) #9
  %4754 = call i32 @isatty(i32 noundef %4753) #9
  %.not507 = icmp eq i32 %4754, 0
  br i1 %.not507, label %4755, label %4756

4755:                                             ; preds = %4751, %4745
  br label %4756

4756:                                             ; preds = %4751, %4755
  %.str.5.sink2257 = phi ptr [ @.str.5, %4755 ], [ @.str.2, %4751 ]
  store i32 %4746, ptr %2783, align 4, !tbaa !5
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = load i32, ptr @test_count, align 4, !tbaa !5
  %4759 = load i32, ptr %2729, align 4, !tbaa !5
  %4760 = call ptr @s2n_strerror(i32 noundef %4759, ptr noundef nonnull @.str.4) #9
  %4761 = load i32, ptr %2729, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror_debug(i32 noundef %4761, ptr noundef nonnull @.str.4) #9
  %4763 = load i32, ptr %2783, align 4, !tbaa !5
  %4764 = call ptr @strerror(i32 noundef %4763) #9
  %4765 = load i32, ptr %2783, align 4, !tbaa !5
  %4766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4757, ptr noundef nonnull %.str.5.sink2257, i32 noundef %4758, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %4760, ptr noundef %4762, ptr noundef %4764, i32 noundef %4765) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4767:                                             ; preds = %4741
  %4768 = load i32, ptr @test_count, align 4, !tbaa !5
  %4769 = add nsw i32 %4768, 1
  store i32 %4769, ptr @test_count, align 4, !tbaa !5
  %4770 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4715, ptr noundef nonnull @.str.71) #9
  %4771 = icmp eq i32 %4770, -1
  br i1 %4771, label %4772, label %4794

4772:                                             ; preds = %4767
  %4773 = load i32, ptr %2783, align 4, !tbaa !5
  %4774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4775 = call i32 @s2n_print_stacktrace(ptr noundef %4774) #9
  %4776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4777 = trunc nuw i8 %4776 to i1
  br i1 %4777, label %4778, label %4782

4778:                                             ; preds = %4772
  %4779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4780 = call i32 @fileno(ptr noundef %4779) #9
  %4781 = call i32 @isatty(i32 noundef %4780) #9
  %.not506 = icmp eq i32 %4781, 0
  br i1 %.not506, label %4782, label %4783

4782:                                             ; preds = %4778, %4772
  br label %4783

4783:                                             ; preds = %4778, %4782
  %.str.5.sink2266 = phi ptr [ @.str.5, %4782 ], [ @.str.2, %4778 ]
  store i32 %4773, ptr %2783, align 4, !tbaa !5
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = load i32, ptr %2729, align 4, !tbaa !5
  %4787 = call ptr @s2n_strerror(i32 noundef %4786, ptr noundef nonnull @.str.4) #9
  %4788 = load i32, ptr %2729, align 4, !tbaa !5
  %4789 = call ptr @s2n_strerror_debug(i32 noundef %4788, ptr noundef nonnull @.str.4) #9
  %4790 = load i32, ptr %2783, align 4, !tbaa !5
  %4791 = call ptr @strerror(i32 noundef %4790) #9
  %4792 = load i32, ptr %2783, align 4, !tbaa !5
  %4793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef nonnull %.str.5.sink2266, i32 noundef %4785, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %4787, ptr noundef %4789, ptr noundef %4791, i32 noundef %4792) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4794:                                             ; preds = %4767
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #9
  store i64 0, ptr %42, align 8
  %4795 = load i32, ptr @test_count, align 4, !tbaa !5
  %4796 = add nsw i32 %4795, 1
  store i32 %4796, ptr @test_count, align 4, !tbaa !5
  %4797 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %42) #9
  %4798 = icmp eq i32 %4797, -1
  br i1 %4798, label %4799, label %4821

4799:                                             ; preds = %4794
  %4800 = load i32, ptr %2783, align 4, !tbaa !5
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = call i32 @s2n_print_stacktrace(ptr noundef %4801) #9
  %4803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4804 = trunc nuw i8 %4803 to i1
  br i1 %4804, label %4805, label %4809

4805:                                             ; preds = %4799
  %4806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4807 = call i32 @fileno(ptr noundef %4806) #9
  %4808 = call i32 @isatty(i32 noundef %4807) #9
  %.not505 = icmp eq i32 %4808, 0
  br i1 %.not505, label %4809, label %4810

4809:                                             ; preds = %4805, %4799
  br label %4810

4810:                                             ; preds = %4805, %4809
  %.str.5.sink2275 = phi ptr [ @.str.5, %4809 ], [ @.str.2, %4805 ]
  store i32 %4800, ptr %2783, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = load i32, ptr @test_count, align 4, !tbaa !5
  %4813 = load i32, ptr %2729, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror(i32 noundef %4813, ptr noundef nonnull @.str.4) #9
  %4815 = load i32, ptr %2729, align 4, !tbaa !5
  %4816 = call ptr @s2n_strerror_debug(i32 noundef %4815, ptr noundef nonnull @.str.4) #9
  %4817 = load i32, ptr %2783, align 4, !tbaa !5
  %4818 = call ptr @strerror(i32 noundef %4817) #9
  %4819 = load i32, ptr %2783, align 4, !tbaa !5
  %4820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4811, ptr noundef nonnull %.str.5.sink2275, i32 noundef %4812, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %4814, ptr noundef %4816, ptr noundef %4818, i32 noundef %4819) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4821:                                             ; preds = %4794
  %4822 = load i32, ptr @test_count, align 4, !tbaa !5
  %4823 = add nsw i32 %4822, 1
  store i32 %4823, ptr @test_count, align 4, !tbaa !5
  %4824 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %4581, ptr noundef nonnull %4715, ptr noundef nonnull %42) #9
  %4825 = icmp eq i32 %4824, -1
  br i1 %4825, label %4826, label %4848

4826:                                             ; preds = %4821
  %4827 = load i32, ptr %2783, align 4, !tbaa !5
  %4828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4829 = call i32 @s2n_print_stacktrace(ptr noundef %4828) #9
  %4830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4831 = trunc nuw i8 %4830 to i1
  br i1 %4831, label %4832, label %4836

4832:                                             ; preds = %4826
  %4833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4834 = call i32 @fileno(ptr noundef %4833) #9
  %4835 = call i32 @isatty(i32 noundef %4834) #9
  %.not504 = icmp eq i32 %4835, 0
  br i1 %.not504, label %4836, label %4837

4836:                                             ; preds = %4832, %4826
  br label %4837

4837:                                             ; preds = %4832, %4836
  %.str.5.sink2284 = phi ptr [ @.str.5, %4836 ], [ @.str.2, %4832 ]
  store i32 %4827, ptr %2783, align 4, !tbaa !5
  %4838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4839 = load i32, ptr @test_count, align 4, !tbaa !5
  %4840 = load i32, ptr %2729, align 4, !tbaa !5
  %4841 = call ptr @s2n_strerror(i32 noundef %4840, ptr noundef nonnull @.str.4) #9
  %4842 = load i32, ptr %2729, align 4, !tbaa !5
  %4843 = call ptr @s2n_strerror_debug(i32 noundef %4842, ptr noundef nonnull @.str.4) #9
  %4844 = load i32, ptr %2783, align 4, !tbaa !5
  %4845 = call ptr @strerror(i32 noundef %4844) #9
  %4846 = load i32, ptr %2783, align 4, !tbaa !5
  %4847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4838, ptr noundef nonnull %.str.5.sink2284, i32 noundef %4839, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %4841, ptr noundef %4843, ptr noundef %4845, i32 noundef %4846) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4848:                                             ; preds = %4821
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #9
  store i8 0, ptr %43, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #9
  store i32 0, ptr %44, align 4, !tbaa !5
  %4849 = getelementptr inbounds i8, ptr %4581, i64 218
  store i8 30, ptr %4849, align 2, !tbaa !53
  %4850 = getelementptr inbounds i8, ptr %4581, i64 220
  store i8 30, ptr %4850, align 4, !tbaa !43
  %4851 = load i32, ptr @test_count, align 4, !tbaa !5
  %4852 = add nsw i32 %4851, 1
  store i32 %4852, ptr @test_count, align 4, !tbaa !5
  %4853 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %4715, ptr noundef nonnull %4581) #9
  %4854 = icmp eq i32 %4853, -1
  br i1 %4854, label %4855, label %4877

4855:                                             ; preds = %4848
  %4856 = load i32, ptr %2783, align 4, !tbaa !5
  %4857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4858 = call i32 @s2n_print_stacktrace(ptr noundef %4857) #9
  %4859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4860 = trunc nuw i8 %4859 to i1
  br i1 %4860, label %4861, label %4865

4861:                                             ; preds = %4855
  %4862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4863 = call i32 @fileno(ptr noundef %4862) #9
  %4864 = call i32 @isatty(i32 noundef %4863) #9
  %.not503 = icmp eq i32 %4864, 0
  br i1 %.not503, label %4865, label %4866

4865:                                             ; preds = %4861, %4855
  br label %4866

4866:                                             ; preds = %4861, %4865
  %.str.5.sink2293 = phi ptr [ @.str.5, %4865 ], [ @.str.2, %4861 ]
  store i32 %4856, ptr %2783, align 4, !tbaa !5
  %4867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4868 = load i32, ptr @test_count, align 4, !tbaa !5
  %4869 = load i32, ptr %2729, align 4, !tbaa !5
  %4870 = call ptr @s2n_strerror(i32 noundef %4869, ptr noundef nonnull @.str.4) #9
  %4871 = load i32, ptr %2729, align 4, !tbaa !5
  %4872 = call ptr @s2n_strerror_debug(i32 noundef %4871, ptr noundef nonnull @.str.4) #9
  %4873 = load i32, ptr %2783, align 4, !tbaa !5
  %4874 = call ptr @strerror(i32 noundef %4873) #9
  %4875 = load i32, ptr %2783, align 4, !tbaa !5
  %4876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4867, ptr noundef nonnull %.str.5.sink2293, i32 noundef %4868, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %4870, ptr noundef %4872, ptr noundef %4874, i32 noundef %4875) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4877:                                             ; preds = %4848
  %4878 = load i32, ptr @test_count, align 4, !tbaa !5
  %4879 = add nsw i32 %4878, 1
  store i32 %4879, ptr @test_count, align 4, !tbaa !5
  %4880 = load i8, ptr %4850, align 4, !tbaa !43
  %4881 = icmp eq i8 %4880, 30
  br i1 %4881, label %4904, label %4882

4882:                                             ; preds = %4877
  %4883 = load i32, ptr %2783, align 4, !tbaa !5
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = call i32 @s2n_print_stacktrace(ptr noundef %4884) #9
  %4886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4887 = trunc nuw i8 %4886 to i1
  br i1 %4887, label %4888, label %4892

4888:                                             ; preds = %4882
  %4889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4890 = call i32 @fileno(ptr noundef %4889) #9
  %4891 = call i32 @isatty(i32 noundef %4890) #9
  %.not480 = icmp eq i32 %4891, 0
  br i1 %.not480, label %4892, label %4893

4892:                                             ; preds = %4888, %4882
  br label %4893

4893:                                             ; preds = %4888, %4892
  %.str.5.sink2302 = phi ptr [ @.str.5, %4892 ], [ @.str.2, %4888 ]
  store i32 %4883, ptr %2783, align 4, !tbaa !5
  %4894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = load i32, ptr %2729, align 4, !tbaa !5
  %4897 = call ptr @s2n_strerror(i32 noundef %4896, ptr noundef nonnull @.str.4) #9
  %4898 = load i32, ptr %2729, align 4, !tbaa !5
  %4899 = call ptr @s2n_strerror_debug(i32 noundef %4898, ptr noundef nonnull @.str.4) #9
  %4900 = load i32, ptr %2783, align 4, !tbaa !5
  %4901 = call ptr @strerror(i32 noundef %4900) #9
  %4902 = load i32, ptr %2783, align 4, !tbaa !5
  %4903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4894, ptr noundef nonnull %.str.5.sink2302, i32 noundef %4895, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %4897, ptr noundef %4899, ptr noundef %4901, i32 noundef %4902) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4904:                                             ; preds = %4877
  %4905 = add nsw i32 %4878, 2
  store i32 %4905, ptr @test_count, align 4, !tbaa !5
  %4906 = getelementptr inbounds i8, ptr %4715, i64 220
  %4907 = load i8, ptr %4906, align 4, !tbaa !43
  %4908 = icmp eq i8 %4907, 30
  br i1 %4908, label %4931, label %4909

4909:                                             ; preds = %4904
  %4910 = load i32, ptr %2783, align 4, !tbaa !5
  %4911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4912 = call i32 @s2n_print_stacktrace(ptr noundef %4911) #9
  %4913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4914 = trunc nuw i8 %4913 to i1
  br i1 %4914, label %4915, label %4919

4915:                                             ; preds = %4909
  %4916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4917 = call i32 @fileno(ptr noundef %4916) #9
  %4918 = call i32 @isatty(i32 noundef %4917) #9
  %.not481 = icmp eq i32 %4918, 0
  br i1 %.not481, label %4919, label %4920

4919:                                             ; preds = %4915, %4909
  br label %4920

4920:                                             ; preds = %4915, %4919
  %.str.5.sink2311 = phi ptr [ @.str.5, %4919 ], [ @.str.2, %4915 ]
  store i32 %4910, ptr %2783, align 4, !tbaa !5
  %4921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4922 = load i32, ptr @test_count, align 4, !tbaa !5
  %4923 = load i32, ptr %2729, align 4, !tbaa !5
  %4924 = call ptr @s2n_strerror(i32 noundef %4923, ptr noundef nonnull @.str.4) #9
  %4925 = load i32, ptr %2729, align 4, !tbaa !5
  %4926 = call ptr @s2n_strerror_debug(i32 noundef %4925, ptr noundef nonnull @.str.4) #9
  %4927 = load i32, ptr %2783, align 4, !tbaa !5
  %4928 = call ptr @strerror(i32 noundef %4927) #9
  %4929 = load i32, ptr %2783, align 4, !tbaa !5
  %4930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4921, ptr noundef nonnull %.str.5.sink2311, i32 noundef %4922, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %4924, ptr noundef %4926, ptr noundef %4928, i32 noundef %4929) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4931:                                             ; preds = %4904
  %4932 = add nsw i32 %4878, 3
  store i32 %4932, ptr @test_count, align 4, !tbaa !5
  %4933 = call i32 @s2n_send_client_hello_request(ptr noundef nonnull %4715)
  %4934 = call zeroext i1 @s2n_result_is_ok(i32 %4933)
  br i1 %4934, label %4957, label %4935

4935:                                             ; preds = %4931
  %4936 = load i32, ptr %2783, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = call i32 @s2n_print_stacktrace(ptr noundef %4937) #9
  %4939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4940 = trunc nuw i8 %4939 to i1
  br i1 %4940, label %4941, label %4945

4941:                                             ; preds = %4935
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = call i32 @fileno(ptr noundef %4942) #9
  %4944 = call i32 @isatty(i32 noundef %4943) #9
  %.not482 = icmp eq i32 %4944, 0
  br i1 %.not482, label %4945, label %4946

4945:                                             ; preds = %4941, %4935
  br label %4946

4946:                                             ; preds = %4941, %4945
  %.str.5.sink2320 = phi ptr [ @.str.5, %4945 ], [ @.str.2, %4941 ]
  store i32 %4936, ptr %2783, align 4, !tbaa !5
  %4947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4948 = load i32, ptr @test_count, align 4, !tbaa !5
  %4949 = load i32, ptr %2729, align 4, !tbaa !5
  %4950 = call ptr @s2n_strerror(i32 noundef %4949, ptr noundef nonnull @.str.4) #9
  %4951 = load i32, ptr %2729, align 4, !tbaa !5
  %4952 = call ptr @s2n_strerror_debug(i32 noundef %4951, ptr noundef nonnull @.str.4) #9
  %4953 = load i32, ptr %2783, align 4, !tbaa !5
  %4954 = call ptr @strerror(i32 noundef %4953) #9
  %4955 = load i32, ptr %2783, align 4, !tbaa !5
  %4956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4947, ptr noundef nonnull %.str.5.sink2320, i32 noundef %4948, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %4950, ptr noundef %4952, ptr noundef %4954, i32 noundef %4955) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4957:                                             ; preds = %4931
  %4958 = load i32, ptr @test_count, align 4, !tbaa !5
  %4959 = add nsw i32 %4958, 1
  store i32 %4959, ptr @test_count, align 4, !tbaa !5
  %4960 = call i64 @s2n_recv(ptr noundef nonnull %4581, ptr noundef nonnull %43, i64 noundef 1, ptr noundef nonnull %44) #9
  %4961 = icmp eq i64 %4960, -1
  br i1 %4961, label %4984, label %4962

4962:                                             ; preds = %4957
  %4963 = load i32, ptr %2783, align 4, !tbaa !5
  %4964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4965 = call i32 @s2n_print_stacktrace(ptr noundef %4964) #9
  %4966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4967 = trunc nuw i8 %4966 to i1
  br i1 %4967, label %4968, label %4972

4968:                                             ; preds = %4962
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = call i32 @fileno(ptr noundef %4969) #9
  %4971 = call i32 @isatty(i32 noundef %4970) #9
  %.not483 = icmp eq i32 %4971, 0
  br i1 %.not483, label %4972, label %4973

4972:                                             ; preds = %4968, %4962
  br label %4973

4973:                                             ; preds = %4968, %4972
  %.str.5.sink2329 = phi ptr [ @.str.5, %4972 ], [ @.str.2, %4968 ]
  store i32 %4963, ptr %2783, align 4, !tbaa !5
  %4974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4975 = load i32, ptr @test_count, align 4, !tbaa !5
  %4976 = load i32, ptr %2729, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror(i32 noundef %4976, ptr noundef nonnull @.str.4) #9
  %4978 = load i32, ptr %2729, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror_debug(i32 noundef %4978, ptr noundef nonnull @.str.4) #9
  %4980 = load i32, ptr %2783, align 4, !tbaa !5
  %4981 = call ptr @strerror(i32 noundef %4980) #9
  %4982 = load i32, ptr %2783, align 4, !tbaa !5
  %4983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4974, ptr noundef nonnull %.str.5.sink2329, i32 noundef %4975, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %4977, ptr noundef %4979, ptr noundef %4981, i32 noundef %4982) #11
  call void @exit(i32 noundef 1) #12
  unreachable

4984:                                             ; preds = %4957
  %4985 = load i32, ptr @test_count, align 4, !tbaa !5
  %4986 = add nsw i32 %4985, 1
  store i32 %4986, ptr @test_count, align 4, !tbaa !5
  %4987 = load i32, ptr %2729, align 4, !tbaa !5
  %4988 = icmp eq i32 %4987, 335544322
  br i1 %4988, label %5011, label %4989

4989:                                             ; preds = %4984
  %4990 = load i32, ptr %2783, align 4, !tbaa !5
  %4991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4992 = call i32 @s2n_print_stacktrace(ptr noundef %4991) #9
  %4993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4994 = trunc nuw i8 %4993 to i1
  br i1 %4994, label %4995, label %4999

4995:                                             ; preds = %4989
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = call i32 @fileno(ptr noundef %4996) #9
  %4998 = call i32 @isatty(i32 noundef %4997) #9
  %.not484 = icmp eq i32 %4998, 0
  br i1 %.not484, label %4999, label %5000

4999:                                             ; preds = %4995, %4989
  br label %5000

5000:                                             ; preds = %4995, %4999
  %.str.5.sink2338 = phi ptr [ @.str.5, %4999 ], [ @.str.2, %4995 ]
  store i32 %4990, ptr %2783, align 4, !tbaa !5
  %5001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5002 = load i32, ptr @test_count, align 4, !tbaa !5
  %5003 = load i32, ptr %2729, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror(i32 noundef %5003, ptr noundef nonnull @.str.4) #9
  %5005 = load i32, ptr %2729, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror_debug(i32 noundef %5005, ptr noundef nonnull @.str.4) #9
  %5007 = load i32, ptr %2783, align 4, !tbaa !5
  %5008 = call ptr @strerror(i32 noundef %5007) #9
  %5009 = load i32, ptr %2783, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5001, ptr noundef nonnull %.str.5.sink2338, i32 noundef %5002, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %5004, ptr noundef %5006, ptr noundef %5008, i32 noundef %5009) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5011:                                             ; preds = %4984
  %5012 = add nsw i32 %4985, 2
  store i32 %5012, ptr @test_count, align 4, !tbaa !5
  %5013 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #9
  %5014 = icmp eq ptr %5013, null
  br i1 %5014, label %5015, label %5037

5015:                                             ; preds = %5011
  %5016 = load i32, ptr %2783, align 4, !tbaa !5
  %5017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5018 = call i32 @s2n_print_stacktrace(ptr noundef %5017) #9
  %5019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5020 = trunc nuw i8 %5019 to i1
  br i1 %5020, label %5021, label %5025

5021:                                             ; preds = %5015
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = call i32 @fileno(ptr noundef %5022) #9
  %5024 = call i32 @isatty(i32 noundef %5023) #9
  %.not502 = icmp eq i32 %5024, 0
  br i1 %.not502, label %5025, label %5026

5025:                                             ; preds = %5021, %5015
  br label %5026

5026:                                             ; preds = %5021, %5025
  %.str.5.sink2347 = phi ptr [ @.str.5, %5025 ], [ @.str.2, %5021 ]
  store i32 %5016, ptr %2783, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = load i32, ptr @test_count, align 4, !tbaa !5
  %5029 = load i32, ptr %2729, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror(i32 noundef %5029, ptr noundef nonnull @.str.4) #9
  %5031 = load i32, ptr %2729, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef nonnull @.str.4) #9
  %5033 = load i32, ptr %2783, align 4, !tbaa !5
  %5034 = call ptr @strerror(i32 noundef %5033) #9
  %5035 = load i32, ptr %2783, align 4, !tbaa !5
  %5036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5027, ptr noundef nonnull %.str.5.sink2347, i32 noundef %5028, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %5030, ptr noundef %5032, ptr noundef %5034, i32 noundef %5035) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5037:                                             ; preds = %5011
  store i32 0, ptr %2729, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %2783, align 4, !tbaa !5
  %5038 = load i32, ptr @test_count, align 4, !tbaa !5
  %5039 = add nsw i32 %5038, 1
  store i32 %5039, ptr @test_count, align 4, !tbaa !5
  %5040 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef nonnull %4581, i32 noundef 3) #9
  br i1 %5040, label %5063, label %5041

5041:                                             ; preds = %5037
  %5042 = load i32, ptr %2783, align 4, !tbaa !5
  %5043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5044 = call i32 @s2n_print_stacktrace(ptr noundef %5043) #9
  %5045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5046 = trunc nuw i8 %5045 to i1
  br i1 %5046, label %5047, label %5051

5047:                                             ; preds = %5041
  %5048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5049 = call i32 @fileno(ptr noundef %5048) #9
  %5050 = call i32 @isatty(i32 noundef %5049) #9
  %.not485 = icmp eq i32 %5050, 0
  br i1 %.not485, label %5051, label %5052

5051:                                             ; preds = %5047, %5041
  br label %5052

5052:                                             ; preds = %5047, %5051
  %.str.5.sink2356 = phi ptr [ @.str.5, %5051 ], [ @.str.2, %5047 ]
  store i32 %5042, ptr %2783, align 4, !tbaa !5
  %5053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5054 = load i32, ptr @test_count, align 4, !tbaa !5
  %5055 = load i32, ptr %2729, align 4, !tbaa !5
  %5056 = call ptr @s2n_strerror(i32 noundef %5055, ptr noundef nonnull @.str.4) #9
  %5057 = load i32, ptr %2729, align 4, !tbaa !5
  %5058 = call ptr @s2n_strerror_debug(i32 noundef %5057, ptr noundef nonnull @.str.4) #9
  %5059 = load i32, ptr %2783, align 4, !tbaa !5
  %5060 = call ptr @strerror(i32 noundef %5059) #9
  %5061 = load i32, ptr %2783, align 4, !tbaa !5
  %5062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5053, ptr noundef nonnull %.str.5.sink2356, i32 noundef %5054, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 521, ptr noundef %5056, ptr noundef %5058, ptr noundef %5060, i32 noundef %5061) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5063:                                             ; preds = %5037
  %5064 = load i32, ptr @test_count, align 4, !tbaa !5
  %5065 = add nsw i32 %5064, 1
  store i32 %5065, ptr @test_count, align 4, !tbaa !5
  %5066 = getelementptr inbounds i8, ptr %4581, i64 176
  %5067 = load i64, ptr %5066, align 8, !tbaa !54
  %.not486 = icmp eq i64 %5067, 0
  br i1 %.not486, label %5068, label %5090

5068:                                             ; preds = %5063
  %5069 = load i32, ptr %2783, align 4, !tbaa !5
  %5070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5071 = call i32 @s2n_print_stacktrace(ptr noundef %5070) #9
  %5072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5073 = trunc nuw i8 %5072 to i1
  br i1 %5073, label %5074, label %5078

5074:                                             ; preds = %5068
  %5075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5076 = call i32 @fileno(ptr noundef %5075) #9
  %5077 = call i32 @isatty(i32 noundef %5076) #9
  %.not487 = icmp eq i32 %5077, 0
  br i1 %.not487, label %5078, label %5079

5078:                                             ; preds = %5074, %5068
  br label %5079

5079:                                             ; preds = %5074, %5078
  %.str.5.sink2365 = phi ptr [ @.str.5, %5078 ], [ @.str.2, %5074 ]
  store i32 %5069, ptr %2783, align 4, !tbaa !5
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = load i32, ptr %2729, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror(i32 noundef %5082, ptr noundef nonnull @.str.4) #9
  %5084 = load i32, ptr %2729, align 4, !tbaa !5
  %5085 = call ptr @s2n_strerror_debug(i32 noundef %5084, ptr noundef nonnull @.str.4) #9
  %5086 = load i32, ptr %2783, align 4, !tbaa !5
  %5087 = call ptr @strerror(i32 noundef %5086) #9
  %5088 = load i32, ptr %2783, align 4, !tbaa !5
  %5089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef nonnull %.str.5.sink2365, i32 noundef %5081, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 525, ptr noundef %5083, ptr noundef %5085, ptr noundef %5087, i32 noundef %5088) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5090:                                             ; preds = %5063
  store i64 0, ptr %5066, align 8, !tbaa !54
  %5091 = add nsw i32 %5064, 2
  store i32 %5091, ptr @test_count, align 4, !tbaa !5
  %5092 = call i32 @s2n_shutdown_send(ptr noundef nonnull %4581, ptr noundef nonnull %44) #9
  %5093 = icmp eq i32 %5092, -1
  br i1 %5093, label %5094, label %5116

5094:                                             ; preds = %5090
  %5095 = load i32, ptr %2783, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = call i32 @s2n_print_stacktrace(ptr noundef %5096) #9
  %5098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5099 = trunc nuw i8 %5098 to i1
  br i1 %5099, label %5100, label %5104

5100:                                             ; preds = %5094
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = call i32 @fileno(ptr noundef %5101) #9
  %5103 = call i32 @isatty(i32 noundef %5102) #9
  %.not501 = icmp eq i32 %5103, 0
  br i1 %.not501, label %5104, label %5105

5104:                                             ; preds = %5100, %5094
  br label %5105

5105:                                             ; preds = %5100, %5104
  %.str.5.sink2374 = phi ptr [ @.str.5, %5104 ], [ @.str.2, %5100 ]
  store i32 %5095, ptr %2783, align 4, !tbaa !5
  %5106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = load i32, ptr %2729, align 4, !tbaa !5
  %5109 = call ptr @s2n_strerror(i32 noundef %5108, ptr noundef nonnull @.str.4) #9
  %5110 = load i32, ptr %2729, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror_debug(i32 noundef %5110, ptr noundef nonnull @.str.4) #9
  %5112 = load i32, ptr %2783, align 4, !tbaa !5
  %5113 = call ptr @strerror(i32 noundef %5112) #9
  %5114 = load i32, ptr %2783, align 4, !tbaa !5
  %5115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5106, ptr noundef nonnull %.str.5.sink2374, i32 noundef %5107, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 527, ptr noundef %5109, ptr noundef %5111, ptr noundef %5113, i32 noundef %5114) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5116:                                             ; preds = %5090
  %5117 = load i32, ptr @test_count, align 4, !tbaa !5
  %5118 = add nsw i32 %5117, 1
  store i32 %5118, ptr @test_count, align 4, !tbaa !5
  %5119 = call i64 @s2n_recv(ptr noundef nonnull %4715, ptr noundef nonnull %43, i64 noundef 1, ptr noundef nonnull %44) #9
  %5120 = icmp eq i64 %5119, -1
  br i1 %5120, label %5143, label %5121

5121:                                             ; preds = %5116
  %5122 = load i32, ptr %2783, align 4, !tbaa !5
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = call i32 @s2n_print_stacktrace(ptr noundef %5123) #9
  %5125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5126 = trunc nuw i8 %5125 to i1
  br i1 %5126, label %5127, label %5131

5127:                                             ; preds = %5121
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = call i32 @fileno(ptr noundef %5128) #9
  %5130 = call i32 @isatty(i32 noundef %5129) #9
  %.not488 = icmp eq i32 %5130, 0
  br i1 %.not488, label %5131, label %5132

5131:                                             ; preds = %5127, %5121
  br label %5132

5132:                                             ; preds = %5127, %5131
  %.str.5.sink2383 = phi ptr [ @.str.5, %5131 ], [ @.str.2, %5127 ]
  store i32 %5122, ptr %2783, align 4, !tbaa !5
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = load i32, ptr @test_count, align 4, !tbaa !5
  %5135 = load i32, ptr %2729, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror(i32 noundef %5135, ptr noundef nonnull @.str.4) #9
  %5137 = load i32, ptr %2729, align 4, !tbaa !5
  %5138 = call ptr @s2n_strerror_debug(i32 noundef %5137, ptr noundef nonnull @.str.4) #9
  %5139 = load i32, ptr %2783, align 4, !tbaa !5
  %5140 = call ptr @strerror(i32 noundef %5139) #9
  %5141 = load i32, ptr %2783, align 4, !tbaa !5
  %5142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5133, ptr noundef nonnull %.str.5.sink2383, i32 noundef %5134, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %5136, ptr noundef %5138, ptr noundef %5140, i32 noundef %5141) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5143:                                             ; preds = %5116
  %5144 = load i32, ptr @test_count, align 4, !tbaa !5
  %5145 = add nsw i32 %5144, 1
  store i32 %5145, ptr @test_count, align 4, !tbaa !5
  %5146 = load i32, ptr %2729, align 4, !tbaa !5
  %5147 = icmp eq i32 %5146, 268435456
  br i1 %5147, label %5170, label %5148

5148:                                             ; preds = %5143
  %5149 = load i32, ptr %2783, align 4, !tbaa !5
  %5150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5151 = call i32 @s2n_print_stacktrace(ptr noundef %5150) #9
  %5152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5153 = trunc nuw i8 %5152 to i1
  br i1 %5153, label %5154, label %5158

5154:                                             ; preds = %5148
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = call i32 @fileno(ptr noundef %5155) #9
  %5157 = call i32 @isatty(i32 noundef %5156) #9
  %.not489 = icmp eq i32 %5157, 0
  br i1 %.not489, label %5158, label %5159

5158:                                             ; preds = %5154, %5148
  br label %5159

5159:                                             ; preds = %5154, %5158
  %.str.5.sink2392 = phi ptr [ @.str.5, %5158 ], [ @.str.2, %5154 ]
  store i32 %5149, ptr %2783, align 4, !tbaa !5
  %5160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5161 = load i32, ptr @test_count, align 4, !tbaa !5
  %5162 = load i32, ptr %2729, align 4, !tbaa !5
  %5163 = call ptr @s2n_strerror(i32 noundef %5162, ptr noundef nonnull @.str.4) #9
  %5164 = load i32, ptr %2729, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror_debug(i32 noundef %5164, ptr noundef nonnull @.str.4) #9
  %5166 = load i32, ptr %2783, align 4, !tbaa !5
  %5167 = call ptr @strerror(i32 noundef %5166) #9
  %5168 = load i32, ptr %2783, align 4, !tbaa !5
  %5169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5160, ptr noundef nonnull %.str.5.sink2392, i32 noundef %5161, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %5163, ptr noundef %5165, ptr noundef %5167, i32 noundef %5168) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5170:                                             ; preds = %5143
  %5171 = add nsw i32 %5144, 2
  store i32 %5171, ptr @test_count, align 4, !tbaa !5
  %5172 = call ptr @s2n_strerror_debug(i32 noundef 268435456, ptr noundef nonnull @.str.4) #9
  %5173 = icmp eq ptr %5172, null
  br i1 %5173, label %5174, label %5196

5174:                                             ; preds = %5170
  %5175 = load i32, ptr %2783, align 4, !tbaa !5
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = call i32 @s2n_print_stacktrace(ptr noundef %5176) #9
  %5178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5179 = trunc nuw i8 %5178 to i1
  br i1 %5179, label %5180, label %5184

5180:                                             ; preds = %5174
  %5181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5182 = call i32 @fileno(ptr noundef %5181) #9
  %5183 = call i32 @isatty(i32 noundef %5182) #9
  %.not500 = icmp eq i32 %5183, 0
  br i1 %.not500, label %5184, label %5185

5184:                                             ; preds = %5180, %5174
  br label %5185

5185:                                             ; preds = %5180, %5184
  %.str.5.sink2401 = phi ptr [ @.str.5, %5184 ], [ @.str.2, %5180 ]
  store i32 %5175, ptr %2783, align 4, !tbaa !5
  %5186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5187 = load i32, ptr @test_count, align 4, !tbaa !5
  %5188 = load i32, ptr %2729, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror(i32 noundef %5188, ptr noundef nonnull @.str.4) #9
  %5190 = load i32, ptr %2729, align 4, !tbaa !5
  %5191 = call ptr @s2n_strerror_debug(i32 noundef %5190, ptr noundef nonnull @.str.4) #9
  %5192 = load i32, ptr %2783, align 4, !tbaa !5
  %5193 = call ptr @strerror(i32 noundef %5192) #9
  %5194 = load i32, ptr %2783, align 4, !tbaa !5
  %5195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5186, ptr noundef nonnull %.str.5.sink2401, i32 noundef %5187, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %5189, ptr noundef %5191, ptr noundef %5193, i32 noundef %5194) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5196:                                             ; preds = %5170
  store i32 0, ptr %2729, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %2783, align 4, !tbaa !5
  %5197 = load i32, ptr @test_count, align 4, !tbaa !5
  %5198 = add nsw i32 %5197, 1
  store i32 %5198, ptr @test_count, align 4, !tbaa !5
  %5199 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef nonnull %4715, i32 noundef 3) #9
  br i1 %5199, label %5222, label %5200

5200:                                             ; preds = %5196
  %5201 = load i32, ptr %2783, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = call i32 @s2n_print_stacktrace(ptr noundef %5202) #9
  %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) #9
  %5209 = call i32 @isatty(i32 noundef %5208) #9
  %.not490 = icmp eq i32 %5209, 0
  br i1 %.not490, label %5210, label %5211

5210:                                             ; preds = %5206, %5200
  br label %5211

5211:                                             ; preds = %5206, %5210
  %.str.5.sink2410 = phi ptr [ @.str.5, %5210 ], [ @.str.2, %5206 ]
  store i32 %5201, ptr %2783, 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 %2729, align 4, !tbaa !5
  %5215 = call ptr @s2n_strerror(i32 noundef %5214, ptr noundef nonnull @.str.4) #9
  %5216 = load i32, ptr %2729, align 4, !tbaa !5
  %5217 = call ptr @s2n_strerror_debug(i32 noundef %5216, ptr noundef nonnull @.str.4) #9
  %5218 = load i32, ptr %2783, align 4, !tbaa !5
  %5219 = call ptr @strerror(i32 noundef %5218) #9
  %5220 = load i32, ptr %2783, align 4, !tbaa !5
  %5221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5212, ptr noundef nonnull %.str.5.sink2410, i32 noundef %5213, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 531, ptr noundef %5215, ptr noundef %5217, ptr noundef %5219, i32 noundef %5220) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5222:                                             ; preds = %5196
  %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 = call i32 @s2n_connection_get_alert(ptr noundef nonnull %4715) #9
  %5226 = icmp eq i32 %5225, 40
  br i1 %5226, label %5249, label %5227

5227:                                             ; preds = %5222
  %5228 = load i32, ptr %2783, align 4, !tbaa !5
  %5229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5230 = call i32 @s2n_print_stacktrace(ptr noundef %5229) #9
  %5231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5232 = trunc nuw i8 %5231 to i1
  br i1 %5232, label %5233, label %5237

5233:                                             ; preds = %5227
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = call i32 @fileno(ptr noundef %5234) #9
  %5236 = call i32 @isatty(i32 noundef %5235) #9
  %.not491 = icmp eq i32 %5236, 0
  br i1 %.not491, label %5237, label %5238

5237:                                             ; preds = %5233, %5227
  br label %5238

5238:                                             ; preds = %5233, %5237
  %.str.5.sink2419 = phi ptr [ @.str.5, %5237 ], [ @.str.2, %5233 ]
  store i32 %5228, ptr %2783, align 4, !tbaa !5
  %5239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = load i32, ptr %2729, align 4, !tbaa !5
  %5242 = call ptr @s2n_strerror(i32 noundef %5241, ptr noundef nonnull @.str.4) #9
  %5243 = load i32, ptr %2729, align 4, !tbaa !5
  %5244 = call ptr @s2n_strerror_debug(i32 noundef %5243, ptr noundef nonnull @.str.4) #9
  %5245 = load i32, ptr %2783, align 4, !tbaa !5
  %5246 = call ptr @strerror(i32 noundef %5245) #9
  %5247 = load i32, ptr %2783, align 4, !tbaa !5
  %5248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5239, ptr noundef nonnull %.str.5.sink2419, i32 noundef %5240, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %5242, ptr noundef %5244, ptr noundef %5246, i32 noundef %5247) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5249:                                             ; preds = %5222
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = add nsw i32 %5250, 1
  store i32 %5251, ptr @test_count, align 4, !tbaa !5
  %5252 = getelementptr inbounds i8, ptr %4581, i64 8
  %5253 = load ptr, ptr %5252, align 8, !tbaa !46
  %5254 = getelementptr inbounds i8, ptr %5253, i64 432
  %5255 = load ptr, ptr %5254, align 8, !tbaa !47
  %5256 = icmp eq ptr %5255, null
  br i1 %5256, label %5257, label %5279

5257:                                             ; preds = %5249
  %5258 = load i32, ptr %2783, align 4, !tbaa !5
  %5259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5260 = call i32 @s2n_print_stacktrace(ptr noundef %5259) #9
  %5261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5262 = trunc nuw i8 %5261 to i1
  br i1 %5262, label %5263, label %5267

5263:                                             ; preds = %5257
  %5264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5265 = call i32 @fileno(ptr noundef %5264) #9
  %5266 = call i32 @isatty(i32 noundef %5265) #9
  %.not499 = icmp eq i32 %5266, 0
  br i1 %.not499, label %5267, label %5268

5267:                                             ; preds = %5263, %5257
  br label %5268

5268:                                             ; preds = %5263, %5267
  %.str.5.sink2428 = phi ptr [ @.str.5, %5267 ], [ @.str.2, %5263 ]
  store i32 %5258, ptr %2783, align 4, !tbaa !5
  %5269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5270 = load i32, ptr @test_count, align 4, !tbaa !5
  %5271 = load i32, ptr %2729, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror(i32 noundef %5271, ptr noundef nonnull @.str.4) #9
  %5273 = load i32, ptr %2729, align 4, !tbaa !5
  %5274 = call ptr @s2n_strerror_debug(i32 noundef %5273, ptr noundef nonnull @.str.4) #9
  %5275 = load i32, ptr %2783, align 4, !tbaa !5
  %5276 = call ptr @strerror(i32 noundef %5275) #9
  %5277 = load i32, ptr %2783, align 4, !tbaa !5
  %5278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5269, ptr noundef nonnull %.str.5.sink2428, i32 noundef %5270, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %5272, ptr noundef %5274, ptr noundef %5276, i32 noundef %5277) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5279:                                             ; preds = %5249
  %5280 = add nsw i32 %5250, 2
  store i32 %5280, ptr @test_count, align 4, !tbaa !5
  %5281 = getelementptr inbounds i8, ptr %39, i64 4
  %5282 = load i8, ptr %5281, align 4, !tbaa !51
  %5283 = icmp eq i8 %5282, 1
  br i1 %5283, label %5306, label %5284

5284:                                             ; preds = %5279
  %5285 = load i32, ptr %2783, align 4, !tbaa !5
  %5286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5287 = call i32 @s2n_print_stacktrace(ptr noundef %5286) #9
  %5288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5289 = trunc nuw i8 %5288 to i1
  br i1 %5289, label %5290, label %5294

5290:                                             ; preds = %5284
  %5291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5292 = call i32 @fileno(ptr noundef %5291) #9
  %5293 = call i32 @isatty(i32 noundef %5292) #9
  %.not492 = icmp eq i32 %5293, 0
  br i1 %.not492, label %5294, label %5295

5294:                                             ; preds = %5290, %5284
  br label %5295

5295:                                             ; preds = %5290, %5294
  %.str.5.sink2437 = phi ptr [ @.str.5, %5294 ], [ @.str.2, %5290 ]
  store i32 %5285, ptr %2783, align 4, !tbaa !5
  %5296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5297 = load i32, ptr @test_count, align 4, !tbaa !5
  %5298 = load i32, ptr %2729, align 4, !tbaa !5
  %5299 = call ptr @s2n_strerror(i32 noundef %5298, ptr noundef nonnull @.str.4) #9
  %5300 = load i32, ptr %2729, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror_debug(i32 noundef %5300, ptr noundef nonnull @.str.4) #9
  %5302 = load i32, ptr %2783, align 4, !tbaa !5
  %5303 = call ptr @strerror(i32 noundef %5302) #9
  %5304 = load i32, ptr %2783, align 4, !tbaa !5
  %5305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5296, ptr noundef nonnull %.str.5.sink2437, i32 noundef %5297, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %5299, ptr noundef %5301, ptr noundef %5303, i32 noundef %5304) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5306:                                             ; preds = %5279
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #9
  %5307 = call i32 @s2n_io_pair_close(ptr noundef nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #9
  %5308 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  %5309 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #9
  br label %5310

5310:                                             ; preds = %4574, %5306
  %5311 = load i32, ptr @test_count, align 4, !tbaa !5
  %5312 = add nsw i32 %5311, 1
  store i32 %5312, ptr @test_count, align 4, !tbaa !5
  %5313 = load ptr, ptr @main.chain_and_key, align 8, !tbaa !9
  %5314 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %5313) #9
  %5315 = icmp eq i32 %5314, -1
  br i1 %5315, label %5316, label %5338

5316:                                             ; preds = %5310
  %5317 = load i32, ptr %2783, align 4, !tbaa !5
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = call i32 @s2n_print_stacktrace(ptr noundef %5318) #9
  %5320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5321 = trunc nuw i8 %5320 to i1
  br i1 %5321, label %5322, label %5326

5322:                                             ; preds = %5316
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = call i32 @fileno(ptr noundef %5323) #9
  %5325 = call i32 @isatty(i32 noundef %5324) #9
  %.not498 = icmp eq i32 %5325, 0
  br i1 %.not498, label %5326, label %5327

5326:                                             ; preds = %5322, %5316
  br label %5327

5327:                                             ; preds = %5322, %5326
  %.str.5.sink2446 = phi ptr [ @.str.5, %5326 ], [ @.str.2, %5322 ]
  store i32 %5317, ptr %2783, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = load i32, ptr @test_count, align 4, !tbaa !5
  %5330 = load i32, ptr %2729, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror(i32 noundef %5330, ptr noundef nonnull @.str.4) #9
  %5332 = load i32, ptr %2729, align 4, !tbaa !5
  %5333 = call ptr @s2n_strerror_debug(i32 noundef %5332, ptr noundef nonnull @.str.4) #9
  %5334 = load i32, ptr %2783, align 4, !tbaa !5
  %5335 = call ptr @strerror(i32 noundef %5334) #9
  %5336 = load i32, ptr %2783, align 4, !tbaa !5
  %5337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5328, ptr noundef nonnull %.str.5.sink2446, i32 noundef %5329, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %5331, ptr noundef %5333, ptr noundef %5335, i32 noundef %5336) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5338:                                             ; preds = %5310
  %5339 = call i32 @s2n_cleanup() #9
  %5340 = icmp eq i32 %5339, -1
  br i1 %5340, label %5341, label %5363

5341:                                             ; preds = %5338
  %5342 = load i32, ptr %2783, align 4, !tbaa !5
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = call i32 @s2n_print_stacktrace(ptr noundef %5343) #9
  %5345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5346 = trunc nuw i8 %5345 to i1
  br i1 %5346, label %5347, label %5351

5347:                                             ; preds = %5341
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = call i32 @fileno(ptr noundef %5348) #9
  %5350 = call i32 @isatty(i32 noundef %5349) #9
  %.not497 = icmp eq i32 %5350, 0
  br i1 %.not497, label %5351, label %5352

5351:                                             ; preds = %5347, %5341
  br label %5352

5352:                                             ; preds = %5347, %5351
  %.str.5.sink2455 = phi ptr [ @.str.5, %5351 ], [ @.str.2, %5347 ]
  store i32 %5342, ptr %2783, align 4, !tbaa !5
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = load i32, ptr @test_count, align 4, !tbaa !5
  %5355 = load i32, ptr %2729, align 4, !tbaa !5
  %5356 = call ptr @s2n_strerror(i32 noundef %5355, ptr noundef nonnull @.str.4) #9
  %5357 = load i32, ptr %2729, align 4, !tbaa !5
  %5358 = call ptr @s2n_strerror_debug(i32 noundef %5357, ptr noundef nonnull @.str.4) #9
  %5359 = load i32, ptr %2783, align 4, !tbaa !5
  %5360 = call ptr @strerror(i32 noundef %5359) #9
  %5361 = load i32, ptr %2783, align 4, !tbaa !5
  %5362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5353, ptr noundef nonnull %.str.5.sink2455, i32 noundef %5354, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 540, ptr noundef %5356, ptr noundef %5358, ptr noundef %5360, i32 noundef %5361) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5363:                                             ; preds = %5338
  %5364 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %5365 = icmp eq i32 %5364, -1
  br i1 %5365, label %5366, label %5388

5366:                                             ; preds = %5363
  %5367 = load i32, ptr %2783, align 4, !tbaa !5
  %5368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5369 = call i32 @s2n_print_stacktrace(ptr noundef %5368) #9
  %5370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5371 = trunc nuw i8 %5370 to i1
  br i1 %5371, label %5372, label %5376

5372:                                             ; preds = %5366
  %5373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5374 = call i32 @fileno(ptr noundef %5373) #9
  %5375 = call i32 @isatty(i32 noundef %5374) #9
  %.not496 = icmp eq i32 %5375, 0
  br i1 %.not496, label %5376, label %5377

5376:                                             ; preds = %5372, %5366
  br label %5377

5377:                                             ; preds = %5372, %5376
  %.str.5.sink2464 = phi ptr [ @.str.5, %5376 ], [ @.str.2, %5372 ]
  store i32 %5367, ptr %2783, align 4, !tbaa !5
  %5378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5379 = load i32, ptr @test_count, align 4, !tbaa !5
  %5380 = load i32, ptr %2729, align 4, !tbaa !5
  %5381 = call ptr @s2n_strerror(i32 noundef %5380, ptr noundef nonnull @.str.4) #9
  %5382 = load i32, ptr %2729, align 4, !tbaa !5
  %5383 = call ptr @s2n_strerror_debug(i32 noundef %5382, ptr noundef nonnull @.str.4) #9
  %5384 = load i32, ptr %2783, align 4, !tbaa !5
  %5385 = call ptr @strerror(i32 noundef %5384) #9
  %5386 = load i32, ptr %2783, align 4, !tbaa !5
  %5387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5378, ptr noundef nonnull %.str.5.sink2464, i32 noundef %5379, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 540, ptr noundef %5381, ptr noundef %5383, ptr noundef %5385, i32 noundef %5386) #11
  call void @exit(i32 noundef 1) #12
  unreachable

5388:                                             ; preds = %5363
  %5389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5390 = trunc nuw i8 %5389 to i1
  br i1 %5390, label %5391, label %5402

5391:                                             ; preds = %5388
  %5392 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5393 = call i32 @fileno(ptr noundef %5392) #9
  %5394 = call i32 @isatty(i32 noundef %5393) #9
  %.not493 = icmp eq i32 %5394, 0
  br i1 %.not493, label %5402, label %5395

5395:                                             ; preds = %5391
  %5396 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not495 = icmp eq i32 %5396, 0
  %5397 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not495, label %5400, label %5398

5398:                                             ; preds = %5395
  %5399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5397, ptr noundef nonnull @.str.88, i32 noundef %5396) #9
  br label %5409

5400:                                             ; preds = %5395
  %5401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5397, ptr noundef nonnull @.str.89) #9
  br label %5409

5402:                                             ; preds = %5391, %5388
  %5403 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not494 = icmp eq i32 %5403, 0
  %5404 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not494, label %5407, label %5405

5405:                                             ; preds = %5402
  %5406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5404, ptr noundef nonnull @.str.90, i32 noundef %5403) #9
  br label %5409

5407:                                             ; preds = %5402
  %5408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5404, ptr noundef nonnull @.str.91) #9
  br label %5409

5409:                                             ; preds = %5405, %5407, %5398, %5400
  %5410 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  %5411 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #9
  %5412 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_reneg_req_cb(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #8

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_send_client_hello_request(ptr noundef) local_unnamed_addr #0

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

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

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

declare zeroext i1 @s2n_connection_check_io_status(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #8

declare i32 @s2n_connection_get_alert(ptr noundef) local_unnamed_addr #2

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

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

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

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 640}
!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, !10, i64 224}
!43 = !{!16, !7, i64 220}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{!16, !10, i64 8}
!47 = !{!48, !10, i64 432}
!48 = !{!"s2n_config", !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, !10, i64 8, !10, i64 16, !49, i64 24, !25, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !18, i64 144, !10, i64 152, !18, i64 160, !18, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !50, i64 304, !31, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !25, i64 448}
!49 = !{!"certs_by_type", !7, i64 0}
!50 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!51 = !{!52, !7, i64 4}
!52 = !{!"s2n_test_reneg_req_ctx", !6, i64 0, !7, i64 4}
!53 = !{!16, !7, i64 218}
!54 = !{!16, !18, i64 176}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass