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

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @cache_store_callback(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef) #0

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #2

declare i32 @s2n_print_stacktrace(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #4

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #4

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #4

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #3

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #4

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

; Function Attrs: nounwind uwtable
declare dso_local i32 @cache_retrieve_callback(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #7

; Function Attrs: nounwind uwtable
declare dso_local i32 @cache_delete_callback(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #0

; Function Attrs: nounwind uwtable
declare dso_local void @mock_client(ptr noundef) #0

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

declare ptr @s2n_connection_new(i32 noundef) #3

declare ptr @s2n_config_new() #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) #3

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) #3

declare zeroext i1 @s2n_handshake_type_check_flag(ptr noundef, i32 noundef) #3

declare i32 @s2n_connection_get_session_length(ptr noundef) #3

declare i32 @s2n_connection_get_session(ptr noundef, ptr noundef, i64 noundef) #3

declare i32 @s2n_shutdown(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_connection_set_session(ptr noundef, ptr noundef, i64 noundef) #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

declare i32 @s2n_io_pair_close_one_end(ptr noundef, i32 noundef) #3

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

209:                                              ; preds = %2
  br label %210

210:                                              ; preds = %209
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %211 = load ptr, ptr @stdout, align 8, !tbaa !9
  %212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef @.str.10, ptr noundef @.str.2) #12
  %213 = load ptr, ptr @stdout, align 8, !tbaa !9
  %214 = call i32 @fflush(ptr noundef %213)
  br label %215

215:                                              ; preds = %210
  %216 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %217 = icmp eq i32 %216, -1
  br i1 %217, label %218, label %271

218:                                              ; preds = %215
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #12
  %221 = call ptr @__errno_location() #13
  %222 = load i32, ptr %221, align 4, !tbaa !5
  store i32 %222, ptr %22, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 @s2n_print_stacktrace(ptr noundef %223)
  %225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %226 = trunc i8 %225 to i1
  br i1 %226, label %227, label %249

227:                                              ; preds = %220
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @fileno(ptr noundef %228) #12
  %230 = call i32 @isatty(i32 noundef %229) #12
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %249

232:                                              ; preds = %227
  %233 = load i32, ptr %22, align 4, !tbaa !5
  %234 = call ptr @__errno_location() #13
  store i32 %233, ptr %234, 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 @.str.3)
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror_debug(i32 noundef %241, ptr noundef @.str.3)
  %243 = call ptr @__errno_location() #13
  %244 = load i32, ptr %243, align 4, !tbaa !5
  %245 = call ptr @strerror(i32 noundef %244) #12
  %246 = call ptr @__errno_location() #13
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef @.str, i32 noundef %236, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 314, ptr noundef %239, ptr noundef %242, ptr noundef %245, i32 noundef %247) #12
  br label %266

249:                                              ; preds = %227, %220
  %250 = load i32, ptr %22, align 4, !tbaa !5
  %251 = call ptr @__errno_location() #13
  store i32 %250, ptr %251, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call ptr @s2n_strerror(i32 noundef %255, ptr noundef @.str.3)
  %257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef @.str.3)
  %260 = call ptr @__errno_location() #13
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = call ptr @strerror(i32 noundef %261) #12
  %263 = call ptr @__errno_location() #13
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef @.str.4, i32 noundef %253, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 314, ptr noundef %256, ptr noundef %259, ptr noundef %262, i32 noundef %264) #12
  br label %266

266:                                              ; preds = %249, %232
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  call void @exit(i32 noundef 1) #14
  unreachable

269:                                              ; No predecessors!
  br label %270

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %270, %215
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  br label %274

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

279:                                              ; preds = %274
  br label %280

280:                                              ; preds = %279
  br label %281

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

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

293:                                              ; preds = %288
  %294 = load i32, ptr %23, align 4, !tbaa !5
  %295 = call ptr @__errno_location() #13
  store i32 %294, ptr %295, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror(i32 noundef %299, ptr noundef @.str.3)
  %301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror_debug(i32 noundef %302, ptr noundef @.str.3)
  %304 = call ptr @__errno_location() #13
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @strerror(i32 noundef %305) #12
  %307 = call ptr @__errno_location() #13
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef @.str, i32 noundef %297, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 314, ptr noundef %300, ptr noundef %303, ptr noundef %306, i32 noundef %308) #12
  br label %327

310:                                              ; preds = %288, %281
  %311 = load i32, ptr %23, align 4, !tbaa !5
  %312 = call ptr @__errno_location() #13
  store i32 %311, ptr %312, align 4, !tbaa !5
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror(i32 noundef %316, ptr noundef @.str.3)
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror_debug(i32 noundef %319, ptr noundef @.str.3)
  %321 = call ptr @__errno_location() #13
  %322 = load i32, ptr %321, align 4, !tbaa !5
  %323 = call ptr @strerror(i32 noundef %322) #12
  %324 = call ptr @__errno_location() #13
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %313, ptr noundef @.str.4, i32 noundef %314, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 314, ptr noundef %317, ptr noundef %320, ptr noundef %323, i32 noundef %325) #12
  br label %327

327:                                              ; preds = %310, %293
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #12
  br label %328

328:                                              ; preds = %327
  br label %329

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

330:                                              ; No predecessors!
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331, %274
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336
  %338 = call i32 @s2n_init()
  %339 = icmp eq i32 %338, -1
  br i1 %339, label %340, label %393

340:                                              ; preds = %337
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #12
  %343 = call ptr @__errno_location() #13
  %344 = load i32, ptr %343, align 4, !tbaa !5
  store i32 %344, ptr %24, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = call i32 @s2n_print_stacktrace(ptr noundef %345)
  %347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %348 = trunc i8 %347 to i1
  br i1 %348, label %349, label %371

349:                                              ; preds = %342
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @fileno(ptr noundef %350) #12
  %352 = call i32 @isatty(i32 noundef %351) #12
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %354, label %371

354:                                              ; preds = %349
  %355 = load i32, ptr %24, align 4, !tbaa !5
  %356 = call ptr @__errno_location() #13
  store i32 %355, ptr %356, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %360 = load i32, ptr %359, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror(i32 noundef %360, ptr noundef @.str.3)
  %362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef @.str.3)
  %365 = call ptr @__errno_location() #13
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = call ptr @strerror(i32 noundef %366) #12
  %368 = call ptr @__errno_location() #13
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef @.str, i32 noundef %358, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 314, ptr noundef %361, ptr noundef %364, ptr noundef %367, i32 noundef %369) #12
  br label %388

371:                                              ; preds = %349, %342
  %372 = load i32, ptr %24, align 4, !tbaa !5
  %373 = call ptr @__errno_location() #13
  store i32 %372, ptr %373, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef @.str.3)
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef @.str.3)
  %382 = call ptr @__errno_location() #13
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #12
  %385 = call ptr @__errno_location() #13
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.4, i32 noundef %375, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 314, ptr noundef %378, ptr noundef %381, ptr noundef %384, i32 noundef %386) #12
  br label %388

388:                                              ; preds = %371, %354
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #12
  br label %389

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  call void @exit(i32 noundef 1) #14
  unreachable

391:                                              ; No predecessors!
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392, %337
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  br label %396

396:                                              ; preds = %395
  br label %397

397:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #12
  br label %398

398:                                              ; preds = %397
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @test_count, align 4, !tbaa !5
  %401 = call i32 @s2n_io_pair_init(ptr noundef %25)
  %402 = icmp eq i32 %401, -1
  br i1 %402, label %403, label %456

403:                                              ; preds = %398
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #12
  %406 = call ptr @__errno_location() #13
  %407 = load i32, ptr %406, align 4, !tbaa !5
  store i32 %407, ptr %26, align 4, !tbaa !5
  %408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %409 = call i32 @s2n_print_stacktrace(ptr noundef %408)
  %410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %411 = trunc i8 %410 to i1
  br i1 %411, label %412, label %434

412:                                              ; preds = %405
  %413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %414 = call i32 @fileno(ptr noundef %413) #12
  %415 = call i32 @isatty(i32 noundef %414) #12
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %434

417:                                              ; preds = %412
  %418 = load i32, ptr %26, align 4, !tbaa !5
  %419 = call ptr @__errno_location() #13
  store i32 %418, ptr %419, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror(i32 noundef %423, ptr noundef @.str.3)
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef @.str.3)
  %428 = call ptr @__errno_location() #13
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #12
  %431 = call ptr @__errno_location() #13
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %420, ptr noundef @.str, i32 noundef %421, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 318, ptr noundef %424, ptr noundef %427, ptr noundef %430, i32 noundef %432) #12
  br label %451

434:                                              ; preds = %412, %405
  %435 = load i32, ptr %26, align 4, !tbaa !5
  %436 = call ptr @__errno_location() #13
  store i32 %435, ptr %436, align 4, !tbaa !5
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror(i32 noundef %440, ptr noundef @.str.3)
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef @.str.3)
  %445 = call ptr @__errno_location() #13
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @strerror(i32 noundef %446) #12
  %448 = call ptr @__errno_location() #13
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef @.str.4, i32 noundef %438, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 318, ptr noundef %441, ptr noundef %444, ptr noundef %447, i32 noundef %449) #12
  br label %451

451:                                              ; preds = %434, %417
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #12
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  call void @exit(i32 noundef 1) #14
  unreachable

454:                                              ; No predecessors!
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455, %398
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  %459 = call i32 @fork() #12
  store i32 %459, ptr %10, align 4, !tbaa !5
  %460 = load i32, ptr %10, align 4, !tbaa !5
  %461 = icmp eq i32 %460, 0
  br i1 %461, label %462, label %524

462:                                              ; preds = %458
  br label %463

463:                                              ; preds = %462
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr @test_count, align 4, !tbaa !5
  %466 = call i32 @s2n_io_pair_close_one_end(ptr noundef %25, i32 noundef 0)
  %467 = icmp eq i32 %466, -1
  br i1 %467, label %468, label %521

468:                                              ; preds = %463
  br label %469

469:                                              ; preds = %468
  br label %470

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  %471 = call ptr @__errno_location() #13
  %472 = load i32, ptr %471, align 4, !tbaa !5
  store i32 %472, ptr %27, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = call i32 @s2n_print_stacktrace(ptr noundef %473)
  %475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %476 = trunc i8 %475 to i1
  br i1 %476, label %477, label %499

477:                                              ; preds = %470
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = call i32 @fileno(ptr noundef %478) #12
  %480 = call i32 @isatty(i32 noundef %479) #12
  %481 = icmp ne i32 %480, 0
  br i1 %481, label %482, label %499

482:                                              ; preds = %477
  %483 = load i32, ptr %27, align 4, !tbaa !5
  %484 = call ptr @__errno_location() #13
  store i32 %483, ptr %484, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef @.str.3)
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef @.str.3)
  %493 = call ptr @__errno_location() #13
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #12
  %496 = call ptr @__errno_location() #13
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef @.str, i32 noundef %486, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 324, ptr noundef %489, ptr noundef %492, ptr noundef %495, i32 noundef %497) #12
  br label %516

499:                                              ; preds = %477, %470
  %500 = load i32, ptr %27, align 4, !tbaa !5
  %501 = call ptr @__errno_location() #13
  store i32 %500, ptr %501, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef @.str.3)
  %507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef @.str.3)
  %510 = call ptr @__errno_location() #13
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #12
  %513 = call ptr @__errno_location() #13
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef @.str.4, i32 noundef %503, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 324, ptr noundef %506, ptr noundef %509, ptr noundef %512, i32 noundef %514) #12
  br label %516

516:                                              ; preds = %499, %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @exit(i32 noundef 1) #14
  unreachable

519:                                              ; No predecessors!
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520, %463
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  call void @mock_client(ptr noundef %25)
  br label %524

524:                                              ; preds = %523, %458
  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 noalias ptr @malloc(i64 noundef 12000) #15
  store ptr %528, ptr %11, align 8, !tbaa !9
  %529 = icmp eq ptr %528, null
  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 %28) #12
  %533 = call ptr @__errno_location() #13
  %534 = load i32, ptr %533, align 4, !tbaa !5
  store i32 %534, ptr %28, 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 !13, !range !15, !noundef !16
  %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) #12
  %542 = call i32 @isatty(i32 noundef %541) #12
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %561

544:                                              ; preds = %539
  %545 = load i32, ptr %28, align 4, !tbaa !5
  %546 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %555 = call ptr @__errno_location() #13
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #12
  %558 = call ptr @__errno_location() #13
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %547, ptr noundef @.str, i32 noundef %548, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 330, ptr noundef %551, ptr noundef %554, ptr noundef %557, i32 noundef %559) #12
  br label %578

561:                                              ; preds = %539, %532
  %562 = load i32, ptr %28, align 4, !tbaa !5
  %563 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %572 = call ptr @__errno_location() #13
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @strerror(i32 noundef %573) #12
  %575 = call ptr @__errno_location() #13
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %564, ptr noundef @.str.4, i32 noundef %565, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 330, ptr noundef %568, ptr noundef %571, ptr noundef %574, i32 noundef %576) #12
  br label %578

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

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579
  call void @exit(i32 noundef 1) #14
  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
  br label %586

586:                                              ; preds = %585
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = add nsw i32 %587, 1
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = call noalias ptr @malloc(i64 noundef 12000) #15
  store ptr %589, ptr %12, align 8, !tbaa !9
  %590 = icmp eq ptr %589, null
  br i1 %590, label %591, label %644

591:                                              ; preds = %586
  br label %592

592:                                              ; preds = %591
  br label %593

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

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

605:                                              ; preds = %600
  %606 = load i32, ptr %29, align 4, !tbaa !5
  %607 = call ptr @__errno_location() #13
  store i32 %606, ptr %607, align 4, !tbaa !5
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = load i32, ptr @test_count, align 4, !tbaa !5
  %610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call ptr @s2n_strerror(i32 noundef %611, ptr noundef @.str.3)
  %613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef @.str.3)
  %616 = call ptr @__errno_location() #13
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @strerror(i32 noundef %617) #12
  %619 = call ptr @__errno_location() #13
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %608, ptr noundef @.str, i32 noundef %609, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 331, ptr noundef %612, ptr noundef %615, ptr noundef %618, i32 noundef %620) #12
  br label %639

622:                                              ; preds = %600, %593
  %623 = load i32, ptr %29, align 4, !tbaa !5
  %624 = call ptr @__errno_location() #13
  store i32 %623, ptr %624, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = call ptr @s2n_strerror(i32 noundef %628, ptr noundef @.str.3)
  %630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %631 = load i32, ptr %630, align 4, !tbaa !5
  %632 = call ptr @s2n_strerror_debug(i32 noundef %631, ptr noundef @.str.3)
  %633 = call ptr @__errno_location() #13
  %634 = load i32, ptr %633, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #12
  %636 = call ptr @__errno_location() #13
  %637 = load i32, ptr %636, align 4, !tbaa !5
  %638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %625, ptr noundef @.str.4, i32 noundef %626, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 331, ptr noundef %629, ptr noundef %632, ptr noundef %635, i32 noundef %637) #12
  br label %639

639:                                              ; preds = %622, %605
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #12
  br label %640

640:                                              ; preds = %639
  br label %641

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

642:                                              ; No predecessors!
  br label %643

643:                                              ; preds = %642
  br label %644

644:                                              ; preds = %643, %586
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = call i32 @s2n_io_pair_close_one_end(ptr noundef %25, i32 noundef 1)
  %651 = icmp eq i32 %650, -1
  br i1 %651, label %652, label %705

652:                                              ; preds = %647
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #12
  %655 = call ptr @__errno_location() #13
  %656 = load i32, ptr %655, align 4, !tbaa !5
  store i32 %656, ptr %30, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @s2n_print_stacktrace(ptr noundef %657)
  %659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %660 = trunc i8 %659 to i1
  br i1 %660, label %661, label %683

661:                                              ; preds = %654
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = call i32 @fileno(ptr noundef %662) #12
  %664 = call i32 @isatty(i32 noundef %663) #12
  %665 = icmp ne i32 %664, 0
  br i1 %665, label %666, label %683

666:                                              ; preds = %661
  %667 = load i32, ptr %30, align 4, !tbaa !5
  %668 = call ptr @__errno_location() #13
  store i32 %667, ptr %668, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror(i32 noundef %672, ptr noundef @.str.3)
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror_debug(i32 noundef %675, ptr noundef @.str.3)
  %677 = call ptr @__errno_location() #13
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @strerror(i32 noundef %678) #12
  %680 = call ptr @__errno_location() #13
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef @.str, i32 noundef %670, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 334, ptr noundef %673, ptr noundef %676, ptr noundef %679, i32 noundef %681) #12
  br label %700

683:                                              ; preds = %661, %654
  %684 = load i32, ptr %30, align 4, !tbaa !5
  %685 = call ptr @__errno_location() #13
  store i32 %684, ptr %685, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror(i32 noundef %689, ptr noundef @.str.3)
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror_debug(i32 noundef %692, ptr noundef @.str.3)
  %694 = call ptr @__errno_location() #13
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @strerror(i32 noundef %695) #12
  %697 = call ptr @__errno_location() #13
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %686, ptr noundef @.str.4, i32 noundef %687, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 334, ptr noundef %690, ptr noundef %693, ptr noundef %696, i32 noundef %698) #12
  br label %700

700:                                              ; preds = %683, %666
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %701

701:                                              ; preds = %700
  br label %702

702:                                              ; preds = %701
  call void @exit(i32 noundef 1) #14
  unreachable

703:                                              ; No predecessors!
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704, %647
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  call void @initialize_cache()
  br label %708

708:                                              ; preds = %707
  %709 = load i32, ptr @test_count, align 4, !tbaa !5
  %710 = add nsw i32 %709, 1
  store i32 %710, ptr @test_count, align 4, !tbaa !5
  %711 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %711, ptr %6, align 8, !tbaa !9
  %712 = icmp eq ptr %711, null
  br i1 %712, label %713, label %766

713:                                              ; preds = %708
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #12
  %716 = call ptr @__errno_location() #13
  %717 = load i32, ptr %716, align 4, !tbaa !5
  store i32 %717, ptr %31, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = call i32 @s2n_print_stacktrace(ptr noundef %718)
  %720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %721 = trunc i8 %720 to i1
  br i1 %721, label %722, label %744

722:                                              ; preds = %715
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @fileno(ptr noundef %723) #12
  %725 = call i32 @isatty(i32 noundef %724) #12
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %744

727:                                              ; preds = %722
  %728 = load i32, ptr %31, align 4, !tbaa !5
  %729 = call ptr @__errno_location() #13
  store i32 %728, ptr %729, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror(i32 noundef %733, ptr noundef @.str.3)
  %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_debug(i32 noundef %736, ptr noundef @.str.3)
  %738 = call ptr @__errno_location() #13
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @strerror(i32 noundef %739) #12
  %741 = call ptr @__errno_location() #13
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef @.str, i32 noundef %731, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 340, ptr noundef %734, ptr noundef %737, ptr noundef %740, i32 noundef %742) #12
  br label %761

744:                                              ; preds = %722, %715
  %745 = load i32, ptr %31, align 4, !tbaa !5
  %746 = call ptr @__errno_location() #13
  store i32 %745, ptr %746, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror(i32 noundef %750, ptr noundef @.str.3)
  %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_debug(i32 noundef %753, ptr noundef @.str.3)
  %755 = call ptr @__errno_location() #13
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @strerror(i32 noundef %756) #12
  %758 = call ptr @__errno_location() #13
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef @.str.4, i32 noundef %748, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 340, ptr noundef %751, ptr noundef %754, ptr noundef %757, i32 noundef %759) #12
  br label %761

761:                                              ; preds = %744, %727
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #12
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  call void @exit(i32 noundef 1) #14
  unreachable

764:                                              ; No predecessors!
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765, %708
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = call ptr @s2n_config_new()
  store ptr %772, ptr %7, align 8, !tbaa !9
  %773 = icmp eq ptr %772, null
  br i1 %773, label %774, label %827

774:                                              ; preds = %769
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #12
  %777 = call ptr @__errno_location() #13
  %778 = load i32, ptr %777, align 4, !tbaa !5
  store i32 %778, ptr %32, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779)
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %782 = trunc i8 %781 to i1
  br i1 %782, label %783, label %805

783:                                              ; preds = %776
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #12
  %786 = call i32 @isatty(i32 noundef %785) #12
  %787 = icmp ne i32 %786, 0
  br i1 %787, label %788, label %805

788:                                              ; preds = %783
  %789 = load i32, ptr %32, align 4, !tbaa !5
  %790 = call ptr @__errno_location() #13
  store i32 %789, ptr %790, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef @.str.3)
  %796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror_debug(i32 noundef %797, ptr noundef @.str.3)
  %799 = call ptr @__errno_location() #13
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #12
  %802 = call ptr @__errno_location() #13
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef @.str, i32 noundef %792, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 341, ptr noundef %795, ptr noundef %798, ptr noundef %801, i32 noundef %803) #12
  br label %822

805:                                              ; preds = %783, %776
  %806 = load i32, ptr %32, align 4, !tbaa !5
  %807 = call ptr @__errno_location() #13
  store i32 %806, ptr %807, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror(i32 noundef %811, ptr noundef @.str.3)
  %813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef @.str.3)
  %816 = call ptr @__errno_location() #13
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @strerror(i32 noundef %817) #12
  %819 = call ptr @__errno_location() #13
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %808, ptr noundef @.str.4, i32 noundef %809, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 341, ptr noundef %812, ptr noundef %815, ptr noundef %818, i32 noundef %820) #12
  br label %822

822:                                              ; preds = %805, %788
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  call void @exit(i32 noundef 1) #14
  unreachable

825:                                              ; No predecessors!
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826, %769
  br label %828

828:                                              ; preds = %827
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = add nsw i32 %831, 1
  store i32 %832, ptr @test_count, align 4, !tbaa !5
  %833 = load ptr, ptr %7, align 8, !tbaa !9
  %834 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %833, ptr noundef @.str.7)
  %835 = icmp eq i32 %834, -1
  br i1 %835, label %836, label %889

836:                                              ; preds = %830
  br label %837

837:                                              ; preds = %836
  br label %838

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

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

850:                                              ; preds = %845
  %851 = load i32, ptr %33, align 4, !tbaa !5
  %852 = call ptr @__errno_location() #13
  store i32 %851, ptr %852, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef @.str.3)
  %858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef @.str.3)
  %861 = call ptr @__errno_location() #13
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @strerror(i32 noundef %862) #12
  %864 = call ptr @__errno_location() #13
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef @.str, i32 noundef %854, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 342, ptr noundef %857, ptr noundef %860, ptr noundef %863, i32 noundef %865) #12
  br label %884

867:                                              ; preds = %845, %838
  %868 = load i32, ptr %33, align 4, !tbaa !5
  %869 = call ptr @__errno_location() #13
  store i32 %868, ptr %869, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror(i32 noundef %873, ptr noundef @.str.3)
  %875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror_debug(i32 noundef %876, ptr noundef @.str.3)
  %878 = call ptr @__errno_location() #13
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @strerror(i32 noundef %879) #12
  %881 = call ptr @__errno_location() #13
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef @.str.4, i32 noundef %871, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 342, ptr noundef %874, ptr noundef %877, ptr noundef %880, i32 noundef %882) #12
  br label %884

884:                                              ; preds = %867, %850
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #12
  br label %885

885:                                              ; preds = %884
  br label %886

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

887:                                              ; No predecessors!
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888, %830
  br label %890

890:                                              ; preds = %889
  br label %891

891:                                              ; preds = %890
  br label %892

892:                                              ; preds = %891
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = add nsw i32 %893, 1
  store i32 %894, ptr @test_count, align 4, !tbaa !5
  %895 = load ptr, ptr %11, align 8, !tbaa !9
  %896 = call i32 @s2n_read_test_pem(ptr noundef @.str.22, ptr noundef %895, i64 noundef 12000)
  %897 = icmp eq i32 %896, -1
  br i1 %897, label %898, label %951

898:                                              ; preds = %892
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #12
  %901 = call ptr @__errno_location() #13
  %902 = load i32, ptr %901, align 4, !tbaa !5
  store i32 %902, ptr %34, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @s2n_print_stacktrace(ptr noundef %903)
  %905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %906 = trunc i8 %905 to i1
  br i1 %906, label %907, label %929

907:                                              ; preds = %900
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @fileno(ptr noundef %908) #12
  %910 = call i32 @isatty(i32 noundef %909) #12
  %911 = icmp ne i32 %910, 0
  br i1 %911, label %912, label %929

912:                                              ; preds = %907
  %913 = load i32, ptr %34, align 4, !tbaa !5
  %914 = call ptr @__errno_location() #13
  store i32 %913, ptr %914, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror(i32 noundef %918, ptr noundef @.str.3)
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror_debug(i32 noundef %921, ptr noundef @.str.3)
  %923 = call ptr @__errno_location() #13
  %924 = load i32, ptr %923, align 4, !tbaa !5
  %925 = call ptr @strerror(i32 noundef %924) #12
  %926 = call ptr @__errno_location() #13
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef @.str, i32 noundef %916, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 344, ptr noundef %919, ptr noundef %922, ptr noundef %925, i32 noundef %927) #12
  br label %946

929:                                              ; preds = %907, %900
  %930 = load i32, ptr %34, align 4, !tbaa !5
  %931 = call ptr @__errno_location() #13
  store i32 %930, ptr %931, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef @.str.3)
  %937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror_debug(i32 noundef %938, ptr noundef @.str.3)
  %940 = call ptr @__errno_location() #13
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @strerror(i32 noundef %941) #12
  %943 = call ptr @__errno_location() #13
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef @.str.4, i32 noundef %933, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 344, ptr noundef %936, ptr noundef %939, ptr noundef %942, i32 noundef %944) #12
  br label %946

946:                                              ; preds = %929, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #12
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  call void @exit(i32 noundef 1) #14
  unreachable

949:                                              ; No predecessors!
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950, %892
  br label %952

952:                                              ; preds = %951
  br label %953

953:                                              ; preds = %952
  br label %954

954:                                              ; preds = %953
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = add nsw i32 %955, 1
  store i32 %956, ptr @test_count, align 4, !tbaa !5
  %957 = load ptr, ptr %12, align 8, !tbaa !9
  %958 = call i32 @s2n_read_test_pem(ptr noundef @.str.24, ptr noundef %957, i64 noundef 12000)
  %959 = icmp eq i32 %958, -1
  br i1 %959, label %960, label %1013

960:                                              ; preds = %954
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #12
  %963 = call ptr @__errno_location() #13
  %964 = load i32, ptr %963, align 4, !tbaa !5
  store i32 %964, ptr %35, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @s2n_print_stacktrace(ptr noundef %965)
  %967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %968 = trunc i8 %967 to i1
  br i1 %968, label %969, label %991

969:                                              ; preds = %962
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @fileno(ptr noundef %970) #12
  %972 = call i32 @isatty(i32 noundef %971) #12
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %991

974:                                              ; preds = %969
  %975 = load i32, ptr %35, align 4, !tbaa !5
  %976 = call ptr @__errno_location() #13
  store i32 %975, ptr %976, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef @.str.3)
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef @.str.3)
  %985 = call ptr @__errno_location() #13
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #12
  %988 = call ptr @__errno_location() #13
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str, i32 noundef %978, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 345, ptr noundef %981, ptr noundef %984, ptr noundef %987, i32 noundef %989) #12
  br label %1008

991:                                              ; preds = %969, %962
  %992 = load i32, ptr %35, align 4, !tbaa !5
  %993 = call ptr @__errno_location() #13
  store i32 %992, ptr %993, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef @.str.3)
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef @.str.3)
  %1002 = call ptr @__errno_location() #13
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #12
  %1005 = call ptr @__errno_location() #13
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef @.str.4, i32 noundef %995, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 345, ptr noundef %998, ptr noundef %1001, ptr noundef %1004, i32 noundef %1006) #12
  br label %1008

1008:                                             ; preds = %991, %974
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #12
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009
  call void @exit(i32 noundef 1) #14
  unreachable

1011:                                             ; No predecessors!
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012, %954
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = add nsw i32 %1017, 1
  store i32 %1018, ptr @test_count, align 4, !tbaa !5
  %1019 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %1019, ptr %13, align 8, !tbaa !9
  %1020 = icmp eq ptr %1019, null
  br i1 %1020, label %1021, label %1074

1021:                                             ; preds = %1016
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #12
  %1024 = call ptr @__errno_location() #13
  %1025 = load i32, ptr %1024, align 4, !tbaa !5
  store i32 %1025, ptr %36, align 4, !tbaa !5
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = call i32 @s2n_print_stacktrace(ptr noundef %1026)
  %1028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1029 = trunc i8 %1028 to i1
  br i1 %1029, label %1030, label %1052

1030:                                             ; preds = %1023
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = call i32 @fileno(ptr noundef %1031) #12
  %1033 = call i32 @isatty(i32 noundef %1032) #12
  %1034 = icmp ne i32 %1033, 0
  br i1 %1034, label %1035, label %1052

1035:                                             ; preds = %1030
  %1036 = load i32, ptr %36, align 4, !tbaa !5
  %1037 = call ptr @__errno_location() #13
  store i32 %1036, ptr %1037, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror(i32 noundef %1041, ptr noundef @.str.3)
  %1043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = call ptr @s2n_strerror_debug(i32 noundef %1044, ptr noundef @.str.3)
  %1046 = call ptr @__errno_location() #13
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  %1048 = call ptr @strerror(i32 noundef %1047) #12
  %1049 = call ptr @__errno_location() #13
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1038, ptr noundef @.str, i32 noundef %1039, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 346, ptr noundef %1042, ptr noundef %1045, ptr noundef %1048, i32 noundef %1050) #12
  br label %1069

1052:                                             ; preds = %1030, %1023
  %1053 = load i32, ptr %36, align 4, !tbaa !5
  %1054 = call ptr @__errno_location() #13
  store i32 %1053, ptr %1054, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror(i32 noundef %1058, ptr noundef @.str.3)
  %1060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror_debug(i32 noundef %1061, ptr noundef @.str.3)
  %1063 = call ptr @__errno_location() #13
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call ptr @strerror(i32 noundef %1064) #12
  %1066 = call ptr @__errno_location() #13
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1055, ptr noundef @.str.4, i32 noundef %1056, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 346, ptr noundef %1059, ptr noundef %1062, ptr noundef %1065, i32 noundef %1067) #12
  br label %1069

1069:                                             ; preds = %1052, %1035
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #12
  br label %1070

1070:                                             ; preds = %1069
  br label %1071

1071:                                             ; preds = %1070
  call void @exit(i32 noundef 1) #14
  unreachable

1072:                                             ; No predecessors!
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073, %1016
  br label %1075

1075:                                             ; preds = %1074
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = add nsw i32 %1078, 1
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = load ptr, ptr %13, align 8, !tbaa !9
  %1081 = load ptr, ptr %11, align 8, !tbaa !9
  %1082 = load ptr, ptr %12, align 8, !tbaa !9
  %1083 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1080, ptr noundef %1081, ptr noundef %1082)
  %1084 = icmp eq i32 %1083, -1
  br i1 %1084, label %1085, label %1138

1085:                                             ; preds = %1077
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #12
  %1088 = call ptr @__errno_location() #13
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  store i32 %1089, ptr %37, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @s2n_print_stacktrace(ptr noundef %1090)
  %1092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1093 = trunc i8 %1092 to i1
  br i1 %1093, label %1094, label %1116

1094:                                             ; preds = %1087
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @fileno(ptr noundef %1095) #12
  %1097 = call i32 @isatty(i32 noundef %1096) #12
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1116

1099:                                             ; preds = %1094
  %1100 = load i32, ptr %37, align 4, !tbaa !5
  %1101 = call ptr @__errno_location() #13
  store i32 %1100, ptr %1101, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror(i32 noundef %1105, ptr noundef @.str.3)
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef @.str.3)
  %1110 = call ptr @__errno_location() #13
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #12
  %1113 = call ptr @__errno_location() #13
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef @.str, i32 noundef %1103, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 347, ptr noundef %1106, ptr noundef %1109, ptr noundef %1112, i32 noundef %1114) #12
  br label %1133

1116:                                             ; preds = %1094, %1087
  %1117 = load i32, ptr %37, align 4, !tbaa !5
  %1118 = call ptr @__errno_location() #13
  store i32 %1117, ptr %1118, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef @.str.3)
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef @.str.3)
  %1127 = call ptr @__errno_location() #13
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #12
  %1130 = call ptr @__errno_location() #13
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef @.str.4, i32 noundef %1120, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 347, ptr noundef %1123, ptr noundef %1126, ptr noundef %1129, i32 noundef %1131) #12
  br label %1133

1133:                                             ; preds = %1116, %1099
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #12
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134
  call void @exit(i32 noundef 1) #14
  unreachable

1136:                                             ; No predecessors!
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137, %1077
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = load ptr, ptr %7, align 8, !tbaa !9
  %1145 = load ptr, ptr %13, align 8, !tbaa !9
  %1146 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1144, ptr noundef %1145)
  %1147 = icmp eq i32 %1146, -1
  br i1 %1147, label %1148, label %1201

1148:                                             ; preds = %1141
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #12
  %1151 = call ptr @__errno_location() #13
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  store i32 %1152, ptr %38, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153)
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1156 = trunc i8 %1155 to i1
  br i1 %1156, label %1157, label %1179

1157:                                             ; preds = %1150
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @fileno(ptr noundef %1158) #12
  %1160 = call i32 @isatty(i32 noundef %1159) #12
  %1161 = icmp ne i32 %1160, 0
  br i1 %1161, label %1162, label %1179

1162:                                             ; preds = %1157
  %1163 = load i32, ptr %38, align 4, !tbaa !5
  %1164 = call ptr @__errno_location() #13
  store i32 %1163, ptr %1164, align 4, !tbaa !5
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror(i32 noundef %1168, ptr noundef @.str.3)
  %1170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @s2n_strerror_debug(i32 noundef %1171, ptr noundef @.str.3)
  %1173 = call ptr @__errno_location() #13
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @strerror(i32 noundef %1174) #12
  %1176 = call ptr @__errno_location() #13
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1165, ptr noundef @.str, i32 noundef %1166, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 348, ptr noundef %1169, ptr noundef %1172, ptr noundef %1175, i32 noundef %1177) #12
  br label %1196

1179:                                             ; preds = %1157, %1150
  %1180 = load i32, ptr %38, align 4, !tbaa !5
  %1181 = call ptr @__errno_location() #13
  store i32 %1180, ptr %1181, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror(i32 noundef %1185, ptr noundef @.str.3)
  %1187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef @.str.3)
  %1190 = call ptr @__errno_location() #13
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @strerror(i32 noundef %1191) #12
  %1193 = call ptr @__errno_location() #13
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1182, ptr noundef @.str.4, i32 noundef %1183, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 348, ptr noundef %1186, ptr noundef %1189, ptr noundef %1192, i32 noundef %1194) #12
  br label %1196

1196:                                             ; preds = %1179, %1162
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #12
  br label %1197

1197:                                             ; preds = %1196
  br label %1198

1198:                                             ; preds = %1197
  call void @exit(i32 noundef 1) #14
  unreachable

1199:                                             ; No predecessors!
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

1201:                                             ; preds = %1200, %1141
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203
  %1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %1206 = add nsw i32 %1205, 1
  store i32 %1206, ptr @test_count, align 4, !tbaa !5
  %1207 = load ptr, ptr %7, align 8, !tbaa !9
  %1208 = call i32 @s2n_config_set_cache_store_callback(ptr noundef %1207, ptr noundef @cache_store_callback, ptr noundef @session_cache)
  %1209 = icmp eq i32 %1208, -1
  br i1 %1209, label %1210, label %1263

1210:                                             ; preds = %1204
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #12
  %1213 = call ptr @__errno_location() #13
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  store i32 %1214, ptr %39, align 4, !tbaa !5
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = call i32 @s2n_print_stacktrace(ptr noundef %1215)
  %1217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1218 = trunc i8 %1217 to i1
  br i1 %1218, label %1219, label %1241

1219:                                             ; preds = %1212
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @fileno(ptr noundef %1220) #12
  %1222 = call i32 @isatty(i32 noundef %1221) #12
  %1223 = icmp ne i32 %1222, 0
  br i1 %1223, label %1224, label %1241

1224:                                             ; preds = %1219
  %1225 = load i32, ptr %39, align 4, !tbaa !5
  %1226 = call ptr @__errno_location() #13
  store i32 %1225, ptr %1226, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef @.str.3)
  %1232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror_debug(i32 noundef %1233, ptr noundef @.str.3)
  %1235 = call ptr @__errno_location() #13
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @strerror(i32 noundef %1236) #12
  %1238 = call ptr @__errno_location() #13
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef @.str, i32 noundef %1228, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 350, ptr noundef %1231, ptr noundef %1234, ptr noundef %1237, i32 noundef %1239) #12
  br label %1258

1241:                                             ; preds = %1219, %1212
  %1242 = load i32, ptr %39, align 4, !tbaa !5
  %1243 = call ptr @__errno_location() #13
  store i32 %1242, ptr %1243, align 4, !tbaa !5
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = load i32, ptr @test_count, align 4, !tbaa !5
  %1246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef @.str.3)
  %1249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1250, ptr noundef @.str.3)
  %1252 = call ptr @__errno_location() #13
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @strerror(i32 noundef %1253) #12
  %1255 = call ptr @__errno_location() #13
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1244, ptr noundef @.str.4, i32 noundef %1245, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 350, ptr noundef %1248, ptr noundef %1251, ptr noundef %1254, i32 noundef %1256) #12
  br label %1258

1258:                                             ; preds = %1241, %1224
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #12
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

1260:                                             ; preds = %1259
  call void @exit(i32 noundef 1) #14
  unreachable

1261:                                             ; No predecessors!
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

1263:                                             ; preds = %1262, %1204
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = add nsw i32 %1267, 1
  store i32 %1268, ptr @test_count, align 4, !tbaa !5
  %1269 = load ptr, ptr %7, align 8, !tbaa !9
  %1270 = call i32 @s2n_config_set_cache_retrieve_callback(ptr noundef %1269, ptr noundef @cache_retrieve_callback, ptr noundef @session_cache)
  %1271 = icmp eq i32 %1270, -1
  br i1 %1271, label %1272, label %1325

1272:                                             ; preds = %1266
  br label %1273

1273:                                             ; preds = %1272
  br label %1274

1274:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #12
  %1275 = call ptr @__errno_location() #13
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  store i32 %1276, ptr %40, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = call i32 @s2n_print_stacktrace(ptr noundef %1277)
  %1279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1280 = trunc i8 %1279 to i1
  br i1 %1280, label %1281, label %1303

1281:                                             ; preds = %1274
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @fileno(ptr noundef %1282) #12
  %1284 = call i32 @isatty(i32 noundef %1283) #12
  %1285 = icmp ne i32 %1284, 0
  br i1 %1285, label %1286, label %1303

1286:                                             ; preds = %1281
  %1287 = load i32, ptr %40, align 4, !tbaa !5
  %1288 = call ptr @__errno_location() #13
  store i32 %1287, ptr %1288, align 4, !tbaa !5
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror(i32 noundef %1292, ptr noundef @.str.3)
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror_debug(i32 noundef %1295, ptr noundef @.str.3)
  %1297 = call ptr @__errno_location() #13
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @strerror(i32 noundef %1298) #12
  %1300 = call ptr @__errno_location() #13
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1289, ptr noundef @.str, i32 noundef %1290, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 351, ptr noundef %1293, ptr noundef %1296, ptr noundef %1299, i32 noundef %1301) #12
  br label %1320

1303:                                             ; preds = %1281, %1274
  %1304 = load i32, ptr %40, align 4, !tbaa !5
  %1305 = call ptr @__errno_location() #13
  store i32 %1304, ptr %1305, align 4, !tbaa !5
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror(i32 noundef %1309, ptr noundef @.str.3)
  %1311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef @.str.3)
  %1314 = call ptr @__errno_location() #13
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @strerror(i32 noundef %1315) #12
  %1317 = call ptr @__errno_location() #13
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef @.str.4, i32 noundef %1307, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 351, ptr noundef %1310, ptr noundef %1313, ptr noundef %1316, i32 noundef %1318) #12
  br label %1320

1320:                                             ; preds = %1303, %1286
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #12
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  call void @exit(i32 noundef 1) #14
  unreachable

1323:                                             ; No predecessors!
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324, %1266
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

1328:                                             ; preds = %1327
  %1329 = load i32, ptr @test_count, align 4, !tbaa !5
  %1330 = add nsw i32 %1329, 1
  store i32 %1330, ptr @test_count, align 4, !tbaa !5
  %1331 = load ptr, ptr %7, align 8, !tbaa !9
  %1332 = call i32 @s2n_config_set_cache_delete_callback(ptr noundef %1331, ptr noundef @cache_delete_callback, ptr noundef @session_cache)
  %1333 = icmp eq i32 %1332, -1
  br i1 %1333, label %1334, label %1387

1334:                                             ; preds = %1328
  br label %1335

1335:                                             ; preds = %1334
  br label %1336

1336:                                             ; preds = %1335
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #12
  %1337 = call ptr @__errno_location() #13
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  store i32 %1338, ptr %41, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @s2n_print_stacktrace(ptr noundef %1339)
  %1341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1342 = trunc i8 %1341 to i1
  br i1 %1342, label %1343, label %1365

1343:                                             ; preds = %1336
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @fileno(ptr noundef %1344) #12
  %1346 = call i32 @isatty(i32 noundef %1345) #12
  %1347 = icmp ne i32 %1346, 0
  br i1 %1347, label %1348, label %1365

1348:                                             ; preds = %1343
  %1349 = load i32, ptr %41, align 4, !tbaa !5
  %1350 = call ptr @__errno_location() #13
  store i32 %1349, ptr %1350, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef @.str.3)
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror_debug(i32 noundef %1357, ptr noundef @.str.3)
  %1359 = call ptr @__errno_location() #13
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @strerror(i32 noundef %1360) #12
  %1362 = call ptr @__errno_location() #13
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef @.str, i32 noundef %1352, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 352, ptr noundef %1355, ptr noundef %1358, ptr noundef %1361, i32 noundef %1363) #12
  br label %1382

1365:                                             ; preds = %1343, %1336
  %1366 = load i32, ptr %41, align 4, !tbaa !5
  %1367 = call ptr @__errno_location() #13
  store i32 %1366, ptr %1367, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror(i32 noundef %1371, ptr noundef @.str.3)
  %1373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror_debug(i32 noundef %1374, ptr noundef @.str.3)
  %1376 = call ptr @__errno_location() #13
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call ptr @strerror(i32 noundef %1377) #12
  %1379 = call ptr @__errno_location() #13
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1368, ptr noundef @.str.4, i32 noundef %1369, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 352, ptr noundef %1372, ptr noundef %1375, ptr noundef %1378, i32 noundef %1380) #12
  br label %1382

1382:                                             ; preds = %1365, %1348
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #12
  br label %1383

1383:                                             ; preds = %1382
  br label %1384

1384:                                             ; preds = %1383
  call void @exit(i32 noundef 1) #14
  unreachable

1385:                                             ; No predecessors!
  br label %1386

1386:                                             ; preds = %1385
  br label %1387

1387:                                             ; preds = %1386, %1328
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

1390:                                             ; preds = %1389
  %1391 = load ptr, ptr %7, align 8, !tbaa !9
  %1392 = call i32 @s2n_config_set_session_cache_onoff(ptr noundef %1391, i8 noundef zeroext 1)
  %1393 = icmp sgt i32 %1392, -1
  br i1 %1393, label %1395, label %1394

1394:                                             ; preds = %1390
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %42, align 4
  br label %10684

1395:                                             ; preds = %1390
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load ptr, ptr %7, align 8, !tbaa !9
  %1400 = getelementptr inbounds %struct.s2n_config, ptr %1399, i32 0, i32 5
  %1401 = load ptr, ptr %1400, align 8, !tbaa !17
  %1402 = load ptr, ptr %7, align 8, !tbaa !9
  %1403 = getelementptr inbounds %struct.s2n_config, ptr %1402, i32 0, i32 8
  %1404 = load ptr, ptr %1403, align 8, !tbaa !23
  %1405 = call i32 %1401(ptr noundef %1404, ptr noundef %17)
  %1406 = icmp sgt i32 %1405, -1
  br i1 %1406, label %1408, label %1407

1407:                                             ; preds = %1398
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %42, align 4
  br label %10684

1408:                                             ; preds = %1398
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  %1412 = load i32, ptr @test_count, align 4, !tbaa !5
  %1413 = add nsw i32 %1412, 1
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = load ptr, ptr %7, align 8, !tbaa !9
  %1415 = getelementptr inbounds [16 x i8], ptr %20, i64 0, i64 0
  %1416 = getelementptr inbounds [16 x i8], ptr %20, i64 0, i64 0
  %1417 = call i64 @strlen(ptr noundef %1416) #16
  %1418 = trunc i64 %1417 to i32
  %1419 = getelementptr inbounds [32 x i8], ptr %21, i64 0, i64 0
  %1420 = load i64, ptr %17, align 8, !tbaa !11
  %1421 = udiv i64 %1420, 1000000000
  %1422 = call i32 @s2n_config_add_ticket_crypto_key(ptr noundef %1414, ptr noundef %1415, i32 noundef %1418, ptr noundef %1419, i32 noundef 32, i64 noundef %1421)
  %1423 = icmp eq i32 %1422, -1
  br i1 %1423, label %1424, label %1477

1424:                                             ; preds = %1411
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

1426:                                             ; preds = %1425
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #12
  %1427 = call ptr @__errno_location() #13
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  store i32 %1428, ptr %43, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @s2n_print_stacktrace(ptr noundef %1429)
  %1431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1432 = trunc i8 %1431 to i1
  br i1 %1432, label %1433, label %1455

1433:                                             ; preds = %1426
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = call i32 @fileno(ptr noundef %1434) #12
  %1436 = call i32 @isatty(i32 noundef %1435) #12
  %1437 = icmp ne i32 %1436, 0
  br i1 %1437, label %1438, label %1455

1438:                                             ; preds = %1433
  %1439 = load i32, ptr %43, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #13
  store i32 %1439, ptr %1440, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef @.str.3)
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror_debug(i32 noundef %1447, ptr noundef @.str.3)
  %1449 = call ptr @__errno_location() #13
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #12
  %1452 = call ptr @__errno_location() #13
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef @.str, i32 noundef %1442, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 359, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #12
  br label %1472

1455:                                             ; preds = %1433, %1426
  %1456 = load i32, ptr %43, align 4, !tbaa !5
  %1457 = call ptr @__errno_location() #13
  store i32 %1456, ptr %1457, align 4, !tbaa !5
  %1458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef @.str.3)
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror_debug(i32 noundef %1464, ptr noundef @.str.3)
  %1466 = call ptr @__errno_location() #13
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @strerror(i32 noundef %1467) #12
  %1469 = call ptr @__errno_location() #13
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1458, ptr noundef @.str.4, i32 noundef %1459, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 359, ptr noundef %1462, ptr noundef %1465, ptr noundef %1468, i32 noundef %1470) #12
  br label %1472

1472:                                             ; preds = %1455, %1438
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #12
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473
  call void @exit(i32 noundef 1) #14
  unreachable

1475:                                             ; No predecessors!
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476, %1411
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr @test_count, align 4, !tbaa !5
  %1483 = load ptr, ptr %6, align 8, !tbaa !9
  %1484 = load ptr, ptr %7, align 8, !tbaa !9
  %1485 = call i32 @s2n_connection_set_config(ptr noundef %1483, ptr noundef %1484)
  %1486 = icmp eq i32 %1485, -1
  br i1 %1486, label %1487, label %1540

1487:                                             ; preds = %1480
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #12
  %1490 = call ptr @__errno_location() #13
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  store i32 %1491, ptr %44, align 4, !tbaa !5
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = call i32 @s2n_print_stacktrace(ptr noundef %1492)
  %1494 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1495 = trunc i8 %1494 to i1
  br i1 %1495, label %1496, label %1518

1496:                                             ; preds = %1489
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1498 = call i32 @fileno(ptr noundef %1497) #12
  %1499 = call i32 @isatty(i32 noundef %1498) #12
  %1500 = icmp ne i32 %1499, 0
  br i1 %1500, label %1501, label %1518

1501:                                             ; preds = %1496
  %1502 = load i32, ptr %44, align 4, !tbaa !5
  %1503 = call ptr @__errno_location() #13
  store i32 %1502, ptr %1503, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror(i32 noundef %1507, ptr noundef @.str.3)
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef @.str.3)
  %1512 = call ptr @__errno_location() #13
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #12
  %1515 = call ptr @__errno_location() #13
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef @.str, i32 noundef %1505, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 361, ptr noundef %1508, ptr noundef %1511, ptr noundef %1514, i32 noundef %1516) #12
  br label %1535

1518:                                             ; preds = %1496, %1489
  %1519 = load i32, ptr %44, align 4, !tbaa !5
  %1520 = call ptr @__errno_location() #13
  store i32 %1519, ptr %1520, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror(i32 noundef %1524, ptr noundef @.str.3)
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror_debug(i32 noundef %1527, ptr noundef @.str.3)
  %1529 = call ptr @__errno_location() #13
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #12
  %1532 = call ptr @__errno_location() #13
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef @.str.4, i32 noundef %1522, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 361, ptr noundef %1525, ptr noundef %1528, ptr noundef %1531, i32 noundef %1533) #12
  br label %1535

1535:                                             ; preds = %1518, %1501
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #12
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  call void @exit(i32 noundef 1) #14
  unreachable

1538:                                             ; No predecessors!
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539, %1480
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

1543:                                             ; preds = %1542
  %1544 = load i32, ptr @test_count, align 4, !tbaa !5
  %1545 = add nsw i32 %1544, 1
  store i32 %1545, ptr @test_count, align 4, !tbaa !5
  %1546 = load ptr, ptr %6, align 8, !tbaa !9
  %1547 = call i32 @s2n_connection_set_io_pair(ptr noundef %1546, ptr noundef %25)
  %1548 = icmp eq i32 %1547, -1
  br i1 %1548, label %1549, label %1602

1549:                                             ; preds = %1543
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

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

1558:                                             ; preds = %1551
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = call i32 @fileno(ptr noundef %1559) #12
  %1561 = call i32 @isatty(i32 noundef %1560) #12
  %1562 = icmp ne i32 %1561, 0
  br i1 %1562, label %1563, label %1580

1563:                                             ; preds = %1558
  %1564 = load i32, ptr %45, align 4, !tbaa !5
  %1565 = call ptr @__errno_location() #13
  store i32 %1564, ptr %1565, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror(i32 noundef %1569, ptr noundef @.str.3)
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef @.str.3)
  %1574 = call ptr @__errno_location() #13
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @strerror(i32 noundef %1575) #12
  %1577 = call ptr @__errno_location() #13
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef @.str, i32 noundef %1567, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 364, ptr noundef %1570, ptr noundef %1573, ptr noundef %1576, i32 noundef %1578) #12
  br label %1597

1580:                                             ; preds = %1558, %1551
  %1581 = load i32, ptr %45, align 4, !tbaa !5
  %1582 = call ptr @__errno_location() #13
  store i32 %1581, ptr %1582, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror(i32 noundef %1586, ptr noundef @.str.3)
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror_debug(i32 noundef %1589, ptr noundef @.str.3)
  %1591 = call ptr @__errno_location() #13
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @strerror(i32 noundef %1592) #12
  %1594 = call ptr @__errno_location() #13
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef @.str.4, i32 noundef %1584, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 364, ptr noundef %1587, ptr noundef %1590, ptr noundef %1593, i32 noundef %1595) #12
  br label %1597

1597:                                             ; preds = %1580, %1563
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #12
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  call void @exit(i32 noundef 1) #14
  unreachable

1600:                                             ; No predecessors!
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601, %1543
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #12
  %1605 = load ptr, ptr %6, align 8, !tbaa !9
  %1606 = call i32 @s2n_negotiate(ptr noundef %1605, ptr noundef %8)
  store i32 %1606, ptr %46, align 4, !tbaa !5
  br label %1607

1607:                                             ; preds = %1604
  %1608 = load i32, ptr @test_count, align 4, !tbaa !5
  %1609 = add nsw i32 %1608, 1
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = load i32, ptr %46, align 4, !tbaa !5
  %1611 = icmp eq i32 %1610, -1
  br i1 %1611, label %1665, label %1612

1612:                                             ; preds = %1607
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

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

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

1626:                                             ; preds = %1621
  %1627 = load i32, ptr %47, align 4, !tbaa !5
  %1628 = call ptr @__errno_location() #13
  store i32 %1627, ptr %1628, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef @.str.3)
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror_debug(i32 noundef %1635, ptr noundef @.str.3)
  %1637 = call ptr @__errno_location() #13
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #12
  %1640 = call ptr @__errno_location() #13
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef @.str, i32 noundef %1630, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 371, ptr noundef %1633, ptr noundef %1636, ptr noundef %1639, i32 noundef %1641) #12
  br label %1660

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

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

1661:                                             ; preds = %1660
  br label %1662

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

1663:                                             ; No predecessors!
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

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

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  br label %1668

1668:                                             ; preds = %1667
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr @test_count, align 4, !tbaa !5
  %1671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call i32 @s2n_error_get_type(i32 noundef %1672)
  %1674 = icmp eq i32 %1673, 3
  br i1 %1674, label %1728, label %1675

1675:                                             ; preds = %1668
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

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

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #12
  %1687 = call i32 @isatty(i32 noundef %1686) #12
  %1688 = icmp ne i32 %1687, 0
  br i1 %1688, label %1689, label %1706

1689:                                             ; preds = %1684
  %1690 = load i32, ptr %48, align 4, !tbaa !5
  %1691 = call ptr @__errno_location() #13
  store i32 %1690, ptr %1691, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = load i32, ptr @test_count, align 4, !tbaa !5
  %1694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror(i32 noundef %1695, ptr noundef @.str.3)
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror_debug(i32 noundef %1698, ptr noundef @.str.3)
  %1700 = call ptr @__errno_location() #13
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @strerror(i32 noundef %1701) #12
  %1703 = call ptr @__errno_location() #13
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1692, ptr noundef @.str, i32 noundef %1693, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 372, ptr noundef %1696, ptr noundef %1699, ptr noundef %1702, i32 noundef %1704) #12
  br label %1723

1706:                                             ; preds = %1684, %1677
  %1707 = load i32, ptr %48, align 4, !tbaa !5
  %1708 = call ptr @__errno_location() #13
  store i32 %1707, ptr %1708, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror(i32 noundef %1712, ptr noundef @.str.3)
  %1714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror_debug(i32 noundef %1715, ptr noundef @.str.3)
  %1717 = call ptr @__errno_location() #13
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @strerror(i32 noundef %1718) #12
  %1720 = call ptr @__errno_location() #13
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef @.str.4, i32 noundef %1710, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 372, ptr noundef %1713, ptr noundef %1716, ptr noundef %1719, i32 noundef %1721) #12
  br label %1723

1723:                                             ; preds = %1706, %1689
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #12
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  call void @exit(i32 noundef 1) #14
  unreachable

1726:                                             ; No predecessors!
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727, %1668
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730
  %1732 = load i32, ptr @test_count, align 4, !tbaa !5
  %1733 = add nsw i32 %1732, 1
  store i32 %1733, ptr @test_count, align 4, !tbaa !5
  %1734 = load i32, ptr %8, align 4, !tbaa !5
  %1735 = icmp eq i32 %1734, 3
  br i1 %1735, label %1789, label %1736

1736:                                             ; preds = %1731
  br label %1737

1737:                                             ; preds = %1736
  br label %1738

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

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

1750:                                             ; preds = %1745
  %1751 = load i32, ptr %49, align 4, !tbaa !5
  %1752 = call ptr @__errno_location() #13
  store i32 %1751, ptr %1752, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror(i32 noundef %1756, ptr noundef @.str.3)
  %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_debug(i32 noundef %1759, ptr noundef @.str.3)
  %1761 = call ptr @__errno_location() #13
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  %1763 = call ptr @strerror(i32 noundef %1762) #12
  %1764 = call ptr @__errno_location() #13
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1753, ptr noundef @.str, i32 noundef %1754, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 373, ptr noundef %1757, ptr noundef %1760, ptr noundef %1763, i32 noundef %1765) #12
  br label %1784

1767:                                             ; preds = %1745, %1738
  %1768 = load i32, ptr %49, align 4, !tbaa !5
  %1769 = call ptr @__errno_location() #13
  store i32 %1768, ptr %1769, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = load i32, ptr @test_count, align 4, !tbaa !5
  %1772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror(i32 noundef %1773, ptr noundef @.str.3)
  %1775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef @.str.3)
  %1778 = call ptr @__errno_location() #13
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @strerror(i32 noundef %1779) #12
  %1781 = call ptr @__errno_location() #13
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1770, ptr noundef @.str.4, i32 noundef %1771, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 373, ptr noundef %1774, ptr noundef %1777, ptr noundef %1780, i32 noundef %1782) #12
  br label %1784

1784:                                             ; preds = %1767, %1750
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #12
  br label %1785

1785:                                             ; preds = %1784
  br label %1786

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

1787:                                             ; No predecessors!
  br label %1788

1788:                                             ; preds = %1787
  br label %1789

1789:                                             ; preds = %1788, %1731
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

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

1798:                                             ; preds = %1792
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

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

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

1812:                                             ; preds = %1807
  %1813 = load i32, ptr %50, align 4, !tbaa !5
  %1814 = call ptr @__errno_location() #13
  store i32 %1813, ptr %1814, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef @.str.3)
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.3)
  %1823 = call ptr @__errno_location() #13
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #12
  %1826 = call ptr @__errno_location() #13
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef @.str, i32 noundef %1816, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 374, ptr noundef %1819, ptr noundef %1822, ptr noundef %1825, i32 noundef %1827) #12
  br label %1846

1829:                                             ; preds = %1807, %1800
  %1830 = load i32, ptr %50, align 4, !tbaa !5
  %1831 = call ptr @__errno_location() #13
  store i32 %1830, ptr %1831, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = load i32, ptr @test_count, align 4, !tbaa !5
  %1834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef @.str.3)
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror_debug(i32 noundef %1838, ptr noundef @.str.3)
  %1840 = call ptr @__errno_location() #13
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @strerror(i32 noundef %1841) #12
  %1843 = call ptr @__errno_location() #13
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1832, ptr noundef @.str.4, i32 noundef %1833, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 374, ptr noundef %1836, ptr noundef %1839, ptr noundef %1842, i32 noundef %1844) #12
  br label %1846

1846:                                             ; preds = %1829, %1812
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #12
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

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

1849:                                             ; No predecessors!
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

1851:                                             ; preds = %1850, %1792
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853
  %1855 = load i32, ptr @test_count, align 4, !tbaa !5
  %1856 = add nsw i32 %1855, 1
  store i32 %1856, ptr @test_count, align 4, !tbaa !5
  %1857 = load ptr, ptr %6, align 8, !tbaa !9
  %1858 = call i32 @s2n_connection_get_session_id_length(ptr noundef %1857)
  %1859 = icmp eq i32 %1858, 32
  br i1 %1859, label %1913, label %1860

1860:                                             ; preds = %1854
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

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

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

1874:                                             ; preds = %1869
  %1875 = load i32, ptr %51, align 4, !tbaa !5
  %1876 = call ptr @__errno_location() #13
  store i32 %1875, ptr %1876, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror(i32 noundef %1880, ptr noundef @.str.3)
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef @.str.3)
  %1885 = call ptr @__errno_location() #13
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @strerror(i32 noundef %1886) #12
  %1888 = call ptr @__errno_location() #13
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1877, ptr noundef @.str, i32 noundef %1878, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 378, ptr noundef %1881, ptr noundef %1884, ptr noundef %1887, i32 noundef %1889) #12
  br label %1908

1891:                                             ; preds = %1869, %1862
  %1892 = load i32, ptr %51, align 4, !tbaa !5
  %1893 = call ptr @__errno_location() #13
  store i32 %1892, ptr %1893, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror(i32 noundef %1897, ptr noundef @.str.3)
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef @.str.3)
  %1902 = call ptr @__errno_location() #13
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #12
  %1905 = call ptr @__errno_location() #13
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef @.str.4, i32 noundef %1895, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 378, ptr noundef %1898, ptr noundef %1901, ptr noundef %1904, i32 noundef %1906) #12
  br label %1908

1908:                                             ; preds = %1891, %1874
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #12
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

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

1911:                                             ; No predecessors!
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

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

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = load ptr, ptr %6, align 8, !tbaa !9
  %1920 = getelementptr inbounds [32 x i8], ptr %18, i64 0, i64 0
  %1921 = call i32 @s2n_connection_get_session_id(ptr noundef %1919, ptr noundef %1920, i64 noundef 32)
  %1922 = load ptr, ptr %6, align 8, !tbaa !9
  %1923 = call i32 @s2n_connection_get_session_id_length(ptr noundef %1922)
  %1924 = icmp eq i32 %1921, %1923
  br i1 %1924, label %1978, label %1925

1925:                                             ; preds = %1916
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #12
  %1928 = call ptr @__errno_location() #13
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  store i32 %1929, ptr %52, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @s2n_print_stacktrace(ptr noundef %1930)
  %1932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1933 = trunc i8 %1932 to i1
  br i1 %1933, label %1934, label %1956

1934:                                             ; preds = %1927
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @fileno(ptr noundef %1935) #12
  %1937 = call i32 @isatty(i32 noundef %1936) #12
  %1938 = icmp ne i32 %1937, 0
  br i1 %1938, label %1939, label %1956

1939:                                             ; preds = %1934
  %1940 = load i32, ptr %52, align 4, !tbaa !5
  %1941 = call ptr @__errno_location() #13
  store i32 %1940, ptr %1941, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = load i32, ptr @test_count, align 4, !tbaa !5
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror(i32 noundef %1945, ptr noundef @.str.3)
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror_debug(i32 noundef %1948, ptr noundef @.str.3)
  %1950 = call ptr @__errno_location() #13
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @strerror(i32 noundef %1951) #12
  %1953 = call ptr @__errno_location() #13
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1942, ptr noundef @.str, i32 noundef %1943, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 379, ptr noundef %1946, ptr noundef %1949, ptr noundef %1952, i32 noundef %1954) #12
  br label %1973

1956:                                             ; preds = %1934, %1927
  %1957 = load i32, ptr %52, align 4, !tbaa !5
  %1958 = call ptr @__errno_location() #13
  store i32 %1957, ptr %1958, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = load i32, ptr @test_count, align 4, !tbaa !5
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef @.str.3)
  %1964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror_debug(i32 noundef %1965, ptr noundef @.str.3)
  %1967 = call ptr @__errno_location() #13
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @strerror(i32 noundef %1968) #12
  %1970 = call ptr @__errno_location() #13
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1959, ptr noundef @.str.4, i32 noundef %1960, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 379, ptr noundef %1963, ptr noundef %1966, ptr noundef %1969, i32 noundef %1971) #12
  br label %1973

1973:                                             ; preds = %1956, %1939
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #12
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974
  call void @exit(i32 noundef 1) #14
  unreachable

1976:                                             ; No predecessors!
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977, %1916
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = add nsw i32 %1982, 1
  store i32 %1983, ptr @test_count, align 4, !tbaa !5
  %1984 = load ptr, ptr %6, align 8, !tbaa !9
  %1985 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1984, i32 noundef 2)
  br i1 %1985, label %2039, label %1986

1986:                                             ; preds = %1981
  br label %1987

1987:                                             ; preds = %1986
  br label %1988

1988:                                             ; preds = %1987
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #12
  %1989 = call ptr @__errno_location() #13
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  store i32 %1990, ptr %53, align 4, !tbaa !5
  %1991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1992 = call i32 @s2n_print_stacktrace(ptr noundef %1991)
  %1993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1994 = trunc i8 %1993 to i1
  br i1 %1994, label %1995, label %2017

1995:                                             ; preds = %1988
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = call i32 @fileno(ptr noundef %1996) #12
  %1998 = call i32 @isatty(i32 noundef %1997) #12
  %1999 = icmp ne i32 %1998, 0
  br i1 %1999, label %2000, label %2017

2000:                                             ; preds = %1995
  %2001 = load i32, ptr %53, align 4, !tbaa !5
  %2002 = call ptr @__errno_location() #13
  store i32 %2001, ptr %2002, align 4, !tbaa !5
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = load i32, ptr @test_count, align 4, !tbaa !5
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror(i32 noundef %2006, ptr noundef @.str.3)
  %2008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror_debug(i32 noundef %2009, ptr noundef @.str.3)
  %2011 = call ptr @__errno_location() #13
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @strerror(i32 noundef %2012) #12
  %2014 = call ptr @__errno_location() #13
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2003, ptr noundef @.str, i32 noundef %2004, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 382, ptr noundef %2007, ptr noundef %2010, ptr noundef %2013, i32 noundef %2015) #12
  br label %2034

2017:                                             ; preds = %1995, %1988
  %2018 = load i32, ptr %53, align 4, !tbaa !5
  %2019 = call ptr @__errno_location() #13
  store i32 %2018, ptr %2019, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror(i32 noundef %2023, ptr noundef @.str.3)
  %2025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @s2n_strerror_debug(i32 noundef %2026, ptr noundef @.str.3)
  %2028 = call ptr @__errno_location() #13
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @strerror(i32 noundef %2029) #12
  %2031 = call ptr @__errno_location() #13
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2020, ptr noundef @.str.4, i32 noundef %2021, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 382, ptr noundef %2024, ptr noundef %2027, ptr noundef %2030, i32 noundef %2032) #12
  br label %2034

2034:                                             ; preds = %2017, %2000
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #12
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035
  call void @exit(i32 noundef 1) #14
  unreachable

2037:                                             ; No predecessors!
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038, %1981
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = load ptr, ptr %6, align 8, !tbaa !9
  %2046 = getelementptr inbounds %struct.s2n_connection, ptr %2045, i32 0, i32 23
  %2047 = load i8, ptr %2046, align 4, !tbaa !24
  %2048 = zext i8 %2047 to i32
  %2049 = icmp eq i32 %2048, 33
  br i1 %2049, label %2103, label %2050

2050:                                             ; preds = %2042
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

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

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

2064:                                             ; preds = %2059
  %2065 = load i32, ptr %54, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #13
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.3)
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef @.str.3)
  %2075 = call ptr @__errno_location() #13
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #12
  %2078 = call ptr @__errno_location() #13
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str, i32 noundef %2068, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 383, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #12
  br label %2098

2081:                                             ; preds = %2059, %2052
  %2082 = load i32, ptr %54, align 4, !tbaa !5
  %2083 = call ptr @__errno_location() #13
  store i32 %2082, ptr %2083, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef @.str.3)
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef @.str.3)
  %2092 = call ptr @__errno_location() #13
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #12
  %2095 = call ptr @__errno_location() #13
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.4, i32 noundef %2085, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 383, ptr noundef %2088, ptr noundef %2091, ptr noundef %2094, i32 noundef %2096) #12
  br label %2098

2098:                                             ; preds = %2081, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #12
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2042
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = add nsw i32 %2107, 1
  store i32 %2108, ptr @test_count, align 4, !tbaa !5
  %2109 = load ptr, ptr %6, align 8, !tbaa !9
  %2110 = getelementptr inbounds [256 x i8], ptr %14, i64 0, i64 0
  %2111 = call i64 @s2n_recv(ptr noundef %2109, ptr noundef %2110, i64 noundef 256, ptr noundef %8)
  %2112 = trunc i64 %2111 to i32
  store i32 %2112, ptr %15, align 4, !tbaa !5
  %2113 = icmp eq i32 %2112, -1
  br i1 %2113, label %2114, label %2167

2114:                                             ; preds = %2106
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #12
  %2117 = call ptr @__errno_location() #13
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  store i32 %2118, ptr %55, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119)
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2122 = trunc i8 %2121 to i1
  br i1 %2122, label %2123, label %2145

2123:                                             ; preds = %2116
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #12
  %2126 = call i32 @isatty(i32 noundef %2125) #12
  %2127 = icmp ne i32 %2126, 0
  br i1 %2127, label %2128, label %2145

2128:                                             ; preds = %2123
  %2129 = load i32, ptr %55, align 4, !tbaa !5
  %2130 = call ptr @__errno_location() #13
  store i32 %2129, ptr %2130, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror(i32 noundef %2134, ptr noundef @.str.3)
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef %2137, ptr noundef @.str.3)
  %2139 = call ptr @__errno_location() #13
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @strerror(i32 noundef %2140) #12
  %2142 = call ptr @__errno_location() #13
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2131, ptr noundef @.str, i32 noundef %2132, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 386, ptr noundef %2135, ptr noundef %2138, ptr noundef %2141, i32 noundef %2143) #12
  br label %2162

2145:                                             ; preds = %2123, %2116
  %2146 = load i32, ptr %55, align 4, !tbaa !5
  %2147 = call ptr @__errno_location() #13
  store i32 %2146, ptr %2147, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror(i32 noundef %2151, ptr noundef @.str.3)
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef @.str.3)
  %2156 = call ptr @__errno_location() #13
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #12
  %2159 = call ptr @__errno_location() #13
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef @.str.4, i32 noundef %2149, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 386, ptr noundef %2152, ptr noundef %2155, ptr noundef %2158, i32 noundef %2160) #12
  br label %2162

2162:                                             ; preds = %2145, %2128
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #12
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163
  call void @exit(i32 noundef 1) #14
  unreachable

2165:                                             ; No predecessors!
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166, %2106
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = add nsw i32 %2171, 1
  store i32 %2172, ptr @test_count, align 4, !tbaa !5
  %2173 = load i32, ptr %15, align 4, !tbaa !5
  %2174 = sext i32 %2173 to i64
  %2175 = icmp eq i64 %2174, 5
  br i1 %2175, label %2229, label %2176

2176:                                             ; preds = %2170
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #12
  %2179 = call ptr @__errno_location() #13
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  store i32 %2180, ptr %56, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181)
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2184 = trunc i8 %2183 to i1
  br i1 %2184, label %2185, label %2207

2185:                                             ; preds = %2178
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #12
  %2188 = call i32 @isatty(i32 noundef %2187) #12
  %2189 = icmp ne i32 %2188, 0
  br i1 %2189, label %2190, label %2207

2190:                                             ; preds = %2185
  %2191 = load i32, ptr %56, align 4, !tbaa !5
  %2192 = call ptr @__errno_location() #13
  store i32 %2191, ptr %2192, align 4, !tbaa !5
  %2193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2194 = load i32, ptr @test_count, align 4, !tbaa !5
  %2195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2196 = load i32, ptr %2195, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef @.str.3)
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror_debug(i32 noundef %2199, ptr noundef @.str.3)
  %2201 = call ptr @__errno_location() #13
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @strerror(i32 noundef %2202) #12
  %2204 = call ptr @__errno_location() #13
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2193, ptr noundef @.str, i32 noundef %2194, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 387, ptr noundef %2197, ptr noundef %2200, ptr noundef %2203, i32 noundef %2205) #12
  br label %2224

2207:                                             ; preds = %2185, %2178
  %2208 = load i32, ptr %56, align 4, !tbaa !5
  %2209 = call ptr @__errno_location() #13
  store i32 %2208, ptr %2209, align 4, !tbaa !5
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = load i32, ptr @test_count, align 4, !tbaa !5
  %2212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef @.str.3)
  %2215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call ptr @s2n_strerror_debug(i32 noundef %2216, ptr noundef @.str.3)
  %2218 = call ptr @__errno_location() #13
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @strerror(i32 noundef %2219) #12
  %2221 = call ptr @__errno_location() #13
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2210, ptr noundef @.str.4, i32 noundef %2211, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 387, ptr noundef %2214, ptr noundef %2217, ptr noundef %2220, i32 noundef %2222) #12
  br label %2224

2224:                                             ; preds = %2207, %2190
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #12
  br label %2225

2225:                                             ; preds = %2224
  br label %2226

2226:                                             ; preds = %2225
  call void @exit(i32 noundef 1) #14
  unreachable

2227:                                             ; No predecessors!
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228, %2170
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = add nsw i32 %2233, 1
  store i32 %2234, ptr @test_count, align 4, !tbaa !5
  %2235 = getelementptr inbounds [256 x i8], ptr %14, i64 0, i64 0
  %2236 = call i32 @memcmp(ptr noundef %2235, ptr noundef @MSG, i64 noundef 5) #16
  %2237 = icmp eq i32 %2236, 0
  br i1 %2237, label %2291, label %2238

2238:                                             ; preds = %2232
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #12
  %2241 = call ptr @__errno_location() #13
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  store i32 %2242, ptr %57, align 4, !tbaa !5
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = call i32 @s2n_print_stacktrace(ptr noundef %2243)
  %2245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2246 = trunc i8 %2245 to i1
  br i1 %2246, label %2247, label %2269

2247:                                             ; preds = %2240
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @fileno(ptr noundef %2248) #12
  %2250 = call i32 @isatty(i32 noundef %2249) #12
  %2251 = icmp ne i32 %2250, 0
  br i1 %2251, label %2252, label %2269

2252:                                             ; preds = %2247
  %2253 = load i32, ptr %57, align 4, !tbaa !5
  %2254 = call ptr @__errno_location() #13
  store i32 %2253, ptr %2254, align 4, !tbaa !5
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %2257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @s2n_strerror(i32 noundef %2258, ptr noundef @.str.3)
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef @.str.3)
  %2263 = call ptr @__errno_location() #13
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @strerror(i32 noundef %2264) #12
  %2266 = call ptr @__errno_location() #13
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2255, ptr noundef @.str, i32 noundef %2256, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 388, ptr noundef %2259, ptr noundef %2262, ptr noundef %2265, i32 noundef %2267) #12
  br label %2286

2269:                                             ; preds = %2247, %2240
  %2270 = load i32, ptr %57, align 4, !tbaa !5
  %2271 = call ptr @__errno_location() #13
  store i32 %2270, ptr %2271, align 4, !tbaa !5
  %2272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2273 = load i32, ptr @test_count, align 4, !tbaa !5
  %2274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror(i32 noundef %2275, ptr noundef @.str.3)
  %2277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror_debug(i32 noundef %2278, ptr noundef @.str.3)
  %2280 = call ptr @__errno_location() #13
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #12
  %2283 = call ptr @__errno_location() #13
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2272, ptr noundef @.str.4, i32 noundef %2273, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 388, ptr noundef %2276, ptr noundef %2279, ptr noundef %2282, i32 noundef %2284) #12
  br label %2286

2286:                                             ; preds = %2269, %2252
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #12
  br label %2287

2287:                                             ; preds = %2286
  br label %2288

2288:                                             ; preds = %2287
  call void @exit(i32 noundef 1) #14
  unreachable

2289:                                             ; No predecessors!
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290, %2232
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2365, %2293
  %2295 = load ptr, ptr %6, align 8, !tbaa !9
  %2296 = call i32 @s2n_shutdown(ptr noundef %2295, ptr noundef %8)
  store i32 %2296, ptr %16, align 4, !tbaa !5
  br label %2297

2297:                                             ; preds = %2294
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = add nsw i32 %2298, 1
  store i32 %2299, ptr @test_count, align 4, !tbaa !5
  %2300 = load i32, ptr %16, align 4, !tbaa !5
  %2301 = icmp eq i32 %2300, 0
  br i1 %2301, label %2362, label %2302

2302:                                             ; preds = %2297
  %2303 = call ptr @__errno_location() #13
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = icmp eq i32 %2304, 11
  br i1 %2305, label %2306, label %2309

2306:                                             ; preds = %2302
  %2307 = load i32, ptr %8, align 4, !tbaa !5
  %2308 = icmp ne i32 %2307, 0
  br i1 %2308, label %2362, label %2309

2309:                                             ; preds = %2306, %2302
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #12
  %2312 = call ptr @__errno_location() #13
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  store i32 %2313, ptr %58, align 4, !tbaa !5
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = call i32 @s2n_print_stacktrace(ptr noundef %2314)
  %2316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2317 = trunc i8 %2316 to i1
  br i1 %2317, label %2318, label %2340

2318:                                             ; preds = %2311
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = call i32 @fileno(ptr noundef %2319) #12
  %2321 = call i32 @isatty(i32 noundef %2320) #12
  %2322 = icmp ne i32 %2321, 0
  br i1 %2322, label %2323, label %2340

2323:                                             ; preds = %2318
  %2324 = load i32, ptr %58, align 4, !tbaa !5
  %2325 = call ptr @__errno_location() #13
  store i32 %2324, ptr %2325, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2329, ptr noundef @.str.3)
  %2331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror_debug(i32 noundef %2332, ptr noundef @.str.3)
  %2334 = call ptr @__errno_location() #13
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @strerror(i32 noundef %2335) #12
  %2337 = call ptr @__errno_location() #13
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2326, ptr noundef @.str, i32 noundef %2327, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 393, ptr noundef %2330, ptr noundef %2333, ptr noundef %2336, i32 noundef %2338) #12
  br label %2357

2340:                                             ; preds = %2318, %2311
  %2341 = load i32, ptr %58, align 4, !tbaa !5
  %2342 = call ptr @__errno_location() #13
  store i32 %2341, ptr %2342, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror(i32 noundef %2346, ptr noundef @.str.3)
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror_debug(i32 noundef %2349, ptr noundef @.str.3)
  %2351 = call ptr @__errno_location() #13
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @strerror(i32 noundef %2352) #12
  %2354 = call ptr @__errno_location() #13
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2343, ptr noundef @.str.4, i32 noundef %2344, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 393, ptr noundef %2347, ptr noundef %2350, ptr noundef %2353, i32 noundef %2355) #12
  br label %2357

2357:                                             ; preds = %2340, %2323
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #12
  br label %2358

2358:                                             ; preds = %2357
  br label %2359

2359:                                             ; preds = %2358
  call void @exit(i32 noundef 1) #14
  unreachable

2360:                                             ; No predecessors!
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

2362:                                             ; preds = %2361, %2306, %2297
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  %2366 = load i32, ptr %16, align 4, !tbaa !5
  %2367 = icmp ne i32 %2366, 0
  br i1 %2367, label %2294, label %2368, !llvm.loop !48

2368:                                             ; preds = %2365
  br label %2369

2369:                                             ; preds = %2368
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %2371 = add nsw i32 %2370, 1
  store i32 %2371, ptr @test_count, align 4, !tbaa !5
  %2372 = load ptr, ptr %6, align 8, !tbaa !9
  %2373 = call i32 @s2n_connection_free(ptr noundef %2372)
  %2374 = icmp eq i32 %2373, -1
  br i1 %2374, label %2375, label %2428

2375:                                             ; preds = %2369
  br label %2376

2376:                                             ; preds = %2375
  br label %2377

2377:                                             ; preds = %2376
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #12
  %2378 = call ptr @__errno_location() #13
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  store i32 %2379, ptr %59, align 4, !tbaa !5
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = call i32 @s2n_print_stacktrace(ptr noundef %2380)
  %2382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2383 = trunc i8 %2382 to i1
  br i1 %2383, label %2384, label %2406

2384:                                             ; preds = %2377
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = call i32 @fileno(ptr noundef %2385) #12
  %2387 = call i32 @isatty(i32 noundef %2386) #12
  %2388 = icmp ne i32 %2387, 0
  br i1 %2388, label %2389, label %2406

2389:                                             ; preds = %2384
  %2390 = load i32, ptr %59, align 4, !tbaa !5
  %2391 = call ptr @__errno_location() #13
  store i32 %2390, ptr %2391, align 4, !tbaa !5
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2393 = load i32, ptr @test_count, align 4, !tbaa !5
  %2394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2395 = load i32, ptr %2394, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror(i32 noundef %2395, ptr noundef @.str.3)
  %2397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror_debug(i32 noundef %2398, ptr noundef @.str.3)
  %2400 = call ptr @__errno_location() #13
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @strerror(i32 noundef %2401) #12
  %2403 = call ptr @__errno_location() #13
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2392, ptr noundef @.str, i32 noundef %2393, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 397, ptr noundef %2396, ptr noundef %2399, ptr noundef %2402, i32 noundef %2404) #12
  br label %2423

2406:                                             ; preds = %2384, %2377
  %2407 = load i32, ptr %59, align 4, !tbaa !5
  %2408 = call ptr @__errno_location() #13
  store i32 %2407, ptr %2408, align 4, !tbaa !5
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = load i32, ptr @test_count, align 4, !tbaa !5
  %2411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror(i32 noundef %2412, ptr noundef @.str.3)
  %2414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @s2n_strerror_debug(i32 noundef %2415, ptr noundef @.str.3)
  %2417 = call ptr @__errno_location() #13
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @strerror(i32 noundef %2418) #12
  %2420 = call ptr @__errno_location() #13
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2409, ptr noundef @.str.4, i32 noundef %2410, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 397, ptr noundef %2413, ptr noundef %2416, ptr noundef %2419, i32 noundef %2421) #12
  br label %2423

2423:                                             ; preds = %2406, %2389
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #12
  br label %2424

2424:                                             ; preds = %2423
  br label %2425

2425:                                             ; preds = %2424
  call void @exit(i32 noundef 1) #14
  unreachable

2426:                                             ; No predecessors!
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427, %2369
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

2430:                                             ; preds = %2429
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #12
  call void @initialize_cache()
  br label %2431

2431:                                             ; preds = %2430
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2434, ptr %6, align 8, !tbaa !9
  %2435 = icmp eq ptr %2434, null
  br i1 %2435, label %2436, label %2489

2436:                                             ; preds = %2431
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #12
  %2439 = call ptr @__errno_location() #13
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  store i32 %2440, ptr %60, align 4, !tbaa !5
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = call i32 @s2n_print_stacktrace(ptr noundef %2441)
  %2443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2444 = trunc i8 %2443 to i1
  br i1 %2444, label %2445, label %2467

2445:                                             ; preds = %2438
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = call i32 @fileno(ptr noundef %2446) #12
  %2448 = call i32 @isatty(i32 noundef %2447) #12
  %2449 = icmp ne i32 %2448, 0
  br i1 %2449, label %2450, label %2467

2450:                                             ; preds = %2445
  %2451 = load i32, ptr %60, align 4, !tbaa !5
  %2452 = call ptr @__errno_location() #13
  store i32 %2451, ptr %2452, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = load i32, ptr @test_count, align 4, !tbaa !5
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror(i32 noundef %2456, ptr noundef @.str.3)
  %2458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef @.str.3)
  %2461 = call ptr @__errno_location() #13
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @strerror(i32 noundef %2462) #12
  %2464 = call ptr @__errno_location() #13
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2453, ptr noundef @.str, i32 noundef %2454, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 403, ptr noundef %2457, ptr noundef %2460, ptr noundef %2463, i32 noundef %2465) #12
  br label %2484

2467:                                             ; preds = %2445, %2438
  %2468 = load i32, ptr %60, align 4, !tbaa !5
  %2469 = call ptr @__errno_location() #13
  store i32 %2468, ptr %2469, align 4, !tbaa !5
  %2470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2471 = load i32, ptr @test_count, align 4, !tbaa !5
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror(i32 noundef %2473, ptr noundef @.str.3)
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror_debug(i32 noundef %2476, ptr noundef @.str.3)
  %2478 = call ptr @__errno_location() #13
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @strerror(i32 noundef %2479) #12
  %2481 = call ptr @__errno_location() #13
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2470, ptr noundef @.str.4, i32 noundef %2471, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 403, ptr noundef %2474, ptr noundef %2477, ptr noundef %2480, i32 noundef %2482) #12
  br label %2484

2484:                                             ; preds = %2467, %2450
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #12
  br label %2485

2485:                                             ; preds = %2484
  br label %2486

2486:                                             ; preds = %2485
  call void @exit(i32 noundef 1) #14
  unreachable

2487:                                             ; No predecessors!
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488, %2431
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = load ptr, ptr %6, align 8, !tbaa !9
  %2496 = load ptr, ptr %7, align 8, !tbaa !9
  %2497 = call i32 @s2n_connection_set_config(ptr noundef %2495, ptr noundef %2496)
  %2498 = icmp eq i32 %2497, -1
  br i1 %2498, label %2499, label %2552

2499:                                             ; preds = %2492
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

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

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

2513:                                             ; preds = %2508
  %2514 = load i32, ptr %61, align 4, !tbaa !5
  %2515 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %2524 = call ptr @__errno_location() #13
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @strerror(i32 noundef %2525) #12
  %2527 = call ptr @__errno_location() #13
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2516, ptr noundef @.str, i32 noundef %2517, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 404, ptr noundef %2520, ptr noundef %2523, ptr noundef %2526, i32 noundef %2528) #12
  br label %2547

2530:                                             ; preds = %2508, %2501
  %2531 = load i32, ptr %61, align 4, !tbaa !5
  %2532 = call ptr @__errno_location() #13
  store i32 %2531, ptr %2532, 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 @.str.3)
  %2538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror_debug(i32 noundef %2539, ptr noundef @.str.3)
  %2541 = call ptr @__errno_location() #13
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call ptr @strerror(i32 noundef %2542) #12
  %2544 = call ptr @__errno_location() #13
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2533, ptr noundef @.str.4, i32 noundef %2534, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 404, ptr noundef %2537, ptr noundef %2540, ptr noundef %2543, i32 noundef %2545) #12
  br label %2547

2547:                                             ; preds = %2530, %2513
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #12
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

2550:                                             ; No predecessors!
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551, %2492
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  br label %2555

2555:                                             ; preds = %2554
  %2556 = load i32, ptr @test_count, align 4, !tbaa !5
  %2557 = add nsw i32 %2556, 1
  store i32 %2557, ptr @test_count, align 4, !tbaa !5
  %2558 = load ptr, ptr %6, align 8, !tbaa !9
  %2559 = call i32 @s2n_connection_set_io_pair(ptr noundef %2558, ptr noundef %25)
  %2560 = icmp eq i32 %2559, -1
  br i1 %2560, label %2561, label %2614

2561:                                             ; preds = %2555
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #12
  %2564 = call ptr @__errno_location() #13
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  store i32 %2565, ptr %62, align 4, !tbaa !5
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = call i32 @s2n_print_stacktrace(ptr noundef %2566)
  %2568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2569 = trunc i8 %2568 to i1
  br i1 %2569, label %2570, label %2592

2570:                                             ; preds = %2563
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = call i32 @fileno(ptr noundef %2571) #12
  %2573 = call i32 @isatty(i32 noundef %2572) #12
  %2574 = icmp ne i32 %2573, 0
  br i1 %2574, label %2575, label %2592

2575:                                             ; preds = %2570
  %2576 = load i32, ptr %62, align 4, !tbaa !5
  %2577 = call ptr @__errno_location() #13
  store i32 %2576, ptr %2577, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = load i32, ptr @test_count, align 4, !tbaa !5
  %2580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror(i32 noundef %2581, ptr noundef @.str.3)
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror_debug(i32 noundef %2584, ptr noundef @.str.3)
  %2586 = call ptr @__errno_location() #13
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @strerror(i32 noundef %2587) #12
  %2589 = call ptr @__errno_location() #13
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2578, ptr noundef @.str, i32 noundef %2579, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 407, ptr noundef %2582, ptr noundef %2585, ptr noundef %2588, i32 noundef %2590) #12
  br label %2609

2592:                                             ; preds = %2570, %2563
  %2593 = load i32, ptr %62, align 4, !tbaa !5
  %2594 = call ptr @__errno_location() #13
  store i32 %2593, ptr %2594, align 4, !tbaa !5
  %2595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = call ptr @s2n_strerror(i32 noundef %2598, ptr noundef @.str.3)
  %2600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror_debug(i32 noundef %2601, ptr noundef @.str.3)
  %2603 = call ptr @__errno_location() #13
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @strerror(i32 noundef %2604) #12
  %2606 = call ptr @__errno_location() #13
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2595, ptr noundef @.str.4, i32 noundef %2596, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 407, ptr noundef %2599, ptr noundef %2602, ptr noundef %2605, i32 noundef %2607) #12
  br label %2609

2609:                                             ; preds = %2592, %2575
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #12
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610
  call void @exit(i32 noundef 1) #14
  unreachable

2612:                                             ; No predecessors!
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613, %2555
  br label %2615

2615:                                             ; preds = %2614
  br label %2616

2616:                                             ; preds = %2615
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #12
  %2617 = load ptr, ptr %6, align 8, !tbaa !9
  %2618 = call i32 @s2n_negotiate(ptr noundef %2617, ptr noundef %8)
  store i32 %2618, ptr %63, align 4, !tbaa !5
  br label %2619

2619:                                             ; preds = %2616
  %2620 = load i32, ptr @test_count, align 4, !tbaa !5
  %2621 = add nsw i32 %2620, 1
  store i32 %2621, ptr @test_count, align 4, !tbaa !5
  %2622 = load i32, ptr %63, align 4, !tbaa !5
  %2623 = icmp eq i32 %2622, -1
  br i1 %2623, label %2677, label %2624

2624:                                             ; preds = %2619
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #12
  %2627 = call ptr @__errno_location() #13
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  store i32 %2628, ptr %64, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @s2n_print_stacktrace(ptr noundef %2629)
  %2631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2632 = trunc i8 %2631 to i1
  br i1 %2632, label %2633, label %2655

2633:                                             ; preds = %2626
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @fileno(ptr noundef %2634) #12
  %2636 = call i32 @isatty(i32 noundef %2635) #12
  %2637 = icmp ne i32 %2636, 0
  br i1 %2637, label %2638, label %2655

2638:                                             ; preds = %2633
  %2639 = load i32, ptr %64, align 4, !tbaa !5
  %2640 = call ptr @__errno_location() #13
  store i32 %2639, ptr %2640, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror(i32 noundef %2644, ptr noundef @.str.3)
  %2646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef @.str.3)
  %2649 = call ptr @__errno_location() #13
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @strerror(i32 noundef %2650) #12
  %2652 = call ptr @__errno_location() #13
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef @.str, i32 noundef %2642, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 414, ptr noundef %2645, ptr noundef %2648, ptr noundef %2651, i32 noundef %2653) #12
  br label %2672

2655:                                             ; preds = %2633, %2626
  %2656 = load i32, ptr %64, align 4, !tbaa !5
  %2657 = call ptr @__errno_location() #13
  store i32 %2656, ptr %2657, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror(i32 noundef %2661, ptr noundef @.str.3)
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror_debug(i32 noundef %2664, ptr noundef @.str.3)
  %2666 = call ptr @__errno_location() #13
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #12
  %2669 = call ptr @__errno_location() #13
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef @.str.4, i32 noundef %2659, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 414, ptr noundef %2662, ptr noundef %2665, ptr noundef %2668, i32 noundef %2670) #12
  br label %2672

2672:                                             ; preds = %2655, %2638
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #12
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  call void @exit(i32 noundef 1) #14
  unreachable

2675:                                             ; No predecessors!
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676, %2619
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678
  br label %2680

2680:                                             ; preds = %2679
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = add nsw i32 %2681, 1
  store i32 %2682, ptr @test_count, align 4, !tbaa !5
  %2683 = load i32, ptr %8, align 4, !tbaa !5
  %2684 = icmp eq i32 %2683, 3
  br i1 %2684, label %2738, label %2685

2685:                                             ; preds = %2680
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #12
  %2688 = call ptr @__errno_location() #13
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  store i32 %2689, ptr %65, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690)
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2693 = trunc i8 %2692 to i1
  br i1 %2693, label %2694, label %2716

2694:                                             ; preds = %2687
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #12
  %2697 = call i32 @isatty(i32 noundef %2696) #12
  %2698 = icmp ne i32 %2697, 0
  br i1 %2698, label %2699, label %2716

2699:                                             ; preds = %2694
  %2700 = load i32, ptr %65, align 4, !tbaa !5
  %2701 = call ptr @__errno_location() #13
  store i32 %2700, ptr %2701, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef @.str.3)
  %2707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror_debug(i32 noundef %2708, ptr noundef @.str.3)
  %2710 = call ptr @__errno_location() #13
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #12
  %2713 = call ptr @__errno_location() #13
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2702, ptr noundef @.str, i32 noundef %2703, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 415, ptr noundef %2706, ptr noundef %2709, ptr noundef %2712, i32 noundef %2714) #12
  br label %2733

2716:                                             ; preds = %2694, %2687
  %2717 = load i32, ptr %65, align 4, !tbaa !5
  %2718 = call ptr @__errno_location() #13
  store i32 %2717, ptr %2718, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @s2n_strerror(i32 noundef %2722, ptr noundef @.str.3)
  %2724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @s2n_strerror_debug(i32 noundef %2725, ptr noundef @.str.3)
  %2727 = call ptr @__errno_location() #13
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #12
  %2730 = call ptr @__errno_location() #13
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef @.str.4, i32 noundef %2720, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 415, ptr noundef %2723, ptr noundef %2726, ptr noundef %2729, i32 noundef %2731) #12
  br label %2733

2733:                                             ; preds = %2716, %2699
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #12
  br label %2734

2734:                                             ; preds = %2733
  br label %2735

2735:                                             ; preds = %2734
  call void @exit(i32 noundef 1) #14
  unreachable

2736:                                             ; No predecessors!
  br label %2737

2737:                                             ; preds = %2736
  br label %2738

2738:                                             ; preds = %2737, %2680
  br label %2739

2739:                                             ; preds = %2738
  br label %2740

2740:                                             ; preds = %2739
  br label %2741

2741:                                             ; preds = %2740
  %2742 = load i32, ptr @test_count, align 4, !tbaa !5
  %2743 = add nsw i32 %2742, 1
  store i32 %2743, ptr @test_count, align 4, !tbaa !5
  %2744 = load ptr, ptr %6, align 8, !tbaa !9
  %2745 = call i32 @s2n_negotiate(ptr noundef %2744, ptr noundef %8)
  %2746 = icmp eq i32 %2745, -1
  br i1 %2746, label %2747, label %2800

2747:                                             ; preds = %2741
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #12
  %2750 = call ptr @__errno_location() #13
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  store i32 %2751, ptr %66, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = call i32 @s2n_print_stacktrace(ptr noundef %2752)
  %2754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2755 = trunc i8 %2754 to i1
  br i1 %2755, label %2756, label %2778

2756:                                             ; preds = %2749
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @fileno(ptr noundef %2757) #12
  %2759 = call i32 @isatty(i32 noundef %2758) #12
  %2760 = icmp ne i32 %2759, 0
  br i1 %2760, label %2761, label %2778

2761:                                             ; preds = %2756
  %2762 = load i32, ptr %66, align 4, !tbaa !5
  %2763 = call ptr @__errno_location() #13
  store i32 %2762, ptr %2763, align 4, !tbaa !5
  %2764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror(i32 noundef %2767, ptr noundef @.str.3)
  %2769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror_debug(i32 noundef %2770, ptr noundef @.str.3)
  %2772 = call ptr @__errno_location() #13
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #12
  %2775 = call ptr @__errno_location() #13
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2764, ptr noundef @.str, i32 noundef %2765, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 416, ptr noundef %2768, ptr noundef %2771, ptr noundef %2774, i32 noundef %2776) #12
  br label %2795

2778:                                             ; preds = %2756, %2749
  %2779 = load i32, ptr %66, align 4, !tbaa !5
  %2780 = call ptr @__errno_location() #13
  store i32 %2779, ptr %2780, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef @.str.3)
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef @.str.3)
  %2789 = call ptr @__errno_location() #13
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #12
  %2792 = call ptr @__errno_location() #13
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef @.str.4, i32 noundef %2782, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 416, ptr noundef %2785, ptr noundef %2788, ptr noundef %2791, i32 noundef %2793) #12
  br label %2795

2795:                                             ; preds = %2778, %2761
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #12
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  call void @exit(i32 noundef 1) #14
  unreachable

2798:                                             ; No predecessors!
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799, %2741
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  br label %2803

2803:                                             ; preds = %2802
  %2804 = load i32, ptr @test_count, align 4, !tbaa !5
  %2805 = add nsw i32 %2804, 1
  store i32 %2805, ptr @test_count, align 4, !tbaa !5
  %2806 = load ptr, ptr %6, align 8, !tbaa !9
  %2807 = call i32 @s2n_connection_get_session_id_length(ptr noundef %2806)
  %2808 = icmp eq i32 %2807, 32
  br i1 %2808, label %2862, label %2809

2809:                                             ; preds = %2803
  br label %2810

2810:                                             ; preds = %2809
  br label %2811

2811:                                             ; preds = %2810
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #12
  %2812 = call ptr @__errno_location() #13
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  store i32 %2813, ptr %67, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = call i32 @s2n_print_stacktrace(ptr noundef %2814)
  %2816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2817 = trunc i8 %2816 to i1
  br i1 %2817, label %2818, label %2840

2818:                                             ; preds = %2811
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = call i32 @fileno(ptr noundef %2819) #12
  %2821 = call i32 @isatty(i32 noundef %2820) #12
  %2822 = icmp ne i32 %2821, 0
  br i1 %2822, label %2823, label %2840

2823:                                             ; preds = %2818
  %2824 = load i32, ptr %67, align 4, !tbaa !5
  %2825 = call ptr @__errno_location() #13
  store i32 %2824, ptr %2825, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2829, ptr noundef @.str.3)
  %2831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call ptr @s2n_strerror_debug(i32 noundef %2832, ptr noundef @.str.3)
  %2834 = call ptr @__errno_location() #13
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @strerror(i32 noundef %2835) #12
  %2837 = call ptr @__errno_location() #13
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2826, ptr noundef @.str, i32 noundef %2827, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 420, ptr noundef %2830, ptr noundef %2833, ptr noundef %2836, i32 noundef %2838) #12
  br label %2857

2840:                                             ; preds = %2818, %2811
  %2841 = load i32, ptr %67, align 4, !tbaa !5
  %2842 = call ptr @__errno_location() #13
  store i32 %2841, ptr %2842, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2846, ptr noundef @.str.3)
  %2848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror_debug(i32 noundef %2849, ptr noundef @.str.3)
  %2851 = call ptr @__errno_location() #13
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call ptr @strerror(i32 noundef %2852) #12
  %2854 = call ptr @__errno_location() #13
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2843, ptr noundef @.str.4, i32 noundef %2844, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 420, ptr noundef %2847, ptr noundef %2850, ptr noundef %2853, i32 noundef %2855) #12
  br label %2857

2857:                                             ; preds = %2840, %2823
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #12
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858
  call void @exit(i32 noundef 1) #14
  unreachable

2860:                                             ; No predecessors!
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

2862:                                             ; preds = %2861, %2803
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863
  br label %2865

2865:                                             ; preds = %2864
  %2866 = load i32, ptr @test_count, align 4, !tbaa !5
  %2867 = add nsw i32 %2866, 1
  store i32 %2867, ptr @test_count, align 4, !tbaa !5
  %2868 = load ptr, ptr %6, align 8, !tbaa !9
  %2869 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %2870 = call i32 @s2n_connection_get_session_id(ptr noundef %2868, ptr noundef %2869, i64 noundef 32)
  %2871 = load ptr, ptr %6, align 8, !tbaa !9
  %2872 = call i32 @s2n_connection_get_session_id_length(ptr noundef %2871)
  %2873 = icmp eq i32 %2870, %2872
  br i1 %2873, label %2927, label %2874

2874:                                             ; preds = %2865
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #12
  %2877 = call ptr @__errno_location() #13
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  store i32 %2878, ptr %68, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @s2n_print_stacktrace(ptr noundef %2879)
  %2881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2882 = trunc i8 %2881 to i1
  br i1 %2882, label %2883, label %2905

2883:                                             ; preds = %2876
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = call i32 @fileno(ptr noundef %2884) #12
  %2886 = call i32 @isatty(i32 noundef %2885) #12
  %2887 = icmp ne i32 %2886, 0
  br i1 %2887, label %2888, label %2905

2888:                                             ; preds = %2883
  %2889 = load i32, ptr %68, align 4, !tbaa !5
  %2890 = call ptr @__errno_location() #13
  store i32 %2889, ptr %2890, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = load i32, ptr @test_count, align 4, !tbaa !5
  %2893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef @.str.3)
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror_debug(i32 noundef %2897, ptr noundef @.str.3)
  %2899 = call ptr @__errno_location() #13
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @strerror(i32 noundef %2900) #12
  %2902 = call ptr @__errno_location() #13
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2891, ptr noundef @.str, i32 noundef %2892, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 421, ptr noundef %2895, ptr noundef %2898, ptr noundef %2901, i32 noundef %2903) #12
  br label %2922

2905:                                             ; preds = %2883, %2876
  %2906 = load i32, ptr %68, align 4, !tbaa !5
  %2907 = call ptr @__errno_location() #13
  store i32 %2906, ptr %2907, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = load i32, ptr @test_count, align 4, !tbaa !5
  %2910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @s2n_strerror(i32 noundef %2911, ptr noundef @.str.3)
  %2913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror_debug(i32 noundef %2914, ptr noundef @.str.3)
  %2916 = call ptr @__errno_location() #13
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #12
  %2919 = call ptr @__errno_location() #13
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2908, ptr noundef @.str.4, i32 noundef %2909, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 421, ptr noundef %2912, ptr noundef %2915, ptr noundef %2918, i32 noundef %2920) #12
  br label %2922

2922:                                             ; preds = %2905, %2888
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #12
  br label %2923

2923:                                             ; preds = %2922
  br label %2924

2924:                                             ; preds = %2923
  call void @exit(i32 noundef 1) #14
  unreachable

2925:                                             ; No predecessors!
  br label %2926

2926:                                             ; preds = %2925
  br label %2927

2927:                                             ; preds = %2926, %2865
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929
  %2931 = load i32, ptr @test_count, align 4, !tbaa !5
  %2932 = add nsw i32 %2931, 1
  store i32 %2932, ptr @test_count, align 4, !tbaa !5
  %2933 = getelementptr inbounds [32 x i8], ptr %19, i64 0, i64 0
  %2934 = getelementptr inbounds [32 x i8], ptr %18, i64 0, i64 0
  %2935 = call i32 @memcmp(ptr noundef %2933, ptr noundef %2934, i64 noundef 32) #16
  %2936 = icmp eq i32 0, %2935
  br i1 %2936, label %2990, label %2937

2937:                                             ; preds = %2930
  br label %2938

2938:                                             ; preds = %2937
  br label %2939

2939:                                             ; preds = %2938
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #12
  %2940 = call ptr @__errno_location() #13
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  store i32 %2941, ptr %69, align 4, !tbaa !5
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = call i32 @s2n_print_stacktrace(ptr noundef %2942)
  %2944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2945 = trunc i8 %2944 to i1
  br i1 %2945, label %2946, label %2968

2946:                                             ; preds = %2939
  %2947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2948 = call i32 @fileno(ptr noundef %2947) #12
  %2949 = call i32 @isatty(i32 noundef %2948) #12
  %2950 = icmp ne i32 %2949, 0
  br i1 %2950, label %2951, label %2968

2951:                                             ; preds = %2946
  %2952 = load i32, ptr %69, align 4, !tbaa !5
  %2953 = call ptr @__errno_location() #13
  store i32 %2952, ptr %2953, align 4, !tbaa !5
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef @.str.3)
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror_debug(i32 noundef %2960, ptr noundef @.str.3)
  %2962 = call ptr @__errno_location() #13
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @strerror(i32 noundef %2963) #12
  %2965 = call ptr @__errno_location() #13
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2954, ptr noundef @.str, i32 noundef %2955, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 422, ptr noundef %2958, ptr noundef %2961, ptr noundef %2964, i32 noundef %2966) #12
  br label %2985

2968:                                             ; preds = %2946, %2939
  %2969 = load i32, ptr %69, align 4, !tbaa !5
  %2970 = call ptr @__errno_location() #13
  store i32 %2969, ptr %2970, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2974 = load i32, ptr %2973, align 4, !tbaa !5
  %2975 = call ptr @s2n_strerror(i32 noundef %2974, ptr noundef @.str.3)
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef @.str.3)
  %2979 = call ptr @__errno_location() #13
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @strerror(i32 noundef %2980) #12
  %2982 = call ptr @__errno_location() #13
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef @.str.4, i32 noundef %2972, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 422, ptr noundef %2975, ptr noundef %2978, ptr noundef %2981, i32 noundef %2983) #12
  br label %2985

2985:                                             ; preds = %2968, %2951
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #12
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986
  call void @exit(i32 noundef 1) #14
  unreachable

2988:                                             ; No predecessors!
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

2990:                                             ; preds = %2989, %2930
  br label %2991

2991:                                             ; preds = %2990
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992
  %2994 = load i32, ptr @test_count, align 4, !tbaa !5
  %2995 = add nsw i32 %2994, 1
  store i32 %2995, ptr @test_count, align 4, !tbaa !5
  %2996 = load ptr, ptr %6, align 8, !tbaa !9
  %2997 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2996, i32 noundef 2)
  br i1 %2997, label %3001, label %2998

2998:                                             ; preds = %2993
  %2999 = load ptr, ptr %6, align 8, !tbaa !9
  %3000 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2999, i32 noundef 1)
  br i1 %3000, label %3054, label %3001

3001:                                             ; preds = %2998, %2993
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

3003:                                             ; preds = %3002
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #12
  %3004 = call ptr @__errno_location() #13
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  store i32 %3005, ptr %70, align 4, !tbaa !5
  %3006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3007 = call i32 @s2n_print_stacktrace(ptr noundef %3006)
  %3008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3009 = trunc i8 %3008 to i1
  br i1 %3009, label %3010, label %3032

3010:                                             ; preds = %3003
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = call i32 @fileno(ptr noundef %3011) #12
  %3013 = call i32 @isatty(i32 noundef %3012) #12
  %3014 = icmp ne i32 %3013, 0
  br i1 %3014, label %3015, label %3032

3015:                                             ; preds = %3010
  %3016 = load i32, ptr %70, align 4, !tbaa !5
  %3017 = call ptr @__errno_location() #13
  store i32 %3016, ptr %3017, align 4, !tbaa !5
  %3018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3019 = load i32, ptr @test_count, align 4, !tbaa !5
  %3020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3021 = load i32, ptr %3020, align 4, !tbaa !5
  %3022 = call ptr @s2n_strerror(i32 noundef %3021, ptr noundef @.str.3)
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror_debug(i32 noundef %3024, ptr noundef @.str.3)
  %3026 = call ptr @__errno_location() #13
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @strerror(i32 noundef %3027) #12
  %3029 = call ptr @__errno_location() #13
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3018, ptr noundef @.str, i32 noundef %3019, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 425, ptr noundef %3022, ptr noundef %3025, ptr noundef %3028, i32 noundef %3030) #12
  br label %3049

3032:                                             ; preds = %3010, %3003
  %3033 = load i32, ptr %70, align 4, !tbaa !5
  %3034 = call ptr @__errno_location() #13
  store i32 %3033, ptr %3034, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call ptr @s2n_strerror(i32 noundef %3038, ptr noundef @.str.3)
  %3040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef @.str.3)
  %3043 = call ptr @__errno_location() #13
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #12
  %3046 = call ptr @__errno_location() #13
  %3047 = load i32, ptr %3046, align 4, !tbaa !5
  %3048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3035, ptr noundef @.str.4, i32 noundef %3036, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 425, ptr noundef %3039, ptr noundef %3042, ptr noundef %3045, i32 noundef %3047) #12
  br label %3049

3049:                                             ; preds = %3032, %3015
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #12
  br label %3050

3050:                                             ; preds = %3049
  br label %3051

3051:                                             ; preds = %3050
  call void @exit(i32 noundef 1) #14
  unreachable

3052:                                             ; No predecessors!
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

3054:                                             ; preds = %3053, %2998
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

3056:                                             ; preds = %3055
  %3057 = getelementptr inbounds [256 x i8], ptr %14, i64 0, i64 0
  call void @llvm.memset.p0.i64(ptr align 16 %3057, i8 0, i64 256, i1 false)
  br label %3058

3058:                                             ; preds = %3056
  %3059 = load i32, ptr @test_count, align 4, !tbaa !5
  %3060 = add nsw i32 %3059, 1
  store i32 %3060, ptr @test_count, align 4, !tbaa !5
  %3061 = load ptr, ptr %6, align 8, !tbaa !9
  %3062 = getelementptr inbounds [256 x i8], ptr %14, i64 0, i64 0
  %3063 = call i64 @s2n_recv(ptr noundef %3061, ptr noundef %3062, i64 noundef 256, ptr noundef %8)
  %3064 = trunc i64 %3063 to i32
  store i32 %3064, ptr %15, align 4, !tbaa !5
  %3065 = icmp eq i32 %3064, -1
  br i1 %3065, label %3066, label %3119

3066:                                             ; preds = %3058
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #12
  %3069 = call ptr @__errno_location() #13
  %3070 = load i32, ptr %3069, align 4, !tbaa !5
  store i32 %3070, ptr %71, align 4, !tbaa !5
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = call i32 @s2n_print_stacktrace(ptr noundef %3071)
  %3073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3074 = trunc i8 %3073 to i1
  br i1 %3074, label %3075, label %3097

3075:                                             ; preds = %3068
  %3076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3077 = call i32 @fileno(ptr noundef %3076) #12
  %3078 = call i32 @isatty(i32 noundef %3077) #12
  %3079 = icmp ne i32 %3078, 0
  br i1 %3079, label %3080, label %3097

3080:                                             ; preds = %3075
  %3081 = load i32, ptr %71, align 4, !tbaa !5
  %3082 = call ptr @__errno_location() #13
  store i32 %3081, ptr %3082, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = load i32, ptr @test_count, align 4, !tbaa !5
  %3085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3086 = load i32, ptr %3085, align 4, !tbaa !5
  %3087 = call ptr @s2n_strerror(i32 noundef %3086, ptr noundef @.str.3)
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef @.str.3)
  %3091 = call ptr @__errno_location() #13
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @strerror(i32 noundef %3092) #12
  %3094 = call ptr @__errno_location() #13
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef @.str, i32 noundef %3084, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 429, ptr noundef %3087, ptr noundef %3090, ptr noundef %3093, i32 noundef %3095) #12
  br label %3114

3097:                                             ; preds = %3075, %3068
  %3098 = load i32, ptr %71, align 4, !tbaa !5
  %3099 = call ptr @__errno_location() #13
  store i32 %3098, ptr %3099, align 4, !tbaa !5
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  %3104 = call ptr @s2n_strerror(i32 noundef %3103, ptr noundef @.str.3)
  %3105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3106 = load i32, ptr %3105, align 4, !tbaa !5
  %3107 = call ptr @s2n_strerror_debug(i32 noundef %3106, ptr noundef @.str.3)
  %3108 = call ptr @__errno_location() #13
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call ptr @strerror(i32 noundef %3109) #12
  %3111 = call ptr @__errno_location() #13
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3100, ptr noundef @.str.4, i32 noundef %3101, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 429, ptr noundef %3104, ptr noundef %3107, ptr noundef %3110, i32 noundef %3112) #12
  br label %3114

3114:                                             ; preds = %3097, %3080
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #12
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

3116:                                             ; preds = %3115
  call void @exit(i32 noundef 1) #14
  unreachable

3117:                                             ; No predecessors!
  br label %3118

3118:                                             ; preds = %3117
  br label %3119

3119:                                             ; preds = %3118, %3058
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121
  %3123 = load i32, ptr @test_count, align 4, !tbaa !5
  %3124 = add nsw i32 %3123, 1
  store i32 %3124, ptr @test_count, align 4, !tbaa !5
  %3125 = load i32, ptr %15, align 4, !tbaa !5
  %3126 = sext i32 %3125 to i64
  %3127 = icmp eq i64 %3126, 5
  br i1 %3127, label %3181, label %3128

3128:                                             ; preds = %3122
  br label %3129

3129:                                             ; preds = %3128
  br label %3130

3130:                                             ; preds = %3129
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #12
  %3131 = call ptr @__errno_location() #13
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  store i32 %3132, ptr %72, align 4, !tbaa !5
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3134 = call i32 @s2n_print_stacktrace(ptr noundef %3133)
  %3135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3136 = trunc i8 %3135 to i1
  br i1 %3136, label %3137, label %3159

3137:                                             ; preds = %3130
  %3138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3139 = call i32 @fileno(ptr noundef %3138) #12
  %3140 = call i32 @isatty(i32 noundef %3139) #12
  %3141 = icmp ne i32 %3140, 0
  br i1 %3141, label %3142, label %3159

3142:                                             ; preds = %3137
  %3143 = load i32, ptr %72, align 4, !tbaa !5
  %3144 = call ptr @__errno_location() #13
  store i32 %3143, ptr %3144, align 4, !tbaa !5
  %3145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3146 = load i32, ptr @test_count, align 4, !tbaa !5
  %3147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror(i32 noundef %3148, ptr noundef @.str.3)
  %3150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror_debug(i32 noundef %3151, ptr noundef @.str.3)
  %3153 = call ptr @__errno_location() #13
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call ptr @strerror(i32 noundef %3154) #12
  %3156 = call ptr @__errno_location() #13
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  %3158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3145, ptr noundef @.str, i32 noundef %3146, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 430, ptr noundef %3149, ptr noundef %3152, ptr noundef %3155, i32 noundef %3157) #12
  br label %3176

3159:                                             ; preds = %3137, %3130
  %3160 = load i32, ptr %72, align 4, !tbaa !5
  %3161 = call ptr @__errno_location() #13
  store i32 %3160, ptr %3161, align 4, !tbaa !5
  %3162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3163 = load i32, ptr @test_count, align 4, !tbaa !5
  %3164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror(i32 noundef %3165, ptr noundef @.str.3)
  %3167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call ptr @s2n_strerror_debug(i32 noundef %3168, ptr noundef @.str.3)
  %3170 = call ptr @__errno_location() #13
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call ptr @strerror(i32 noundef %3171) #12
  %3173 = call ptr @__errno_location() #13
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  %3175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3162, ptr noundef @.str.4, i32 noundef %3163, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 430, ptr noundef %3166, ptr noundef %3169, ptr noundef %3172, i32 noundef %3174) #12
  br label %3176

3176:                                             ; preds = %3159, %3142
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #12
  br label %3177

3177:                                             ; preds = %3176
  br label %3178

3178:                                             ; preds = %3177
  call void @exit(i32 noundef 1) #14
  unreachable

3179:                                             ; No predecessors!
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

3181:                                             ; preds = %3180, %3122
  br label %3182

3182:                                             ; preds = %3181
  br label %3183

3183:                                             ; preds = %3182
  br label %3184

3184:                                             ; preds = %3183
  %3185 = load i32, ptr @test_count, align 4, !tbaa !5
  %3186 = add nsw i32 %3185, 1
  store i32 %3186, ptr @test_count, align 4, !tbaa !5
  %3187 = getelementptr inbounds [256 x i8], ptr %14, i64 0, i64 0
  %3188 = call i32 @memcmp(ptr noundef %3187, ptr noundef @MSG, i64 noundef 5) #16
  %3189 = icmp eq i32 %3188, 0
  br i1 %3189, label %3243, label %3190

3190:                                             ; preds = %3184
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

3192:                                             ; preds = %3191
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #12
  %3193 = call ptr @__errno_location() #13
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  store i32 %3194, ptr %73, align 4, !tbaa !5
  %3195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3196 = call i32 @s2n_print_stacktrace(ptr noundef %3195)
  %3197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3198 = trunc i8 %3197 to i1
  br i1 %3198, label %3199, label %3221

3199:                                             ; preds = %3192
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = call i32 @fileno(ptr noundef %3200) #12
  %3202 = call i32 @isatty(i32 noundef %3201) #12
  %3203 = icmp ne i32 %3202, 0
  br i1 %3203, label %3204, label %3221

3204:                                             ; preds = %3199
  %3205 = load i32, ptr %73, align 4, !tbaa !5
  %3206 = call ptr @__errno_location() #13
  store i32 %3205, ptr %3206, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror(i32 noundef %3210, ptr noundef @.str.3)
  %3212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror_debug(i32 noundef %3213, ptr noundef @.str.3)
  %3215 = call ptr @__errno_location() #13
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @strerror(i32 noundef %3216) #12
  %3218 = call ptr @__errno_location() #13
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef @.str, i32 noundef %3208, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 431, ptr noundef %3211, ptr noundef %3214, ptr noundef %3217, i32 noundef %3219) #12
  br label %3238

3221:                                             ; preds = %3199, %3192
  %3222 = load i32, ptr %73, align 4, !tbaa !5
  %3223 = call ptr @__errno_location() #13
  store i32 %3222, ptr %3223, align 4, !tbaa !5
  %3224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3225 = load i32, ptr @test_count, align 4, !tbaa !5
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror(i32 noundef %3227, ptr noundef @.str.3)
  %3229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @s2n_strerror_debug(i32 noundef %3230, ptr noundef @.str.3)
  %3232 = call ptr @__errno_location() #13
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call ptr @strerror(i32 noundef %3233) #12
  %3235 = call ptr @__errno_location() #13
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  %3237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3224, ptr noundef @.str.4, i32 noundef %3225, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 431, ptr noundef %3228, ptr noundef %3231, ptr noundef %3234, i32 noundef %3236) #12
  br label %3238

3238:                                             ; preds = %3221, %3204
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #12
  br label %3239

3239:                                             ; preds = %3238
  br label %3240

3240:                                             ; preds = %3239
  call void @exit(i32 noundef 1) #14
  unreachable

3241:                                             ; No predecessors!
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242, %3184
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3317, %3245
  %3247 = load ptr, ptr %6, align 8, !tbaa !9
  %3248 = call i32 @s2n_shutdown(ptr noundef %3247, ptr noundef %8)
  store i32 %3248, ptr %16, align 4, !tbaa !5
  br label %3249

3249:                                             ; preds = %3246
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = add nsw i32 %3250, 1
  store i32 %3251, ptr @test_count, align 4, !tbaa !5
  %3252 = load i32, ptr %16, align 4, !tbaa !5
  %3253 = icmp eq i32 %3252, 0
  br i1 %3253, label %3314, label %3254

3254:                                             ; preds = %3249
  %3255 = call ptr @__errno_location() #13
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = icmp eq i32 %3256, 11
  br i1 %3257, label %3258, label %3261

3258:                                             ; preds = %3254
  %3259 = load i32, ptr %8, align 4, !tbaa !5
  %3260 = icmp ne i32 %3259, 0
  br i1 %3260, label %3314, label %3261

3261:                                             ; preds = %3258, %3254
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

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

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

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

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

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

3310:                                             ; preds = %3309
  br label %3311

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

3312:                                             ; No predecessors!
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

3314:                                             ; preds = %3313, %3258, %3249
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

3317:                                             ; preds = %3316
  %3318 = load i32, ptr %16, align 4, !tbaa !5
  %3319 = icmp ne i32 %3318, 0
  br i1 %3319, label %3246, label %3320, !llvm.loop !50

3320:                                             ; preds = %3317
  br label %3321

3321:                                             ; preds = %3320
  %3322 = load i32, ptr @test_count, align 4, !tbaa !5
  %3323 = add nsw i32 %3322, 1
  store i32 %3323, ptr @test_count, align 4, !tbaa !5
  %3324 = load ptr, ptr %6, align 8, !tbaa !9
  %3325 = call i32 @s2n_connection_free(ptr noundef %3324)
  %3326 = icmp eq i32 %3325, -1
  br i1 %3326, label %3327, label %3380

3327:                                             ; preds = %3321
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

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

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

3341:                                             ; preds = %3336
  %3342 = load i32, ptr %75, align 4, !tbaa !5
  %3343 = call ptr @__errno_location() #13
  store i32 %3342, ptr %3343, align 4, !tbaa !5
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3347 = load i32, ptr %3346, align 4, !tbaa !5
  %3348 = call ptr @s2n_strerror(i32 noundef %3347, ptr noundef @.str.3)
  %3349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3350 = load i32, ptr %3349, align 4, !tbaa !5
  %3351 = call ptr @s2n_strerror_debug(i32 noundef %3350, ptr noundef @.str.3)
  %3352 = call ptr @__errno_location() #13
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @strerror(i32 noundef %3353) #12
  %3355 = call ptr @__errno_location() #13
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3344, ptr noundef @.str, i32 noundef %3345, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 440, ptr noundef %3348, ptr noundef %3351, ptr noundef %3354, i32 noundef %3356) #12
  br label %3375

3358:                                             ; preds = %3336, %3329
  %3359 = load i32, ptr %75, align 4, !tbaa !5
  %3360 = call ptr @__errno_location() #13
  store i32 %3359, ptr %3360, align 4, !tbaa !5
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = load i32, ptr @test_count, align 4, !tbaa !5
  %3363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3364 = load i32, ptr %3363, align 4, !tbaa !5
  %3365 = call ptr @s2n_strerror(i32 noundef %3364, ptr noundef @.str.3)
  %3366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call ptr @s2n_strerror_debug(i32 noundef %3367, ptr noundef @.str.3)
  %3369 = call ptr @__errno_location() #13
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @strerror(i32 noundef %3370) #12
  %3372 = call ptr @__errno_location() #13
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3361, ptr noundef @.str.4, i32 noundef %3362, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 440, ptr noundef %3365, ptr noundef %3368, ptr noundef %3371, i32 noundef %3373) #12
  br label %3375

3375:                                             ; preds = %3358, %3341
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #12
  br label %3376

3376:                                             ; preds = %3375
  br label %3377

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

3378:                                             ; No predecessors!
  br label %3379

3379:                                             ; preds = %3378
  br label %3380

3380:                                             ; preds = %3379, %3321
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #12
  call void @initialize_cache()
  br label %3383

3383:                                             ; preds = %3382
  %3384 = load i32, ptr @test_count, align 4, !tbaa !5
  %3385 = add nsw i32 %3384, 1
  store i32 %3385, ptr @test_count, align 4, !tbaa !5
  %3386 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3386, ptr %6, align 8, !tbaa !9
  %3387 = icmp eq ptr %3386, null
  br i1 %3387, label %3388, label %3441

3388:                                             ; preds = %3383
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

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

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

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

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

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

3437:                                             ; preds = %3436
  br label %3438

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

3439:                                             ; No predecessors!
  br label %3440

3440:                                             ; preds = %3439
  br label %3441

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

3442:                                             ; preds = %3441
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

3444:                                             ; preds = %3443
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = add nsw i32 %3445, 1
  store i32 %3446, ptr @test_count, align 4, !tbaa !5
  %3447 = load ptr, ptr %6, align 8, !tbaa !9
  %3448 = load ptr, ptr %7, align 8, !tbaa !9
  %3449 = call i32 @s2n_connection_set_config(ptr noundef %3447, ptr noundef %3448)
  %3450 = icmp eq i32 %3449, -1
  br i1 %3450, label %3451, label %3504

3451:                                             ; preds = %3444
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

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

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

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

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

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

3500:                                             ; preds = %3499
  br label %3501

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

3502:                                             ; No predecessors!
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

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

3505:                                             ; preds = %3504
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

3507:                                             ; preds = %3506
  %3508 = load i32, ptr @test_count, align 4, !tbaa !5
  %3509 = add nsw i32 %3508, 1
  store i32 %3509, ptr @test_count, align 4, !tbaa !5
  %3510 = load ptr, ptr %6, align 8, !tbaa !9
  %3511 = call i32 @s2n_connection_set_io_pair(ptr noundef %3510, ptr noundef %25)
  %3512 = icmp eq i32 %3511, -1
  br i1 %3512, label %3513, label %3566

3513:                                             ; preds = %3507
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #12
  %3516 = call ptr @__errno_location() #13
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  store i32 %3517, ptr %78, align 4, !tbaa !5
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @s2n_print_stacktrace(ptr noundef %3518)
  %3520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3521 = trunc i8 %3520 to i1
  br i1 %3521, label %3522, label %3544

3522:                                             ; preds = %3515
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @fileno(ptr noundef %3523) #12
  %3525 = call i32 @isatty(i32 noundef %3524) #12
  %3526 = icmp ne i32 %3525, 0
  br i1 %3526, label %3527, label %3544

3527:                                             ; preds = %3522
  %3528 = load i32, ptr %78, align 4, !tbaa !5
  %3529 = call ptr @__errno_location() #13
  store i32 %3528, ptr %3529, align 4, !tbaa !5
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = load i32, ptr @test_count, align 4, !tbaa !5
  %3532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror(i32 noundef %3533, ptr noundef @.str.3)
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror_debug(i32 noundef %3536, ptr noundef @.str.3)
  %3538 = call ptr @__errno_location() #13
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @strerror(i32 noundef %3539) #12
  %3541 = call ptr @__errno_location() #13
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3530, ptr noundef @.str, i32 noundef %3531, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 450, ptr noundef %3534, ptr noundef %3537, ptr noundef %3540, i32 noundef %3542) #12
  br label %3561

3544:                                             ; preds = %3522, %3515
  %3545 = load i32, ptr %78, align 4, !tbaa !5
  %3546 = call ptr @__errno_location() #13
  store i32 %3545, ptr %3546, align 4, !tbaa !5
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call ptr @s2n_strerror(i32 noundef %3550, ptr noundef @.str.3)
  %3552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror_debug(i32 noundef %3553, ptr noundef @.str.3)
  %3555 = call ptr @__errno_location() #13
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  %3557 = call ptr @strerror(i32 noundef %3556) #12
  %3558 = call ptr @__errno_location() #13
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3547, ptr noundef @.str.4, i32 noundef %3548, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 450, ptr noundef %3551, ptr noundef %3554, ptr noundef %3557, i32 noundef %3559) #12
  br label %3561

3561:                                             ; preds = %3544, %3527
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #12
  br label %3562

3562:                                             ; preds = %3561
  br label %3563

3563:                                             ; preds = %3562
  call void @exit(i32 noundef 1) #14
  unreachable

3564:                                             ; No predecessors!
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

3566:                                             ; preds = %3565, %3507
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #12
  %3569 = load ptr, ptr %6, align 8, !tbaa !9
  %3570 = call i32 @s2n_negotiate(ptr noundef %3569, ptr noundef %8)
  store i32 %3570, ptr %79, align 4, !tbaa !5
  br label %3571

3571:                                             ; preds = %3568
  %3572 = load i32, ptr @test_count, align 4, !tbaa !5
  %3573 = add nsw i32 %3572, 1
  store i32 %3573, ptr @test_count, align 4, !tbaa !5
  %3574 = load i32, ptr %79, align 4, !tbaa !5
  %3575 = icmp eq i32 %3574, -1
  br i1 %3575, label %3629, label %3576

3576:                                             ; preds = %3571
  br label %3577

3577:                                             ; preds = %3576
  br label %3578

3578:                                             ; preds = %3577
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #12
  %3579 = call ptr @__errno_location() #13
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  store i32 %3580, ptr %80, align 4, !tbaa !5
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @s2n_print_stacktrace(ptr noundef %3581)
  %3583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3584 = trunc i8 %3583 to i1
  br i1 %3584, label %3585, label %3607

3585:                                             ; preds = %3578
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = call i32 @fileno(ptr noundef %3586) #12
  %3588 = call i32 @isatty(i32 noundef %3587) #12
  %3589 = icmp ne i32 %3588, 0
  br i1 %3589, label %3590, label %3607

3590:                                             ; preds = %3585
  %3591 = load i32, ptr %80, align 4, !tbaa !5
  %3592 = call ptr @__errno_location() #13
  store i32 %3591, ptr %3592, align 4, !tbaa !5
  %3593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3594 = load i32, ptr @test_count, align 4, !tbaa !5
  %3595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3596 = load i32, ptr %3595, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror(i32 noundef %3596, ptr noundef @.str.3)
  %3598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror_debug(i32 noundef %3599, ptr noundef @.str.3)
  %3601 = call ptr @__errno_location() #13
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call ptr @strerror(i32 noundef %3602) #12
  %3604 = call ptr @__errno_location() #13
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  %3606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3593, ptr noundef @.str, i32 noundef %3594, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 453, ptr noundef %3597, ptr noundef %3600, ptr noundef %3603, i32 noundef %3605) #12
  br label %3624

3607:                                             ; preds = %3585, %3578
  %3608 = load i32, ptr %80, align 4, !tbaa !5
  %3609 = call ptr @__errno_location() #13
  store i32 %3608, ptr %3609, align 4, !tbaa !5
  %3610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3611 = load i32, ptr @test_count, align 4, !tbaa !5
  %3612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3613 = load i32, ptr %3612, align 4, !tbaa !5
  %3614 = call ptr @s2n_strerror(i32 noundef %3613, ptr noundef @.str.3)
  %3615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = call ptr @s2n_strerror_debug(i32 noundef %3616, ptr noundef @.str.3)
  %3618 = call ptr @__errno_location() #13
  %3619 = load i32, ptr %3618, align 4, !tbaa !5
  %3620 = call ptr @strerror(i32 noundef %3619) #12
  %3621 = call ptr @__errno_location() #13
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3610, ptr noundef @.str.4, i32 noundef %3611, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 453, ptr noundef %3614, ptr noundef %3617, ptr noundef %3620, i32 noundef %3622) #12
  br label %3624

3624:                                             ; preds = %3607, %3590
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #12
  br label %3625

3625:                                             ; preds = %3624
  br label %3626

3626:                                             ; preds = %3625
  call void @exit(i32 noundef 1) #14
  unreachable

3627:                                             ; No predecessors!
  br label %3628

3628:                                             ; preds = %3627
  br label %3629

3629:                                             ; preds = %3628, %3571
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630
  br label %3632

3632:                                             ; preds = %3631
  %3633 = load i32, ptr @test_count, align 4, !tbaa !5
  %3634 = add nsw i32 %3633, 1
  store i32 %3634, ptr @test_count, align 4, !tbaa !5
  %3635 = load i32, ptr %8, align 4, !tbaa !5
  %3636 = icmp eq i32 %3635, 3
  br i1 %3636, label %3690, label %3637

3637:                                             ; preds = %3632
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

3639:                                             ; preds = %3638
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #12
  %3640 = call ptr @__errno_location() #13
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  store i32 %3641, ptr %81, align 4, !tbaa !5
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = call i32 @s2n_print_stacktrace(ptr noundef %3642)
  %3644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3645 = trunc i8 %3644 to i1
  br i1 %3645, label %3646, label %3668

3646:                                             ; preds = %3639
  %3647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3648 = call i32 @fileno(ptr noundef %3647) #12
  %3649 = call i32 @isatty(i32 noundef %3648) #12
  %3650 = icmp ne i32 %3649, 0
  br i1 %3650, label %3651, label %3668

3651:                                             ; preds = %3646
  %3652 = load i32, ptr %81, align 4, !tbaa !5
  %3653 = call ptr @__errno_location() #13
  store i32 %3652, ptr %3653, align 4, !tbaa !5
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = load i32, ptr @test_count, align 4, !tbaa !5
  %3656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror(i32 noundef %3657, ptr noundef @.str.3)
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror_debug(i32 noundef %3660, ptr noundef @.str.3)
  %3662 = call ptr @__errno_location() #13
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @strerror(i32 noundef %3663) #12
  %3665 = call ptr @__errno_location() #13
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3654, ptr noundef @.str, i32 noundef %3655, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 454, ptr noundef %3658, ptr noundef %3661, ptr noundef %3664, i32 noundef %3666) #12
  br label %3685

3668:                                             ; preds = %3646, %3639
  %3669 = load i32, ptr %81, align 4, !tbaa !5
  %3670 = call ptr @__errno_location() #13
  store i32 %3669, ptr %3670, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror(i32 noundef %3674, ptr noundef @.str.3)
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef @.str.3)
  %3679 = call ptr @__errno_location() #13
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @strerror(i32 noundef %3680) #12
  %3682 = call ptr @__errno_location() #13
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3671, ptr noundef @.str.4, i32 noundef %3672, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 454, ptr noundef %3675, ptr noundef %3678, ptr noundef %3681, i32 noundef %3683) #12
  br label %3685

3685:                                             ; preds = %3668, %3651
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #12
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

3687:                                             ; preds = %3686
  call void @exit(i32 noundef 1) #14
  unreachable

3688:                                             ; No predecessors!
  br label %3689

3689:                                             ; preds = %3688
  br label %3690

3690:                                             ; preds = %3689, %3632
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692
  br label %3694

3694:                                             ; preds = %3693
  %3695 = load i32, ptr @test_count, align 4, !tbaa !5
  %3696 = add nsw i32 %3695, 1
  store i32 %3696, ptr @test_count, align 4, !tbaa !5
  %3697 = load ptr, ptr %6, align 8, !tbaa !9
  %3698 = call i32 @s2n_negotiate(ptr noundef %3697, ptr noundef %8)
  %3699 = icmp eq i32 %3698, -1
  br i1 %3699, label %3753, label %3700

3700:                                             ; preds = %3694
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

3702:                                             ; preds = %3701
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #12
  %3703 = call ptr @__errno_location() #13
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  store i32 %3704, ptr %82, align 4, !tbaa !5
  %3705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3706 = call i32 @s2n_print_stacktrace(ptr noundef %3705)
  %3707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3708 = trunc i8 %3707 to i1
  br i1 %3708, label %3709, label %3731

3709:                                             ; preds = %3702
  %3710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3711 = call i32 @fileno(ptr noundef %3710) #12
  %3712 = call i32 @isatty(i32 noundef %3711) #12
  %3713 = icmp ne i32 %3712, 0
  br i1 %3713, label %3714, label %3731

3714:                                             ; preds = %3709
  %3715 = load i32, ptr %82, align 4, !tbaa !5
  %3716 = call ptr @__errno_location() #13
  store i32 %3715, ptr %3716, align 4, !tbaa !5
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = load i32, ptr @test_count, align 4, !tbaa !5
  %3719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @s2n_strerror(i32 noundef %3720, ptr noundef @.str.3)
  %3722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call ptr @s2n_strerror_debug(i32 noundef %3723, ptr noundef @.str.3)
  %3725 = call ptr @__errno_location() #13
  %3726 = load i32, ptr %3725, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #12
  %3728 = call ptr @__errno_location() #13
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3717, ptr noundef @.str, i32 noundef %3718, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 456, ptr noundef %3721, ptr noundef %3724, ptr noundef %3727, i32 noundef %3729) #12
  br label %3748

3731:                                             ; preds = %3709, %3702
  %3732 = load i32, ptr %82, align 4, !tbaa !5
  %3733 = call ptr @__errno_location() #13
  store i32 %3732, ptr %3733, align 4, !tbaa !5
  %3734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3737 = load i32, ptr %3736, align 4, !tbaa !5
  %3738 = call ptr @s2n_strerror(i32 noundef %3737, ptr noundef @.str.3)
  %3739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3740 = load i32, ptr %3739, align 4, !tbaa !5
  %3741 = call ptr @s2n_strerror_debug(i32 noundef %3740, ptr noundef @.str.3)
  %3742 = call ptr @__errno_location() #13
  %3743 = load i32, ptr %3742, align 4, !tbaa !5
  %3744 = call ptr @strerror(i32 noundef %3743) #12
  %3745 = call ptr @__errno_location() #13
  %3746 = load i32, ptr %3745, align 4, !tbaa !5
  %3747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3734, ptr noundef @.str.4, i32 noundef %3735, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 456, ptr noundef %3738, ptr noundef %3741, ptr noundef %3744, i32 noundef %3746) #12
  br label %3748

3748:                                             ; preds = %3731, %3714
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #12
  br label %3749

3749:                                             ; preds = %3748
  br label %3750

3750:                                             ; preds = %3749
  call void @exit(i32 noundef 1) #14
  unreachable

3751:                                             ; No predecessors!
  br label %3752

3752:                                             ; preds = %3751
  br label %3753

3753:                                             ; preds = %3752, %3694
  br label %3754

3754:                                             ; preds = %3753
  br label %3755

3755:                                             ; preds = %3754
  br label %3756

3756:                                             ; preds = %3755
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = add nsw i32 %3757, 1
  store i32 %3758, ptr @test_count, align 4, !tbaa !5
  %3759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = icmp eq i32 %3760, 0
  br i1 %3761, label %3762, label %3815

3762:                                             ; preds = %3756
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

3764:                                             ; preds = %3763
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #12
  %3765 = call ptr @__errno_location() #13
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  store i32 %3766, ptr %83, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = call i32 @s2n_print_stacktrace(ptr noundef %3767)
  %3769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3770 = trunc i8 %3769 to i1
  br i1 %3770, label %3771, label %3793

3771:                                             ; preds = %3764
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @fileno(ptr noundef %3772) #12
  %3774 = call i32 @isatty(i32 noundef %3773) #12
  %3775 = icmp ne i32 %3774, 0
  br i1 %3775, label %3776, label %3793

3776:                                             ; preds = %3771
  %3777 = load i32, ptr %83, align 4, !tbaa !5
  %3778 = call ptr @__errno_location() #13
  store i32 %3777, ptr %3778, align 4, !tbaa !5
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = load i32, ptr @test_count, align 4, !tbaa !5
  %3781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @s2n_strerror(i32 noundef %3782, ptr noundef @.str.3)
  %3784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror_debug(i32 noundef %3785, ptr noundef @.str.3)
  %3787 = call ptr @__errno_location() #13
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @strerror(i32 noundef %3788) #12
  %3790 = call ptr @__errno_location() #13
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3779, ptr noundef @.str, i32 noundef %3780, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 456, ptr noundef %3783, ptr noundef %3786, ptr noundef %3789, i32 noundef %3791) #12
  br label %3810

3793:                                             ; preds = %3771, %3764
  %3794 = load i32, ptr %83, align 4, !tbaa !5
  %3795 = call ptr @__errno_location() #13
  store i32 %3794, ptr %3795, align 4, !tbaa !5
  %3796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3797 = load i32, ptr @test_count, align 4, !tbaa !5
  %3798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror(i32 noundef %3799, ptr noundef @.str.3)
  %3801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror_debug(i32 noundef %3802, ptr noundef @.str.3)
  %3804 = call ptr @__errno_location() #13
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @strerror(i32 noundef %3805) #12
  %3807 = call ptr @__errno_location() #13
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3796, ptr noundef @.str.4, i32 noundef %3797, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 456, ptr noundef %3800, ptr noundef %3803, ptr noundef %3806, i32 noundef %3808) #12
  br label %3810

3810:                                             ; preds = %3793, %3776
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #12
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  call void @exit(i32 noundef 1) #14
  unreachable

3813:                                             ; No predecessors!
  br label %3814

3814:                                             ; preds = %3813
  br label %3815

3815:                                             ; preds = %3814, %3756
  br label %3816

3816:                                             ; preds = %3815
  br label %3817

3817:                                             ; preds = %3816
  br label %3818

3818:                                             ; preds = %3817
  %3819 = load i32, ptr @test_count, align 4, !tbaa !5
  %3820 = add nsw i32 %3819, 1
  store i32 %3820, ptr @test_count, align 4, !tbaa !5
  %3821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = call ptr @s2n_strerror_debug(i32 noundef %3822, ptr noundef @.str.3)
  %3824 = icmp eq ptr %3823, null
  br i1 %3824, label %3825, label %3878

3825:                                             ; preds = %3818
  br label %3826

3826:                                             ; preds = %3825
  br label %3827

3827:                                             ; preds = %3826
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #12
  %3828 = call ptr @__errno_location() #13
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  store i32 %3829, ptr %84, align 4, !tbaa !5
  %3830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3831 = call i32 @s2n_print_stacktrace(ptr noundef %3830)
  %3832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3833 = trunc i8 %3832 to i1
  br i1 %3833, label %3834, label %3856

3834:                                             ; preds = %3827
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = call i32 @fileno(ptr noundef %3835) #12
  %3837 = call i32 @isatty(i32 noundef %3836) #12
  %3838 = icmp ne i32 %3837, 0
  br i1 %3838, label %3839, label %3856

3839:                                             ; preds = %3834
  %3840 = load i32, ptr %84, align 4, !tbaa !5
  %3841 = call ptr @__errno_location() #13
  store i32 %3840, ptr %3841, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = load i32, ptr @test_count, align 4, !tbaa !5
  %3844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror(i32 noundef %3845, ptr noundef @.str.3)
  %3847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call ptr @s2n_strerror_debug(i32 noundef %3848, ptr noundef @.str.3)
  %3850 = call ptr @__errno_location() #13
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @strerror(i32 noundef %3851) #12
  %3853 = call ptr @__errno_location() #13
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3842, ptr noundef @.str, i32 noundef %3843, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 456, ptr noundef %3846, ptr noundef %3849, ptr noundef %3852, i32 noundef %3854) #12
  br label %3873

3856:                                             ; preds = %3834, %3827
  %3857 = load i32, ptr %84, align 4, !tbaa !5
  %3858 = call ptr @__errno_location() #13
  store i32 %3857, ptr %3858, align 4, !tbaa !5
  %3859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3860 = load i32, ptr @test_count, align 4, !tbaa !5
  %3861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3862 = load i32, ptr %3861, align 4, !tbaa !5
  %3863 = call ptr @s2n_strerror(i32 noundef %3862, ptr noundef @.str.3)
  %3864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror_debug(i32 noundef %3865, ptr noundef @.str.3)
  %3867 = call ptr @__errno_location() #13
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @strerror(i32 noundef %3868) #12
  %3870 = call ptr @__errno_location() #13
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3859, ptr noundef @.str.4, i32 noundef %3860, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 456, ptr noundef %3863, ptr noundef %3866, ptr noundef %3869, i32 noundef %3871) #12
  br label %3873

3873:                                             ; preds = %3856, %3839
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #12
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

3875:                                             ; preds = %3874
  call void @exit(i32 noundef 1) #14
  unreachable

3876:                                             ; No predecessors!
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

3878:                                             ; preds = %3877, %3818
  br label %3879

3879:                                             ; preds = %3878
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  %3882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3882, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3883 = call ptr @__errno_location() #13
  store i32 0, ptr %3883, align 4, !tbaa !5
  br label %3884

3884:                                             ; preds = %3881
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

3888:                                             ; preds = %3887
  %3889 = load i32, ptr @test_count, align 4, !tbaa !5
  %3890 = add nsw i32 %3889, 1
  store i32 %3890, ptr @test_count, align 4, !tbaa !5
  %3891 = load ptr, ptr %6, align 8, !tbaa !9
  %3892 = call i32 @s2n_connection_free(ptr noundef %3891)
  %3893 = icmp eq i32 %3892, -1
  br i1 %3893, label %3894, label %3947

3894:                                             ; preds = %3888
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #12
  %3897 = call ptr @__errno_location() #13
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  store i32 %3898, ptr %85, align 4, !tbaa !5
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = call i32 @s2n_print_stacktrace(ptr noundef %3899)
  %3901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3902 = trunc i8 %3901 to i1
  br i1 %3902, label %3903, label %3925

3903:                                             ; preds = %3896
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = call i32 @fileno(ptr noundef %3904) #12
  %3906 = call i32 @isatty(i32 noundef %3905) #12
  %3907 = icmp ne i32 %3906, 0
  br i1 %3907, label %3908, label %3925

3908:                                             ; preds = %3903
  %3909 = load i32, ptr %85, align 4, !tbaa !5
  %3910 = call ptr @__errno_location() #13
  store i32 %3909, ptr %3910, align 4, !tbaa !5
  %3911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3912 = load i32, ptr @test_count, align 4, !tbaa !5
  %3913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call ptr @s2n_strerror(i32 noundef %3914, ptr noundef @.str.3)
  %3916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = call ptr @s2n_strerror_debug(i32 noundef %3917, ptr noundef @.str.3)
  %3919 = call ptr @__errno_location() #13
  %3920 = load i32, ptr %3919, align 4, !tbaa !5
  %3921 = call ptr @strerror(i32 noundef %3920) #12
  %3922 = call ptr @__errno_location() #13
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3911, ptr noundef @.str, i32 noundef %3912, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 459, ptr noundef %3915, ptr noundef %3918, ptr noundef %3921, i32 noundef %3923) #12
  br label %3942

3925:                                             ; preds = %3903, %3896
  %3926 = load i32, ptr %85, align 4, !tbaa !5
  %3927 = call ptr @__errno_location() #13
  store i32 %3926, ptr %3927, align 4, !tbaa !5
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef @.str.3)
  %3933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3934 = load i32, ptr %3933, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror_debug(i32 noundef %3934, ptr noundef @.str.3)
  %3936 = call ptr @__errno_location() #13
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #12
  %3939 = call ptr @__errno_location() #13
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3928, ptr noundef @.str.4, i32 noundef %3929, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 459, ptr noundef %3932, ptr noundef %3935, ptr noundef %3938, i32 noundef %3940) #12
  br label %3942

3942:                                             ; preds = %3925, %3908
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #12
  br label %3943

3943:                                             ; preds = %3942
  br label %3944

3944:                                             ; preds = %3943
  call void @exit(i32 noundef 1) #14
  unreachable

3945:                                             ; No predecessors!
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

3947:                                             ; preds = %3946, %3888
  br label %3948

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #12
  br label %3950

3950:                                             ; preds = %3949
  %3951 = load i32, ptr @test_count, align 4, !tbaa !5
  %3952 = add nsw i32 %3951, 1
  store i32 %3952, ptr @test_count, align 4, !tbaa !5
  %3953 = call i32 @s2n_io_pair_close_one_end(ptr noundef %25, i32 noundef 0)
  %3954 = icmp eq i32 %3953, -1
  br i1 %3954, label %3955, label %4008

3955:                                             ; preds = %3950
  br label %3956

3956:                                             ; preds = %3955
  br label %3957

3957:                                             ; preds = %3956
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #12
  %3958 = call ptr @__errno_location() #13
  %3959 = load i32, ptr %3958, align 4, !tbaa !5
  store i32 %3959, ptr %86, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = call i32 @s2n_print_stacktrace(ptr noundef %3960)
  %3962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3963 = trunc i8 %3962 to i1
  br i1 %3963, label %3964, label %3986

3964:                                             ; preds = %3957
  %3965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3966 = call i32 @fileno(ptr noundef %3965) #12
  %3967 = call i32 @isatty(i32 noundef %3966) #12
  %3968 = icmp ne i32 %3967, 0
  br i1 %3968, label %3969, label %3986

3969:                                             ; preds = %3964
  %3970 = load i32, ptr %86, align 4, !tbaa !5
  %3971 = call ptr @__errno_location() #13
  store i32 %3970, ptr %3971, align 4, !tbaa !5
  %3972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3973 = load i32, ptr @test_count, align 4, !tbaa !5
  %3974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @s2n_strerror(i32 noundef %3975, ptr noundef @.str.3)
  %3977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call ptr @s2n_strerror_debug(i32 noundef %3978, ptr noundef @.str.3)
  %3980 = call ptr @__errno_location() #13
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call ptr @strerror(i32 noundef %3981) #12
  %3983 = call ptr @__errno_location() #13
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3972, ptr noundef @.str, i32 noundef %3973, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 463, ptr noundef %3976, ptr noundef %3979, ptr noundef %3982, i32 noundef %3984) #12
  br label %4003

3986:                                             ; preds = %3964, %3957
  %3987 = load i32, ptr %86, align 4, !tbaa !5
  %3988 = call ptr @__errno_location() #13
  store i32 %3987, ptr %3988, align 4, !tbaa !5
  %3989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3990 = load i32, ptr @test_count, align 4, !tbaa !5
  %3991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3992 = load i32, ptr %3991, align 4, !tbaa !5
  %3993 = call ptr @s2n_strerror(i32 noundef %3992, ptr noundef @.str.3)
  %3994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3995 = load i32, ptr %3994, align 4, !tbaa !5
  %3996 = call ptr @s2n_strerror_debug(i32 noundef %3995, ptr noundef @.str.3)
  %3997 = call ptr @__errno_location() #13
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = call ptr @strerror(i32 noundef %3998) #12
  %4000 = call ptr @__errno_location() #13
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3989, ptr noundef @.str.4, i32 noundef %3990, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 463, ptr noundef %3993, ptr noundef %3996, ptr noundef %3999, i32 noundef %4001) #12
  br label %4003

4003:                                             ; preds = %3986, %3969
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #12
  br label %4004

4004:                                             ; preds = %4003
  br label %4005

4005:                                             ; preds = %4004
  call void @exit(i32 noundef 1) #14
  unreachable

4006:                                             ; No predecessors!
  br label %4007

4007:                                             ; preds = %4006
  br label %4008

4008:                                             ; preds = %4007, %3950
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

4010:                                             ; preds = %4009
  call void @initialize_cache()
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #12
  %4011 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4011, ptr %87, align 8, !tbaa !9
  br label %4012

4012:                                             ; preds = %4010
  %4013 = load i32, ptr @test_count, align 4, !tbaa !5
  %4014 = add nsw i32 %4013, 1
  store i32 %4014, ptr @test_count, align 4, !tbaa !5
  %4015 = load ptr, ptr %87, align 8, !tbaa !9
  %4016 = icmp eq ptr %4015, null
  br i1 %4016, label %4017, label %4070

4017:                                             ; preds = %4012
  br label %4018

4018:                                             ; preds = %4017
  br label %4019

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

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

4031:                                             ; preds = %4026
  %4032 = load i32, ptr %88, align 4, !tbaa !5
  %4033 = call ptr @__errno_location() #13
  store i32 %4032, ptr %4033, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = load i32, ptr @test_count, align 4, !tbaa !5
  %4036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call ptr @s2n_strerror(i32 noundef %4037, ptr noundef @.str.3)
  %4039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef @.str.3)
  %4042 = call ptr @__errno_location() #13
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call ptr @strerror(i32 noundef %4043) #12
  %4045 = call ptr @__errno_location() #13
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  %4047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4034, ptr noundef @.str, i32 noundef %4035, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 469, ptr noundef %4038, ptr noundef %4041, ptr noundef %4044, i32 noundef %4046) #12
  br label %4065

4048:                                             ; preds = %4026, %4019
  %4049 = load i32, ptr %88, align 4, !tbaa !5
  %4050 = call ptr @__errno_location() #13
  store i32 %4049, ptr %4050, align 4, !tbaa !5
  %4051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4052 = load i32, ptr @test_count, align 4, !tbaa !5
  %4053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4054 = load i32, ptr %4053, align 4, !tbaa !5
  %4055 = call ptr @s2n_strerror(i32 noundef %4054, ptr noundef @.str.3)
  %4056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4057 = load i32, ptr %4056, align 4, !tbaa !5
  %4058 = call ptr @s2n_strerror_debug(i32 noundef %4057, ptr noundef @.str.3)
  %4059 = call ptr @__errno_location() #13
  %4060 = load i32, ptr %4059, align 4, !tbaa !5
  %4061 = call ptr @strerror(i32 noundef %4060) #12
  %4062 = call ptr @__errno_location() #13
  %4063 = load i32, ptr %4062, align 4, !tbaa !5
  %4064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4051, ptr noundef @.str.4, i32 noundef %4052, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 469, ptr noundef %4055, ptr noundef %4058, ptr noundef %4061, i32 noundef %4063) #12
  br label %4065

4065:                                             ; preds = %4048, %4031
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #12
  br label %4066

4066:                                             ; preds = %4065
  br label %4067

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

4068:                                             ; No predecessors!
  br label %4069

4069:                                             ; preds = %4068
  br label %4070

4070:                                             ; preds = %4069, %4012
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

4072:                                             ; preds = %4071
  %4073 = load ptr, ptr %7, align 8, !tbaa !9
  %4074 = call i32 @s2n_config_disable_x509_verification(ptr noundef %4073)
  br label %4075

4075:                                             ; preds = %4072
  %4076 = load i32, ptr @test_count, align 4, !tbaa !5
  %4077 = add nsw i32 %4076, 1
  store i32 %4077, ptr @test_count, align 4, !tbaa !5
  %4078 = load ptr, ptr %87, align 8, !tbaa !9
  %4079 = load ptr, ptr %7, align 8, !tbaa !9
  %4080 = call i32 @s2n_connection_set_config(ptr noundef %4078, ptr noundef %4079)
  %4081 = icmp eq i32 %4080, -1
  br i1 %4081, label %4082, label %4135

4082:                                             ; preds = %4075
  br label %4083

4083:                                             ; preds = %4082
  br label %4084

4084:                                             ; preds = %4083
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #12
  %4085 = call ptr @__errno_location() #13
  %4086 = load i32, ptr %4085, align 4, !tbaa !5
  store i32 %4086, ptr %89, align 4, !tbaa !5
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = call i32 @s2n_print_stacktrace(ptr noundef %4087)
  %4089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4090 = trunc i8 %4089 to i1
  br i1 %4090, label %4091, label %4113

4091:                                             ; preds = %4084
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = call i32 @fileno(ptr noundef %4092) #12
  %4094 = call i32 @isatty(i32 noundef %4093) #12
  %4095 = icmp ne i32 %4094, 0
  br i1 %4095, label %4096, label %4113

4096:                                             ; preds = %4091
  %4097 = load i32, ptr %89, align 4, !tbaa !5
  %4098 = call ptr @__errno_location() #13
  store i32 %4097, ptr %4098, align 4, !tbaa !5
  %4099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4100 = load i32, ptr @test_count, align 4, !tbaa !5
  %4101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4102 = load i32, ptr %4101, align 4, !tbaa !5
  %4103 = call ptr @s2n_strerror(i32 noundef %4102, ptr noundef @.str.3)
  %4104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4105 = load i32, ptr %4104, align 4, !tbaa !5
  %4106 = call ptr @s2n_strerror_debug(i32 noundef %4105, ptr noundef @.str.3)
  %4107 = call ptr @__errno_location() #13
  %4108 = load i32, ptr %4107, align 4, !tbaa !5
  %4109 = call ptr @strerror(i32 noundef %4108) #12
  %4110 = call ptr @__errno_location() #13
  %4111 = load i32, ptr %4110, align 4, !tbaa !5
  %4112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4099, ptr noundef @.str, i32 noundef %4100, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 471, ptr noundef %4103, ptr noundef %4106, ptr noundef %4109, i32 noundef %4111) #12
  br label %4130

4113:                                             ; preds = %4091, %4084
  %4114 = load i32, ptr %89, align 4, !tbaa !5
  %4115 = call ptr @__errno_location() #13
  store i32 %4114, ptr %4115, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = load i32, ptr @test_count, align 4, !tbaa !5
  %4118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4119 = load i32, ptr %4118, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror(i32 noundef %4119, ptr noundef @.str.3)
  %4121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror_debug(i32 noundef %4122, ptr noundef @.str.3)
  %4124 = call ptr @__errno_location() #13
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @strerror(i32 noundef %4125) #12
  %4127 = call ptr @__errno_location() #13
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4116, ptr noundef @.str.4, i32 noundef %4117, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 471, ptr noundef %4120, ptr noundef %4123, ptr noundef %4126, i32 noundef %4128) #12
  br label %4130

4130:                                             ; preds = %4113, %4096
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #12
  br label %4131

4131:                                             ; preds = %4130
  br label %4132

4132:                                             ; preds = %4131
  call void @exit(i32 noundef 1) #14
  unreachable

4133:                                             ; No predecessors!
  br label %4134

4134:                                             ; preds = %4133
  br label %4135

4135:                                             ; preds = %4134, %4075
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

4137:                                             ; preds = %4136
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #12
  %4138 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4138, ptr %90, align 8, !tbaa !9
  br label %4139

4139:                                             ; preds = %4137
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = add nsw i32 %4140, 1
  store i32 %4141, ptr @test_count, align 4, !tbaa !5
  %4142 = load ptr, ptr %90, align 8, !tbaa !9
  %4143 = icmp eq ptr %4142, null
  br i1 %4143, label %4144, label %4197

4144:                                             ; preds = %4139
  br label %4145

4145:                                             ; preds = %4144
  br label %4146

4146:                                             ; preds = %4145
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #12
  %4147 = call ptr @__errno_location() #13
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  store i32 %4148, ptr %91, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @s2n_print_stacktrace(ptr noundef %4149)
  %4151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4152 = trunc i8 %4151 to i1
  br i1 %4152, label %4153, label %4175

4153:                                             ; preds = %4146
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = call i32 @fileno(ptr noundef %4154) #12
  %4156 = call i32 @isatty(i32 noundef %4155) #12
  %4157 = icmp ne i32 %4156, 0
  br i1 %4157, label %4158, label %4175

4158:                                             ; preds = %4153
  %4159 = load i32, ptr %91, align 4, !tbaa !5
  %4160 = call ptr @__errno_location() #13
  store i32 %4159, ptr %4160, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = load i32, ptr @test_count, align 4, !tbaa !5
  %4163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror(i32 noundef %4164, ptr noundef @.str.3)
  %4166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call ptr @s2n_strerror_debug(i32 noundef %4167, ptr noundef @.str.3)
  %4169 = call ptr @__errno_location() #13
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @strerror(i32 noundef %4170) #12
  %4172 = call ptr @__errno_location() #13
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4161, ptr noundef @.str, i32 noundef %4162, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 474, ptr noundef %4165, ptr noundef %4168, ptr noundef %4171, i32 noundef %4173) #12
  br label %4192

4175:                                             ; preds = %4153, %4146
  %4176 = load i32, ptr %91, align 4, !tbaa !5
  %4177 = call ptr @__errno_location() #13
  store i32 %4176, ptr %4177, align 4, !tbaa !5
  %4178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @s2n_strerror(i32 noundef %4181, ptr noundef @.str.3)
  %4183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call ptr @s2n_strerror_debug(i32 noundef %4184, ptr noundef @.str.3)
  %4186 = call ptr @__errno_location() #13
  %4187 = load i32, ptr %4186, align 4, !tbaa !5
  %4188 = call ptr @strerror(i32 noundef %4187) #12
  %4189 = call ptr @__errno_location() #13
  %4190 = load i32, ptr %4189, align 4, !tbaa !5
  %4191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4178, ptr noundef @.str.4, i32 noundef %4179, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 474, ptr noundef %4182, ptr noundef %4185, ptr noundef %4188, i32 noundef %4190) #12
  br label %4192

4192:                                             ; preds = %4175, %4158
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #12
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  call void @exit(i32 noundef 1) #14
  unreachable

4195:                                             ; No predecessors!
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196, %4139
  br label %4198

4198:                                             ; preds = %4197
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199
  %4201 = load i32, ptr @test_count, align 4, !tbaa !5
  %4202 = add nsw i32 %4201, 1
  store i32 %4202, ptr @test_count, align 4, !tbaa !5
  %4203 = load ptr, ptr %90, align 8, !tbaa !9
  %4204 = load ptr, ptr %7, align 8, !tbaa !9
  %4205 = call i32 @s2n_connection_set_config(ptr noundef %4203, ptr noundef %4204)
  %4206 = icmp eq i32 %4205, -1
  br i1 %4206, label %4207, label %4260

4207:                                             ; preds = %4200
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #12
  %4210 = call ptr @__errno_location() #13
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  store i32 %4211, ptr %92, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = call i32 @s2n_print_stacktrace(ptr noundef %4212)
  %4214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4215 = trunc i8 %4214 to i1
  br i1 %4215, label %4216, label %4238

4216:                                             ; preds = %4209
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = call i32 @fileno(ptr noundef %4217) #12
  %4219 = call i32 @isatty(i32 noundef %4218) #12
  %4220 = icmp ne i32 %4219, 0
  br i1 %4220, label %4221, label %4238

4221:                                             ; preds = %4216
  %4222 = load i32, ptr %92, align 4, !tbaa !5
  %4223 = call ptr @__errno_location() #13
  store i32 %4222, ptr %4223, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = load i32, ptr @test_count, align 4, !tbaa !5
  %4226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call ptr @s2n_strerror(i32 noundef %4227, ptr noundef @.str.3)
  %4229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror_debug(i32 noundef %4230, ptr noundef @.str.3)
  %4232 = call ptr @__errno_location() #13
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call ptr @strerror(i32 noundef %4233) #12
  %4235 = call ptr @__errno_location() #13
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4224, ptr noundef @.str, i32 noundef %4225, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 475, ptr noundef %4228, ptr noundef %4231, ptr noundef %4234, i32 noundef %4236) #12
  br label %4255

4238:                                             ; preds = %4216, %4209
  %4239 = load i32, ptr %92, align 4, !tbaa !5
  %4240 = call ptr @__errno_location() #13
  store i32 %4239, ptr %4240, align 4, !tbaa !5
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror(i32 noundef %4244, ptr noundef @.str.3)
  %4246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror_debug(i32 noundef %4247, ptr noundef @.str.3)
  %4249 = call ptr @__errno_location() #13
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call ptr @strerror(i32 noundef %4250) #12
  %4252 = call ptr @__errno_location() #13
  %4253 = load i32, ptr %4252, align 4, !tbaa !5
  %4254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4241, ptr noundef @.str.4, i32 noundef %4242, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 475, ptr noundef %4245, ptr noundef %4248, ptr noundef %4251, i32 noundef %4253) #12
  br label %4255

4255:                                             ; preds = %4238, %4221
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #12
  br label %4256

4256:                                             ; preds = %4255
  br label %4257

4257:                                             ; preds = %4256
  call void @exit(i32 noundef 1) #14
  unreachable

4258:                                             ; No predecessors!
  br label %4259

4259:                                             ; preds = %4258
  br label %4260

4260:                                             ; preds = %4259, %4200
  br label %4261

4261:                                             ; preds = %4260
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

4263:                                             ; preds = %4262
  %4264 = load i32, ptr @test_count, align 4, !tbaa !5
  %4265 = add nsw i32 %4264, 1
  store i32 %4265, ptr @test_count, align 4, !tbaa !5
  %4266 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %25)
  %4267 = icmp eq i32 %4266, -1
  br i1 %4267, label %4268, label %4321

4268:                                             ; preds = %4263
  br label %4269

4269:                                             ; preds = %4268
  br label %4270

4270:                                             ; preds = %4269
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #12
  %4271 = call ptr @__errno_location() #13
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  store i32 %4272, ptr %93, align 4, !tbaa !5
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = call i32 @s2n_print_stacktrace(ptr noundef %4273)
  %4275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4276 = trunc i8 %4275 to i1
  br i1 %4276, label %4277, label %4299

4277:                                             ; preds = %4270
  %4278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4279 = call i32 @fileno(ptr noundef %4278) #12
  %4280 = call i32 @isatty(i32 noundef %4279) #12
  %4281 = icmp ne i32 %4280, 0
  br i1 %4281, label %4282, label %4299

4282:                                             ; preds = %4277
  %4283 = load i32, ptr %93, align 4, !tbaa !5
  %4284 = call ptr @__errno_location() #13
  store i32 %4283, ptr %4284, align 4, !tbaa !5
  %4285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4286 = load i32, ptr @test_count, align 4, !tbaa !5
  %4287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call ptr @s2n_strerror(i32 noundef %4288, ptr noundef @.str.3)
  %4290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  %4292 = call ptr @s2n_strerror_debug(i32 noundef %4291, ptr noundef @.str.3)
  %4293 = call ptr @__errno_location() #13
  %4294 = load i32, ptr %4293, align 4, !tbaa !5
  %4295 = call ptr @strerror(i32 noundef %4294) #12
  %4296 = call ptr @__errno_location() #13
  %4297 = load i32, ptr %4296, align 4, !tbaa !5
  %4298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4285, ptr noundef @.str, i32 noundef %4286, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 478, ptr noundef %4289, ptr noundef %4292, ptr noundef %4295, i32 noundef %4297) #12
  br label %4316

4299:                                             ; preds = %4277, %4270
  %4300 = load i32, ptr %93, align 4, !tbaa !5
  %4301 = call ptr @__errno_location() #13
  store i32 %4300, ptr %4301, align 4, !tbaa !5
  %4302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4303 = load i32, ptr @test_count, align 4, !tbaa !5
  %4304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror(i32 noundef %4305, ptr noundef @.str.3)
  %4307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror_debug(i32 noundef %4308, ptr noundef @.str.3)
  %4310 = call ptr @__errno_location() #13
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call ptr @strerror(i32 noundef %4311) #12
  %4313 = call ptr @__errno_location() #13
  %4314 = load i32, ptr %4313, align 4, !tbaa !5
  %4315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4302, ptr noundef @.str.4, i32 noundef %4303, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 478, ptr noundef %4306, ptr noundef %4309, ptr noundef %4312, i32 noundef %4314) #12
  br label %4316

4316:                                             ; preds = %4299, %4282
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #12
  br label %4317

4317:                                             ; preds = %4316
  br label %4318

4318:                                             ; preds = %4317
  call void @exit(i32 noundef 1) #14
  unreachable

4319:                                             ; No predecessors!
  br label %4320

4320:                                             ; preds = %4319
  br label %4321

4321:                                             ; preds = %4320, %4263
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

4323:                                             ; preds = %4322
  br label %4324

4324:                                             ; preds = %4323
  %4325 = load i32, ptr @test_count, align 4, !tbaa !5
  %4326 = add nsw i32 %4325, 1
  store i32 %4326, ptr @test_count, align 4, !tbaa !5
  %4327 = load ptr, ptr %87, align 8, !tbaa !9
  %4328 = load ptr, ptr %90, align 8, !tbaa !9
  %4329 = call i32 @s2n_connections_set_io_pair(ptr noundef %4327, ptr noundef %4328, ptr noundef %25)
  %4330 = icmp eq i32 %4329, -1
  br i1 %4330, label %4331, label %4384

4331:                                             ; preds = %4324
  br label %4332

4332:                                             ; preds = %4331
  br label %4333

4333:                                             ; preds = %4332
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #12
  %4334 = call ptr @__errno_location() #13
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  store i32 %4335, ptr %94, align 4, !tbaa !5
  %4336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4337 = call i32 @s2n_print_stacktrace(ptr noundef %4336)
  %4338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4339 = trunc i8 %4338 to i1
  br i1 %4339, label %4340, label %4362

4340:                                             ; preds = %4333
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = call i32 @fileno(ptr noundef %4341) #12
  %4343 = call i32 @isatty(i32 noundef %4342) #12
  %4344 = icmp ne i32 %4343, 0
  br i1 %4344, label %4345, label %4362

4345:                                             ; preds = %4340
  %4346 = load i32, ptr %94, align 4, !tbaa !5
  %4347 = call ptr @__errno_location() #13
  store i32 %4346, ptr %4347, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = load i32, ptr @test_count, align 4, !tbaa !5
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror(i32 noundef %4351, ptr noundef @.str.3)
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror_debug(i32 noundef %4354, ptr noundef @.str.3)
  %4356 = call ptr @__errno_location() #13
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @strerror(i32 noundef %4357) #12
  %4359 = call ptr @__errno_location() #13
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4348, ptr noundef @.str, i32 noundef %4349, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 479, ptr noundef %4352, ptr noundef %4355, ptr noundef %4358, i32 noundef %4360) #12
  br label %4379

4362:                                             ; preds = %4340, %4333
  %4363 = load i32, ptr %94, align 4, !tbaa !5
  %4364 = call ptr @__errno_location() #13
  store i32 %4363, ptr %4364, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = load i32, ptr @test_count, align 4, !tbaa !5
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror(i32 noundef %4368, ptr noundef @.str.3)
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror_debug(i32 noundef %4371, ptr noundef @.str.3)
  %4373 = call ptr @__errno_location() #13
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @strerror(i32 noundef %4374) #12
  %4376 = call ptr @__errno_location() #13
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4365, ptr noundef @.str.4, i32 noundef %4366, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 479, ptr noundef %4369, ptr noundef %4372, ptr noundef %4375, i32 noundef %4377) #12
  br label %4379

4379:                                             ; preds = %4362, %4345
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #12
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

4381:                                             ; preds = %4380
  call void @exit(i32 noundef 1) #14
  unreachable

4382:                                             ; No predecessors!
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383, %4324
  br label %4385

4385:                                             ; preds = %4384
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = add nsw i32 %4388, 1
  store i32 %4389, ptr @test_count, align 4, !tbaa !5
  %4390 = load ptr, ptr %87, align 8, !tbaa !9
  %4391 = call i32 @s2n_negotiate_until_message(ptr noundef %4390, ptr noundef %8, i32 noundef 1)
  %4392 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %4391, ptr %4392, align 4
  %4393 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  %4394 = load i32, ptr %4393, align 4
  %4395 = call zeroext i1 @s2n_result_is_ok(i32 %4394)
  br i1 %4395, label %4449, label %4396

4396:                                             ; preds = %4387
  br label %4397

4397:                                             ; preds = %4396
  br label %4398

4398:                                             ; preds = %4397
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #12
  %4399 = call ptr @__errno_location() #13
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  store i32 %4400, ptr %96, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @s2n_print_stacktrace(ptr noundef %4401)
  %4403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4404 = trunc i8 %4403 to i1
  br i1 %4404, label %4405, label %4427

4405:                                             ; preds = %4398
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4407 = call i32 @fileno(ptr noundef %4406) #12
  %4408 = call i32 @isatty(i32 noundef %4407) #12
  %4409 = icmp ne i32 %4408, 0
  br i1 %4409, label %4410, label %4427

4410:                                             ; preds = %4405
  %4411 = load i32, ptr %96, align 4, !tbaa !5
  %4412 = call ptr @__errno_location() #13
  store i32 %4411, ptr %4412, align 4, !tbaa !5
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %4415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror(i32 noundef %4416, ptr noundef @.str.3)
  %4418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @s2n_strerror_debug(i32 noundef %4419, ptr noundef @.str.3)
  %4421 = call ptr @__errno_location() #13
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @strerror(i32 noundef %4422) #12
  %4424 = call ptr @__errno_location() #13
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4413, ptr noundef @.str, i32 noundef %4414, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 482, ptr noundef %4417, ptr noundef %4420, ptr noundef %4423, i32 noundef %4425) #12
  br label %4444

4427:                                             ; preds = %4405, %4398
  %4428 = load i32, ptr %96, align 4, !tbaa !5
  %4429 = call ptr @__errno_location() #13
  store i32 %4428, ptr %4429, align 4, !tbaa !5
  %4430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %4432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror(i32 noundef %4433, ptr noundef @.str.3)
  %4435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror_debug(i32 noundef %4436, ptr noundef @.str.3)
  %4438 = call ptr @__errno_location() #13
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @strerror(i32 noundef %4439) #12
  %4441 = call ptr @__errno_location() #13
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4430, ptr noundef @.str.4, i32 noundef %4431, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 482, ptr noundef %4434, ptr noundef %4437, ptr noundef %4440, i32 noundef %4442) #12
  br label %4444

4444:                                             ; preds = %4427, %4410
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #12
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  call void @exit(i32 noundef 1) #14
  unreachable

4447:                                             ; No predecessors!
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

4449:                                             ; preds = %4448, %4387
  br label %4450

4450:                                             ; preds = %4449
  br label %4451

4451:                                             ; preds = %4450
  br label %4452

4452:                                             ; preds = %4451
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = add nsw i32 %4453, 1
  store i32 %4454, ptr @test_count, align 4, !tbaa !5
  %4455 = load ptr, ptr %90, align 8, !tbaa !9
  %4456 = call i32 @s2n_negotiate_until_message(ptr noundef %4455, ptr noundef %8, i32 noundef 1)
  %4457 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  store i32 %4456, ptr %4457, align 4
  %4458 = getelementptr inbounds %struct.s2n_result, ptr %97, i32 0, i32 0
  %4459 = load i32, ptr %4458, align 4
  %4460 = call zeroext i1 @s2n_result_is_ok(i32 %4459)
  br i1 %4460, label %4514, label %4461

4461:                                             ; preds = %4452
  br label %4462

4462:                                             ; preds = %4461
  br label %4463

4463:                                             ; preds = %4462
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #12
  %4464 = call ptr @__errno_location() #13
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  store i32 %4465, ptr %98, align 4, !tbaa !5
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @s2n_print_stacktrace(ptr noundef %4466)
  %4468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4469 = trunc i8 %4468 to i1
  br i1 %4469, label %4470, label %4492

4470:                                             ; preds = %4463
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = call i32 @fileno(ptr noundef %4471) #12
  %4473 = call i32 @isatty(i32 noundef %4472) #12
  %4474 = icmp ne i32 %4473, 0
  br i1 %4474, label %4475, label %4492

4475:                                             ; preds = %4470
  %4476 = load i32, ptr %98, align 4, !tbaa !5
  %4477 = call ptr @__errno_location() #13
  store i32 %4476, ptr %4477, align 4, !tbaa !5
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = load i32, ptr @test_count, align 4, !tbaa !5
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror(i32 noundef %4481, ptr noundef @.str.3)
  %4483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror_debug(i32 noundef %4484, ptr noundef @.str.3)
  %4486 = call ptr @__errno_location() #13
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @strerror(i32 noundef %4487) #12
  %4489 = call ptr @__errno_location() #13
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4478, ptr noundef @.str, i32 noundef %4479, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 483, ptr noundef %4482, ptr noundef %4485, ptr noundef %4488, i32 noundef %4490) #12
  br label %4509

4492:                                             ; preds = %4470, %4463
  %4493 = load i32, ptr %98, align 4, !tbaa !5
  %4494 = call ptr @__errno_location() #13
  store i32 %4493, ptr %4494, align 4, !tbaa !5
  %4495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4496 = load i32, ptr @test_count, align 4, !tbaa !5
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror(i32 noundef %4498, ptr noundef @.str.3)
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror_debug(i32 noundef %4501, ptr noundef @.str.3)
  %4503 = call ptr @__errno_location() #13
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @strerror(i32 noundef %4504) #12
  %4506 = call ptr @__errno_location() #13
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4495, ptr noundef @.str.4, i32 noundef %4496, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 483, ptr noundef %4499, ptr noundef %4502, ptr noundef %4505, i32 noundef %4507) #12
  br label %4509

4509:                                             ; preds = %4492, %4475
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #12
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510
  call void @exit(i32 noundef 1) #14
  unreachable

4512:                                             ; No predecessors!
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513, %4452
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515
  %4517 = load ptr, ptr %90, align 8, !tbaa !9
  %4518 = load i32, ptr %4517, align 8
  %4519 = and i32 %4518, -8193
  %4520 = or i32 %4519, 0
  store i32 %4520, ptr %4517, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #12
  store i8 0, ptr %99, align 1, !tbaa !51
  br label %4521

4521:                                             ; preds = %4516
  %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 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 23, ptr noundef %99)
  %4525 = icmp eq i32 %4524, -1
  br i1 %4525, label %4526, label %4579

4526:                                             ; preds = %4521
  br label %4527

4527:                                             ; preds = %4526
  br label %4528

4528:                                             ; preds = %4527
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #12
  %4529 = call ptr @__errno_location() #13
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  store i32 %4530, ptr %100, align 4, !tbaa !5
  %4531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4532 = call i32 @s2n_print_stacktrace(ptr noundef %4531)
  %4533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4534 = trunc i8 %4533 to i1
  br i1 %4534, label %4535, label %4557

4535:                                             ; preds = %4528
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4537 = call i32 @fileno(ptr noundef %4536) #12
  %4538 = call i32 @isatty(i32 noundef %4537) #12
  %4539 = icmp ne i32 %4538, 0
  br i1 %4539, label %4540, label %4557

4540:                                             ; preds = %4535
  %4541 = load i32, ptr %100, align 4, !tbaa !5
  %4542 = call ptr @__errno_location() #13
  store i32 %4541, ptr %4542, align 4, !tbaa !5
  %4543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4544 = load i32, ptr @test_count, align 4, !tbaa !5
  %4545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4546 = load i32, ptr %4545, align 4, !tbaa !5
  %4547 = call ptr @s2n_strerror(i32 noundef %4546, ptr noundef @.str.3)
  %4548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  %4550 = call ptr @s2n_strerror_debug(i32 noundef %4549, ptr noundef @.str.3)
  %4551 = call ptr @__errno_location() #13
  %4552 = load i32, ptr %4551, align 4, !tbaa !5
  %4553 = call ptr @strerror(i32 noundef %4552) #12
  %4554 = call ptr @__errno_location() #13
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4543, ptr noundef @.str, i32 noundef %4544, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 489, ptr noundef %4547, ptr noundef %4550, ptr noundef %4553, i32 noundef %4555) #12
  br label %4574

4557:                                             ; preds = %4535, %4528
  %4558 = load i32, ptr %100, align 4, !tbaa !5
  %4559 = call ptr @__errno_location() #13
  store i32 %4558, ptr %4559, align 4, !tbaa !5
  %4560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4561 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4563, ptr noundef @.str.3)
  %4565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call ptr @s2n_strerror_debug(i32 noundef %4566, ptr noundef @.str.3)
  %4568 = call ptr @__errno_location() #13
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call ptr @strerror(i32 noundef %4569) #12
  %4571 = call ptr @__errno_location() #13
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4560, ptr noundef @.str.4, i32 noundef %4561, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 489, ptr noundef %4564, ptr noundef %4567, ptr noundef %4570, i32 noundef %4572) #12
  br label %4574

4574:                                             ; preds = %4557, %4540
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #12
  br label %4575

4575:                                             ; preds = %4574
  br label %4576

4576:                                             ; preds = %4575
  call void @exit(i32 noundef 1) #14
  unreachable

4577:                                             ; No predecessors!
  br label %4578

4578:                                             ; preds = %4577
  br label %4579

4579:                                             ; preds = %4578, %4521
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

4581:                                             ; preds = %4580
  %4582 = load i8, ptr %99, align 1, !tbaa !51
  %4583 = zext i8 %4582 to i32
  %4584 = srem i32 %4583, 8
  %4585 = shl i32 1, %4584
  %4586 = xor i32 %4585, -1
  %4587 = load ptr, ptr %90, align 8, !tbaa !9
  %4588 = getelementptr inbounds %struct.s2n_connection, ptr %4587, i32 0, i32 11
  %4589 = load i8, ptr %99, align 1, !tbaa !51
  %4590 = zext i8 %4589 to i32
  %4591 = ashr i32 %4590, 3
  %4592 = sext i32 %4591 to i64
  %4593 = getelementptr inbounds [22 x i8], ptr %4588, i64 0, i64 %4592
  %4594 = load i8, ptr %4593, align 1, !tbaa !51
  %4595 = sext i8 %4594 to i32
  %4596 = and i32 %4595, %4586
  %4597 = trunc i32 %4596 to i8
  store i8 %4597, ptr %4593, align 1, !tbaa !51
  br label %4598

4598:                                             ; preds = %4581
  %4599 = load i32, ptr @test_count, align 4, !tbaa !5
  %4600 = add nsw i32 %4599, 1
  store i32 %4600, ptr @test_count, align 4, !tbaa !5
  %4601 = load ptr, ptr %90, align 8, !tbaa !9
  %4602 = load ptr, ptr %87, align 8, !tbaa !9
  %4603 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4601, ptr noundef %4602)
  %4604 = icmp eq i32 %4603, -1
  br i1 %4604, label %4605, label %4658

4605:                                             ; preds = %4598
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #12
  %4608 = call ptr @__errno_location() #13
  %4609 = load i32, ptr %4608, align 4, !tbaa !5
  store i32 %4609, ptr %101, align 4, !tbaa !5
  %4610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4611 = call i32 @s2n_print_stacktrace(ptr noundef %4610)
  %4612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4613 = trunc i8 %4612 to i1
  br i1 %4613, label %4614, label %4636

4614:                                             ; preds = %4607
  %4615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4616 = call i32 @fileno(ptr noundef %4615) #12
  %4617 = call i32 @isatty(i32 noundef %4616) #12
  %4618 = icmp ne i32 %4617, 0
  br i1 %4618, label %4619, label %4636

4619:                                             ; preds = %4614
  %4620 = load i32, ptr %101, align 4, !tbaa !5
  %4621 = call ptr @__errno_location() #13
  store i32 %4620, ptr %4621, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror(i32 noundef %4625, ptr noundef @.str.3)
  %4627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call ptr @s2n_strerror_debug(i32 noundef %4628, ptr noundef @.str.3)
  %4630 = call ptr @__errno_location() #13
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = call ptr @strerror(i32 noundef %4631) #12
  %4633 = call ptr @__errno_location() #13
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef @.str, i32 noundef %4623, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 493, ptr noundef %4626, ptr noundef %4629, ptr noundef %4632, i32 noundef %4634) #12
  br label %4653

4636:                                             ; preds = %4614, %4607
  %4637 = load i32, ptr %101, align 4, !tbaa !5
  %4638 = call ptr @__errno_location() #13
  store i32 %4637, ptr %4638, align 4, !tbaa !5
  %4639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4640 = load i32, ptr @test_count, align 4, !tbaa !5
  %4641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call ptr @s2n_strerror(i32 noundef %4642, ptr noundef @.str.3)
  %4644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call ptr @s2n_strerror_debug(i32 noundef %4645, ptr noundef @.str.3)
  %4647 = call ptr @__errno_location() #13
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call ptr @strerror(i32 noundef %4648) #12
  %4650 = call ptr @__errno_location() #13
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4639, ptr noundef @.str.4, i32 noundef %4640, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 493, ptr noundef %4643, ptr noundef %4646, ptr noundef %4649, i32 noundef %4651) #12
  br label %4653

4653:                                             ; preds = %4636, %4619
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #12
  br label %4654

4654:                                             ; preds = %4653
  br label %4655

4655:                                             ; preds = %4654
  call void @exit(i32 noundef 1) #14
  unreachable

4656:                                             ; No predecessors!
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

4658:                                             ; preds = %4657, %4598
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660
  %4662 = load i32, ptr @test_count, align 4, !tbaa !5
  %4663 = add nsw i32 %4662, 1
  store i32 %4663, ptr @test_count, align 4, !tbaa !5
  %4664 = load ptr, ptr %90, align 8, !tbaa !9
  %4665 = getelementptr inbounds %struct.s2n_connection, ptr %4664, i32 0, i32 23
  %4666 = load i8, ptr %4665, align 4, !tbaa !24
  %4667 = zext i8 %4666 to i32
  %4668 = icmp eq i32 %4667, 33
  br i1 %4668, label %4722, label %4669

4669:                                             ; preds = %4661
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #12
  %4672 = call ptr @__errno_location() #13
  %4673 = load i32, ptr %4672, align 4, !tbaa !5
  store i32 %4673, ptr %102, align 4, !tbaa !5
  %4674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4675 = call i32 @s2n_print_stacktrace(ptr noundef %4674)
  %4676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4677 = trunc i8 %4676 to i1
  br i1 %4677, label %4678, label %4700

4678:                                             ; preds = %4671
  %4679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4680 = call i32 @fileno(ptr noundef %4679) #12
  %4681 = call i32 @isatty(i32 noundef %4680) #12
  %4682 = icmp ne i32 %4681, 0
  br i1 %4682, label %4683, label %4700

4683:                                             ; preds = %4678
  %4684 = load i32, ptr %102, align 4, !tbaa !5
  %4685 = call ptr @__errno_location() #13
  store i32 %4684, ptr %4685, align 4, !tbaa !5
  %4686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4687 = load i32, ptr @test_count, align 4, !tbaa !5
  %4688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror(i32 noundef %4689, ptr noundef @.str.3)
  %4691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = call ptr @s2n_strerror_debug(i32 noundef %4692, ptr noundef @.str.3)
  %4694 = call ptr @__errno_location() #13
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call ptr @strerror(i32 noundef %4695) #12
  %4697 = call ptr @__errno_location() #13
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  %4699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4686, ptr noundef @.str, i32 noundef %4687, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 494, ptr noundef %4690, ptr noundef %4693, ptr noundef %4696, i32 noundef %4698) #12
  br label %4717

4700:                                             ; preds = %4678, %4671
  %4701 = load i32, ptr %102, align 4, !tbaa !5
  %4702 = call ptr @__errno_location() #13
  store i32 %4701, ptr %4702, align 4, !tbaa !5
  %4703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4704 = load i32, ptr @test_count, align 4, !tbaa !5
  %4705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror(i32 noundef %4706, ptr noundef @.str.3)
  %4708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call ptr @s2n_strerror_debug(i32 noundef %4709, ptr noundef @.str.3)
  %4711 = call ptr @__errno_location() #13
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call ptr @strerror(i32 noundef %4712) #12
  %4714 = call ptr @__errno_location() #13
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4703, ptr noundef @.str.4, i32 noundef %4704, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 494, ptr noundef %4707, ptr noundef %4710, ptr noundef %4713, i32 noundef %4715) #12
  br label %4717

4717:                                             ; preds = %4700, %4683
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #12
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718
  call void @exit(i32 noundef 1) #14
  unreachable

4720:                                             ; No predecessors!
  br label %4721

4721:                                             ; preds = %4720
  br label %4722

4722:                                             ; preds = %4721, %4661
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723
  br label %4725

4725:                                             ; preds = %4724
  %4726 = load i32, ptr @test_count, align 4, !tbaa !5
  %4727 = add nsw i32 %4726, 1
  store i32 %4727, ptr @test_count, align 4, !tbaa !5
  %4728 = load ptr, ptr %87, align 8, !tbaa !9
  %4729 = getelementptr inbounds %struct.s2n_connection, ptr %4728, i32 0, i32 23
  %4730 = load i8, ptr %4729, align 4, !tbaa !24
  %4731 = zext i8 %4730 to i32
  %4732 = icmp eq i32 %4731, 33
  br i1 %4732, label %4786, label %4733

4733:                                             ; preds = %4725
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

4735:                                             ; preds = %4734
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #12
  %4736 = call ptr @__errno_location() #13
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  store i32 %4737, ptr %103, align 4, !tbaa !5
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = call i32 @s2n_print_stacktrace(ptr noundef %4738)
  %4740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4741 = trunc i8 %4740 to i1
  br i1 %4741, label %4742, label %4764

4742:                                             ; preds = %4735
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = call i32 @fileno(ptr noundef %4743) #12
  %4745 = call i32 @isatty(i32 noundef %4744) #12
  %4746 = icmp ne i32 %4745, 0
  br i1 %4746, label %4747, label %4764

4747:                                             ; preds = %4742
  %4748 = load i32, ptr %103, align 4, !tbaa !5
  %4749 = call ptr @__errno_location() #13
  store i32 %4748, ptr %4749, align 4, !tbaa !5
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4753 = load i32, ptr %4752, align 4, !tbaa !5
  %4754 = call ptr @s2n_strerror(i32 noundef %4753, ptr noundef @.str.3)
  %4755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call ptr @s2n_strerror_debug(i32 noundef %4756, ptr noundef @.str.3)
  %4758 = call ptr @__errno_location() #13
  %4759 = load i32, ptr %4758, align 4, !tbaa !5
  %4760 = call ptr @strerror(i32 noundef %4759) #12
  %4761 = call ptr @__errno_location() #13
  %4762 = load i32, ptr %4761, align 4, !tbaa !5
  %4763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4750, ptr noundef @.str, i32 noundef %4751, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 495, ptr noundef %4754, ptr noundef %4757, ptr noundef %4760, i32 noundef %4762) #12
  br label %4781

4764:                                             ; preds = %4742, %4735
  %4765 = load i32, ptr %103, align 4, !tbaa !5
  %4766 = call ptr @__errno_location() #13
  store i32 %4765, ptr %4766, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = load i32, ptr @test_count, align 4, !tbaa !5
  %4769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror(i32 noundef %4770, ptr noundef @.str.3)
  %4772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call ptr @s2n_strerror_debug(i32 noundef %4773, ptr noundef @.str.3)
  %4775 = call ptr @__errno_location() #13
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #12
  %4778 = call ptr @__errno_location() #13
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4767, ptr noundef @.str.4, i32 noundef %4768, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 495, ptr noundef %4771, ptr noundef %4774, ptr noundef %4777, i32 noundef %4779) #12
  br label %4781

4781:                                             ; preds = %4764, %4747
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #12
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782
  call void @exit(i32 noundef 1) #14
  unreachable

4784:                                             ; No predecessors!
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785, %4725
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  br label %4789

4789:                                             ; preds = %4788
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = add nsw i32 %4790, 1
  store i32 %4791, ptr @test_count, align 4, !tbaa !5
  %4792 = load ptr, ptr %90, align 8, !tbaa !9
  %4793 = load i32, ptr %4792, align 8
  %4794 = lshr i32 %4793, 13
  %4795 = and i32 %4794, 1
  %4796 = icmp ne i32 %4795, 0
  br i1 %4796, label %4797, label %4850

4797:                                             ; preds = %4789
  br label %4798

4798:                                             ; preds = %4797
  br label %4799

4799:                                             ; preds = %4798
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #12
  %4800 = call ptr @__errno_location() #13
  %4801 = load i32, ptr %4800, align 4, !tbaa !5
  store i32 %4801, ptr %104, align 4, !tbaa !5
  %4802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4803 = call i32 @s2n_print_stacktrace(ptr noundef %4802)
  %4804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4805 = trunc i8 %4804 to i1
  br i1 %4805, label %4806, label %4828

4806:                                             ; preds = %4799
  %4807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4808 = call i32 @fileno(ptr noundef %4807) #12
  %4809 = call i32 @isatty(i32 noundef %4808) #12
  %4810 = icmp ne i32 %4809, 0
  br i1 %4810, label %4811, label %4828

4811:                                             ; preds = %4806
  %4812 = load i32, ptr %104, align 4, !tbaa !5
  %4813 = call ptr @__errno_location() #13
  store i32 %4812, ptr %4813, align 4, !tbaa !5
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = load i32, ptr @test_count, align 4, !tbaa !5
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror(i32 noundef %4817, ptr noundef @.str.3)
  %4819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @s2n_strerror_debug(i32 noundef %4820, ptr noundef @.str.3)
  %4822 = call ptr @__errno_location() #13
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call ptr @strerror(i32 noundef %4823) #12
  %4825 = call ptr @__errno_location() #13
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4814, ptr noundef @.str, i32 noundef %4815, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 496, ptr noundef %4818, ptr noundef %4821, ptr noundef %4824, i32 noundef %4826) #12
  br label %4845

4828:                                             ; preds = %4806, %4799
  %4829 = load i32, ptr %104, align 4, !tbaa !5
  %4830 = call ptr @__errno_location() #13
  store i32 %4829, ptr %4830, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = load i32, ptr @test_count, align 4, !tbaa !5
  %4833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4834 = load i32, ptr %4833, align 4, !tbaa !5
  %4835 = call ptr @s2n_strerror(i32 noundef %4834, ptr noundef @.str.3)
  %4836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call ptr @s2n_strerror_debug(i32 noundef %4837, ptr noundef @.str.3)
  %4839 = call ptr @__errno_location() #13
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call ptr @strerror(i32 noundef %4840) #12
  %4842 = call ptr @__errno_location() #13
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4831, ptr noundef @.str.4, i32 noundef %4832, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 496, ptr noundef %4835, ptr noundef %4838, ptr noundef %4841, i32 noundef %4843) #12
  br label %4845

4845:                                             ; preds = %4828, %4811
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #12
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846
  call void @exit(i32 noundef 1) #14
  unreachable

4848:                                             ; No predecessors!
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849, %4789
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851
  br label %4853

4853:                                             ; preds = %4852
  %4854 = load i32, ptr @test_count, align 4, !tbaa !5
  %4855 = add nsw i32 %4854, 1
  store i32 %4855, ptr @test_count, align 4, !tbaa !5
  %4856 = load ptr, ptr %87, align 8, !tbaa !9
  %4857 = load i32, ptr %4856, align 8
  %4858 = lshr i32 %4857, 13
  %4859 = and i32 %4858, 1
  %4860 = icmp ne i32 %4859, 0
  br i1 %4860, label %4861, label %4914

4861:                                             ; preds = %4853
  br label %4862

4862:                                             ; preds = %4861
  br label %4863

4863:                                             ; preds = %4862
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #12
  %4864 = call ptr @__errno_location() #13
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  store i32 %4865, ptr %105, align 4, !tbaa !5
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = call i32 @s2n_print_stacktrace(ptr noundef %4866)
  %4868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4869 = trunc i8 %4868 to i1
  br i1 %4869, label %4870, label %4892

4870:                                             ; preds = %4863
  %4871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4872 = call i32 @fileno(ptr noundef %4871) #12
  %4873 = call i32 @isatty(i32 noundef %4872) #12
  %4874 = icmp ne i32 %4873, 0
  br i1 %4874, label %4875, label %4892

4875:                                             ; preds = %4870
  %4876 = load i32, ptr %105, align 4, !tbaa !5
  %4877 = call ptr @__errno_location() #13
  store i32 %4876, ptr %4877, align 4, !tbaa !5
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call ptr @s2n_strerror(i32 noundef %4881, ptr noundef @.str.3)
  %4883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror_debug(i32 noundef %4884, ptr noundef @.str.3)
  %4886 = call ptr @__errno_location() #13
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @strerror(i32 noundef %4887) #12
  %4889 = call ptr @__errno_location() #13
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4878, ptr noundef @.str, i32 noundef %4879, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 497, ptr noundef %4882, ptr noundef %4885, ptr noundef %4888, i32 noundef %4890) #12
  br label %4909

4892:                                             ; preds = %4870, %4863
  %4893 = load i32, ptr %105, align 4, !tbaa !5
  %4894 = call ptr @__errno_location() #13
  store i32 %4893, ptr %4894, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call ptr @s2n_strerror(i32 noundef %4898, ptr noundef @.str.3)
  %4900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call ptr @s2n_strerror_debug(i32 noundef %4901, ptr noundef @.str.3)
  %4903 = call ptr @__errno_location() #13
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call ptr @strerror(i32 noundef %4904) #12
  %4906 = call ptr @__errno_location() #13
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4895, ptr noundef @.str.4, i32 noundef %4896, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 497, ptr noundef %4899, ptr noundef %4902, ptr noundef %4905, i32 noundef %4907) #12
  br label %4909

4909:                                             ; preds = %4892, %4875
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #12
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  call void @exit(i32 noundef 1) #14
  unreachable

4912:                                             ; No predecessors!
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

4914:                                             ; preds = %4913, %4853
  br label %4915

4915:                                             ; preds = %4914
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916
  %4918 = load i32, ptr @test_count, align 4, !tbaa !5
  %4919 = add nsw i32 %4918, 1
  store i32 %4919, ptr @test_count, align 4, !tbaa !5
  %4920 = load ptr, ptr %90, align 8, !tbaa !9
  %4921 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4920, i32 noundef 2)
  br i1 %4921, label %4975, label %4922

4922:                                             ; preds = %4917
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #12
  %4925 = call ptr @__errno_location() #13
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  store i32 %4926, ptr %106, align 4, !tbaa !5
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @s2n_print_stacktrace(ptr noundef %4927)
  %4929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4930 = trunc i8 %4929 to i1
  br i1 %4930, label %4931, label %4953

4931:                                             ; preds = %4924
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = call i32 @fileno(ptr noundef %4932) #12
  %4934 = call i32 @isatty(i32 noundef %4933) #12
  %4935 = icmp ne i32 %4934, 0
  br i1 %4935, label %4936, label %4953

4936:                                             ; preds = %4931
  %4937 = load i32, ptr %106, align 4, !tbaa !5
  %4938 = call ptr @__errno_location() #13
  store i32 %4937, ptr %4938, align 4, !tbaa !5
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = load i32, ptr @test_count, align 4, !tbaa !5
  %4941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  %4943 = call ptr @s2n_strerror(i32 noundef %4942, ptr noundef @.str.3)
  %4944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror_debug(i32 noundef %4945, ptr noundef @.str.3)
  %4947 = call ptr @__errno_location() #13
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @strerror(i32 noundef %4948) #12
  %4950 = call ptr @__errno_location() #13
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4939, ptr noundef @.str, i32 noundef %4940, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 498, ptr noundef %4943, ptr noundef %4946, ptr noundef %4949, i32 noundef %4951) #12
  br label %4970

4953:                                             ; preds = %4931, %4924
  %4954 = load i32, ptr %106, align 4, !tbaa !5
  %4955 = call ptr @__errno_location() #13
  store i32 %4954, ptr %4955, align 4, !tbaa !5
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = load i32, ptr @test_count, align 4, !tbaa !5
  %4958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call ptr @s2n_strerror(i32 noundef %4959, ptr noundef @.str.3)
  %4961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror_debug(i32 noundef %4962, ptr noundef @.str.3)
  %4964 = call ptr @__errno_location() #13
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @strerror(i32 noundef %4965) #12
  %4967 = call ptr @__errno_location() #13
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4956, ptr noundef @.str.4, i32 noundef %4957, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 498, ptr noundef %4960, ptr noundef %4963, ptr noundef %4966, i32 noundef %4968) #12
  br label %4970

4970:                                             ; preds = %4953, %4936
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #12
  br label %4971

4971:                                             ; preds = %4970
  br label %4972

4972:                                             ; preds = %4971
  call void @exit(i32 noundef 1) #14
  unreachable

4973:                                             ; No predecessors!
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974, %4917
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  br label %4978

4978:                                             ; preds = %4977
  %4979 = load i32, ptr @test_count, align 4, !tbaa !5
  %4980 = add nsw i32 %4979, 1
  store i32 %4980, ptr @test_count, align 4, !tbaa !5
  %4981 = load ptr, ptr %87, align 8, !tbaa !9
  %4982 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4981, i32 noundef 2)
  br i1 %4982, label %5036, label %4983

4983:                                             ; preds = %4978
  br label %4984

4984:                                             ; preds = %4983
  br label %4985

4985:                                             ; preds = %4984
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #12
  %4986 = call ptr @__errno_location() #13
  %4987 = load i32, ptr %4986, align 4, !tbaa !5
  store i32 %4987, ptr %107, 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 !13, !range !15, !noundef !16
  %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) #12
  %4995 = call i32 @isatty(i32 noundef %4994) #12
  %4996 = icmp ne i32 %4995, 0
  br i1 %4996, label %4997, label %5014

4997:                                             ; preds = %4992
  %4998 = load i32, ptr %107, align 4, !tbaa !5
  %4999 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %5008 = call ptr @__errno_location() #13
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @strerror(i32 noundef %5009) #12
  %5011 = call ptr @__errno_location() #13
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5000, ptr noundef @.str, i32 noundef %5001, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 499, ptr noundef %5004, ptr noundef %5007, ptr noundef %5010, i32 noundef %5012) #12
  br label %5031

5014:                                             ; preds = %4992, %4985
  %5015 = load i32, ptr %107, align 4, !tbaa !5
  %5016 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %5025 = call ptr @__errno_location() #13
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call ptr @strerror(i32 noundef %5026) #12
  %5028 = call ptr @__errno_location() #13
  %5029 = load i32, ptr %5028, align 4, !tbaa !5
  %5030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5017, ptr noundef @.str.4, i32 noundef %5018, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 499, ptr noundef %5021, ptr noundef %5024, ptr noundef %5027, i32 noundef %5029) #12
  br label %5031

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

5032:                                             ; preds = %5031
  br label %5033

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

5034:                                             ; No predecessors!
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

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

5037:                                             ; preds = %5036
  br label %5038

5038:                                             ; preds = %5037
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #12
  %5039 = load ptr, ptr %87, align 8, !tbaa !9
  %5040 = call i32 @s2n_connection_get_session_length(ptr noundef %5039)
  %5041 = sext i32 %5040 to i64
  store i64 %5041, ptr %108, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 202, ptr %109) #12
  call void @llvm.memset.p0.i64(ptr align 16 %109, i8 0, i64 202, i1 false)
  br label %5042

5042:                                             ; preds = %5038
  %5043 = load i32, ptr @test_count, align 4, !tbaa !5
  %5044 = add nsw i32 %5043, 1
  store i32 %5044, ptr @test_count, align 4, !tbaa !5
  %5045 = load ptr, ptr %87, align 8, !tbaa !9
  %5046 = getelementptr inbounds [202 x i8], ptr %109, i64 0, i64 0
  %5047 = load i64, ptr %108, align 8, !tbaa !11
  %5048 = call i32 @s2n_connection_get_session(ptr noundef %5045, ptr noundef %5046, i64 noundef %5047)
  %5049 = icmp eq i32 %5048, -1
  br i1 %5049, label %5050, label %5103

5050:                                             ; preds = %5042
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

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

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

5064:                                             ; preds = %5059
  %5065 = load i32, ptr %110, align 4, !tbaa !5
  %5066 = call ptr @__errno_location() #13
  store i32 %5065, ptr %5066, align 4, !tbaa !5
  %5067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5068 = load i32, ptr @test_count, align 4, !tbaa !5
  %5069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5070 = load i32, ptr %5069, align 4, !tbaa !5
  %5071 = call ptr @s2n_strerror(i32 noundef %5070, ptr noundef @.str.3)
  %5072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5073 = load i32, ptr %5072, align 4, !tbaa !5
  %5074 = call ptr @s2n_strerror_debug(i32 noundef %5073, ptr noundef @.str.3)
  %5075 = call ptr @__errno_location() #13
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  %5077 = call ptr @strerror(i32 noundef %5076) #12
  %5078 = call ptr @__errno_location() #13
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5067, ptr noundef @.str, i32 noundef %5068, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 503, ptr noundef %5071, ptr noundef %5074, ptr noundef %5077, i32 noundef %5079) #12
  br label %5098

5081:                                             ; preds = %5059, %5052
  %5082 = load i32, ptr %110, align 4, !tbaa !5
  %5083 = call ptr @__errno_location() #13
  store i32 %5082, ptr %5083, align 4, !tbaa !5
  %5084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5085 = load i32, ptr @test_count, align 4, !tbaa !5
  %5086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5087 = load i32, ptr %5086, align 4, !tbaa !5
  %5088 = call ptr @s2n_strerror(i32 noundef %5087, ptr noundef @.str.3)
  %5089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call ptr @s2n_strerror_debug(i32 noundef %5090, ptr noundef @.str.3)
  %5092 = call ptr @__errno_location() #13
  %5093 = load i32, ptr %5092, align 4, !tbaa !5
  %5094 = call ptr @strerror(i32 noundef %5093) #12
  %5095 = call ptr @__errno_location() #13
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5084, ptr noundef @.str.4, i32 noundef %5085, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 503, ptr noundef %5088, ptr noundef %5091, ptr noundef %5094, i32 noundef %5096) #12
  br label %5098

5098:                                             ; preds = %5081, %5064
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #12
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

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

5101:                                             ; No predecessors!
  br label %5102

5102:                                             ; preds = %5101
  br label %5103

5103:                                             ; preds = %5102, %5042
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

5106:                                             ; preds = %5105
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = add nsw i32 %5107, 1
  store i32 %5108, ptr @test_count, align 4, !tbaa !5
  %5109 = load ptr, ptr %90, align 8, !tbaa !9
  %5110 = call i32 @s2n_connection_wipe(ptr noundef %5109)
  %5111 = icmp eq i32 %5110, -1
  br i1 %5111, label %5112, label %5165

5112:                                             ; preds = %5106
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #12
  %5115 = call ptr @__errno_location() #13
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  store i32 %5116, ptr %111, align 4, !tbaa !5
  %5117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5118 = call i32 @s2n_print_stacktrace(ptr noundef %5117)
  %5119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5120 = trunc i8 %5119 to i1
  br i1 %5120, label %5121, label %5143

5121:                                             ; preds = %5114
  %5122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5123 = call i32 @fileno(ptr noundef %5122) #12
  %5124 = call i32 @isatty(i32 noundef %5123) #12
  %5125 = icmp ne i32 %5124, 0
  br i1 %5125, label %5126, label %5143

5126:                                             ; preds = %5121
  %5127 = load i32, ptr %111, align 4, !tbaa !5
  %5128 = call ptr @__errno_location() #13
  store i32 %5127, ptr %5128, align 4, !tbaa !5
  %5129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5130 = load i32, ptr @test_count, align 4, !tbaa !5
  %5131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5132 = load i32, ptr %5131, align 4, !tbaa !5
  %5133 = call ptr @s2n_strerror(i32 noundef %5132, ptr noundef @.str.3)
  %5134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5135 = load i32, ptr %5134, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror_debug(i32 noundef %5135, ptr noundef @.str.3)
  %5137 = call ptr @__errno_location() #13
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  %5139 = call ptr @strerror(i32 noundef %5138) #12
  %5140 = call ptr @__errno_location() #13
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5129, ptr noundef @.str, i32 noundef %5130, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 506, ptr noundef %5133, ptr noundef %5136, ptr noundef %5139, i32 noundef %5141) #12
  br label %5160

5143:                                             ; preds = %5121, %5114
  %5144 = load i32, ptr %111, align 4, !tbaa !5
  %5145 = call ptr @__errno_location() #13
  store i32 %5144, ptr %5145, align 4, !tbaa !5
  %5146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5147 = load i32, ptr @test_count, align 4, !tbaa !5
  %5148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5149 = load i32, ptr %5148, align 4, !tbaa !5
  %5150 = call ptr @s2n_strerror(i32 noundef %5149, ptr noundef @.str.3)
  %5151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror_debug(i32 noundef %5152, ptr noundef @.str.3)
  %5154 = call ptr @__errno_location() #13
  %5155 = load i32, ptr %5154, align 4, !tbaa !5
  %5156 = call ptr @strerror(i32 noundef %5155) #12
  %5157 = call ptr @__errno_location() #13
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5146, ptr noundef @.str.4, i32 noundef %5147, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 506, ptr noundef %5150, ptr noundef %5153, ptr noundef %5156, i32 noundef %5158) #12
  br label %5160

5160:                                             ; preds = %5143, %5126
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #12
  br label %5161

5161:                                             ; preds = %5160
  br label %5162

5162:                                             ; preds = %5161
  call void @exit(i32 noundef 1) #14
  unreachable

5163:                                             ; No predecessors!
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164, %5106
  br label %5166

5166:                                             ; preds = %5165
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = add nsw i32 %5169, 1
  store i32 %5170, ptr @test_count, align 4, !tbaa !5
  %5171 = load ptr, ptr %87, align 8, !tbaa !9
  %5172 = call i32 @s2n_connection_wipe(ptr noundef %5171)
  %5173 = icmp eq i32 %5172, -1
  br i1 %5173, label %5174, label %5227

5174:                                             ; preds = %5168
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #12
  %5177 = call ptr @__errno_location() #13
  %5178 = load i32, ptr %5177, align 4, !tbaa !5
  store i32 %5178, ptr %112, align 4, !tbaa !5
  %5179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5180 = call i32 @s2n_print_stacktrace(ptr noundef %5179)
  %5181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5182 = trunc i8 %5181 to i1
  br i1 %5182, label %5183, label %5205

5183:                                             ; preds = %5176
  %5184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5185 = call i32 @fileno(ptr noundef %5184) #12
  %5186 = call i32 @isatty(i32 noundef %5185) #12
  %5187 = icmp ne i32 %5186, 0
  br i1 %5187, label %5188, label %5205

5188:                                             ; preds = %5183
  %5189 = load i32, ptr %112, align 4, !tbaa !5
  %5190 = call ptr @__errno_location() #13
  store i32 %5189, ptr %5190, align 4, !tbaa !5
  %5191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5192 = load i32, ptr @test_count, align 4, !tbaa !5
  %5193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror(i32 noundef %5194, ptr noundef @.str.3)
  %5196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @s2n_strerror_debug(i32 noundef %5197, ptr noundef @.str.3)
  %5199 = call ptr @__errno_location() #13
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call ptr @strerror(i32 noundef %5200) #12
  %5202 = call ptr @__errno_location() #13
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  %5204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5191, ptr noundef @.str, i32 noundef %5192, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 507, ptr noundef %5195, ptr noundef %5198, ptr noundef %5201, i32 noundef %5203) #12
  br label %5222

5205:                                             ; preds = %5183, %5176
  %5206 = load i32, ptr %112, align 4, !tbaa !5
  %5207 = call ptr @__errno_location() #13
  store i32 %5206, ptr %5207, align 4, !tbaa !5
  %5208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5209 = load i32, ptr @test_count, align 4, !tbaa !5
  %5210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @s2n_strerror(i32 noundef %5211, ptr noundef @.str.3)
  %5213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call ptr @s2n_strerror_debug(i32 noundef %5214, ptr noundef @.str.3)
  %5216 = call ptr @__errno_location() #13
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  %5218 = call ptr @strerror(i32 noundef %5217) #12
  %5219 = call ptr @__errno_location() #13
  %5220 = load i32, ptr %5219, align 4, !tbaa !5
  %5221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5208, ptr noundef @.str.4, i32 noundef %5209, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 507, ptr noundef %5212, ptr noundef %5215, ptr noundef %5218, i32 noundef %5220) #12
  br label %5222

5222:                                             ; preds = %5205, %5188
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #12
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223
  call void @exit(i32 noundef 1) #14
  unreachable

5225:                                             ; No predecessors!
  br label %5226

5226:                                             ; preds = %5225
  br label %5227

5227:                                             ; preds = %5226, %5168
  br label %5228

5228:                                             ; preds = %5227
  br label %5229

5229:                                             ; preds = %5228
  br label %5230

5230:                                             ; preds = %5229
  %5231 = load i32, ptr @test_count, align 4, !tbaa !5
  %5232 = add nsw i32 %5231, 1
  store i32 %5232, ptr @test_count, align 4, !tbaa !5
  %5233 = call i32 @s2n_io_pair_close(ptr noundef %25)
  %5234 = icmp eq i32 %5233, -1
  br i1 %5234, label %5235, label %5288

5235:                                             ; preds = %5230
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #12
  %5238 = call ptr @__errno_location() #13
  %5239 = load i32, ptr %5238, align 4, !tbaa !5
  store i32 %5239, ptr %113, align 4, !tbaa !5
  %5240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5241 = call i32 @s2n_print_stacktrace(ptr noundef %5240)
  %5242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5243 = trunc i8 %5242 to i1
  br i1 %5243, label %5244, label %5266

5244:                                             ; preds = %5237
  %5245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5246 = call i32 @fileno(ptr noundef %5245) #12
  %5247 = call i32 @isatty(i32 noundef %5246) #12
  %5248 = icmp ne i32 %5247, 0
  br i1 %5248, label %5249, label %5266

5249:                                             ; preds = %5244
  %5250 = load i32, ptr %113, align 4, !tbaa !5
  %5251 = call ptr @__errno_location() #13
  store i32 %5250, ptr %5251, align 4, !tbaa !5
  %5252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5253 = load i32, ptr @test_count, align 4, !tbaa !5
  %5254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @s2n_strerror(i32 noundef %5255, ptr noundef @.str.3)
  %5257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call ptr @s2n_strerror_debug(i32 noundef %5258, ptr noundef @.str.3)
  %5260 = call ptr @__errno_location() #13
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  %5262 = call ptr @strerror(i32 noundef %5261) #12
  %5263 = call ptr @__errno_location() #13
  %5264 = load i32, ptr %5263, align 4, !tbaa !5
  %5265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5252, ptr noundef @.str, i32 noundef %5253, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 508, ptr noundef %5256, ptr noundef %5259, ptr noundef %5262, i32 noundef %5264) #12
  br label %5283

5266:                                             ; preds = %5244, %5237
  %5267 = load i32, ptr %113, align 4, !tbaa !5
  %5268 = call ptr @__errno_location() #13
  store i32 %5267, ptr %5268, align 4, !tbaa !5
  %5269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5270 = load i32, ptr @test_count, align 4, !tbaa !5
  %5271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @s2n_strerror(i32 noundef %5272, ptr noundef @.str.3)
  %5274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call ptr @s2n_strerror_debug(i32 noundef %5275, ptr noundef @.str.3)
  %5277 = call ptr @__errno_location() #13
  %5278 = load i32, ptr %5277, align 4, !tbaa !5
  %5279 = call ptr @strerror(i32 noundef %5278) #12
  %5280 = call ptr @__errno_location() #13
  %5281 = load i32, ptr %5280, align 4, !tbaa !5
  %5282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5269, ptr noundef @.str.4, i32 noundef %5270, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 508, ptr noundef %5273, ptr noundef %5276, ptr noundef %5279, i32 noundef %5281) #12
  br label %5283

5283:                                             ; preds = %5266, %5249
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #12
  br label %5284

5284:                                             ; preds = %5283
  br label %5285

5285:                                             ; preds = %5284
  call void @exit(i32 noundef 1) #14
  unreachable

5286:                                             ; No predecessors!
  br label %5287

5287:                                             ; preds = %5286
  br label %5288

5288:                                             ; preds = %5287, %5230
  br label %5289

5289:                                             ; preds = %5288
  br label %5290

5290:                                             ; preds = %5289
  br label %5291

5291:                                             ; preds = %5290
  %5292 = load i32, ptr @test_count, align 4, !tbaa !5
  %5293 = add nsw i32 %5292, 1
  store i32 %5293, ptr @test_count, align 4, !tbaa !5
  %5294 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %25)
  %5295 = icmp eq i32 %5294, -1
  br i1 %5295, label %5296, label %5349

5296:                                             ; preds = %5291
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #12
  %5299 = call ptr @__errno_location() #13
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  store i32 %5300, ptr %114, align 4, !tbaa !5
  %5301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5302 = call i32 @s2n_print_stacktrace(ptr noundef %5301)
  %5303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5304 = trunc i8 %5303 to i1
  br i1 %5304, label %5305, label %5327

5305:                                             ; preds = %5298
  %5306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5307 = call i32 @fileno(ptr noundef %5306) #12
  %5308 = call i32 @isatty(i32 noundef %5307) #12
  %5309 = icmp ne i32 %5308, 0
  br i1 %5309, label %5310, label %5327

5310:                                             ; preds = %5305
  %5311 = load i32, ptr %114, align 4, !tbaa !5
  %5312 = call ptr @__errno_location() #13
  store i32 %5311, ptr %5312, align 4, !tbaa !5
  %5313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5314 = load i32, ptr @test_count, align 4, !tbaa !5
  %5315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5316 = load i32, ptr %5315, align 4, !tbaa !5
  %5317 = call ptr @s2n_strerror(i32 noundef %5316, ptr noundef @.str.3)
  %5318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5319 = load i32, ptr %5318, align 4, !tbaa !5
  %5320 = call ptr @s2n_strerror_debug(i32 noundef %5319, ptr noundef @.str.3)
  %5321 = call ptr @__errno_location() #13
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  %5323 = call ptr @strerror(i32 noundef %5322) #12
  %5324 = call ptr @__errno_location() #13
  %5325 = load i32, ptr %5324, align 4, !tbaa !5
  %5326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5313, ptr noundef @.str, i32 noundef %5314, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 509, ptr noundef %5317, ptr noundef %5320, ptr noundef %5323, i32 noundef %5325) #12
  br label %5344

5327:                                             ; preds = %5305, %5298
  %5328 = load i32, ptr %114, align 4, !tbaa !5
  %5329 = call ptr @__errno_location() #13
  store i32 %5328, ptr %5329, align 4, !tbaa !5
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = load i32, ptr @test_count, align 4, !tbaa !5
  %5332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror(i32 noundef %5333, ptr noundef @.str.3)
  %5335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @s2n_strerror_debug(i32 noundef %5336, ptr noundef @.str.3)
  %5338 = call ptr @__errno_location() #13
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call ptr @strerror(i32 noundef %5339) #12
  %5341 = call ptr @__errno_location() #13
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5330, ptr noundef @.str.4, i32 noundef %5331, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 509, ptr noundef %5334, ptr noundef %5337, ptr noundef %5340, i32 noundef %5342) #12
  br label %5344

5344:                                             ; preds = %5327, %5310
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #12
  br label %5345

5345:                                             ; preds = %5344
  br label %5346

5346:                                             ; preds = %5345
  call void @exit(i32 noundef 1) #14
  unreachable

5347:                                             ; No predecessors!
  br label %5348

5348:                                             ; preds = %5347
  br label %5349

5349:                                             ; preds = %5348, %5291
  br label %5350

5350:                                             ; preds = %5349
  br label %5351

5351:                                             ; preds = %5350
  br label %5352

5352:                                             ; preds = %5351
  %5353 = load i32, ptr @test_count, align 4, !tbaa !5
  %5354 = add nsw i32 %5353, 1
  store i32 %5354, ptr @test_count, align 4, !tbaa !5
  %5355 = load ptr, ptr %87, align 8, !tbaa !9
  %5356 = load ptr, ptr %90, align 8, !tbaa !9
  %5357 = call i32 @s2n_connections_set_io_pair(ptr noundef %5355, ptr noundef %5356, ptr noundef %25)
  %5358 = icmp eq i32 %5357, -1
  br i1 %5358, label %5359, label %5412

5359:                                             ; preds = %5352
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #12
  %5362 = call ptr @__errno_location() #13
  %5363 = load i32, ptr %5362, align 4, !tbaa !5
  store i32 %5363, ptr %115, align 4, !tbaa !5
  %5364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5365 = call i32 @s2n_print_stacktrace(ptr noundef %5364)
  %5366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5367 = trunc i8 %5366 to i1
  br i1 %5367, label %5368, label %5390

5368:                                             ; preds = %5361
  %5369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5370 = call i32 @fileno(ptr noundef %5369) #12
  %5371 = call i32 @isatty(i32 noundef %5370) #12
  %5372 = icmp ne i32 %5371, 0
  br i1 %5372, label %5373, label %5390

5373:                                             ; preds = %5368
  %5374 = load i32, ptr %115, align 4, !tbaa !5
  %5375 = call ptr @__errno_location() #13
  store i32 %5374, ptr %5375, align 4, !tbaa !5
  %5376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5377 = load i32, ptr @test_count, align 4, !tbaa !5
  %5378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  %5380 = call ptr @s2n_strerror(i32 noundef %5379, ptr noundef @.str.3)
  %5381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5382 = load i32, ptr %5381, align 4, !tbaa !5
  %5383 = call ptr @s2n_strerror_debug(i32 noundef %5382, ptr noundef @.str.3)
  %5384 = call ptr @__errno_location() #13
  %5385 = load i32, ptr %5384, align 4, !tbaa !5
  %5386 = call ptr @strerror(i32 noundef %5385) #12
  %5387 = call ptr @__errno_location() #13
  %5388 = load i32, ptr %5387, align 4, !tbaa !5
  %5389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5376, ptr noundef @.str, i32 noundef %5377, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 510, ptr noundef %5380, ptr noundef %5383, ptr noundef %5386, i32 noundef %5388) #12
  br label %5407

5390:                                             ; preds = %5368, %5361
  %5391 = load i32, ptr %115, align 4, !tbaa !5
  %5392 = call ptr @__errno_location() #13
  store i32 %5391, ptr %5392, align 4, !tbaa !5
  %5393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5394 = load i32, ptr @test_count, align 4, !tbaa !5
  %5395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5396 = load i32, ptr %5395, align 4, !tbaa !5
  %5397 = call ptr @s2n_strerror(i32 noundef %5396, ptr noundef @.str.3)
  %5398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5399 = load i32, ptr %5398, align 4, !tbaa !5
  %5400 = call ptr @s2n_strerror_debug(i32 noundef %5399, ptr noundef @.str.3)
  %5401 = call ptr @__errno_location() #13
  %5402 = load i32, ptr %5401, align 4, !tbaa !5
  %5403 = call ptr @strerror(i32 noundef %5402) #12
  %5404 = call ptr @__errno_location() #13
  %5405 = load i32, ptr %5404, align 4, !tbaa !5
  %5406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5393, ptr noundef @.str.4, i32 noundef %5394, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 510, ptr noundef %5397, ptr noundef %5400, ptr noundef %5403, i32 noundef %5405) #12
  br label %5407

5407:                                             ; preds = %5390, %5373
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #12
  br label %5408

5408:                                             ; preds = %5407
  br label %5409

5409:                                             ; preds = %5408
  call void @exit(i32 noundef 1) #14
  unreachable

5410:                                             ; No predecessors!
  br label %5411

5411:                                             ; preds = %5410
  br label %5412

5412:                                             ; preds = %5411, %5352
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

5414:                                             ; preds = %5413
  br label %5415

5415:                                             ; preds = %5414
  %5416 = load i32, ptr @test_count, align 4, !tbaa !5
  %5417 = add nsw i32 %5416, 1
  store i32 %5417, ptr @test_count, align 4, !tbaa !5
  %5418 = load ptr, ptr %87, align 8, !tbaa !9
  %5419 = getelementptr inbounds [202 x i8], ptr %109, i64 0, i64 0
  %5420 = load i64, ptr %108, align 8, !tbaa !11
  %5421 = call i32 @s2n_connection_set_session(ptr noundef %5418, ptr noundef %5419, i64 noundef %5420)
  %5422 = icmp eq i32 %5421, -1
  br i1 %5422, label %5423, label %5476

5423:                                             ; preds = %5415
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

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

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

5437:                                             ; preds = %5432
  %5438 = load i32, ptr %116, align 4, !tbaa !5
  %5439 = call ptr @__errno_location() #13
  store i32 %5438, ptr %5439, align 4, !tbaa !5
  %5440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5441 = load i32, ptr @test_count, align 4, !tbaa !5
  %5442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5443 = load i32, ptr %5442, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror(i32 noundef %5443, ptr noundef @.str.3)
  %5445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  %5447 = call ptr @s2n_strerror_debug(i32 noundef %5446, ptr noundef @.str.3)
  %5448 = call ptr @__errno_location() #13
  %5449 = load i32, ptr %5448, align 4, !tbaa !5
  %5450 = call ptr @strerror(i32 noundef %5449) #12
  %5451 = call ptr @__errno_location() #13
  %5452 = load i32, ptr %5451, align 4, !tbaa !5
  %5453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5440, ptr noundef @.str, i32 noundef %5441, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 511, ptr noundef %5444, ptr noundef %5447, ptr noundef %5450, i32 noundef %5452) #12
  br label %5471

5454:                                             ; preds = %5432, %5425
  %5455 = load i32, ptr %116, align 4, !tbaa !5
  %5456 = call ptr @__errno_location() #13
  store i32 %5455, ptr %5456, align 4, !tbaa !5
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = load i32, ptr @test_count, align 4, !tbaa !5
  %5459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call ptr @s2n_strerror(i32 noundef %5460, ptr noundef @.str.3)
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror_debug(i32 noundef %5463, ptr noundef @.str.3)
  %5465 = call ptr @__errno_location() #13
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @strerror(i32 noundef %5466) #12
  %5468 = call ptr @__errno_location() #13
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5457, ptr noundef @.str.4, i32 noundef %5458, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 511, ptr noundef %5461, ptr noundef %5464, ptr noundef %5467, i32 noundef %5469) #12
  br label %5471

5471:                                             ; preds = %5454, %5437
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #12
  br label %5472

5472:                                             ; preds = %5471
  br label %5473

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

5474:                                             ; No predecessors!
  br label %5475

5475:                                             ; preds = %5474
  br label %5476

5476:                                             ; preds = %5475, %5415
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477
  br label %5479

5479:                                             ; preds = %5478
  br label %5480

5480:                                             ; preds = %5479
  br label %5481

5481:                                             ; preds = %5480
  %5482 = load i32, ptr @test_count, align 4, !tbaa !5
  %5483 = add nsw i32 %5482, 1
  store i32 %5483, ptr @test_count, align 4, !tbaa !5
  %5484 = load ptr, ptr %90, align 8, !tbaa !9
  %5485 = load ptr, ptr %87, align 8, !tbaa !9
  %5486 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5484, ptr noundef %5485)
  %5487 = icmp eq i32 %5486, -1
  br i1 %5487, label %5541, label %5488

5488:                                             ; preds = %5481
  br label %5489

5489:                                             ; preds = %5488
  br label %5490

5490:                                             ; preds = %5489
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #12
  %5491 = call ptr @__errno_location() #13
  %5492 = load i32, ptr %5491, align 4, !tbaa !5
  store i32 %5492, ptr %117, align 4, !tbaa !5
  %5493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5494 = call i32 @s2n_print_stacktrace(ptr noundef %5493)
  %5495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5496 = trunc i8 %5495 to i1
  br i1 %5496, label %5497, label %5519

5497:                                             ; preds = %5490
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = call i32 @fileno(ptr noundef %5498) #12
  %5500 = call i32 @isatty(i32 noundef %5499) #12
  %5501 = icmp ne i32 %5500, 0
  br i1 %5501, label %5502, label %5519

5502:                                             ; preds = %5497
  %5503 = load i32, ptr %117, align 4, !tbaa !5
  %5504 = call ptr @__errno_location() #13
  store i32 %5503, ptr %5504, align 4, !tbaa !5
  %5505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5506 = load i32, ptr @test_count, align 4, !tbaa !5
  %5507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5508 = load i32, ptr %5507, align 4, !tbaa !5
  %5509 = call ptr @s2n_strerror(i32 noundef %5508, ptr noundef @.str.3)
  %5510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5511 = load i32, ptr %5510, align 4, !tbaa !5
  %5512 = call ptr @s2n_strerror_debug(i32 noundef %5511, ptr noundef @.str.3)
  %5513 = call ptr @__errno_location() #13
  %5514 = load i32, ptr %5513, align 4, !tbaa !5
  %5515 = call ptr @strerror(i32 noundef %5514) #12
  %5516 = call ptr @__errno_location() #13
  %5517 = load i32, ptr %5516, align 4, !tbaa !5
  %5518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5505, ptr noundef @.str, i32 noundef %5506, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 514, ptr noundef %5509, ptr noundef %5512, ptr noundef %5515, i32 noundef %5517) #12
  br label %5536

5519:                                             ; preds = %5497, %5490
  %5520 = load i32, ptr %117, align 4, !tbaa !5
  %5521 = call ptr @__errno_location() #13
  store i32 %5520, ptr %5521, align 4, !tbaa !5
  %5522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5523 = load i32, ptr @test_count, align 4, !tbaa !5
  %5524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5525 = load i32, ptr %5524, align 4, !tbaa !5
  %5526 = call ptr @s2n_strerror(i32 noundef %5525, ptr noundef @.str.3)
  %5527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5528 = load i32, ptr %5527, align 4, !tbaa !5
  %5529 = call ptr @s2n_strerror_debug(i32 noundef %5528, ptr noundef @.str.3)
  %5530 = call ptr @__errno_location() #13
  %5531 = load i32, ptr %5530, align 4, !tbaa !5
  %5532 = call ptr @strerror(i32 noundef %5531) #12
  %5533 = call ptr @__errno_location() #13
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5522, ptr noundef @.str.4, i32 noundef %5523, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 514, ptr noundef %5526, ptr noundef %5529, ptr noundef %5532, i32 noundef %5534) #12
  br label %5536

5536:                                             ; preds = %5519, %5502
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #12
  br label %5537

5537:                                             ; preds = %5536
  br label %5538

5538:                                             ; preds = %5537
  call void @exit(i32 noundef 1) #14
  unreachable

5539:                                             ; No predecessors!
  br label %5540

5540:                                             ; preds = %5539
  br label %5541

5541:                                             ; preds = %5540, %5481
  br label %5542

5542:                                             ; preds = %5541
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = add nsw i32 %5545, 1
  store i32 %5546, ptr @test_count, align 4, !tbaa !5
  %5547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = icmp eq i32 %5548, 201326593
  br i1 %5549, label %5603, label %5550

5550:                                             ; preds = %5544
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #12
  %5553 = call ptr @__errno_location() #13
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  store i32 %5554, ptr %118, align 4, !tbaa !5
  %5555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5556 = call i32 @s2n_print_stacktrace(ptr noundef %5555)
  %5557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5558 = trunc i8 %5557 to i1
  br i1 %5558, label %5559, label %5581

5559:                                             ; preds = %5552
  %5560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5561 = call i32 @fileno(ptr noundef %5560) #12
  %5562 = call i32 @isatty(i32 noundef %5561) #12
  %5563 = icmp ne i32 %5562, 0
  br i1 %5563, label %5564, label %5581

5564:                                             ; preds = %5559
  %5565 = load i32, ptr %118, align 4, !tbaa !5
  %5566 = call ptr @__errno_location() #13
  store i32 %5565, ptr %5566, align 4, !tbaa !5
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = load i32, ptr @test_count, align 4, !tbaa !5
  %5569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5570 = load i32, ptr %5569, align 4, !tbaa !5
  %5571 = call ptr @s2n_strerror(i32 noundef %5570, ptr noundef @.str.3)
  %5572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call ptr @s2n_strerror_debug(i32 noundef %5573, ptr noundef @.str.3)
  %5575 = call ptr @__errno_location() #13
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call ptr @strerror(i32 noundef %5576) #12
  %5578 = call ptr @__errno_location() #13
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5567, ptr noundef @.str, i32 noundef %5568, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 514, ptr noundef %5571, ptr noundef %5574, ptr noundef %5577, i32 noundef %5579) #12
  br label %5598

5581:                                             ; preds = %5559, %5552
  %5582 = load i32, ptr %118, align 4, !tbaa !5
  %5583 = call ptr @__errno_location() #13
  store i32 %5582, ptr %5583, align 4, !tbaa !5
  %5584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call ptr @s2n_strerror(i32 noundef %5587, ptr noundef @.str.3)
  %5589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @s2n_strerror_debug(i32 noundef %5590, ptr noundef @.str.3)
  %5592 = call ptr @__errno_location() #13
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @strerror(i32 noundef %5593) #12
  %5595 = call ptr @__errno_location() #13
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5584, ptr noundef @.str.4, i32 noundef %5585, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 514, ptr noundef %5588, ptr noundef %5591, ptr noundef %5594, i32 noundef %5596) #12
  br label %5598

5598:                                             ; preds = %5581, %5564
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #12
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

5600:                                             ; preds = %5599
  call void @exit(i32 noundef 1) #14
  unreachable

5601:                                             ; No predecessors!
  br label %5602

5602:                                             ; preds = %5601
  br label %5603

5603:                                             ; preds = %5602, %5544
  br label %5604

5604:                                             ; preds = %5603
  br label %5605

5605:                                             ; preds = %5604
  br label %5606

5606:                                             ; preds = %5605
  %5607 = load i32, ptr @test_count, align 4, !tbaa !5
  %5608 = add nsw i32 %5607, 1
  store i32 %5608, ptr @test_count, align 4, !tbaa !5
  %5609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5610 = load i32, ptr %5609, align 4, !tbaa !5
  %5611 = call ptr @s2n_strerror_debug(i32 noundef %5610, ptr noundef @.str.3)
  %5612 = icmp eq ptr %5611, null
  br i1 %5612, label %5613, label %5666

5613:                                             ; preds = %5606
  br label %5614

5614:                                             ; preds = %5613
  br label %5615

5615:                                             ; preds = %5614
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #12
  %5616 = call ptr @__errno_location() #13
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  store i32 %5617, ptr %119, align 4, !tbaa !5
  %5618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5619 = call i32 @s2n_print_stacktrace(ptr noundef %5618)
  %5620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5621 = trunc i8 %5620 to i1
  br i1 %5621, label %5622, label %5644

5622:                                             ; preds = %5615
  %5623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5624 = call i32 @fileno(ptr noundef %5623) #12
  %5625 = call i32 @isatty(i32 noundef %5624) #12
  %5626 = icmp ne i32 %5625, 0
  br i1 %5626, label %5627, label %5644

5627:                                             ; preds = %5622
  %5628 = load i32, ptr %119, align 4, !tbaa !5
  %5629 = call ptr @__errno_location() #13
  store i32 %5628, ptr %5629, align 4, !tbaa !5
  %5630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5631 = load i32, ptr @test_count, align 4, !tbaa !5
  %5632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5633 = load i32, ptr %5632, align 4, !tbaa !5
  %5634 = call ptr @s2n_strerror(i32 noundef %5633, ptr noundef @.str.3)
  %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_debug(i32 noundef %5636, ptr noundef @.str.3)
  %5638 = call ptr @__errno_location() #13
  %5639 = load i32, ptr %5638, align 4, !tbaa !5
  %5640 = call ptr @strerror(i32 noundef %5639) #12
  %5641 = call ptr @__errno_location() #13
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  %5643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5630, ptr noundef @.str, i32 noundef %5631, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 514, ptr noundef %5634, ptr noundef %5637, ptr noundef %5640, i32 noundef %5642) #12
  br label %5661

5644:                                             ; preds = %5622, %5615
  %5645 = load i32, ptr %119, align 4, !tbaa !5
  %5646 = call ptr @__errno_location() #13
  store i32 %5645, ptr %5646, align 4, !tbaa !5
  %5647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5648 = load i32, ptr @test_count, align 4, !tbaa !5
  %5649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @s2n_strerror(i32 noundef %5650, ptr noundef @.str.3)
  %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_debug(i32 noundef %5653, ptr noundef @.str.3)
  %5655 = call ptr @__errno_location() #13
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @strerror(i32 noundef %5656) #12
  %5658 = call ptr @__errno_location() #13
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5647, ptr noundef @.str.4, i32 noundef %5648, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 514, ptr noundef %5651, ptr noundef %5654, ptr noundef %5657, i32 noundef %5659) #12
  br label %5661

5661:                                             ; preds = %5644, %5627
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #12
  br label %5662

5662:                                             ; preds = %5661
  br label %5663

5663:                                             ; preds = %5662
  call void @exit(i32 noundef 1) #14
  unreachable

5664:                                             ; No predecessors!
  br label %5665

5665:                                             ; preds = %5664
  br label %5666

5666:                                             ; preds = %5665, %5606
  br label %5667

5667:                                             ; preds = %5666
  br label %5668

5668:                                             ; preds = %5667
  br label %5669

5669:                                             ; preds = %5668
  br label %5670

5670:                                             ; preds = %5669
  br label %5671

5671:                                             ; preds = %5670
  %5672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5672, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5673 = call ptr @__errno_location() #13
  store i32 0, ptr %5673, align 4, !tbaa !5
  br label %5674

5674:                                             ; preds = %5671
  br label %5675

5675:                                             ; preds = %5674
  br label %5676

5676:                                             ; preds = %5675
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

5678:                                             ; preds = %5677
  %5679 = load i32, ptr @test_count, align 4, !tbaa !5
  %5680 = add nsw i32 %5679, 1
  store i32 %5680, ptr @test_count, align 4, !tbaa !5
  %5681 = load ptr, ptr %90, align 8, !tbaa !9
  %5682 = load ptr, ptr %87, align 8, !tbaa !9
  %5683 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5681, ptr noundef %5682)
  %5684 = icmp eq i32 %5683, -1
  br i1 %5684, label %5685, label %5738

5685:                                             ; preds = %5678
  br label %5686

5686:                                             ; preds = %5685
  br label %5687

5687:                                             ; preds = %5686
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #12
  %5688 = call ptr @__errno_location() #13
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  store i32 %5689, ptr %120, align 4, !tbaa !5
  %5690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5691 = call i32 @s2n_print_stacktrace(ptr noundef %5690)
  %5692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5693 = trunc i8 %5692 to i1
  br i1 %5693, label %5694, label %5716

5694:                                             ; preds = %5687
  %5695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5696 = call i32 @fileno(ptr noundef %5695) #12
  %5697 = call i32 @isatty(i32 noundef %5696) #12
  %5698 = icmp ne i32 %5697, 0
  br i1 %5698, label %5699, label %5716

5699:                                             ; preds = %5694
  %5700 = load i32, ptr %120, align 4, !tbaa !5
  %5701 = call ptr @__errno_location() #13
  store i32 %5700, ptr %5701, align 4, !tbaa !5
  %5702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5703 = load i32, ptr @test_count, align 4, !tbaa !5
  %5704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call ptr @s2n_strerror(i32 noundef %5705, ptr noundef @.str.3)
  %5707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5708 = load i32, ptr %5707, align 4, !tbaa !5
  %5709 = call ptr @s2n_strerror_debug(i32 noundef %5708, ptr noundef @.str.3)
  %5710 = call ptr @__errno_location() #13
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @strerror(i32 noundef %5711) #12
  %5713 = call ptr @__errno_location() #13
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5702, ptr noundef @.str, i32 noundef %5703, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 517, ptr noundef %5706, ptr noundef %5709, ptr noundef %5712, i32 noundef %5714) #12
  br label %5733

5716:                                             ; preds = %5694, %5687
  %5717 = load i32, ptr %120, align 4, !tbaa !5
  %5718 = call ptr @__errno_location() #13
  store i32 %5717, ptr %5718, align 4, !tbaa !5
  %5719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5720 = load i32, ptr @test_count, align 4, !tbaa !5
  %5721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call ptr @s2n_strerror(i32 noundef %5722, ptr noundef @.str.3)
  %5724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror_debug(i32 noundef %5725, ptr noundef @.str.3)
  %5727 = call ptr @__errno_location() #13
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @strerror(i32 noundef %5728) #12
  %5730 = call ptr @__errno_location() #13
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5719, ptr noundef @.str.4, i32 noundef %5720, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 517, ptr noundef %5723, ptr noundef %5726, ptr noundef %5729, i32 noundef %5731) #12
  br label %5733

5733:                                             ; preds = %5716, %5699
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #12
  br label %5734

5734:                                             ; preds = %5733
  br label %5735

5735:                                             ; preds = %5734
  call void @exit(i32 noundef 1) #14
  unreachable

5736:                                             ; No predecessors!
  br label %5737

5737:                                             ; preds = %5736
  br label %5738

5738:                                             ; preds = %5737, %5678
  br label %5739

5739:                                             ; preds = %5738
  br label %5740

5740:                                             ; preds = %5739
  br label %5741

5741:                                             ; preds = %5740
  %5742 = load i32, ptr @test_count, align 4, !tbaa !5
  %5743 = add nsw i32 %5742, 1
  store i32 %5743, ptr @test_count, align 4, !tbaa !5
  %5744 = load ptr, ptr %90, align 8, !tbaa !9
  %5745 = getelementptr inbounds %struct.s2n_connection, ptr %5744, i32 0, i32 11
  %5746 = load i8, ptr %99, align 1, !tbaa !51
  %5747 = zext i8 %5746 to i32
  %5748 = ashr i32 %5747, 3
  %5749 = sext i32 %5748 to i64
  %5750 = getelementptr inbounds [22 x i8], ptr %5745, i64 0, i64 %5749
  %5751 = load i8, ptr %5750, align 1, !tbaa !51
  %5752 = sext i8 %5751 to i32
  %5753 = load i8, ptr %99, align 1, !tbaa !51
  %5754 = zext i8 %5753 to i32
  %5755 = srem i32 %5754, 8
  %5756 = shl i32 1, %5755
  %5757 = and i32 %5752, %5756
  %5758 = icmp ne i32 %5757, 0
  %5759 = zext i1 %5758 to i32
  %5760 = icmp eq i32 %5759, 0
  br i1 %5760, label %5814, label %5761

5761:                                             ; preds = %5741
  br label %5762

5762:                                             ; preds = %5761
  br label %5763

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

5770:                                             ; preds = %5763
  %5771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5772 = call i32 @fileno(ptr noundef %5771) #12
  %5773 = call i32 @isatty(i32 noundef %5772) #12
  %5774 = icmp ne i32 %5773, 0
  br i1 %5774, label %5775, label %5792

5775:                                             ; preds = %5770
  %5776 = load i32, ptr %121, align 4, !tbaa !5
  %5777 = call ptr @__errno_location() #13
  store i32 %5776, ptr %5777, align 4, !tbaa !5
  %5778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5779 = load i32, ptr @test_count, align 4, !tbaa !5
  %5780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5781 = load i32, ptr %5780, align 4, !tbaa !5
  %5782 = call ptr @s2n_strerror(i32 noundef %5781, ptr noundef @.str.3)
  %5783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call ptr @s2n_strerror_debug(i32 noundef %5784, ptr noundef @.str.3)
  %5786 = call ptr @__errno_location() #13
  %5787 = load i32, ptr %5786, align 4, !tbaa !5
  %5788 = call ptr @strerror(i32 noundef %5787) #12
  %5789 = call ptr @__errno_location() #13
  %5790 = load i32, ptr %5789, align 4, !tbaa !5
  %5791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5778, ptr noundef @.str, i32 noundef %5779, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 518, ptr noundef %5782, ptr noundef %5785, ptr noundef %5788, i32 noundef %5790) #12
  br label %5809

5792:                                             ; preds = %5770, %5763
  %5793 = load i32, ptr %121, align 4, !tbaa !5
  %5794 = call ptr @__errno_location() #13
  store i32 %5793, ptr %5794, align 4, !tbaa !5
  %5795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5796 = load i32, ptr @test_count, align 4, !tbaa !5
  %5797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5798 = load i32, ptr %5797, align 4, !tbaa !5
  %5799 = call ptr @s2n_strerror(i32 noundef %5798, ptr noundef @.str.3)
  %5800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  %5802 = call ptr @s2n_strerror_debug(i32 noundef %5801, ptr noundef @.str.3)
  %5803 = call ptr @__errno_location() #13
  %5804 = load i32, ptr %5803, align 4, !tbaa !5
  %5805 = call ptr @strerror(i32 noundef %5804) #12
  %5806 = call ptr @__errno_location() #13
  %5807 = load i32, ptr %5806, align 4, !tbaa !5
  %5808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5795, ptr noundef @.str.4, i32 noundef %5796, ptr noundef @.str.77, ptr noundef @.str.2, i32 noundef 518, ptr noundef %5799, ptr noundef %5802, ptr noundef %5805, i32 noundef %5807) #12
  br label %5809

5809:                                             ; preds = %5792, %5775
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #12
  br label %5810

5810:                                             ; preds = %5809
  br label %5811

5811:                                             ; preds = %5810
  call void @exit(i32 noundef 1) #14
  unreachable

5812:                                             ; No predecessors!
  br label %5813

5813:                                             ; preds = %5812
  br label %5814

5814:                                             ; preds = %5813, %5741
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

5816:                                             ; preds = %5815
  br label %5817

5817:                                             ; preds = %5816
  %5818 = load i32, ptr @test_count, align 4, !tbaa !5
  %5819 = add nsw i32 %5818, 1
  store i32 %5819, ptr @test_count, align 4, !tbaa !5
  %5820 = load ptr, ptr %90, align 8, !tbaa !9
  %5821 = getelementptr inbounds %struct.s2n_connection, ptr %5820, i32 0, i32 23
  %5822 = load i8, ptr %5821, align 4, !tbaa !24
  %5823 = zext i8 %5822 to i32
  %5824 = icmp eq i32 %5823, 33
  br i1 %5824, label %5878, label %5825

5825:                                             ; preds = %5817
  br label %5826

5826:                                             ; preds = %5825
  br label %5827

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

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

5839:                                             ; preds = %5834
  %5840 = load i32, ptr %122, align 4, !tbaa !5
  %5841 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %5850 = call ptr @__errno_location() #13
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call ptr @strerror(i32 noundef %5851) #12
  %5853 = call ptr @__errno_location() #13
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5842, ptr noundef @.str, i32 noundef %5843, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 519, ptr noundef %5846, ptr noundef %5849, ptr noundef %5852, i32 noundef %5854) #12
  br label %5873

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

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

5874:                                             ; preds = %5873
  br label %5875

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

5876:                                             ; No predecessors!
  br label %5877

5877:                                             ; preds = %5876
  br label %5878

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

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

5881:                                             ; preds = %5880
  %5882 = load i32, ptr @test_count, align 4, !tbaa !5
  %5883 = add nsw i32 %5882, 1
  store i32 %5883, ptr @test_count, align 4, !tbaa !5
  %5884 = load ptr, ptr %87, align 8, !tbaa !9
  %5885 = getelementptr inbounds %struct.s2n_connection, ptr %5884, i32 0, i32 23
  %5886 = load i8, ptr %5885, align 4, !tbaa !24
  %5887 = zext i8 %5886 to i32
  %5888 = icmp eq i32 %5887, 33
  br i1 %5888, label %5942, label %5889

5889:                                             ; preds = %5881
  br label %5890

5890:                                             ; preds = %5889
  br label %5891

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

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

5903:                                             ; preds = %5898
  %5904 = load i32, ptr %123, align 4, !tbaa !5
  %5905 = call ptr @__errno_location() #13
  store i32 %5904, ptr %5905, align 4, !tbaa !5
  %5906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5907 = load i32, ptr @test_count, align 4, !tbaa !5
  %5908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5909 = load i32, ptr %5908, align 4, !tbaa !5
  %5910 = call ptr @s2n_strerror(i32 noundef %5909, ptr noundef @.str.3)
  %5911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5912 = load i32, ptr %5911, align 4, !tbaa !5
  %5913 = call ptr @s2n_strerror_debug(i32 noundef %5912, ptr noundef @.str.3)
  %5914 = call ptr @__errno_location() #13
  %5915 = load i32, ptr %5914, align 4, !tbaa !5
  %5916 = call ptr @strerror(i32 noundef %5915) #12
  %5917 = call ptr @__errno_location() #13
  %5918 = load i32, ptr %5917, align 4, !tbaa !5
  %5919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5906, ptr noundef @.str, i32 noundef %5907, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 520, ptr noundef %5910, ptr noundef %5913, ptr noundef %5916, i32 noundef %5918) #12
  br label %5937

5920:                                             ; preds = %5898, %5891
  %5921 = load i32, ptr %123, align 4, !tbaa !5
  %5922 = call ptr @__errno_location() #13
  store i32 %5921, ptr %5922, align 4, !tbaa !5
  %5923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5924 = load i32, ptr @test_count, align 4, !tbaa !5
  %5925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call ptr @s2n_strerror(i32 noundef %5926, ptr noundef @.str.3)
  %5928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @s2n_strerror_debug(i32 noundef %5929, ptr noundef @.str.3)
  %5931 = call ptr @__errno_location() #13
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call ptr @strerror(i32 noundef %5932) #12
  %5934 = call ptr @__errno_location() #13
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5923, ptr noundef @.str.4, i32 noundef %5924, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 520, ptr noundef %5927, ptr noundef %5930, ptr noundef %5933, i32 noundef %5935) #12
  br label %5937

5937:                                             ; preds = %5920, %5903
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #12
  br label %5938

5938:                                             ; preds = %5937
  br label %5939

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

5940:                                             ; No predecessors!
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

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

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

5945:                                             ; preds = %5944
  %5946 = load i32, ptr @test_count, align 4, !tbaa !5
  %5947 = add nsw i32 %5946, 1
  store i32 %5947, ptr @test_count, align 4, !tbaa !5
  %5948 = load ptr, ptr %90, align 8, !tbaa !9
  %5949 = load i32, ptr %5948, align 8
  %5950 = lshr i32 %5949, 13
  %5951 = and i32 %5950, 1
  %5952 = icmp ne i32 %5951, 0
  br i1 %5952, label %5953, label %6006

5953:                                             ; preds = %5945
  br label %5954

5954:                                             ; preds = %5953
  br label %5955

5955:                                             ; preds = %5954
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #12
  %5956 = call ptr @__errno_location() #13
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  store i32 %5957, ptr %124, align 4, !tbaa !5
  %5958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5959 = call i32 @s2n_print_stacktrace(ptr noundef %5958)
  %5960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %5961 = trunc i8 %5960 to i1
  br i1 %5961, label %5962, label %5984

5962:                                             ; preds = %5955
  %5963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5964 = call i32 @fileno(ptr noundef %5963) #12
  %5965 = call i32 @isatty(i32 noundef %5964) #12
  %5966 = icmp ne i32 %5965, 0
  br i1 %5966, label %5967, label %5984

5967:                                             ; preds = %5962
  %5968 = load i32, ptr %124, align 4, !tbaa !5
  %5969 = call ptr @__errno_location() #13
  store i32 %5968, ptr %5969, align 4, !tbaa !5
  %5970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5971 = load i32, ptr @test_count, align 4, !tbaa !5
  %5972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5973 = load i32, ptr %5972, align 4, !tbaa !5
  %5974 = call ptr @s2n_strerror(i32 noundef %5973, ptr noundef @.str.3)
  %5975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  %5977 = call ptr @s2n_strerror_debug(i32 noundef %5976, ptr noundef @.str.3)
  %5978 = call ptr @__errno_location() #13
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @strerror(i32 noundef %5979) #12
  %5981 = call ptr @__errno_location() #13
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5970, ptr noundef @.str, i32 noundef %5971, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 521, ptr noundef %5974, ptr noundef %5977, ptr noundef %5980, i32 noundef %5982) #12
  br label %6001

5984:                                             ; preds = %5962, %5955
  %5985 = load i32, ptr %124, align 4, !tbaa !5
  %5986 = call ptr @__errno_location() #13
  store i32 %5985, ptr %5986, align 4, !tbaa !5
  %5987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5988 = load i32, ptr @test_count, align 4, !tbaa !5
  %5989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @s2n_strerror(i32 noundef %5990, ptr noundef @.str.3)
  %5992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call ptr @s2n_strerror_debug(i32 noundef %5993, ptr noundef @.str.3)
  %5995 = call ptr @__errno_location() #13
  %5996 = load i32, ptr %5995, align 4, !tbaa !5
  %5997 = call ptr @strerror(i32 noundef %5996) #12
  %5998 = call ptr @__errno_location() #13
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5987, ptr noundef @.str.4, i32 noundef %5988, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 521, ptr noundef %5991, ptr noundef %5994, ptr noundef %5997, i32 noundef %5999) #12
  br label %6001

6001:                                             ; preds = %5984, %5967
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #12
  br label %6002

6002:                                             ; preds = %6001
  br label %6003

6003:                                             ; preds = %6002
  call void @exit(i32 noundef 1) #14
  unreachable

6004:                                             ; No predecessors!
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

6006:                                             ; preds = %6005, %5945
  br label %6007

6007:                                             ; preds = %6006
  br label %6008

6008:                                             ; preds = %6007
  br label %6009

6009:                                             ; preds = %6008
  %6010 = load i32, ptr @test_count, align 4, !tbaa !5
  %6011 = add nsw i32 %6010, 1
  store i32 %6011, ptr @test_count, align 4, !tbaa !5
  %6012 = load ptr, ptr %87, align 8, !tbaa !9
  %6013 = load i32, ptr %6012, align 8
  %6014 = lshr i32 %6013, 13
  %6015 = and i32 %6014, 1
  %6016 = icmp ne i32 %6015, 0
  br i1 %6016, label %6017, label %6070

6017:                                             ; preds = %6009
  br label %6018

6018:                                             ; preds = %6017
  br label %6019

6019:                                             ; preds = %6018
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #12
  %6020 = call ptr @__errno_location() #13
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  store i32 %6021, ptr %125, align 4, !tbaa !5
  %6022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6023 = call i32 @s2n_print_stacktrace(ptr noundef %6022)
  %6024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6025 = trunc i8 %6024 to i1
  br i1 %6025, label %6026, label %6048

6026:                                             ; preds = %6019
  %6027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6028 = call i32 @fileno(ptr noundef %6027) #12
  %6029 = call i32 @isatty(i32 noundef %6028) #12
  %6030 = icmp ne i32 %6029, 0
  br i1 %6030, label %6031, label %6048

6031:                                             ; preds = %6026
  %6032 = load i32, ptr %125, align 4, !tbaa !5
  %6033 = call ptr @__errno_location() #13
  store i32 %6032, ptr %6033, align 4, !tbaa !5
  %6034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6035 = load i32, ptr @test_count, align 4, !tbaa !5
  %6036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6037 = load i32, ptr %6036, align 4, !tbaa !5
  %6038 = call ptr @s2n_strerror(i32 noundef %6037, ptr noundef @.str.3)
  %6039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6040 = load i32, ptr %6039, align 4, !tbaa !5
  %6041 = call ptr @s2n_strerror_debug(i32 noundef %6040, ptr noundef @.str.3)
  %6042 = call ptr @__errno_location() #13
  %6043 = load i32, ptr %6042, align 4, !tbaa !5
  %6044 = call ptr @strerror(i32 noundef %6043) #12
  %6045 = call ptr @__errno_location() #13
  %6046 = load i32, ptr %6045, align 4, !tbaa !5
  %6047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6034, ptr noundef @.str, i32 noundef %6035, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 522, ptr noundef %6038, ptr noundef %6041, ptr noundef %6044, i32 noundef %6046) #12
  br label %6065

6048:                                             ; preds = %6026, %6019
  %6049 = load i32, ptr %125, align 4, !tbaa !5
  %6050 = call ptr @__errno_location() #13
  store i32 %6049, ptr %6050, align 4, !tbaa !5
  %6051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6052 = load i32, ptr @test_count, align 4, !tbaa !5
  %6053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call ptr @s2n_strerror(i32 noundef %6054, ptr noundef @.str.3)
  %6056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call ptr @s2n_strerror_debug(i32 noundef %6057, ptr noundef @.str.3)
  %6059 = call ptr @__errno_location() #13
  %6060 = load i32, ptr %6059, align 4, !tbaa !5
  %6061 = call ptr @strerror(i32 noundef %6060) #12
  %6062 = call ptr @__errno_location() #13
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6051, ptr noundef @.str.4, i32 noundef %6052, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 522, ptr noundef %6055, ptr noundef %6058, ptr noundef %6061, i32 noundef %6063) #12
  br label %6065

6065:                                             ; preds = %6048, %6031
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #12
  br label %6066

6066:                                             ; preds = %6065
  br label %6067

6067:                                             ; preds = %6066
  call void @exit(i32 noundef 1) #14
  unreachable

6068:                                             ; No predecessors!
  br label %6069

6069:                                             ; preds = %6068
  br label %6070

6070:                                             ; preds = %6069, %6009
  br label %6071

6071:                                             ; preds = %6070
  br label %6072

6072:                                             ; preds = %6071
  br label %6073

6073:                                             ; preds = %6072
  %6074 = load i32, ptr @test_count, align 4, !tbaa !5
  %6075 = add nsw i32 %6074, 1
  store i32 %6075, ptr @test_count, align 4, !tbaa !5
  %6076 = load ptr, ptr %90, align 8, !tbaa !9
  %6077 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %6076, i32 noundef 2)
  br i1 %6077, label %6078, label %6131

6078:                                             ; preds = %6073
  br label %6079

6079:                                             ; preds = %6078
  br label %6080

6080:                                             ; preds = %6079
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #12
  %6081 = call ptr @__errno_location() #13
  %6082 = load i32, ptr %6081, align 4, !tbaa !5
  store i32 %6082, ptr %126, align 4, !tbaa !5
  %6083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6084 = call i32 @s2n_print_stacktrace(ptr noundef %6083)
  %6085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6086 = trunc i8 %6085 to i1
  br i1 %6086, label %6087, label %6109

6087:                                             ; preds = %6080
  %6088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6089 = call i32 @fileno(ptr noundef %6088) #12
  %6090 = call i32 @isatty(i32 noundef %6089) #12
  %6091 = icmp ne i32 %6090, 0
  br i1 %6091, label %6092, label %6109

6092:                                             ; preds = %6087
  %6093 = load i32, ptr %126, align 4, !tbaa !5
  %6094 = call ptr @__errno_location() #13
  store i32 %6093, ptr %6094, align 4, !tbaa !5
  %6095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6096 = load i32, ptr @test_count, align 4, !tbaa !5
  %6097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6098 = load i32, ptr %6097, align 4, !tbaa !5
  %6099 = call ptr @s2n_strerror(i32 noundef %6098, ptr noundef @.str.3)
  %6100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6101 = load i32, ptr %6100, align 4, !tbaa !5
  %6102 = call ptr @s2n_strerror_debug(i32 noundef %6101, ptr noundef @.str.3)
  %6103 = call ptr @__errno_location() #13
  %6104 = load i32, ptr %6103, align 4, !tbaa !5
  %6105 = call ptr @strerror(i32 noundef %6104) #12
  %6106 = call ptr @__errno_location() #13
  %6107 = load i32, ptr %6106, align 4, !tbaa !5
  %6108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6095, ptr noundef @.str, i32 noundef %6096, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 523, ptr noundef %6099, ptr noundef %6102, ptr noundef %6105, i32 noundef %6107) #12
  br label %6126

6109:                                             ; preds = %6087, %6080
  %6110 = load i32, ptr %126, align 4, !tbaa !5
  %6111 = call ptr @__errno_location() #13
  store i32 %6110, ptr %6111, align 4, !tbaa !5
  %6112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6113 = load i32, ptr @test_count, align 4, !tbaa !5
  %6114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6115 = load i32, ptr %6114, align 4, !tbaa !5
  %6116 = call ptr @s2n_strerror(i32 noundef %6115, ptr noundef @.str.3)
  %6117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6118 = load i32, ptr %6117, align 4, !tbaa !5
  %6119 = call ptr @s2n_strerror_debug(i32 noundef %6118, ptr noundef @.str.3)
  %6120 = call ptr @__errno_location() #13
  %6121 = load i32, ptr %6120, align 4, !tbaa !5
  %6122 = call ptr @strerror(i32 noundef %6121) #12
  %6123 = call ptr @__errno_location() #13
  %6124 = load i32, ptr %6123, align 4, !tbaa !5
  %6125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6112, ptr noundef @.str.4, i32 noundef %6113, ptr noundef @.str.78, ptr noundef @.str.2, i32 noundef 523, ptr noundef %6116, ptr noundef %6119, ptr noundef %6122, i32 noundef %6124) #12
  br label %6126

6126:                                             ; preds = %6109, %6092
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #12
  br label %6127

6127:                                             ; preds = %6126
  br label %6128

6128:                                             ; preds = %6127
  call void @exit(i32 noundef 1) #14
  unreachable

6129:                                             ; No predecessors!
  br label %6130

6130:                                             ; preds = %6129
  br label %6131

6131:                                             ; preds = %6130, %6073
  br label %6132

6132:                                             ; preds = %6131
  br label %6133

6133:                                             ; preds = %6132
  br label %6134

6134:                                             ; preds = %6133
  %6135 = load i32, ptr @test_count, align 4, !tbaa !5
  %6136 = add nsw i32 %6135, 1
  store i32 %6136, ptr @test_count, align 4, !tbaa !5
  %6137 = load ptr, ptr %87, align 8, !tbaa !9
  %6138 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %6137, i32 noundef 2)
  br i1 %6138, label %6139, label %6192

6139:                                             ; preds = %6134
  br label %6140

6140:                                             ; preds = %6139
  br label %6141

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

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

6153:                                             ; preds = %6148
  %6154 = load i32, ptr %127, align 4, !tbaa !5
  %6155 = call ptr @__errno_location() #13
  store i32 %6154, ptr %6155, align 4, !tbaa !5
  %6156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6157 = load i32, ptr @test_count, align 4, !tbaa !5
  %6158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6159 = load i32, ptr %6158, align 4, !tbaa !5
  %6160 = call ptr @s2n_strerror(i32 noundef %6159, ptr noundef @.str.3)
  %6161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call ptr @s2n_strerror_debug(i32 noundef %6162, ptr noundef @.str.3)
  %6164 = call ptr @__errno_location() #13
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @strerror(i32 noundef %6165) #12
  %6167 = call ptr @__errno_location() #13
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6156, ptr noundef @.str, i32 noundef %6157, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 524, ptr noundef %6160, ptr noundef %6163, ptr noundef %6166, i32 noundef %6168) #12
  br label %6187

6170:                                             ; preds = %6148, %6141
  %6171 = load i32, ptr %127, align 4, !tbaa !5
  %6172 = call ptr @__errno_location() #13
  store i32 %6171, ptr %6172, align 4, !tbaa !5
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = load i32, ptr @test_count, align 4, !tbaa !5
  %6175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6176 = load i32, ptr %6175, align 4, !tbaa !5
  %6177 = call ptr @s2n_strerror(i32 noundef %6176, ptr noundef @.str.3)
  %6178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call ptr @s2n_strerror_debug(i32 noundef %6179, ptr noundef @.str.3)
  %6181 = call ptr @__errno_location() #13
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @strerror(i32 noundef %6182) #12
  %6184 = call ptr @__errno_location() #13
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6173, ptr noundef @.str.4, i32 noundef %6174, ptr noundef @.str.79, ptr noundef @.str.2, i32 noundef 524, ptr noundef %6177, ptr noundef %6180, ptr noundef %6183, i32 noundef %6185) #12
  br label %6187

6187:                                             ; preds = %6170, %6153
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #12
  br label %6188

6188:                                             ; preds = %6187
  br label %6189

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

6190:                                             ; No predecessors!
  br label %6191

6191:                                             ; preds = %6190
  br label %6192

6192:                                             ; preds = %6191, %6134
  br label %6193

6193:                                             ; preds = %6192
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

6195:                                             ; preds = %6194
  %6196 = load i32, ptr @test_count, align 4, !tbaa !5
  %6197 = add nsw i32 %6196, 1
  store i32 %6197, ptr @test_count, align 4, !tbaa !5
  %6198 = load ptr, ptr %87, align 8, !tbaa !9
  %6199 = call i32 @s2n_connection_free(ptr noundef %6198)
  %6200 = icmp eq i32 %6199, -1
  br i1 %6200, label %6201, label %6254

6201:                                             ; preds = %6195
  br label %6202

6202:                                             ; preds = %6201
  br label %6203

6203:                                             ; preds = %6202
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #12
  %6204 = call ptr @__errno_location() #13
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  store i32 %6205, ptr %128, align 4, !tbaa !5
  %6206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6207 = call i32 @s2n_print_stacktrace(ptr noundef %6206)
  %6208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6209 = trunc i8 %6208 to i1
  br i1 %6209, label %6210, label %6232

6210:                                             ; preds = %6203
  %6211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6212 = call i32 @fileno(ptr noundef %6211) #12
  %6213 = call i32 @isatty(i32 noundef %6212) #12
  %6214 = icmp ne i32 %6213, 0
  br i1 %6214, label %6215, label %6232

6215:                                             ; preds = %6210
  %6216 = load i32, ptr %128, align 4, !tbaa !5
  %6217 = call ptr @__errno_location() #13
  store i32 %6216, ptr %6217, align 4, !tbaa !5
  %6218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6219 = load i32, ptr @test_count, align 4, !tbaa !5
  %6220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6221 = load i32, ptr %6220, align 4, !tbaa !5
  %6222 = call ptr @s2n_strerror(i32 noundef %6221, ptr noundef @.str.3)
  %6223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6224 = load i32, ptr %6223, align 4, !tbaa !5
  %6225 = call ptr @s2n_strerror_debug(i32 noundef %6224, ptr noundef @.str.3)
  %6226 = call ptr @__errno_location() #13
  %6227 = load i32, ptr %6226, align 4, !tbaa !5
  %6228 = call ptr @strerror(i32 noundef %6227) #12
  %6229 = call ptr @__errno_location() #13
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  %6231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6218, ptr noundef @.str, i32 noundef %6219, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 526, ptr noundef %6222, ptr noundef %6225, ptr noundef %6228, i32 noundef %6230) #12
  br label %6249

6232:                                             ; preds = %6210, %6203
  %6233 = load i32, ptr %128, align 4, !tbaa !5
  %6234 = call ptr @__errno_location() #13
  store i32 %6233, ptr %6234, align 4, !tbaa !5
  %6235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6236 = load i32, ptr @test_count, align 4, !tbaa !5
  %6237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6238 = load i32, ptr %6237, align 4, !tbaa !5
  %6239 = call ptr @s2n_strerror(i32 noundef %6238, ptr noundef @.str.3)
  %6240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6241 = load i32, ptr %6240, align 4, !tbaa !5
  %6242 = call ptr @s2n_strerror_debug(i32 noundef %6241, ptr noundef @.str.3)
  %6243 = call ptr @__errno_location() #13
  %6244 = load i32, ptr %6243, align 4, !tbaa !5
  %6245 = call ptr @strerror(i32 noundef %6244) #12
  %6246 = call ptr @__errno_location() #13
  %6247 = load i32, ptr %6246, align 4, !tbaa !5
  %6248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6235, ptr noundef @.str.4, i32 noundef %6236, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 526, ptr noundef %6239, ptr noundef %6242, ptr noundef %6245, i32 noundef %6247) #12
  br label %6249

6249:                                             ; preds = %6232, %6215
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #12
  br label %6250

6250:                                             ; preds = %6249
  br label %6251

6251:                                             ; preds = %6250
  call void @exit(i32 noundef 1) #14
  unreachable

6252:                                             ; No predecessors!
  br label %6253

6253:                                             ; preds = %6252
  br label %6254

6254:                                             ; preds = %6253, %6195
  br label %6255

6255:                                             ; preds = %6254
  br label %6256

6256:                                             ; preds = %6255
  br label %6257

6257:                                             ; preds = %6256
  %6258 = load i32, ptr @test_count, align 4, !tbaa !5
  %6259 = add nsw i32 %6258, 1
  store i32 %6259, ptr @test_count, align 4, !tbaa !5
  %6260 = load ptr, ptr %90, align 8, !tbaa !9
  %6261 = call i32 @s2n_connection_free(ptr noundef %6260)
  %6262 = icmp eq i32 %6261, -1
  br i1 %6262, label %6263, label %6316

6263:                                             ; preds = %6257
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

6265:                                             ; preds = %6264
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #12
  %6266 = call ptr @__errno_location() #13
  %6267 = load i32, ptr %6266, align 4, !tbaa !5
  store i32 %6267, ptr %129, align 4, !tbaa !5
  %6268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6269 = call i32 @s2n_print_stacktrace(ptr noundef %6268)
  %6270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6271 = trunc i8 %6270 to i1
  br i1 %6271, label %6272, label %6294

6272:                                             ; preds = %6265
  %6273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6274 = call i32 @fileno(ptr noundef %6273) #12
  %6275 = call i32 @isatty(i32 noundef %6274) #12
  %6276 = icmp ne i32 %6275, 0
  br i1 %6276, label %6277, label %6294

6277:                                             ; preds = %6272
  %6278 = load i32, ptr %129, align 4, !tbaa !5
  %6279 = call ptr @__errno_location() #13
  store i32 %6278, ptr %6279, align 4, !tbaa !5
  %6280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6281 = load i32, ptr @test_count, align 4, !tbaa !5
  %6282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6283 = load i32, ptr %6282, align 4, !tbaa !5
  %6284 = call ptr @s2n_strerror(i32 noundef %6283, ptr noundef @.str.3)
  %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_debug(i32 noundef %6286, ptr noundef @.str.3)
  %6288 = call ptr @__errno_location() #13
  %6289 = load i32, ptr %6288, align 4, !tbaa !5
  %6290 = call ptr @strerror(i32 noundef %6289) #12
  %6291 = call ptr @__errno_location() #13
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6280, ptr noundef @.str, i32 noundef %6281, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 527, ptr noundef %6284, ptr noundef %6287, ptr noundef %6290, i32 noundef %6292) #12
  br label %6311

6294:                                             ; preds = %6272, %6265
  %6295 = load i32, ptr %129, align 4, !tbaa !5
  %6296 = call ptr @__errno_location() #13
  store i32 %6295, ptr %6296, align 4, !tbaa !5
  %6297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6298 = load i32, ptr @test_count, align 4, !tbaa !5
  %6299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6300 = load i32, ptr %6299, align 4, !tbaa !5
  %6301 = call ptr @s2n_strerror(i32 noundef %6300, ptr noundef @.str.3)
  %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_debug(i32 noundef %6303, ptr noundef @.str.3)
  %6305 = call ptr @__errno_location() #13
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @strerror(i32 noundef %6306) #12
  %6308 = call ptr @__errno_location() #13
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6297, ptr noundef @.str.4, i32 noundef %6298, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 527, ptr noundef %6301, ptr noundef %6304, ptr noundef %6307, i32 noundef %6309) #12
  br label %6311

6311:                                             ; preds = %6294, %6277
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #12
  br label %6312

6312:                                             ; preds = %6311
  br label %6313

6313:                                             ; preds = %6312
  call void @exit(i32 noundef 1) #14
  unreachable

6314:                                             ; No predecessors!
  br label %6315

6315:                                             ; preds = %6314
  br label %6316

6316:                                             ; preds = %6315, %6257
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

6318:                                             ; preds = %6317
  br label %6319

6319:                                             ; preds = %6318
  %6320 = load i32, ptr @test_count, align 4, !tbaa !5
  %6321 = add nsw i32 %6320, 1
  store i32 %6321, ptr @test_count, align 4, !tbaa !5
  %6322 = call i32 @s2n_io_pair_close(ptr noundef %25)
  %6323 = icmp eq i32 %6322, -1
  br i1 %6323, label %6324, label %6377

6324:                                             ; preds = %6319
  br label %6325

6325:                                             ; preds = %6324
  br label %6326

6326:                                             ; preds = %6325
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #12
  %6327 = call ptr @__errno_location() #13
  %6328 = load i32, ptr %6327, align 4, !tbaa !5
  store i32 %6328, ptr %130, align 4, !tbaa !5
  %6329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6330 = call i32 @s2n_print_stacktrace(ptr noundef %6329)
  %6331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6332 = trunc i8 %6331 to i1
  br i1 %6332, label %6333, label %6355

6333:                                             ; preds = %6326
  %6334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6335 = call i32 @fileno(ptr noundef %6334) #12
  %6336 = call i32 @isatty(i32 noundef %6335) #12
  %6337 = icmp ne i32 %6336, 0
  br i1 %6337, label %6338, label %6355

6338:                                             ; preds = %6333
  %6339 = load i32, ptr %130, align 4, !tbaa !5
  %6340 = call ptr @__errno_location() #13
  store i32 %6339, ptr %6340, align 4, !tbaa !5
  %6341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6342 = load i32, ptr @test_count, align 4, !tbaa !5
  %6343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6344 = load i32, ptr %6343, align 4, !tbaa !5
  %6345 = call ptr @s2n_strerror(i32 noundef %6344, ptr noundef @.str.3)
  %6346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  %6348 = call ptr @s2n_strerror_debug(i32 noundef %6347, ptr noundef @.str.3)
  %6349 = call ptr @__errno_location() #13
  %6350 = load i32, ptr %6349, align 4, !tbaa !5
  %6351 = call ptr @strerror(i32 noundef %6350) #12
  %6352 = call ptr @__errno_location() #13
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6341, ptr noundef @.str, i32 noundef %6342, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 528, ptr noundef %6345, ptr noundef %6348, ptr noundef %6351, i32 noundef %6353) #12
  br label %6372

6355:                                             ; preds = %6333, %6326
  %6356 = load i32, ptr %130, align 4, !tbaa !5
  %6357 = call ptr @__errno_location() #13
  store i32 %6356, ptr %6357, align 4, !tbaa !5
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = load i32, ptr @test_count, align 4, !tbaa !5
  %6360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6361 = load i32, ptr %6360, align 4, !tbaa !5
  %6362 = call ptr @s2n_strerror(i32 noundef %6361, ptr noundef @.str.3)
  %6363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6364 = load i32, ptr %6363, align 4, !tbaa !5
  %6365 = call ptr @s2n_strerror_debug(i32 noundef %6364, ptr noundef @.str.3)
  %6366 = call ptr @__errno_location() #13
  %6367 = load i32, ptr %6366, align 4, !tbaa !5
  %6368 = call ptr @strerror(i32 noundef %6367) #12
  %6369 = call ptr @__errno_location() #13
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6358, ptr noundef @.str.4, i32 noundef %6359, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 528, ptr noundef %6362, ptr noundef %6365, ptr noundef %6368, i32 noundef %6370) #12
  br label %6372

6372:                                             ; preds = %6355, %6338
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #12
  br label %6373

6373:                                             ; preds = %6372
  br label %6374

6374:                                             ; preds = %6373
  call void @exit(i32 noundef 1) #14
  unreachable

6375:                                             ; No predecessors!
  br label %6376

6376:                                             ; preds = %6375
  br label %6377

6377:                                             ; preds = %6376, %6319
  br label %6378

6378:                                             ; preds = %6377
  br label %6379

6379:                                             ; preds = %6378
  call void @llvm.lifetime.end.p0(i64 202, ptr %109) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #12
  call void @initialize_cache()
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #12
  %6380 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6380, ptr %131, align 8, !tbaa !9
  br label %6381

6381:                                             ; preds = %6379
  %6382 = load i32, ptr @test_count, align 4, !tbaa !5
  %6383 = add nsw i32 %6382, 1
  store i32 %6383, ptr @test_count, align 4, !tbaa !5
  %6384 = load ptr, ptr %131, align 8, !tbaa !9
  %6385 = icmp eq ptr %6384, null
  br i1 %6385, label %6386, label %6439

6386:                                             ; preds = %6381
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #12
  %6389 = call ptr @__errno_location() #13
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  store i32 %6390, ptr %132, align 4, !tbaa !5
  %6391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6392 = call i32 @s2n_print_stacktrace(ptr noundef %6391)
  %6393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6394 = trunc i8 %6393 to i1
  br i1 %6394, label %6395, label %6417

6395:                                             ; preds = %6388
  %6396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6397 = call i32 @fileno(ptr noundef %6396) #12
  %6398 = call i32 @isatty(i32 noundef %6397) #12
  %6399 = icmp ne i32 %6398, 0
  br i1 %6399, label %6400, label %6417

6400:                                             ; preds = %6395
  %6401 = load i32, ptr %132, align 4, !tbaa !5
  %6402 = call ptr @__errno_location() #13
  store i32 %6401, ptr %6402, align 4, !tbaa !5
  %6403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6404 = load i32, ptr @test_count, align 4, !tbaa !5
  %6405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6406 = load i32, ptr %6405, align 4, !tbaa !5
  %6407 = call ptr @s2n_strerror(i32 noundef %6406, ptr noundef @.str.3)
  %6408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6409 = load i32, ptr %6408, align 4, !tbaa !5
  %6410 = call ptr @s2n_strerror_debug(i32 noundef %6409, ptr noundef @.str.3)
  %6411 = call ptr @__errno_location() #13
  %6412 = load i32, ptr %6411, align 4, !tbaa !5
  %6413 = call ptr @strerror(i32 noundef %6412) #12
  %6414 = call ptr @__errno_location() #13
  %6415 = load i32, ptr %6414, align 4, !tbaa !5
  %6416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6403, ptr noundef @.str, i32 noundef %6404, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 541, ptr noundef %6407, ptr noundef %6410, ptr noundef %6413, i32 noundef %6415) #12
  br label %6434

6417:                                             ; preds = %6395, %6388
  %6418 = load i32, ptr %132, align 4, !tbaa !5
  %6419 = call ptr @__errno_location() #13
  store i32 %6418, ptr %6419, align 4, !tbaa !5
  %6420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6421 = load i32, ptr @test_count, align 4, !tbaa !5
  %6422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6423 = load i32, ptr %6422, align 4, !tbaa !5
  %6424 = call ptr @s2n_strerror(i32 noundef %6423, ptr noundef @.str.3)
  %6425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6426 = load i32, ptr %6425, align 4, !tbaa !5
  %6427 = call ptr @s2n_strerror_debug(i32 noundef %6426, ptr noundef @.str.3)
  %6428 = call ptr @__errno_location() #13
  %6429 = load i32, ptr %6428, align 4, !tbaa !5
  %6430 = call ptr @strerror(i32 noundef %6429) #12
  %6431 = call ptr @__errno_location() #13
  %6432 = load i32, ptr %6431, align 4, !tbaa !5
  %6433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6420, ptr noundef @.str.4, i32 noundef %6421, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 541, ptr noundef %6424, ptr noundef %6427, ptr noundef %6430, i32 noundef %6432) #12
  br label %6434

6434:                                             ; preds = %6417, %6400
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #12
  br label %6435

6435:                                             ; preds = %6434
  br label %6436

6436:                                             ; preds = %6435
  call void @exit(i32 noundef 1) #14
  unreachable

6437:                                             ; No predecessors!
  br label %6438

6438:                                             ; preds = %6437
  br label %6439

6439:                                             ; preds = %6438, %6381
  br label %6440

6440:                                             ; preds = %6439
  br label %6441

6441:                                             ; preds = %6440
  %6442 = load ptr, ptr %7, align 8, !tbaa !9
  %6443 = call i32 @s2n_config_disable_x509_verification(ptr noundef %6442)
  br label %6444

6444:                                             ; preds = %6441
  %6445 = load i32, ptr @test_count, align 4, !tbaa !5
  %6446 = add nsw i32 %6445, 1
  store i32 %6446, ptr @test_count, align 4, !tbaa !5
  %6447 = load ptr, ptr %131, align 8, !tbaa !9
  %6448 = load ptr, ptr %7, align 8, !tbaa !9
  %6449 = call i32 @s2n_connection_set_config(ptr noundef %6447, ptr noundef %6448)
  %6450 = icmp eq i32 %6449, -1
  br i1 %6450, label %6451, label %6504

6451:                                             ; preds = %6444
  br label %6452

6452:                                             ; preds = %6451
  br label %6453

6453:                                             ; preds = %6452
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #12
  %6454 = call ptr @__errno_location() #13
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  store i32 %6455, ptr %133, align 4, !tbaa !5
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = call i32 @s2n_print_stacktrace(ptr noundef %6456)
  %6458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6459 = trunc i8 %6458 to i1
  br i1 %6459, label %6460, label %6482

6460:                                             ; preds = %6453
  %6461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6462 = call i32 @fileno(ptr noundef %6461) #12
  %6463 = call i32 @isatty(i32 noundef %6462) #12
  %6464 = icmp ne i32 %6463, 0
  br i1 %6464, label %6465, label %6482

6465:                                             ; preds = %6460
  %6466 = load i32, ptr %133, align 4, !tbaa !5
  %6467 = call ptr @__errno_location() #13
  store i32 %6466, ptr %6467, align 4, !tbaa !5
  %6468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6469 = load i32, ptr @test_count, align 4, !tbaa !5
  %6470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6471 = load i32, ptr %6470, align 4, !tbaa !5
  %6472 = call ptr @s2n_strerror(i32 noundef %6471, ptr noundef @.str.3)
  %6473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6474 = load i32, ptr %6473, align 4, !tbaa !5
  %6475 = call ptr @s2n_strerror_debug(i32 noundef %6474, ptr noundef @.str.3)
  %6476 = call ptr @__errno_location() #13
  %6477 = load i32, ptr %6476, align 4, !tbaa !5
  %6478 = call ptr @strerror(i32 noundef %6477) #12
  %6479 = call ptr @__errno_location() #13
  %6480 = load i32, ptr %6479, align 4, !tbaa !5
  %6481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6468, ptr noundef @.str, i32 noundef %6469, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 543, ptr noundef %6472, ptr noundef %6475, ptr noundef %6478, i32 noundef %6480) #12
  br label %6499

6482:                                             ; preds = %6460, %6453
  %6483 = load i32, ptr %133, align 4, !tbaa !5
  %6484 = call ptr @__errno_location() #13
  store i32 %6483, ptr %6484, align 4, !tbaa !5
  %6485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6486 = load i32, ptr @test_count, align 4, !tbaa !5
  %6487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  %6489 = call ptr @s2n_strerror(i32 noundef %6488, ptr noundef @.str.3)
  %6490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror_debug(i32 noundef %6491, ptr noundef @.str.3)
  %6493 = call ptr @__errno_location() #13
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @strerror(i32 noundef %6494) #12
  %6496 = call ptr @__errno_location() #13
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6485, ptr noundef @.str.4, i32 noundef %6486, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 543, ptr noundef %6489, ptr noundef %6492, ptr noundef %6495, i32 noundef %6497) #12
  br label %6499

6499:                                             ; preds = %6482, %6465
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #12
  br label %6500

6500:                                             ; preds = %6499
  br label %6501

6501:                                             ; preds = %6500
  call void @exit(i32 noundef 1) #14
  unreachable

6502:                                             ; No predecessors!
  br label %6503

6503:                                             ; preds = %6502
  br label %6504

6504:                                             ; preds = %6503, %6444
  br label %6505

6505:                                             ; preds = %6504
  br label %6506

6506:                                             ; preds = %6505
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #12
  %6507 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6507, ptr %134, align 8, !tbaa !9
  br label %6508

6508:                                             ; preds = %6506
  %6509 = load i32, ptr @test_count, align 4, !tbaa !5
  %6510 = add nsw i32 %6509, 1
  store i32 %6510, ptr @test_count, align 4, !tbaa !5
  %6511 = load ptr, ptr %134, align 8, !tbaa !9
  %6512 = icmp eq ptr %6511, null
  br i1 %6512, label %6513, label %6566

6513:                                             ; preds = %6508
  br label %6514

6514:                                             ; preds = %6513
  br label %6515

6515:                                             ; preds = %6514
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #12
  %6516 = call ptr @__errno_location() #13
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  store i32 %6517, ptr %135, align 4, !tbaa !5
  %6518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6519 = call i32 @s2n_print_stacktrace(ptr noundef %6518)
  %6520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6521 = trunc i8 %6520 to i1
  br i1 %6521, label %6522, label %6544

6522:                                             ; preds = %6515
  %6523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6524 = call i32 @fileno(ptr noundef %6523) #12
  %6525 = call i32 @isatty(i32 noundef %6524) #12
  %6526 = icmp ne i32 %6525, 0
  br i1 %6526, label %6527, label %6544

6527:                                             ; preds = %6522
  %6528 = load i32, ptr %135, align 4, !tbaa !5
  %6529 = call ptr @__errno_location() #13
  store i32 %6528, ptr %6529, align 4, !tbaa !5
  %6530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6531 = load i32, ptr @test_count, align 4, !tbaa !5
  %6532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6533 = load i32, ptr %6532, align 4, !tbaa !5
  %6534 = call ptr @s2n_strerror(i32 noundef %6533, ptr noundef @.str.3)
  %6535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call ptr @s2n_strerror_debug(i32 noundef %6536, ptr noundef @.str.3)
  %6538 = call ptr @__errno_location() #13
  %6539 = load i32, ptr %6538, align 4, !tbaa !5
  %6540 = call ptr @strerror(i32 noundef %6539) #12
  %6541 = call ptr @__errno_location() #13
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  %6543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6530, ptr noundef @.str, i32 noundef %6531, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 546, ptr noundef %6534, ptr noundef %6537, ptr noundef %6540, i32 noundef %6542) #12
  br label %6561

6544:                                             ; preds = %6522, %6515
  %6545 = load i32, ptr %135, align 4, !tbaa !5
  %6546 = call ptr @__errno_location() #13
  store i32 %6545, ptr %6546, align 4, !tbaa !5
  %6547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6548 = load i32, ptr @test_count, align 4, !tbaa !5
  %6549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6550 = load i32, ptr %6549, align 4, !tbaa !5
  %6551 = call ptr @s2n_strerror(i32 noundef %6550, ptr noundef @.str.3)
  %6552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror_debug(i32 noundef %6553, ptr noundef @.str.3)
  %6555 = call ptr @__errno_location() #13
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call ptr @strerror(i32 noundef %6556) #12
  %6558 = call ptr @__errno_location() #13
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6547, ptr noundef @.str.4, i32 noundef %6548, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 546, ptr noundef %6551, ptr noundef %6554, ptr noundef %6557, i32 noundef %6559) #12
  br label %6561

6561:                                             ; preds = %6544, %6527
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #12
  br label %6562

6562:                                             ; preds = %6561
  br label %6563

6563:                                             ; preds = %6562
  call void @exit(i32 noundef 1) #14
  unreachable

6564:                                             ; No predecessors!
  br label %6565

6565:                                             ; preds = %6564
  br label %6566

6566:                                             ; preds = %6565, %6508
  br label %6567

6567:                                             ; preds = %6566
  br label %6568

6568:                                             ; preds = %6567
  br label %6569

6569:                                             ; preds = %6568
  %6570 = load i32, ptr @test_count, align 4, !tbaa !5
  %6571 = add nsw i32 %6570, 1
  store i32 %6571, ptr @test_count, align 4, !tbaa !5
  %6572 = load ptr, ptr %134, align 8, !tbaa !9
  %6573 = load ptr, ptr %7, align 8, !tbaa !9
  %6574 = call i32 @s2n_connection_set_config(ptr noundef %6572, ptr noundef %6573)
  %6575 = icmp eq i32 %6574, -1
  br i1 %6575, label %6576, label %6629

6576:                                             ; preds = %6569
  br label %6577

6577:                                             ; preds = %6576
  br label %6578

6578:                                             ; preds = %6577
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #12
  %6579 = call ptr @__errno_location() #13
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  store i32 %6580, ptr %136, align 4, !tbaa !5
  %6581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6582 = call i32 @s2n_print_stacktrace(ptr noundef %6581)
  %6583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6584 = trunc i8 %6583 to i1
  br i1 %6584, label %6585, label %6607

6585:                                             ; preds = %6578
  %6586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6587 = call i32 @fileno(ptr noundef %6586) #12
  %6588 = call i32 @isatty(i32 noundef %6587) #12
  %6589 = icmp ne i32 %6588, 0
  br i1 %6589, label %6590, label %6607

6590:                                             ; preds = %6585
  %6591 = load i32, ptr %136, align 4, !tbaa !5
  %6592 = call ptr @__errno_location() #13
  store i32 %6591, ptr %6592, align 4, !tbaa !5
  %6593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6594 = load i32, ptr @test_count, align 4, !tbaa !5
  %6595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6596 = load i32, ptr %6595, align 4, !tbaa !5
  %6597 = call ptr @s2n_strerror(i32 noundef %6596, ptr noundef @.str.3)
  %6598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6599 = load i32, ptr %6598, align 4, !tbaa !5
  %6600 = call ptr @s2n_strerror_debug(i32 noundef %6599, ptr noundef @.str.3)
  %6601 = call ptr @__errno_location() #13
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  %6603 = call ptr @strerror(i32 noundef %6602) #12
  %6604 = call ptr @__errno_location() #13
  %6605 = load i32, ptr %6604, align 4, !tbaa !5
  %6606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6593, ptr noundef @.str, i32 noundef %6594, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 547, ptr noundef %6597, ptr noundef %6600, ptr noundef %6603, i32 noundef %6605) #12
  br label %6624

6607:                                             ; preds = %6585, %6578
  %6608 = load i32, ptr %136, align 4, !tbaa !5
  %6609 = call ptr @__errno_location() #13
  store i32 %6608, ptr %6609, align 4, !tbaa !5
  %6610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6611 = load i32, ptr @test_count, align 4, !tbaa !5
  %6612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6613 = load i32, ptr %6612, align 4, !tbaa !5
  %6614 = call ptr @s2n_strerror(i32 noundef %6613, ptr noundef @.str.3)
  %6615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6616 = load i32, ptr %6615, align 4, !tbaa !5
  %6617 = call ptr @s2n_strerror_debug(i32 noundef %6616, ptr noundef @.str.3)
  %6618 = call ptr @__errno_location() #13
  %6619 = load i32, ptr %6618, align 4, !tbaa !5
  %6620 = call ptr @strerror(i32 noundef %6619) #12
  %6621 = call ptr @__errno_location() #13
  %6622 = load i32, ptr %6621, align 4, !tbaa !5
  %6623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6610, ptr noundef @.str.4, i32 noundef %6611, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 547, ptr noundef %6614, ptr noundef %6617, ptr noundef %6620, i32 noundef %6622) #12
  br label %6624

6624:                                             ; preds = %6607, %6590
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #12
  br label %6625

6625:                                             ; preds = %6624
  br label %6626

6626:                                             ; preds = %6625
  call void @exit(i32 noundef 1) #14
  unreachable

6627:                                             ; No predecessors!
  br label %6628

6628:                                             ; preds = %6627
  br label %6629

6629:                                             ; preds = %6628, %6569
  br label %6630

6630:                                             ; preds = %6629
  br label %6631

6631:                                             ; preds = %6630
  br label %6632

6632:                                             ; preds = %6631
  %6633 = load i32, ptr @test_count, align 4, !tbaa !5
  %6634 = add nsw i32 %6633, 1
  store i32 %6634, ptr @test_count, align 4, !tbaa !5
  %6635 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %25)
  %6636 = icmp eq i32 %6635, -1
  br i1 %6636, label %6637, label %6690

6637:                                             ; preds = %6632
  br label %6638

6638:                                             ; preds = %6637
  br label %6639

6639:                                             ; preds = %6638
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #12
  %6640 = call ptr @__errno_location() #13
  %6641 = load i32, ptr %6640, align 4, !tbaa !5
  store i32 %6641, ptr %137, align 4, !tbaa !5
  %6642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6643 = call i32 @s2n_print_stacktrace(ptr noundef %6642)
  %6644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6645 = trunc i8 %6644 to i1
  br i1 %6645, label %6646, label %6668

6646:                                             ; preds = %6639
  %6647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6648 = call i32 @fileno(ptr noundef %6647) #12
  %6649 = call i32 @isatty(i32 noundef %6648) #12
  %6650 = icmp ne i32 %6649, 0
  br i1 %6650, label %6651, label %6668

6651:                                             ; preds = %6646
  %6652 = load i32, ptr %137, align 4, !tbaa !5
  %6653 = call ptr @__errno_location() #13
  store i32 %6652, ptr %6653, align 4, !tbaa !5
  %6654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6655 = load i32, ptr @test_count, align 4, !tbaa !5
  %6656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  %6658 = call ptr @s2n_strerror(i32 noundef %6657, ptr noundef @.str.3)
  %6659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  %6661 = call ptr @s2n_strerror_debug(i32 noundef %6660, ptr noundef @.str.3)
  %6662 = call ptr @__errno_location() #13
  %6663 = load i32, ptr %6662, align 4, !tbaa !5
  %6664 = call ptr @strerror(i32 noundef %6663) #12
  %6665 = call ptr @__errno_location() #13
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  %6667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6654, ptr noundef @.str, i32 noundef %6655, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 550, ptr noundef %6658, ptr noundef %6661, ptr noundef %6664, i32 noundef %6666) #12
  br label %6685

6668:                                             ; preds = %6646, %6639
  %6669 = load i32, ptr %137, align 4, !tbaa !5
  %6670 = call ptr @__errno_location() #13
  store i32 %6669, ptr %6670, align 4, !tbaa !5
  %6671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6672 = load i32, ptr @test_count, align 4, !tbaa !5
  %6673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6674 = load i32, ptr %6673, align 4, !tbaa !5
  %6675 = call ptr @s2n_strerror(i32 noundef %6674, ptr noundef @.str.3)
  %6676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6677 = load i32, ptr %6676, align 4, !tbaa !5
  %6678 = call ptr @s2n_strerror_debug(i32 noundef %6677, ptr noundef @.str.3)
  %6679 = call ptr @__errno_location() #13
  %6680 = load i32, ptr %6679, align 4, !tbaa !5
  %6681 = call ptr @strerror(i32 noundef %6680) #12
  %6682 = call ptr @__errno_location() #13
  %6683 = load i32, ptr %6682, align 4, !tbaa !5
  %6684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6671, ptr noundef @.str.4, i32 noundef %6672, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 550, ptr noundef %6675, ptr noundef %6678, ptr noundef %6681, i32 noundef %6683) #12
  br label %6685

6685:                                             ; preds = %6668, %6651
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #12
  br label %6686

6686:                                             ; preds = %6685
  br label %6687

6687:                                             ; preds = %6686
  call void @exit(i32 noundef 1) #14
  unreachable

6688:                                             ; No predecessors!
  br label %6689

6689:                                             ; preds = %6688
  br label %6690

6690:                                             ; preds = %6689, %6632
  br label %6691

6691:                                             ; preds = %6690
  br label %6692

6692:                                             ; preds = %6691
  br label %6693

6693:                                             ; preds = %6692
  %6694 = load i32, ptr @test_count, align 4, !tbaa !5
  %6695 = add nsw i32 %6694, 1
  store i32 %6695, ptr @test_count, align 4, !tbaa !5
  %6696 = load ptr, ptr %131, align 8, !tbaa !9
  %6697 = load ptr, ptr %134, align 8, !tbaa !9
  %6698 = call i32 @s2n_connections_set_io_pair(ptr noundef %6696, ptr noundef %6697, ptr noundef %25)
  %6699 = icmp eq i32 %6698, -1
  br i1 %6699, label %6700, label %6753

6700:                                             ; preds = %6693
  br label %6701

6701:                                             ; preds = %6700
  br label %6702

6702:                                             ; preds = %6701
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #12
  %6703 = call ptr @__errno_location() #13
  %6704 = load i32, ptr %6703, align 4, !tbaa !5
  store i32 %6704, ptr %138, align 4, !tbaa !5
  %6705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6706 = call i32 @s2n_print_stacktrace(ptr noundef %6705)
  %6707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6708 = trunc i8 %6707 to i1
  br i1 %6708, label %6709, label %6731

6709:                                             ; preds = %6702
  %6710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6711 = call i32 @fileno(ptr noundef %6710) #12
  %6712 = call i32 @isatty(i32 noundef %6711) #12
  %6713 = icmp ne i32 %6712, 0
  br i1 %6713, label %6714, label %6731

6714:                                             ; preds = %6709
  %6715 = load i32, ptr %138, align 4, !tbaa !5
  %6716 = call ptr @__errno_location() #13
  store i32 %6715, ptr %6716, align 4, !tbaa !5
  %6717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6718 = load i32, ptr @test_count, align 4, !tbaa !5
  %6719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  %6721 = call ptr @s2n_strerror(i32 noundef %6720, ptr noundef @.str.3)
  %6722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6723 = load i32, ptr %6722, align 4, !tbaa !5
  %6724 = call ptr @s2n_strerror_debug(i32 noundef %6723, ptr noundef @.str.3)
  %6725 = call ptr @__errno_location() #13
  %6726 = load i32, ptr %6725, align 4, !tbaa !5
  %6727 = call ptr @strerror(i32 noundef %6726) #12
  %6728 = call ptr @__errno_location() #13
  %6729 = load i32, ptr %6728, align 4, !tbaa !5
  %6730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6717, ptr noundef @.str, i32 noundef %6718, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 551, ptr noundef %6721, ptr noundef %6724, ptr noundef %6727, i32 noundef %6729) #12
  br label %6748

6731:                                             ; preds = %6709, %6702
  %6732 = load i32, ptr %138, align 4, !tbaa !5
  %6733 = call ptr @__errno_location() #13
  store i32 %6732, ptr %6733, align 4, !tbaa !5
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = load i32, ptr @test_count, align 4, !tbaa !5
  %6736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6737 = load i32, ptr %6736, align 4, !tbaa !5
  %6738 = call ptr @s2n_strerror(i32 noundef %6737, ptr noundef @.str.3)
  %6739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call ptr @s2n_strerror_debug(i32 noundef %6740, ptr noundef @.str.3)
  %6742 = call ptr @__errno_location() #13
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call ptr @strerror(i32 noundef %6743) #12
  %6745 = call ptr @__errno_location() #13
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6734, ptr noundef @.str.4, i32 noundef %6735, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 551, ptr noundef %6738, ptr noundef %6741, ptr noundef %6744, i32 noundef %6746) #12
  br label %6748

6748:                                             ; preds = %6731, %6714
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #12
  br label %6749

6749:                                             ; preds = %6748
  br label %6750

6750:                                             ; preds = %6749
  call void @exit(i32 noundef 1) #14
  unreachable

6751:                                             ; No predecessors!
  br label %6752

6752:                                             ; preds = %6751
  br label %6753

6753:                                             ; preds = %6752, %6693
  br label %6754

6754:                                             ; preds = %6753
  br label %6755

6755:                                             ; preds = %6754
  br label %6756

6756:                                             ; preds = %6755
  %6757 = load i32, ptr @test_count, align 4, !tbaa !5
  %6758 = add nsw i32 %6757, 1
  store i32 %6758, ptr @test_count, align 4, !tbaa !5
  %6759 = load ptr, ptr %134, align 8, !tbaa !9
  %6760 = load ptr, ptr %131, align 8, !tbaa !9
  %6761 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %6759, ptr noundef %6760)
  %6762 = icmp eq i32 %6761, -1
  br i1 %6762, label %6763, label %6816

6763:                                             ; preds = %6756
  br label %6764

6764:                                             ; preds = %6763
  br label %6765

6765:                                             ; preds = %6764
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #12
  %6766 = call ptr @__errno_location() #13
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  store i32 %6767, ptr %139, align 4, !tbaa !5
  %6768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6769 = call i32 @s2n_print_stacktrace(ptr noundef %6768)
  %6770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6771 = trunc i8 %6770 to i1
  br i1 %6771, label %6772, label %6794

6772:                                             ; preds = %6765
  %6773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6774 = call i32 @fileno(ptr noundef %6773) #12
  %6775 = call i32 @isatty(i32 noundef %6774) #12
  %6776 = icmp ne i32 %6775, 0
  br i1 %6776, label %6777, label %6794

6777:                                             ; preds = %6772
  %6778 = load i32, ptr %139, align 4, !tbaa !5
  %6779 = call ptr @__errno_location() #13
  store i32 %6778, ptr %6779, align 4, !tbaa !5
  %6780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6781 = load i32, ptr @test_count, align 4, !tbaa !5
  %6782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  %6784 = call ptr @s2n_strerror(i32 noundef %6783, ptr noundef @.str.3)
  %6785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6786 = load i32, ptr %6785, align 4, !tbaa !5
  %6787 = call ptr @s2n_strerror_debug(i32 noundef %6786, ptr noundef @.str.3)
  %6788 = call ptr @__errno_location() #13
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  %6790 = call ptr @strerror(i32 noundef %6789) #12
  %6791 = call ptr @__errno_location() #13
  %6792 = load i32, ptr %6791, align 4, !tbaa !5
  %6793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6780, ptr noundef @.str, i32 noundef %6781, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 554, ptr noundef %6784, ptr noundef %6787, ptr noundef %6790, i32 noundef %6792) #12
  br label %6811

6794:                                             ; preds = %6772, %6765
  %6795 = load i32, ptr %139, align 4, !tbaa !5
  %6796 = call ptr @__errno_location() #13
  store i32 %6795, ptr %6796, align 4, !tbaa !5
  %6797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6798 = load i32, ptr @test_count, align 4, !tbaa !5
  %6799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6800 = load i32, ptr %6799, align 4, !tbaa !5
  %6801 = call ptr @s2n_strerror(i32 noundef %6800, ptr noundef @.str.3)
  %6802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6803 = load i32, ptr %6802, align 4, !tbaa !5
  %6804 = call ptr @s2n_strerror_debug(i32 noundef %6803, ptr noundef @.str.3)
  %6805 = call ptr @__errno_location() #13
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @strerror(i32 noundef %6806) #12
  %6808 = call ptr @__errno_location() #13
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6797, ptr noundef @.str.4, i32 noundef %6798, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 554, ptr noundef %6801, ptr noundef %6804, ptr noundef %6807, i32 noundef %6809) #12
  br label %6811

6811:                                             ; preds = %6794, %6777
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #12
  br label %6812

6812:                                             ; preds = %6811
  br label %6813

6813:                                             ; preds = %6812
  call void @exit(i32 noundef 1) #14
  unreachable

6814:                                             ; No predecessors!
  br label %6815

6815:                                             ; preds = %6814
  br label %6816

6816:                                             ; preds = %6815, %6756
  br label %6817

6817:                                             ; preds = %6816
  br label %6818

6818:                                             ; preds = %6817
  br label %6819

6819:                                             ; preds = %6818
  %6820 = load i32, ptr @test_count, align 4, !tbaa !5
  %6821 = add nsw i32 %6820, 1
  store i32 %6821, ptr @test_count, align 4, !tbaa !5
  %6822 = load ptr, ptr %134, align 8, !tbaa !9
  %6823 = load i32, ptr %6822, align 8
  %6824 = lshr i32 %6823, 13
  %6825 = and i32 %6824, 1
  %6826 = icmp ne i32 %6825, 0
  br i1 %6826, label %6880, label %6827

6827:                                             ; preds = %6819
  br label %6828

6828:                                             ; preds = %6827
  br label %6829

6829:                                             ; preds = %6828
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #12
  %6830 = call ptr @__errno_location() #13
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  store i32 %6831, ptr %140, align 4, !tbaa !5
  %6832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6833 = call i32 @s2n_print_stacktrace(ptr noundef %6832)
  %6834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6835 = trunc i8 %6834 to i1
  br i1 %6835, label %6836, label %6858

6836:                                             ; preds = %6829
  %6837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6838 = call i32 @fileno(ptr noundef %6837) #12
  %6839 = call i32 @isatty(i32 noundef %6838) #12
  %6840 = icmp ne i32 %6839, 0
  br i1 %6840, label %6841, label %6858

6841:                                             ; preds = %6836
  %6842 = load i32, ptr %140, align 4, !tbaa !5
  %6843 = call ptr @__errno_location() #13
  store i32 %6842, ptr %6843, align 4, !tbaa !5
  %6844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6845 = load i32, ptr @test_count, align 4, !tbaa !5
  %6846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6847 = load i32, ptr %6846, align 4, !tbaa !5
  %6848 = call ptr @s2n_strerror(i32 noundef %6847, ptr noundef @.str.3)
  %6849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6850 = load i32, ptr %6849, align 4, !tbaa !5
  %6851 = call ptr @s2n_strerror_debug(i32 noundef %6850, ptr noundef @.str.3)
  %6852 = call ptr @__errno_location() #13
  %6853 = load i32, ptr %6852, align 4, !tbaa !5
  %6854 = call ptr @strerror(i32 noundef %6853) #12
  %6855 = call ptr @__errno_location() #13
  %6856 = load i32, ptr %6855, align 4, !tbaa !5
  %6857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6844, ptr noundef @.str, i32 noundef %6845, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 555, ptr noundef %6848, ptr noundef %6851, ptr noundef %6854, i32 noundef %6856) #12
  br label %6875

6858:                                             ; preds = %6836, %6829
  %6859 = load i32, ptr %140, align 4, !tbaa !5
  %6860 = call ptr @__errno_location() #13
  store i32 %6859, ptr %6860, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = load i32, ptr @test_count, align 4, !tbaa !5
  %6863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6864 = load i32, ptr %6863, align 4, !tbaa !5
  %6865 = call ptr @s2n_strerror(i32 noundef %6864, ptr noundef @.str.3)
  %6866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6867 = load i32, ptr %6866, align 4, !tbaa !5
  %6868 = call ptr @s2n_strerror_debug(i32 noundef %6867, ptr noundef @.str.3)
  %6869 = call ptr @__errno_location() #13
  %6870 = load i32, ptr %6869, align 4, !tbaa !5
  %6871 = call ptr @strerror(i32 noundef %6870) #12
  %6872 = call ptr @__errno_location() #13
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  %6874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6861, ptr noundef @.str.4, i32 noundef %6862, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 555, ptr noundef %6865, ptr noundef %6868, ptr noundef %6871, i32 noundef %6873) #12
  br label %6875

6875:                                             ; preds = %6858, %6841
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #12
  br label %6876

6876:                                             ; preds = %6875
  br label %6877

6877:                                             ; preds = %6876
  call void @exit(i32 noundef 1) #14
  unreachable

6878:                                             ; No predecessors!
  br label %6879

6879:                                             ; preds = %6878
  br label %6880

6880:                                             ; preds = %6879, %6819
  br label %6881

6881:                                             ; preds = %6880
  br label %6882

6882:                                             ; preds = %6881
  br label %6883

6883:                                             ; preds = %6882
  %6884 = load i32, ptr @test_count, align 4, !tbaa !5
  %6885 = add nsw i32 %6884, 1
  store i32 %6885, ptr @test_count, align 4, !tbaa !5
  %6886 = load ptr, ptr %131, align 8, !tbaa !9
  %6887 = load i32, ptr %6886, align 8
  %6888 = lshr i32 %6887, 13
  %6889 = and i32 %6888, 1
  %6890 = icmp ne i32 %6889, 0
  br i1 %6890, label %6944, label %6891

6891:                                             ; preds = %6883
  br label %6892

6892:                                             ; preds = %6891
  br label %6893

6893:                                             ; preds = %6892
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #12
  %6894 = call ptr @__errno_location() #13
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  store i32 %6895, ptr %141, align 4, !tbaa !5
  %6896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6897 = call i32 @s2n_print_stacktrace(ptr noundef %6896)
  %6898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6899 = trunc i8 %6898 to i1
  br i1 %6899, label %6900, label %6922

6900:                                             ; preds = %6893
  %6901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6902 = call i32 @fileno(ptr noundef %6901) #12
  %6903 = call i32 @isatty(i32 noundef %6902) #12
  %6904 = icmp ne i32 %6903, 0
  br i1 %6904, label %6905, label %6922

6905:                                             ; preds = %6900
  %6906 = load i32, ptr %141, align 4, !tbaa !5
  %6907 = call ptr @__errno_location() #13
  store i32 %6906, ptr %6907, align 4, !tbaa !5
  %6908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6909 = load i32, ptr @test_count, align 4, !tbaa !5
  %6910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6911 = load i32, ptr %6910, align 4, !tbaa !5
  %6912 = call ptr @s2n_strerror(i32 noundef %6911, ptr noundef @.str.3)
  %6913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6914 = load i32, ptr %6913, align 4, !tbaa !5
  %6915 = call ptr @s2n_strerror_debug(i32 noundef %6914, ptr noundef @.str.3)
  %6916 = call ptr @__errno_location() #13
  %6917 = load i32, ptr %6916, align 4, !tbaa !5
  %6918 = call ptr @strerror(i32 noundef %6917) #12
  %6919 = call ptr @__errno_location() #13
  %6920 = load i32, ptr %6919, align 4, !tbaa !5
  %6921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6908, ptr noundef @.str, i32 noundef %6909, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 556, ptr noundef %6912, ptr noundef %6915, ptr noundef %6918, i32 noundef %6920) #12
  br label %6939

6922:                                             ; preds = %6900, %6893
  %6923 = load i32, ptr %141, align 4, !tbaa !5
  %6924 = call ptr @__errno_location() #13
  store i32 %6923, ptr %6924, align 4, !tbaa !5
  %6925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6926 = load i32, ptr @test_count, align 4, !tbaa !5
  %6927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6928 = load i32, ptr %6927, align 4, !tbaa !5
  %6929 = call ptr @s2n_strerror(i32 noundef %6928, ptr noundef @.str.3)
  %6930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6931 = load i32, ptr %6930, align 4, !tbaa !5
  %6932 = call ptr @s2n_strerror_debug(i32 noundef %6931, ptr noundef @.str.3)
  %6933 = call ptr @__errno_location() #13
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @strerror(i32 noundef %6934) #12
  %6936 = call ptr @__errno_location() #13
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6925, ptr noundef @.str.4, i32 noundef %6926, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 556, ptr noundef %6929, ptr noundef %6932, ptr noundef %6935, i32 noundef %6937) #12
  br label %6939

6939:                                             ; preds = %6922, %6905
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #12
  br label %6940

6940:                                             ; preds = %6939
  br label %6941

6941:                                             ; preds = %6940
  call void @exit(i32 noundef 1) #14
  unreachable

6942:                                             ; No predecessors!
  br label %6943

6943:                                             ; preds = %6942
  br label %6944

6944:                                             ; preds = %6943, %6883
  br label %6945

6945:                                             ; preds = %6944
  br label %6946

6946:                                             ; preds = %6945
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #12
  %6947 = load ptr, ptr %131, align 8, !tbaa !9
  %6948 = call i32 @s2n_connection_get_session_length(ptr noundef %6947)
  %6949 = sext i32 %6948 to i64
  store i64 %6949, ptr %142, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 202, ptr %143) #12
  call void @llvm.memset.p0.i64(ptr align 16 %143, i8 0, i64 202, i1 false)
  br label %6950

6950:                                             ; preds = %6946
  %6951 = load i32, ptr @test_count, align 4, !tbaa !5
  %6952 = add nsw i32 %6951, 1
  store i32 %6952, ptr @test_count, align 4, !tbaa !5
  %6953 = load ptr, ptr %131, align 8, !tbaa !9
  %6954 = getelementptr inbounds [202 x i8], ptr %143, i64 0, i64 0
  %6955 = load i64, ptr %142, align 8, !tbaa !11
  %6956 = call i32 @s2n_connection_get_session(ptr noundef %6953, ptr noundef %6954, i64 noundef %6955)
  %6957 = icmp eq i32 %6956, -1
  br i1 %6957, label %6958, label %7011

6958:                                             ; preds = %6950
  br label %6959

6959:                                             ; preds = %6958
  br label %6960

6960:                                             ; preds = %6959
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #12
  %6961 = call ptr @__errno_location() #13
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  store i32 %6962, ptr %144, align 4, !tbaa !5
  %6963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6964 = call i32 @s2n_print_stacktrace(ptr noundef %6963)
  %6965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %6966 = trunc i8 %6965 to i1
  br i1 %6966, label %6967, label %6989

6967:                                             ; preds = %6960
  %6968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6969 = call i32 @fileno(ptr noundef %6968) #12
  %6970 = call i32 @isatty(i32 noundef %6969) #12
  %6971 = icmp ne i32 %6970, 0
  br i1 %6971, label %6972, label %6989

6972:                                             ; preds = %6967
  %6973 = load i32, ptr %144, align 4, !tbaa !5
  %6974 = call ptr @__errno_location() #13
  store i32 %6973, ptr %6974, align 4, !tbaa !5
  %6975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6976 = load i32, ptr @test_count, align 4, !tbaa !5
  %6977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6978 = load i32, ptr %6977, align 4, !tbaa !5
  %6979 = call ptr @s2n_strerror(i32 noundef %6978, ptr noundef @.str.3)
  %6980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6981 = load i32, ptr %6980, align 4, !tbaa !5
  %6982 = call ptr @s2n_strerror_debug(i32 noundef %6981, ptr noundef @.str.3)
  %6983 = call ptr @__errno_location() #13
  %6984 = load i32, ptr %6983, align 4, !tbaa !5
  %6985 = call ptr @strerror(i32 noundef %6984) #12
  %6986 = call ptr @__errno_location() #13
  %6987 = load i32, ptr %6986, align 4, !tbaa !5
  %6988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6975, ptr noundef @.str, i32 noundef %6976, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 560, ptr noundef %6979, ptr noundef %6982, ptr noundef %6985, i32 noundef %6987) #12
  br label %7006

6989:                                             ; preds = %6967, %6960
  %6990 = load i32, ptr %144, align 4, !tbaa !5
  %6991 = call ptr @__errno_location() #13
  store i32 %6990, ptr %6991, align 4, !tbaa !5
  %6992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6993 = load i32, ptr @test_count, align 4, !tbaa !5
  %6994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6995 = load i32, ptr %6994, align 4, !tbaa !5
  %6996 = call ptr @s2n_strerror(i32 noundef %6995, ptr noundef @.str.3)
  %6997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6998 = load i32, ptr %6997, align 4, !tbaa !5
  %6999 = call ptr @s2n_strerror_debug(i32 noundef %6998, ptr noundef @.str.3)
  %7000 = call ptr @__errno_location() #13
  %7001 = load i32, ptr %7000, align 4, !tbaa !5
  %7002 = call ptr @strerror(i32 noundef %7001) #12
  %7003 = call ptr @__errno_location() #13
  %7004 = load i32, ptr %7003, align 4, !tbaa !5
  %7005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6992, ptr noundef @.str.4, i32 noundef %6993, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 560, ptr noundef %6996, ptr noundef %6999, ptr noundef %7002, i32 noundef %7004) #12
  br label %7006

7006:                                             ; preds = %6989, %6972
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #12
  br label %7007

7007:                                             ; preds = %7006
  br label %7008

7008:                                             ; preds = %7007
  call void @exit(i32 noundef 1) #14
  unreachable

7009:                                             ; No predecessors!
  br label %7010

7010:                                             ; preds = %7009
  br label %7011

7011:                                             ; preds = %7010, %6950
  br label %7012

7012:                                             ; preds = %7011
  br label %7013

7013:                                             ; preds = %7012
  br label %7014

7014:                                             ; preds = %7013
  %7015 = load i32, ptr @test_count, align 4, !tbaa !5
  %7016 = add nsw i32 %7015, 1
  store i32 %7016, ptr @test_count, align 4, !tbaa !5
  %7017 = load ptr, ptr %134, align 8, !tbaa !9
  %7018 = call i32 @s2n_connection_wipe(ptr noundef %7017)
  %7019 = icmp eq i32 %7018, -1
  br i1 %7019, label %7020, label %7073

7020:                                             ; preds = %7014
  br label %7021

7021:                                             ; preds = %7020
  br label %7022

7022:                                             ; preds = %7021
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #12
  %7023 = call ptr @__errno_location() #13
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  store i32 %7024, ptr %145, align 4, !tbaa !5
  %7025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7026 = call i32 @s2n_print_stacktrace(ptr noundef %7025)
  %7027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7028 = trunc i8 %7027 to i1
  br i1 %7028, label %7029, label %7051

7029:                                             ; preds = %7022
  %7030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7031 = call i32 @fileno(ptr noundef %7030) #12
  %7032 = call i32 @isatty(i32 noundef %7031) #12
  %7033 = icmp ne i32 %7032, 0
  br i1 %7033, label %7034, label %7051

7034:                                             ; preds = %7029
  %7035 = load i32, ptr %145, align 4, !tbaa !5
  %7036 = call ptr @__errno_location() #13
  store i32 %7035, ptr %7036, align 4, !tbaa !5
  %7037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7038 = load i32, ptr @test_count, align 4, !tbaa !5
  %7039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7040 = load i32, ptr %7039, align 4, !tbaa !5
  %7041 = call ptr @s2n_strerror(i32 noundef %7040, ptr noundef @.str.3)
  %7042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7043 = load i32, ptr %7042, align 4, !tbaa !5
  %7044 = call ptr @s2n_strerror_debug(i32 noundef %7043, ptr noundef @.str.3)
  %7045 = call ptr @__errno_location() #13
  %7046 = load i32, ptr %7045, align 4, !tbaa !5
  %7047 = call ptr @strerror(i32 noundef %7046) #12
  %7048 = call ptr @__errno_location() #13
  %7049 = load i32, ptr %7048, align 4, !tbaa !5
  %7050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7037, ptr noundef @.str, i32 noundef %7038, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 563, ptr noundef %7041, ptr noundef %7044, ptr noundef %7047, i32 noundef %7049) #12
  br label %7068

7051:                                             ; preds = %7029, %7022
  %7052 = load i32, ptr %145, align 4, !tbaa !5
  %7053 = call ptr @__errno_location() #13
  store i32 %7052, ptr %7053, align 4, !tbaa !5
  %7054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7055 = load i32, ptr @test_count, align 4, !tbaa !5
  %7056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7057 = load i32, ptr %7056, align 4, !tbaa !5
  %7058 = call ptr @s2n_strerror(i32 noundef %7057, ptr noundef @.str.3)
  %7059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7060 = load i32, ptr %7059, align 4, !tbaa !5
  %7061 = call ptr @s2n_strerror_debug(i32 noundef %7060, ptr noundef @.str.3)
  %7062 = call ptr @__errno_location() #13
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call ptr @strerror(i32 noundef %7063) #12
  %7065 = call ptr @__errno_location() #13
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7054, ptr noundef @.str.4, i32 noundef %7055, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 563, ptr noundef %7058, ptr noundef %7061, ptr noundef %7064, i32 noundef %7066) #12
  br label %7068

7068:                                             ; preds = %7051, %7034
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #12
  br label %7069

7069:                                             ; preds = %7068
  br label %7070

7070:                                             ; preds = %7069
  call void @exit(i32 noundef 1) #14
  unreachable

7071:                                             ; No predecessors!
  br label %7072

7072:                                             ; preds = %7071
  br label %7073

7073:                                             ; preds = %7072, %7014
  br label %7074

7074:                                             ; preds = %7073
  br label %7075

7075:                                             ; preds = %7074
  br label %7076

7076:                                             ; preds = %7075
  %7077 = load i32, ptr @test_count, align 4, !tbaa !5
  %7078 = add nsw i32 %7077, 1
  store i32 %7078, ptr @test_count, align 4, !tbaa !5
  %7079 = load ptr, ptr %131, align 8, !tbaa !9
  %7080 = call i32 @s2n_connection_wipe(ptr noundef %7079)
  %7081 = icmp eq i32 %7080, -1
  br i1 %7081, label %7082, label %7135

7082:                                             ; preds = %7076
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

7084:                                             ; preds = %7083
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #12
  %7085 = call ptr @__errno_location() #13
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  store i32 %7086, ptr %146, align 4, !tbaa !5
  %7087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7088 = call i32 @s2n_print_stacktrace(ptr noundef %7087)
  %7089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7090 = trunc i8 %7089 to i1
  br i1 %7090, label %7091, label %7113

7091:                                             ; preds = %7084
  %7092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7093 = call i32 @fileno(ptr noundef %7092) #12
  %7094 = call i32 @isatty(i32 noundef %7093) #12
  %7095 = icmp ne i32 %7094, 0
  br i1 %7095, label %7096, label %7113

7096:                                             ; preds = %7091
  %7097 = load i32, ptr %146, align 4, !tbaa !5
  %7098 = call ptr @__errno_location() #13
  store i32 %7097, ptr %7098, align 4, !tbaa !5
  %7099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7100 = load i32, ptr @test_count, align 4, !tbaa !5
  %7101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7102 = load i32, ptr %7101, align 4, !tbaa !5
  %7103 = call ptr @s2n_strerror(i32 noundef %7102, ptr noundef @.str.3)
  %7104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  %7106 = call ptr @s2n_strerror_debug(i32 noundef %7105, ptr noundef @.str.3)
  %7107 = call ptr @__errno_location() #13
  %7108 = load i32, ptr %7107, align 4, !tbaa !5
  %7109 = call ptr @strerror(i32 noundef %7108) #12
  %7110 = call ptr @__errno_location() #13
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7099, ptr noundef @.str, i32 noundef %7100, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 564, ptr noundef %7103, ptr noundef %7106, ptr noundef %7109, i32 noundef %7111) #12
  br label %7130

7113:                                             ; preds = %7091, %7084
  %7114 = load i32, ptr %146, align 4, !tbaa !5
  %7115 = call ptr @__errno_location() #13
  store i32 %7114, ptr %7115, align 4, !tbaa !5
  %7116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7117 = load i32, ptr @test_count, align 4, !tbaa !5
  %7118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7119 = load i32, ptr %7118, align 4, !tbaa !5
  %7120 = call ptr @s2n_strerror(i32 noundef %7119, ptr noundef @.str.3)
  %7121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7122 = load i32, ptr %7121, align 4, !tbaa !5
  %7123 = call ptr @s2n_strerror_debug(i32 noundef %7122, ptr noundef @.str.3)
  %7124 = call ptr @__errno_location() #13
  %7125 = load i32, ptr %7124, align 4, !tbaa !5
  %7126 = call ptr @strerror(i32 noundef %7125) #12
  %7127 = call ptr @__errno_location() #13
  %7128 = load i32, ptr %7127, align 4, !tbaa !5
  %7129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7116, ptr noundef @.str.4, i32 noundef %7117, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 564, ptr noundef %7120, ptr noundef %7123, ptr noundef %7126, i32 noundef %7128) #12
  br label %7130

7130:                                             ; preds = %7113, %7096
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #12
  br label %7131

7131:                                             ; preds = %7130
  br label %7132

7132:                                             ; preds = %7131
  call void @exit(i32 noundef 1) #14
  unreachable

7133:                                             ; No predecessors!
  br label %7134

7134:                                             ; preds = %7133
  br label %7135

7135:                                             ; preds = %7134, %7076
  br label %7136

7136:                                             ; preds = %7135
  br label %7137

7137:                                             ; preds = %7136
  br label %7138

7138:                                             ; preds = %7137
  %7139 = load i32, ptr @test_count, align 4, !tbaa !5
  %7140 = add nsw i32 %7139, 1
  store i32 %7140, ptr @test_count, align 4, !tbaa !5
  %7141 = load ptr, ptr %134, align 8, !tbaa !9
  %7142 = call i32 @s2n_connection_set_blinding(ptr noundef %7141, i32 noundef 1)
  %7143 = icmp eq i32 %7142, -1
  br i1 %7143, label %7144, label %7197

7144:                                             ; preds = %7138
  br label %7145

7145:                                             ; preds = %7144
  br label %7146

7146:                                             ; preds = %7145
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #12
  %7147 = call ptr @__errno_location() #13
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  store i32 %7148, ptr %147, align 4, !tbaa !5
  %7149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7150 = call i32 @s2n_print_stacktrace(ptr noundef %7149)
  %7151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7152 = trunc i8 %7151 to i1
  br i1 %7152, label %7153, label %7175

7153:                                             ; preds = %7146
  %7154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7155 = call i32 @fileno(ptr noundef %7154) #12
  %7156 = call i32 @isatty(i32 noundef %7155) #12
  %7157 = icmp ne i32 %7156, 0
  br i1 %7157, label %7158, label %7175

7158:                                             ; preds = %7153
  %7159 = load i32, ptr %147, align 4, !tbaa !5
  %7160 = call ptr @__errno_location() #13
  store i32 %7159, ptr %7160, align 4, !tbaa !5
  %7161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7162 = load i32, ptr @test_count, align 4, !tbaa !5
  %7163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7164 = load i32, ptr %7163, align 4, !tbaa !5
  %7165 = call ptr @s2n_strerror(i32 noundef %7164, ptr noundef @.str.3)
  %7166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7167 = load i32, ptr %7166, align 4, !tbaa !5
  %7168 = call ptr @s2n_strerror_debug(i32 noundef %7167, ptr noundef @.str.3)
  %7169 = call ptr @__errno_location() #13
  %7170 = load i32, ptr %7169, align 4, !tbaa !5
  %7171 = call ptr @strerror(i32 noundef %7170) #12
  %7172 = call ptr @__errno_location() #13
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  %7174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7161, ptr noundef @.str, i32 noundef %7162, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 565, ptr noundef %7165, ptr noundef %7168, ptr noundef %7171, i32 noundef %7173) #12
  br label %7192

7175:                                             ; preds = %7153, %7146
  %7176 = load i32, ptr %147, align 4, !tbaa !5
  %7177 = call ptr @__errno_location() #13
  store i32 %7176, ptr %7177, align 4, !tbaa !5
  %7178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7179 = load i32, ptr @test_count, align 4, !tbaa !5
  %7180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7181 = load i32, ptr %7180, align 4, !tbaa !5
  %7182 = call ptr @s2n_strerror(i32 noundef %7181, ptr noundef @.str.3)
  %7183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call ptr @s2n_strerror_debug(i32 noundef %7184, ptr noundef @.str.3)
  %7186 = call ptr @__errno_location() #13
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call ptr @strerror(i32 noundef %7187) #12
  %7189 = call ptr @__errno_location() #13
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7178, ptr noundef @.str.4, i32 noundef %7179, ptr noundef @.str.84, ptr noundef @.str.2, i32 noundef 565, ptr noundef %7182, ptr noundef %7185, ptr noundef %7188, i32 noundef %7190) #12
  br label %7192

7192:                                             ; preds = %7175, %7158
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #12
  br label %7193

7193:                                             ; preds = %7192
  br label %7194

7194:                                             ; preds = %7193
  call void @exit(i32 noundef 1) #14
  unreachable

7195:                                             ; No predecessors!
  br label %7196

7196:                                             ; preds = %7195
  br label %7197

7197:                                             ; preds = %7196, %7138
  br label %7198

7198:                                             ; preds = %7197
  br label %7199

7199:                                             ; preds = %7198
  br label %7200

7200:                                             ; preds = %7199
  %7201 = load i32, ptr @test_count, align 4, !tbaa !5
  %7202 = add nsw i32 %7201, 1
  store i32 %7202, ptr @test_count, align 4, !tbaa !5
  %7203 = call i32 @s2n_io_pair_close(ptr noundef %25)
  %7204 = icmp eq i32 %7203, -1
  br i1 %7204, label %7205, label %7258

7205:                                             ; preds = %7200
  br label %7206

7206:                                             ; preds = %7205
  br label %7207

7207:                                             ; preds = %7206
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #12
  %7208 = call ptr @__errno_location() #13
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  store i32 %7209, ptr %148, align 4, !tbaa !5
  %7210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7211 = call i32 @s2n_print_stacktrace(ptr noundef %7210)
  %7212 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7213 = trunc i8 %7212 to i1
  br i1 %7213, label %7214, label %7236

7214:                                             ; preds = %7207
  %7215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7216 = call i32 @fileno(ptr noundef %7215) #12
  %7217 = call i32 @isatty(i32 noundef %7216) #12
  %7218 = icmp ne i32 %7217, 0
  br i1 %7218, label %7219, label %7236

7219:                                             ; preds = %7214
  %7220 = load i32, ptr %148, align 4, !tbaa !5
  %7221 = call ptr @__errno_location() #13
  store i32 %7220, ptr %7221, align 4, !tbaa !5
  %7222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7223 = load i32, ptr @test_count, align 4, !tbaa !5
  %7224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7225 = load i32, ptr %7224, align 4, !tbaa !5
  %7226 = call ptr @s2n_strerror(i32 noundef %7225, ptr noundef @.str.3)
  %7227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7228 = load i32, ptr %7227, align 4, !tbaa !5
  %7229 = call ptr @s2n_strerror_debug(i32 noundef %7228, ptr noundef @.str.3)
  %7230 = call ptr @__errno_location() #13
  %7231 = load i32, ptr %7230, align 4, !tbaa !5
  %7232 = call ptr @strerror(i32 noundef %7231) #12
  %7233 = call ptr @__errno_location() #13
  %7234 = load i32, ptr %7233, align 4, !tbaa !5
  %7235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7222, ptr noundef @.str, i32 noundef %7223, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 566, ptr noundef %7226, ptr noundef %7229, ptr noundef %7232, i32 noundef %7234) #12
  br label %7253

7236:                                             ; preds = %7214, %7207
  %7237 = load i32, ptr %148, align 4, !tbaa !5
  %7238 = call ptr @__errno_location() #13
  store i32 %7237, ptr %7238, align 4, !tbaa !5
  %7239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7240 = load i32, ptr @test_count, align 4, !tbaa !5
  %7241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7242 = load i32, ptr %7241, align 4, !tbaa !5
  %7243 = call ptr @s2n_strerror(i32 noundef %7242, ptr noundef @.str.3)
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = call ptr @s2n_strerror_debug(i32 noundef %7245, ptr noundef @.str.3)
  %7247 = call ptr @__errno_location() #13
  %7248 = load i32, ptr %7247, align 4, !tbaa !5
  %7249 = call ptr @strerror(i32 noundef %7248) #12
  %7250 = call ptr @__errno_location() #13
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7239, ptr noundef @.str.4, i32 noundef %7240, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 566, ptr noundef %7243, ptr noundef %7246, ptr noundef %7249, i32 noundef %7251) #12
  br label %7253

7253:                                             ; preds = %7236, %7219
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #12
  br label %7254

7254:                                             ; preds = %7253
  br label %7255

7255:                                             ; preds = %7254
  call void @exit(i32 noundef 1) #14
  unreachable

7256:                                             ; No predecessors!
  br label %7257

7257:                                             ; preds = %7256
  br label %7258

7258:                                             ; preds = %7257, %7200
  br label %7259

7259:                                             ; preds = %7258
  br label %7260

7260:                                             ; preds = %7259
  br label %7261

7261:                                             ; preds = %7260
  %7262 = load i32, ptr @test_count, align 4, !tbaa !5
  %7263 = add nsw i32 %7262, 1
  store i32 %7263, ptr @test_count, align 4, !tbaa !5
  %7264 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %25)
  %7265 = icmp eq i32 %7264, -1
  br i1 %7265, label %7266, label %7319

7266:                                             ; preds = %7261
  br label %7267

7267:                                             ; preds = %7266
  br label %7268

7268:                                             ; preds = %7267
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #12
  %7269 = call ptr @__errno_location() #13
  %7270 = load i32, ptr %7269, align 4, !tbaa !5
  store i32 %7270, ptr %149, align 4, !tbaa !5
  %7271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7272 = call i32 @s2n_print_stacktrace(ptr noundef %7271)
  %7273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7274 = trunc i8 %7273 to i1
  br i1 %7274, label %7275, label %7297

7275:                                             ; preds = %7268
  %7276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7277 = call i32 @fileno(ptr noundef %7276) #12
  %7278 = call i32 @isatty(i32 noundef %7277) #12
  %7279 = icmp ne i32 %7278, 0
  br i1 %7279, label %7280, label %7297

7280:                                             ; preds = %7275
  %7281 = load i32, ptr %149, align 4, !tbaa !5
  %7282 = call ptr @__errno_location() #13
  store i32 %7281, ptr %7282, align 4, !tbaa !5
  %7283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7284 = load i32, ptr @test_count, align 4, !tbaa !5
  %7285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7286 = load i32, ptr %7285, align 4, !tbaa !5
  %7287 = call ptr @s2n_strerror(i32 noundef %7286, ptr noundef @.str.3)
  %7288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7289 = load i32, ptr %7288, align 4, !tbaa !5
  %7290 = call ptr @s2n_strerror_debug(i32 noundef %7289, ptr noundef @.str.3)
  %7291 = call ptr @__errno_location() #13
  %7292 = load i32, ptr %7291, align 4, !tbaa !5
  %7293 = call ptr @strerror(i32 noundef %7292) #12
  %7294 = call ptr @__errno_location() #13
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  %7296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7283, ptr noundef @.str, i32 noundef %7284, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 567, ptr noundef %7287, ptr noundef %7290, ptr noundef %7293, i32 noundef %7295) #12
  br label %7314

7297:                                             ; preds = %7275, %7268
  %7298 = load i32, ptr %149, align 4, !tbaa !5
  %7299 = call ptr @__errno_location() #13
  store i32 %7298, ptr %7299, align 4, !tbaa !5
  %7300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7301 = load i32, ptr @test_count, align 4, !tbaa !5
  %7302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7303 = load i32, ptr %7302, align 4, !tbaa !5
  %7304 = call ptr @s2n_strerror(i32 noundef %7303, ptr noundef @.str.3)
  %7305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7306 = load i32, ptr %7305, align 4, !tbaa !5
  %7307 = call ptr @s2n_strerror_debug(i32 noundef %7306, ptr noundef @.str.3)
  %7308 = call ptr @__errno_location() #13
  %7309 = load i32, ptr %7308, align 4, !tbaa !5
  %7310 = call ptr @strerror(i32 noundef %7309) #12
  %7311 = call ptr @__errno_location() #13
  %7312 = load i32, ptr %7311, align 4, !tbaa !5
  %7313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7300, ptr noundef @.str.4, i32 noundef %7301, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 567, ptr noundef %7304, ptr noundef %7307, ptr noundef %7310, i32 noundef %7312) #12
  br label %7314

7314:                                             ; preds = %7297, %7280
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #12
  br label %7315

7315:                                             ; preds = %7314
  br label %7316

7316:                                             ; preds = %7315
  call void @exit(i32 noundef 1) #14
  unreachable

7317:                                             ; No predecessors!
  br label %7318

7318:                                             ; preds = %7317
  br label %7319

7319:                                             ; preds = %7318, %7261
  br label %7320

7320:                                             ; preds = %7319
  br label %7321

7321:                                             ; preds = %7320
  br label %7322

7322:                                             ; preds = %7321
  %7323 = load i32, ptr @test_count, align 4, !tbaa !5
  %7324 = add nsw i32 %7323, 1
  store i32 %7324, ptr @test_count, align 4, !tbaa !5
  %7325 = load ptr, ptr %131, align 8, !tbaa !9
  %7326 = load ptr, ptr %134, align 8, !tbaa !9
  %7327 = call i32 @s2n_connections_set_io_pair(ptr noundef %7325, ptr noundef %7326, ptr noundef %25)
  %7328 = icmp eq i32 %7327, -1
  br i1 %7328, label %7329, label %7382

7329:                                             ; preds = %7322
  br label %7330

7330:                                             ; preds = %7329
  br label %7331

7331:                                             ; preds = %7330
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #12
  %7332 = call ptr @__errno_location() #13
  %7333 = load i32, ptr %7332, align 4, !tbaa !5
  store i32 %7333, ptr %150, align 4, !tbaa !5
  %7334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7335 = call i32 @s2n_print_stacktrace(ptr noundef %7334)
  %7336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7337 = trunc i8 %7336 to i1
  br i1 %7337, label %7338, label %7360

7338:                                             ; preds = %7331
  %7339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7340 = call i32 @fileno(ptr noundef %7339) #12
  %7341 = call i32 @isatty(i32 noundef %7340) #12
  %7342 = icmp ne i32 %7341, 0
  br i1 %7342, label %7343, label %7360

7343:                                             ; preds = %7338
  %7344 = load i32, ptr %150, align 4, !tbaa !5
  %7345 = call ptr @__errno_location() #13
  store i32 %7344, ptr %7345, align 4, !tbaa !5
  %7346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7347 = load i32, ptr @test_count, align 4, !tbaa !5
  %7348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7349 = load i32, ptr %7348, align 4, !tbaa !5
  %7350 = call ptr @s2n_strerror(i32 noundef %7349, ptr noundef @.str.3)
  %7351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  %7353 = call ptr @s2n_strerror_debug(i32 noundef %7352, ptr noundef @.str.3)
  %7354 = call ptr @__errno_location() #13
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call ptr @strerror(i32 noundef %7355) #12
  %7357 = call ptr @__errno_location() #13
  %7358 = load i32, ptr %7357, align 4, !tbaa !5
  %7359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7346, ptr noundef @.str, i32 noundef %7347, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 568, ptr noundef %7350, ptr noundef %7353, ptr noundef %7356, i32 noundef %7358) #12
  br label %7377

7360:                                             ; preds = %7338, %7331
  %7361 = load i32, ptr %150, align 4, !tbaa !5
  %7362 = call ptr @__errno_location() #13
  store i32 %7361, ptr %7362, align 4, !tbaa !5
  %7363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7364 = load i32, ptr @test_count, align 4, !tbaa !5
  %7365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7366 = load i32, ptr %7365, align 4, !tbaa !5
  %7367 = call ptr @s2n_strerror(i32 noundef %7366, ptr noundef @.str.3)
  %7368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7369 = load i32, ptr %7368, align 4, !tbaa !5
  %7370 = call ptr @s2n_strerror_debug(i32 noundef %7369, ptr noundef @.str.3)
  %7371 = call ptr @__errno_location() #13
  %7372 = load i32, ptr %7371, align 4, !tbaa !5
  %7373 = call ptr @strerror(i32 noundef %7372) #12
  %7374 = call ptr @__errno_location() #13
  %7375 = load i32, ptr %7374, align 4, !tbaa !5
  %7376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7363, ptr noundef @.str.4, i32 noundef %7364, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 568, ptr noundef %7367, ptr noundef %7370, ptr noundef %7373, i32 noundef %7375) #12
  br label %7377

7377:                                             ; preds = %7360, %7343
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #12
  br label %7378

7378:                                             ; preds = %7377
  br label %7379

7379:                                             ; preds = %7378
  call void @exit(i32 noundef 1) #14
  unreachable

7380:                                             ; No predecessors!
  br label %7381

7381:                                             ; preds = %7380
  br label %7382

7382:                                             ; preds = %7381, %7322
  br label %7383

7383:                                             ; preds = %7382
  br label %7384

7384:                                             ; preds = %7383
  br label %7385

7385:                                             ; preds = %7384
  %7386 = load i32, ptr @test_count, align 4, !tbaa !5
  %7387 = add nsw i32 %7386, 1
  store i32 %7387, ptr @test_count, align 4, !tbaa !5
  %7388 = load ptr, ptr %131, align 8, !tbaa !9
  %7389 = getelementptr inbounds [202 x i8], ptr %143, i64 0, i64 0
  %7390 = load i64, ptr %142, align 8, !tbaa !11
  %7391 = call i32 @s2n_connection_set_session(ptr noundef %7388, ptr noundef %7389, i64 noundef %7390)
  %7392 = icmp eq i32 %7391, -1
  br i1 %7392, label %7393, label %7446

7393:                                             ; preds = %7385
  br label %7394

7394:                                             ; preds = %7393
  br label %7395

7395:                                             ; preds = %7394
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #12
  %7396 = call ptr @__errno_location() #13
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  store i32 %7397, ptr %151, align 4, !tbaa !5
  %7398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7399 = call i32 @s2n_print_stacktrace(ptr noundef %7398)
  %7400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7401 = trunc i8 %7400 to i1
  br i1 %7401, label %7402, label %7424

7402:                                             ; preds = %7395
  %7403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7404 = call i32 @fileno(ptr noundef %7403) #12
  %7405 = call i32 @isatty(i32 noundef %7404) #12
  %7406 = icmp ne i32 %7405, 0
  br i1 %7406, label %7407, label %7424

7407:                                             ; preds = %7402
  %7408 = load i32, ptr %151, align 4, !tbaa !5
  %7409 = call ptr @__errno_location() #13
  store i32 %7408, ptr %7409, align 4, !tbaa !5
  %7410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7411 = load i32, ptr @test_count, align 4, !tbaa !5
  %7412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7413 = load i32, ptr %7412, align 4, !tbaa !5
  %7414 = call ptr @s2n_strerror(i32 noundef %7413, ptr noundef @.str.3)
  %7415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7416 = load i32, ptr %7415, align 4, !tbaa !5
  %7417 = call ptr @s2n_strerror_debug(i32 noundef %7416, ptr noundef @.str.3)
  %7418 = call ptr @__errno_location() #13
  %7419 = load i32, ptr %7418, align 4, !tbaa !5
  %7420 = call ptr @strerror(i32 noundef %7419) #12
  %7421 = call ptr @__errno_location() #13
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7410, ptr noundef @.str, i32 noundef %7411, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 571, ptr noundef %7414, ptr noundef %7417, ptr noundef %7420, i32 noundef %7422) #12
  br label %7441

7424:                                             ; preds = %7402, %7395
  %7425 = load i32, ptr %151, align 4, !tbaa !5
  %7426 = call ptr @__errno_location() #13
  store i32 %7425, ptr %7426, align 4, !tbaa !5
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = load i32, ptr @test_count, align 4, !tbaa !5
  %7429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7430 = load i32, ptr %7429, align 4, !tbaa !5
  %7431 = call ptr @s2n_strerror(i32 noundef %7430, ptr noundef @.str.3)
  %7432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7433 = load i32, ptr %7432, align 4, !tbaa !5
  %7434 = call ptr @s2n_strerror_debug(i32 noundef %7433, ptr noundef @.str.3)
  %7435 = call ptr @__errno_location() #13
  %7436 = load i32, ptr %7435, align 4, !tbaa !5
  %7437 = call ptr @strerror(i32 noundef %7436) #12
  %7438 = call ptr @__errno_location() #13
  %7439 = load i32, ptr %7438, align 4, !tbaa !5
  %7440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7427, ptr noundef @.str.4, i32 noundef %7428, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 571, ptr noundef %7431, ptr noundef %7434, ptr noundef %7437, i32 noundef %7439) #12
  br label %7441

7441:                                             ; preds = %7424, %7407
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #12
  br label %7442

7442:                                             ; preds = %7441
  br label %7443

7443:                                             ; preds = %7442
  call void @exit(i32 noundef 1) #14
  unreachable

7444:                                             ; No predecessors!
  br label %7445

7445:                                             ; preds = %7444
  br label %7446

7446:                                             ; preds = %7445, %7385
  br label %7447

7447:                                             ; preds = %7446
  br label %7448

7448:                                             ; preds = %7447
  %7449 = load ptr, ptr %131, align 8, !tbaa !9
  %7450 = load i32, ptr %7449, align 8
  %7451 = and i32 %7450, -8193
  %7452 = or i32 %7451, 0
  store i32 %7452, ptr %7449, align 8
  br label %7453

7453:                                             ; preds = %7448
  br label %7454

7454:                                             ; preds = %7453
  br label %7455

7455:                                             ; preds = %7454
  %7456 = load i32, ptr @test_count, align 4, !tbaa !5
  %7457 = add nsw i32 %7456, 1
  store i32 %7457, ptr @test_count, align 4, !tbaa !5
  %7458 = load ptr, ptr %134, align 8, !tbaa !9
  %7459 = load ptr, ptr %131, align 8, !tbaa !9
  %7460 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7458, ptr noundef %7459)
  %7461 = icmp eq i32 %7460, -1
  br i1 %7461, label %7515, label %7462

7462:                                             ; preds = %7455
  br label %7463

7463:                                             ; preds = %7462
  br label %7464

7464:                                             ; preds = %7463
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #12
  %7465 = call ptr @__errno_location() #13
  %7466 = load i32, ptr %7465, align 4, !tbaa !5
  store i32 %7466, ptr %152, align 4, !tbaa !5
  %7467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7468 = call i32 @s2n_print_stacktrace(ptr noundef %7467)
  %7469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7470 = trunc i8 %7469 to i1
  br i1 %7470, label %7471, label %7493

7471:                                             ; preds = %7464
  %7472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7473 = call i32 @fileno(ptr noundef %7472) #12
  %7474 = call i32 @isatty(i32 noundef %7473) #12
  %7475 = icmp ne i32 %7474, 0
  br i1 %7475, label %7476, label %7493

7476:                                             ; preds = %7471
  %7477 = load i32, ptr %152, align 4, !tbaa !5
  %7478 = call ptr @__errno_location() #13
  store i32 %7477, ptr %7478, align 4, !tbaa !5
  %7479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7480 = load i32, ptr @test_count, align 4, !tbaa !5
  %7481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  %7483 = call ptr @s2n_strerror(i32 noundef %7482, ptr noundef @.str.3)
  %7484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7485 = load i32, ptr %7484, align 4, !tbaa !5
  %7486 = call ptr @s2n_strerror_debug(i32 noundef %7485, ptr noundef @.str.3)
  %7487 = call ptr @__errno_location() #13
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  %7489 = call ptr @strerror(i32 noundef %7488) #12
  %7490 = call ptr @__errno_location() #13
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7479, ptr noundef @.str, i32 noundef %7480, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 575, ptr noundef %7483, ptr noundef %7486, ptr noundef %7489, i32 noundef %7491) #12
  br label %7510

7493:                                             ; preds = %7471, %7464
  %7494 = load i32, ptr %152, align 4, !tbaa !5
  %7495 = call ptr @__errno_location() #13
  store i32 %7494, ptr %7495, align 4, !tbaa !5
  %7496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7497 = load i32, ptr @test_count, align 4, !tbaa !5
  %7498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7499 = load i32, ptr %7498, align 4, !tbaa !5
  %7500 = call ptr @s2n_strerror(i32 noundef %7499, ptr noundef @.str.3)
  %7501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7502 = load i32, ptr %7501, align 4, !tbaa !5
  %7503 = call ptr @s2n_strerror_debug(i32 noundef %7502, ptr noundef @.str.3)
  %7504 = call ptr @__errno_location() #13
  %7505 = load i32, ptr %7504, align 4, !tbaa !5
  %7506 = call ptr @strerror(i32 noundef %7505) #12
  %7507 = call ptr @__errno_location() #13
  %7508 = load i32, ptr %7507, align 4, !tbaa !5
  %7509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7496, ptr noundef @.str.4, i32 noundef %7497, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 575, ptr noundef %7500, ptr noundef %7503, ptr noundef %7506, i32 noundef %7508) #12
  br label %7510

7510:                                             ; preds = %7493, %7476
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #12
  br label %7511

7511:                                             ; preds = %7510
  br label %7512

7512:                                             ; preds = %7511
  call void @exit(i32 noundef 1) #14
  unreachable

7513:                                             ; No predecessors!
  br label %7514

7514:                                             ; preds = %7513
  br label %7515

7515:                                             ; preds = %7514, %7455
  br label %7516

7516:                                             ; preds = %7515
  br label %7517

7517:                                             ; preds = %7516
  br label %7518

7518:                                             ; preds = %7517
  %7519 = load i32, ptr @test_count, align 4, !tbaa !5
  %7520 = add nsw i32 %7519, 1
  store i32 %7520, ptr @test_count, align 4, !tbaa !5
  %7521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7522 = load i32, ptr %7521, align 4, !tbaa !5
  %7523 = icmp eq i32 %7522, 201326593
  br i1 %7523, label %7577, label %7524

7524:                                             ; preds = %7518
  br label %7525

7525:                                             ; preds = %7524
  br label %7526

7526:                                             ; preds = %7525
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #12
  %7527 = call ptr @__errno_location() #13
  %7528 = load i32, ptr %7527, align 4, !tbaa !5
  store i32 %7528, ptr %153, align 4, !tbaa !5
  %7529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7530 = call i32 @s2n_print_stacktrace(ptr noundef %7529)
  %7531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7532 = trunc i8 %7531 to i1
  br i1 %7532, label %7533, label %7555

7533:                                             ; preds = %7526
  %7534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7535 = call i32 @fileno(ptr noundef %7534) #12
  %7536 = call i32 @isatty(i32 noundef %7535) #12
  %7537 = icmp ne i32 %7536, 0
  br i1 %7537, label %7538, label %7555

7538:                                             ; preds = %7533
  %7539 = load i32, ptr %153, align 4, !tbaa !5
  %7540 = call ptr @__errno_location() #13
  store i32 %7539, ptr %7540, align 4, !tbaa !5
  %7541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7542 = load i32, ptr @test_count, align 4, !tbaa !5
  %7543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7544 = load i32, ptr %7543, align 4, !tbaa !5
  %7545 = call ptr @s2n_strerror(i32 noundef %7544, ptr noundef @.str.3)
  %7546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7547 = load i32, ptr %7546, align 4, !tbaa !5
  %7548 = call ptr @s2n_strerror_debug(i32 noundef %7547, ptr noundef @.str.3)
  %7549 = call ptr @__errno_location() #13
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  %7551 = call ptr @strerror(i32 noundef %7550) #12
  %7552 = call ptr @__errno_location() #13
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  %7554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7541, ptr noundef @.str, i32 noundef %7542, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 575, ptr noundef %7545, ptr noundef %7548, ptr noundef %7551, i32 noundef %7553) #12
  br label %7572

7555:                                             ; preds = %7533, %7526
  %7556 = load i32, ptr %153, align 4, !tbaa !5
  %7557 = call ptr @__errno_location() #13
  store i32 %7556, ptr %7557, align 4, !tbaa !5
  %7558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7559 = load i32, ptr @test_count, align 4, !tbaa !5
  %7560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7561 = load i32, ptr %7560, align 4, !tbaa !5
  %7562 = call ptr @s2n_strerror(i32 noundef %7561, ptr noundef @.str.3)
  %7563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call ptr @s2n_strerror_debug(i32 noundef %7564, ptr noundef @.str.3)
  %7566 = call ptr @__errno_location() #13
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @strerror(i32 noundef %7567) #12
  %7569 = call ptr @__errno_location() #13
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7558, ptr noundef @.str.4, i32 noundef %7559, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 575, ptr noundef %7562, ptr noundef %7565, ptr noundef %7568, i32 noundef %7570) #12
  br label %7572

7572:                                             ; preds = %7555, %7538
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #12
  br label %7573

7573:                                             ; preds = %7572
  br label %7574

7574:                                             ; preds = %7573
  call void @exit(i32 noundef 1) #14
  unreachable

7575:                                             ; No predecessors!
  br label %7576

7576:                                             ; preds = %7575
  br label %7577

7577:                                             ; preds = %7576, %7518
  br label %7578

7578:                                             ; preds = %7577
  br label %7579

7579:                                             ; preds = %7578
  br label %7580

7580:                                             ; preds = %7579
  %7581 = load i32, ptr @test_count, align 4, !tbaa !5
  %7582 = add nsw i32 %7581, 1
  store i32 %7582, ptr @test_count, align 4, !tbaa !5
  %7583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @s2n_strerror_debug(i32 noundef %7584, ptr noundef @.str.3)
  %7586 = icmp eq ptr %7585, null
  br i1 %7586, label %7587, label %7640

7587:                                             ; preds = %7580
  br label %7588

7588:                                             ; preds = %7587
  br label %7589

7589:                                             ; preds = %7588
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #12
  %7590 = call ptr @__errno_location() #13
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  store i32 %7591, ptr %154, align 4, !tbaa !5
  %7592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7593 = call i32 @s2n_print_stacktrace(ptr noundef %7592)
  %7594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7595 = trunc i8 %7594 to i1
  br i1 %7595, label %7596, label %7618

7596:                                             ; preds = %7589
  %7597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7598 = call i32 @fileno(ptr noundef %7597) #12
  %7599 = call i32 @isatty(i32 noundef %7598) #12
  %7600 = icmp ne i32 %7599, 0
  br i1 %7600, label %7601, label %7618

7601:                                             ; preds = %7596
  %7602 = load i32, ptr %154, align 4, !tbaa !5
  %7603 = call ptr @__errno_location() #13
  store i32 %7602, ptr %7603, align 4, !tbaa !5
  %7604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7605 = load i32, ptr @test_count, align 4, !tbaa !5
  %7606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7607 = load i32, ptr %7606, align 4, !tbaa !5
  %7608 = call ptr @s2n_strerror(i32 noundef %7607, ptr noundef @.str.3)
  %7609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7610 = load i32, ptr %7609, align 4, !tbaa !5
  %7611 = call ptr @s2n_strerror_debug(i32 noundef %7610, ptr noundef @.str.3)
  %7612 = call ptr @__errno_location() #13
  %7613 = load i32, ptr %7612, align 4, !tbaa !5
  %7614 = call ptr @strerror(i32 noundef %7613) #12
  %7615 = call ptr @__errno_location() #13
  %7616 = load i32, ptr %7615, align 4, !tbaa !5
  %7617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7604, ptr noundef @.str, i32 noundef %7605, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 575, ptr noundef %7608, ptr noundef %7611, ptr noundef %7614, i32 noundef %7616) #12
  br label %7635

7618:                                             ; preds = %7596, %7589
  %7619 = load i32, ptr %154, align 4, !tbaa !5
  %7620 = call ptr @__errno_location() #13
  store i32 %7619, ptr %7620, align 4, !tbaa !5
  %7621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7622 = load i32, ptr @test_count, align 4, !tbaa !5
  %7623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7624 = load i32, ptr %7623, align 4, !tbaa !5
  %7625 = call ptr @s2n_strerror(i32 noundef %7624, ptr noundef @.str.3)
  %7626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call ptr @s2n_strerror_debug(i32 noundef %7627, ptr noundef @.str.3)
  %7629 = call ptr @__errno_location() #13
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @strerror(i32 noundef %7630) #12
  %7632 = call ptr @__errno_location() #13
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7621, ptr noundef @.str.4, i32 noundef %7622, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 575, ptr noundef %7625, ptr noundef %7628, ptr noundef %7631, i32 noundef %7633) #12
  br label %7635

7635:                                             ; preds = %7618, %7601
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #12
  br label %7636

7636:                                             ; preds = %7635
  br label %7637

7637:                                             ; preds = %7636
  call void @exit(i32 noundef 1) #14
  unreachable

7638:                                             ; No predecessors!
  br label %7639

7639:                                             ; preds = %7638
  br label %7640

7640:                                             ; preds = %7639, %7580
  br label %7641

7641:                                             ; preds = %7640
  br label %7642

7642:                                             ; preds = %7641
  br label %7643

7643:                                             ; preds = %7642
  br label %7644

7644:                                             ; preds = %7643
  br label %7645

7645:                                             ; preds = %7644
  %7646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7646, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7647 = call ptr @__errno_location() #13
  store i32 0, ptr %7647, align 4, !tbaa !5
  br label %7648

7648:                                             ; preds = %7645
  br label %7649

7649:                                             ; preds = %7648
  br label %7650

7650:                                             ; preds = %7649
  br label %7651

7651:                                             ; preds = %7650
  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 %134, align 8, !tbaa !9
  %7658 = load ptr, ptr %131, align 8, !tbaa !9
  %7659 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7657, ptr noundef %7658)
  %7660 = icmp eq i32 %7659, -1
  br i1 %7660, label %7714, label %7661

7661:                                             ; preds = %7654
  br label %7662

7662:                                             ; preds = %7661
  br label %7663

7663:                                             ; preds = %7662
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #12
  %7664 = call ptr @__errno_location() #13
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  store i32 %7665, ptr %155, align 4, !tbaa !5
  %7666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7667 = call i32 @s2n_print_stacktrace(ptr noundef %7666)
  %7668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7669 = trunc i8 %7668 to i1
  br i1 %7669, label %7670, label %7692

7670:                                             ; preds = %7663
  %7671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7672 = call i32 @fileno(ptr noundef %7671) #12
  %7673 = call i32 @isatty(i32 noundef %7672) #12
  %7674 = icmp ne i32 %7673, 0
  br i1 %7674, label %7675, label %7692

7675:                                             ; preds = %7670
  %7676 = load i32, ptr %155, align 4, !tbaa !5
  %7677 = call ptr @__errno_location() #13
  store i32 %7676, ptr %7677, align 4, !tbaa !5
  %7678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7679 = load i32, ptr @test_count, align 4, !tbaa !5
  %7680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7681 = load i32, ptr %7680, align 4, !tbaa !5
  %7682 = call ptr @s2n_strerror(i32 noundef %7681, ptr noundef @.str.3)
  %7683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7684 = load i32, ptr %7683, align 4, !tbaa !5
  %7685 = call ptr @s2n_strerror_debug(i32 noundef %7684, ptr noundef @.str.3)
  %7686 = call ptr @__errno_location() #13
  %7687 = load i32, ptr %7686, align 4, !tbaa !5
  %7688 = call ptr @strerror(i32 noundef %7687) #12
  %7689 = call ptr @__errno_location() #13
  %7690 = load i32, ptr %7689, align 4, !tbaa !5
  %7691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7678, ptr noundef @.str, i32 noundef %7679, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 578, ptr noundef %7682, ptr noundef %7685, ptr noundef %7688, i32 noundef %7690) #12
  br label %7709

7692:                                             ; preds = %7670, %7663
  %7693 = load i32, ptr %155, align 4, !tbaa !5
  %7694 = call ptr @__errno_location() #13
  store i32 %7693, ptr %7694, align 4, !tbaa !5
  %7695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7696 = load i32, ptr @test_count, align 4, !tbaa !5
  %7697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7698 = load i32, ptr %7697, align 4, !tbaa !5
  %7699 = call ptr @s2n_strerror(i32 noundef %7698, ptr noundef @.str.3)
  %7700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  %7702 = call ptr @s2n_strerror_debug(i32 noundef %7701, ptr noundef @.str.3)
  %7703 = call ptr @__errno_location() #13
  %7704 = load i32, ptr %7703, align 4, !tbaa !5
  %7705 = call ptr @strerror(i32 noundef %7704) #12
  %7706 = call ptr @__errno_location() #13
  %7707 = load i32, ptr %7706, align 4, !tbaa !5
  %7708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7695, ptr noundef @.str.4, i32 noundef %7696, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 578, ptr noundef %7699, ptr noundef %7702, ptr noundef %7705, i32 noundef %7707) #12
  br label %7709

7709:                                             ; preds = %7692, %7675
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #12
  br label %7710

7710:                                             ; preds = %7709
  br label %7711

7711:                                             ; preds = %7710
  call void @exit(i32 noundef 1) #14
  unreachable

7712:                                             ; No predecessors!
  br label %7713

7713:                                             ; preds = %7712
  br label %7714

7714:                                             ; preds = %7713, %7654
  br label %7715

7715:                                             ; preds = %7714
  br label %7716

7716:                                             ; preds = %7715
  br label %7717

7717:                                             ; preds = %7716
  %7718 = load i32, ptr @test_count, align 4, !tbaa !5
  %7719 = add nsw i32 %7718, 1
  store i32 %7719, ptr @test_count, align 4, !tbaa !5
  %7720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7721 = load i32, ptr %7720, align 4, !tbaa !5
  %7722 = icmp eq i32 %7721, 335544393
  br i1 %7722, label %7776, label %7723

7723:                                             ; preds = %7717
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

7725:                                             ; preds = %7724
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #12
  %7726 = call ptr @__errno_location() #13
  %7727 = load i32, ptr %7726, align 4, !tbaa !5
  store i32 %7727, ptr %156, align 4, !tbaa !5
  %7728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7729 = call i32 @s2n_print_stacktrace(ptr noundef %7728)
  %7730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7731 = trunc i8 %7730 to i1
  br i1 %7731, label %7732, label %7754

7732:                                             ; preds = %7725
  %7733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7734 = call i32 @fileno(ptr noundef %7733) #12
  %7735 = call i32 @isatty(i32 noundef %7734) #12
  %7736 = icmp ne i32 %7735, 0
  br i1 %7736, label %7737, label %7754

7737:                                             ; preds = %7732
  %7738 = load i32, ptr %156, align 4, !tbaa !5
  %7739 = call ptr @__errno_location() #13
  store i32 %7738, ptr %7739, align 4, !tbaa !5
  %7740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7741 = load i32, ptr @test_count, align 4, !tbaa !5
  %7742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call ptr @s2n_strerror(i32 noundef %7743, ptr noundef @.str.3)
  %7745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call ptr @s2n_strerror_debug(i32 noundef %7746, ptr noundef @.str.3)
  %7748 = call ptr @__errno_location() #13
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call ptr @strerror(i32 noundef %7749) #12
  %7751 = call ptr @__errno_location() #13
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7740, ptr noundef @.str, i32 noundef %7741, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 578, ptr noundef %7744, ptr noundef %7747, ptr noundef %7750, i32 noundef %7752) #12
  br label %7771

7754:                                             ; preds = %7732, %7725
  %7755 = load i32, ptr %156, align 4, !tbaa !5
  %7756 = call ptr @__errno_location() #13
  store i32 %7755, ptr %7756, align 4, !tbaa !5
  %7757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7758 = load i32, ptr @test_count, align 4, !tbaa !5
  %7759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @s2n_strerror(i32 noundef %7760, ptr noundef @.str.3)
  %7762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call ptr @s2n_strerror_debug(i32 noundef %7763, ptr noundef @.str.3)
  %7765 = call ptr @__errno_location() #13
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call ptr @strerror(i32 noundef %7766) #12
  %7768 = call ptr @__errno_location() #13
  %7769 = load i32, ptr %7768, align 4, !tbaa !5
  %7770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7757, ptr noundef @.str.4, i32 noundef %7758, ptr noundef @.str.85, ptr noundef @.str.2, i32 noundef 578, ptr noundef %7761, ptr noundef %7764, ptr noundef %7767, i32 noundef %7769) #12
  br label %7771

7771:                                             ; preds = %7754, %7737
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #12
  br label %7772

7772:                                             ; preds = %7771
  br label %7773

7773:                                             ; preds = %7772
  call void @exit(i32 noundef 1) #14
  unreachable

7774:                                             ; No predecessors!
  br label %7775

7775:                                             ; preds = %7774
  br label %7776

7776:                                             ; preds = %7775, %7717
  br label %7777

7777:                                             ; preds = %7776
  br label %7778

7778:                                             ; preds = %7777
  br label %7779

7779:                                             ; preds = %7778
  %7780 = load i32, ptr @test_count, align 4, !tbaa !5
  %7781 = add nsw i32 %7780, 1
  store i32 %7781, ptr @test_count, align 4, !tbaa !5
  %7782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call ptr @s2n_strerror_debug(i32 noundef %7783, ptr noundef @.str.3)
  %7785 = icmp eq ptr %7784, null
  br i1 %7785, label %7786, label %7839

7786:                                             ; preds = %7779
  br label %7787

7787:                                             ; preds = %7786
  br label %7788

7788:                                             ; preds = %7787
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #12
  %7789 = call ptr @__errno_location() #13
  %7790 = load i32, ptr %7789, align 4, !tbaa !5
  store i32 %7790, ptr %157, align 4, !tbaa !5
  %7791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7792 = call i32 @s2n_print_stacktrace(ptr noundef %7791)
  %7793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7794 = trunc i8 %7793 to i1
  br i1 %7794, label %7795, label %7817

7795:                                             ; preds = %7788
  %7796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7797 = call i32 @fileno(ptr noundef %7796) #12
  %7798 = call i32 @isatty(i32 noundef %7797) #12
  %7799 = icmp ne i32 %7798, 0
  br i1 %7799, label %7800, label %7817

7800:                                             ; preds = %7795
  %7801 = load i32, ptr %157, align 4, !tbaa !5
  %7802 = call ptr @__errno_location() #13
  store i32 %7801, ptr %7802, align 4, !tbaa !5
  %7803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7804 = load i32, ptr @test_count, align 4, !tbaa !5
  %7805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  %7807 = call ptr @s2n_strerror(i32 noundef %7806, ptr noundef @.str.3)
  %7808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7809 = load i32, ptr %7808, align 4, !tbaa !5
  %7810 = call ptr @s2n_strerror_debug(i32 noundef %7809, ptr noundef @.str.3)
  %7811 = call ptr @__errno_location() #13
  %7812 = load i32, ptr %7811, align 4, !tbaa !5
  %7813 = call ptr @strerror(i32 noundef %7812) #12
  %7814 = call ptr @__errno_location() #13
  %7815 = load i32, ptr %7814, align 4, !tbaa !5
  %7816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7803, ptr noundef @.str, i32 noundef %7804, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 578, ptr noundef %7807, ptr noundef %7810, ptr noundef %7813, i32 noundef %7815) #12
  br label %7834

7817:                                             ; preds = %7795, %7788
  %7818 = load i32, ptr %157, align 4, !tbaa !5
  %7819 = call ptr @__errno_location() #13
  store i32 %7818, ptr %7819, align 4, !tbaa !5
  %7820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7821 = load i32, ptr @test_count, align 4, !tbaa !5
  %7822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call ptr @s2n_strerror(i32 noundef %7823, ptr noundef @.str.3)
  %7825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7826 = load i32, ptr %7825, align 4, !tbaa !5
  %7827 = call ptr @s2n_strerror_debug(i32 noundef %7826, ptr noundef @.str.3)
  %7828 = call ptr @__errno_location() #13
  %7829 = load i32, ptr %7828, align 4, !tbaa !5
  %7830 = call ptr @strerror(i32 noundef %7829) #12
  %7831 = call ptr @__errno_location() #13
  %7832 = load i32, ptr %7831, align 4, !tbaa !5
  %7833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7820, ptr noundef @.str.4, i32 noundef %7821, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 578, ptr noundef %7824, ptr noundef %7827, ptr noundef %7830, i32 noundef %7832) #12
  br label %7834

7834:                                             ; preds = %7817, %7800
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #12
  br label %7835

7835:                                             ; preds = %7834
  br label %7836

7836:                                             ; preds = %7835
  call void @exit(i32 noundef 1) #14
  unreachable

7837:                                             ; No predecessors!
  br label %7838

7838:                                             ; preds = %7837
  br label %7839

7839:                                             ; preds = %7838, %7779
  br label %7840

7840:                                             ; preds = %7839
  br label %7841

7841:                                             ; preds = %7840
  br label %7842

7842:                                             ; preds = %7841
  br label %7843

7843:                                             ; preds = %7842
  br label %7844

7844:                                             ; preds = %7843
  %7845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7845, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7846 = call ptr @__errno_location() #13
  store i32 0, ptr %7846, align 4, !tbaa !5
  br label %7847

7847:                                             ; preds = %7844
  br label %7848

7848:                                             ; preds = %7847
  br label %7849

7849:                                             ; preds = %7848
  br label %7850

7850:                                             ; preds = %7849
  br label %7851

7851:                                             ; preds = %7850
  %7852 = load i32, ptr @test_count, align 4, !tbaa !5
  %7853 = add nsw i32 %7852, 1
  store i32 %7853, ptr @test_count, align 4, !tbaa !5
  %7854 = load ptr, ptr %131, align 8, !tbaa !9
  %7855 = call i32 @s2n_connection_free(ptr noundef %7854)
  %7856 = icmp eq i32 %7855, -1
  br i1 %7856, label %7857, label %7910

7857:                                             ; preds = %7851
  br label %7858

7858:                                             ; preds = %7857
  br label %7859

7859:                                             ; preds = %7858
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #12
  %7860 = call ptr @__errno_location() #13
  %7861 = load i32, ptr %7860, align 4, !tbaa !5
  store i32 %7861, ptr %158, align 4, !tbaa !5
  %7862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7863 = call i32 @s2n_print_stacktrace(ptr noundef %7862)
  %7864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7865 = trunc i8 %7864 to i1
  br i1 %7865, label %7866, label %7888

7866:                                             ; preds = %7859
  %7867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7868 = call i32 @fileno(ptr noundef %7867) #12
  %7869 = call i32 @isatty(i32 noundef %7868) #12
  %7870 = icmp ne i32 %7869, 0
  br i1 %7870, label %7871, label %7888

7871:                                             ; preds = %7866
  %7872 = load i32, ptr %158, align 4, !tbaa !5
  %7873 = call ptr @__errno_location() #13
  store i32 %7872, ptr %7873, align 4, !tbaa !5
  %7874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7875 = load i32, ptr @test_count, align 4, !tbaa !5
  %7876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  %7878 = call ptr @s2n_strerror(i32 noundef %7877, ptr noundef @.str.3)
  %7879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call ptr @s2n_strerror_debug(i32 noundef %7880, ptr noundef @.str.3)
  %7882 = call ptr @__errno_location() #13
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call ptr @strerror(i32 noundef %7883) #12
  %7885 = call ptr @__errno_location() #13
  %7886 = load i32, ptr %7885, align 4, !tbaa !5
  %7887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7874, ptr noundef @.str, i32 noundef %7875, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 580, ptr noundef %7878, ptr noundef %7881, ptr noundef %7884, i32 noundef %7886) #12
  br label %7905

7888:                                             ; preds = %7866, %7859
  %7889 = load i32, ptr %158, align 4, !tbaa !5
  %7890 = call ptr @__errno_location() #13
  store i32 %7889, ptr %7890, align 4, !tbaa !5
  %7891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7892 = load i32, ptr @test_count, align 4, !tbaa !5
  %7893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call ptr @s2n_strerror(i32 noundef %7894, ptr noundef @.str.3)
  %7896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7897 = load i32, ptr %7896, align 4, !tbaa !5
  %7898 = call ptr @s2n_strerror_debug(i32 noundef %7897, ptr noundef @.str.3)
  %7899 = call ptr @__errno_location() #13
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  %7901 = call ptr @strerror(i32 noundef %7900) #12
  %7902 = call ptr @__errno_location() #13
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  %7904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7891, ptr noundef @.str.4, i32 noundef %7892, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 580, ptr noundef %7895, ptr noundef %7898, ptr noundef %7901, i32 noundef %7903) #12
  br label %7905

7905:                                             ; preds = %7888, %7871
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #12
  br label %7906

7906:                                             ; preds = %7905
  br label %7907

7907:                                             ; preds = %7906
  call void @exit(i32 noundef 1) #14
  unreachable

7908:                                             ; No predecessors!
  br label %7909

7909:                                             ; preds = %7908
  br label %7910

7910:                                             ; preds = %7909, %7851
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

7912:                                             ; preds = %7911
  br label %7913

7913:                                             ; preds = %7912
  %7914 = load i32, ptr @test_count, align 4, !tbaa !5
  %7915 = add nsw i32 %7914, 1
  store i32 %7915, ptr @test_count, align 4, !tbaa !5
  %7916 = load ptr, ptr %134, align 8, !tbaa !9
  %7917 = call i32 @s2n_connection_free(ptr noundef %7916)
  %7918 = icmp eq i32 %7917, -1
  br i1 %7918, label %7919, label %7972

7919:                                             ; preds = %7913
  br label %7920

7920:                                             ; preds = %7919
  br label %7921

7921:                                             ; preds = %7920
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #12
  %7922 = call ptr @__errno_location() #13
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  store i32 %7923, ptr %159, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = call i32 @s2n_print_stacktrace(ptr noundef %7924)
  %7926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %7927 = trunc i8 %7926 to i1
  br i1 %7927, label %7928, label %7950

7928:                                             ; preds = %7921
  %7929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7930 = call i32 @fileno(ptr noundef %7929) #12
  %7931 = call i32 @isatty(i32 noundef %7930) #12
  %7932 = icmp ne i32 %7931, 0
  br i1 %7932, label %7933, label %7950

7933:                                             ; preds = %7928
  %7934 = load i32, ptr %159, align 4, !tbaa !5
  %7935 = call ptr @__errno_location() #13
  store i32 %7934, ptr %7935, align 4, !tbaa !5
  %7936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7937 = load i32, ptr @test_count, align 4, !tbaa !5
  %7938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @s2n_strerror(i32 noundef %7939, ptr noundef @.str.3)
  %7941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call ptr @s2n_strerror_debug(i32 noundef %7942, ptr noundef @.str.3)
  %7944 = call ptr @__errno_location() #13
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call ptr @strerror(i32 noundef %7945) #12
  %7947 = call ptr @__errno_location() #13
  %7948 = load i32, ptr %7947, align 4, !tbaa !5
  %7949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7936, ptr noundef @.str, i32 noundef %7937, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 581, ptr noundef %7940, ptr noundef %7943, ptr noundef %7946, i32 noundef %7948) #12
  br label %7967

7950:                                             ; preds = %7928, %7921
  %7951 = load i32, ptr %159, align 4, !tbaa !5
  %7952 = call ptr @__errno_location() #13
  store i32 %7951, ptr %7952, align 4, !tbaa !5
  %7953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7954 = load i32, ptr @test_count, align 4, !tbaa !5
  %7955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @s2n_strerror(i32 noundef %7956, ptr noundef @.str.3)
  %7958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call ptr @s2n_strerror_debug(i32 noundef %7959, ptr noundef @.str.3)
  %7961 = call ptr @__errno_location() #13
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @strerror(i32 noundef %7962) #12
  %7964 = call ptr @__errno_location() #13
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7953, ptr noundef @.str.4, i32 noundef %7954, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 581, ptr noundef %7957, ptr noundef %7960, ptr noundef %7963, i32 noundef %7965) #12
  br label %7967

7967:                                             ; preds = %7950, %7933
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #12
  br label %7968

7968:                                             ; preds = %7967
  br label %7969

7969:                                             ; preds = %7968
  call void @exit(i32 noundef 1) #14
  unreachable

7970:                                             ; No predecessors!
  br label %7971

7971:                                             ; preds = %7970
  br label %7972

7972:                                             ; preds = %7971, %7913
  br label %7973

7973:                                             ; preds = %7972
  br label %7974

7974:                                             ; preds = %7973
  br label %7975

7975:                                             ; preds = %7974
  %7976 = load i32, ptr @test_count, align 4, !tbaa !5
  %7977 = add nsw i32 %7976, 1
  store i32 %7977, ptr @test_count, align 4, !tbaa !5
  %7978 = call i32 @s2n_io_pair_close(ptr noundef %25)
  %7979 = icmp eq i32 %7978, -1
  br i1 %7979, label %7980, label %8033

7980:                                             ; preds = %7975
  br label %7981

7981:                                             ; preds = %7980
  br label %7982

7982:                                             ; preds = %7981
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #12
  %7983 = call ptr @__errno_location() #13
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  store i32 %7984, ptr %160, 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 !13, !range !15, !noundef !16
  %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) #12
  %7992 = call i32 @isatty(i32 noundef %7991) #12
  %7993 = icmp ne i32 %7992, 0
  br i1 %7993, label %7994, label %8011

7994:                                             ; preds = %7989
  %7995 = load i32, ptr %160, align 4, !tbaa !5
  %7996 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %8005 = call ptr @__errno_location() #13
  %8006 = load i32, ptr %8005, align 4, !tbaa !5
  %8007 = call ptr @strerror(i32 noundef %8006) #12
  %8008 = call ptr @__errno_location() #13
  %8009 = load i32, ptr %8008, align 4, !tbaa !5
  %8010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7997, ptr noundef @.str, i32 noundef %7998, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 582, ptr noundef %8001, ptr noundef %8004, ptr noundef %8007, i32 noundef %8009) #12
  br label %8028

8011:                                             ; preds = %7989, %7982
  %8012 = load i32, ptr %160, align 4, !tbaa !5
  %8013 = call ptr @__errno_location() #13
  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.3)
  %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.3)
  %8022 = call ptr @__errno_location() #13
  %8023 = load i32, ptr %8022, align 4, !tbaa !5
  %8024 = call ptr @strerror(i32 noundef %8023) #12
  %8025 = call ptr @__errno_location() #13
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8014, ptr noundef @.str.4, i32 noundef %8015, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 582, ptr noundef %8018, ptr noundef %8021, ptr noundef %8024, i32 noundef %8026) #12
  br label %8028

8028:                                             ; preds = %8011, %7994
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #12
  br label %8029

8029:                                             ; preds = %8028
  br label %8030

8030:                                             ; preds = %8029
  call void @exit(i32 noundef 1) #14
  unreachable

8031:                                             ; No predecessors!
  br label %8032

8032:                                             ; preds = %8031
  br label %8033

8033:                                             ; preds = %8032, %7975
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

8035:                                             ; preds = %8034
  call void @llvm.lifetime.end.p0(i64 202, ptr %143) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #12
  call void @initialize_cache()
  call void @llvm.lifetime.start.p0(i64 8, ptr %161) #12
  %8036 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %8036, ptr %161, align 8, !tbaa !9
  br label %8037

8037:                                             ; preds = %8035
  %8038 = load i32, ptr @test_count, align 4, !tbaa !5
  %8039 = add nsw i32 %8038, 1
  store i32 %8039, ptr @test_count, align 4, !tbaa !5
  %8040 = load ptr, ptr %161, align 8, !tbaa !9
  %8041 = icmp eq ptr %8040, null
  br i1 %8041, label %8042, label %8095

8042:                                             ; preds = %8037
  br label %8043

8043:                                             ; preds = %8042
  br label %8044

8044:                                             ; preds = %8043
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #12
  %8045 = call ptr @__errno_location() #13
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  store i32 %8046, ptr %162, align 4, !tbaa !5
  %8047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8048 = call i32 @s2n_print_stacktrace(ptr noundef %8047)
  %8049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8050 = trunc i8 %8049 to i1
  br i1 %8050, label %8051, label %8073

8051:                                             ; preds = %8044
  %8052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8053 = call i32 @fileno(ptr noundef %8052) #12
  %8054 = call i32 @isatty(i32 noundef %8053) #12
  %8055 = icmp ne i32 %8054, 0
  br i1 %8055, label %8056, label %8073

8056:                                             ; preds = %8051
  %8057 = load i32, ptr %162, align 4, !tbaa !5
  %8058 = call ptr @__errno_location() #13
  store i32 %8057, ptr %8058, align 4, !tbaa !5
  %8059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8060 = load i32, ptr @test_count, align 4, !tbaa !5
  %8061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8062 = load i32, ptr %8061, align 4, !tbaa !5
  %8063 = call ptr @s2n_strerror(i32 noundef %8062, ptr noundef @.str.3)
  %8064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8065 = load i32, ptr %8064, align 4, !tbaa !5
  %8066 = call ptr @s2n_strerror_debug(i32 noundef %8065, ptr noundef @.str.3)
  %8067 = call ptr @__errno_location() #13
  %8068 = load i32, ptr %8067, align 4, !tbaa !5
  %8069 = call ptr @strerror(i32 noundef %8068) #12
  %8070 = call ptr @__errno_location() #13
  %8071 = load i32, ptr %8070, align 4, !tbaa !5
  %8072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8059, ptr noundef @.str, i32 noundef %8060, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 597, ptr noundef %8063, ptr noundef %8066, ptr noundef %8069, i32 noundef %8071) #12
  br label %8090

8073:                                             ; preds = %8051, %8044
  %8074 = load i32, ptr %162, align 4, !tbaa !5
  %8075 = call ptr @__errno_location() #13
  store i32 %8074, ptr %8075, align 4, !tbaa !5
  %8076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8077 = load i32, ptr @test_count, align 4, !tbaa !5
  %8078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8079 = load i32, ptr %8078, align 4, !tbaa !5
  %8080 = call ptr @s2n_strerror(i32 noundef %8079, ptr noundef @.str.3)
  %8081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8082 = load i32, ptr %8081, align 4, !tbaa !5
  %8083 = call ptr @s2n_strerror_debug(i32 noundef %8082, ptr noundef @.str.3)
  %8084 = call ptr @__errno_location() #13
  %8085 = load i32, ptr %8084, align 4, !tbaa !5
  %8086 = call ptr @strerror(i32 noundef %8085) #12
  %8087 = call ptr @__errno_location() #13
  %8088 = load i32, ptr %8087, align 4, !tbaa !5
  %8089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8076, ptr noundef @.str.4, i32 noundef %8077, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 597, ptr noundef %8080, ptr noundef %8083, ptr noundef %8086, i32 noundef %8088) #12
  br label %8090

8090:                                             ; preds = %8073, %8056
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #12
  br label %8091

8091:                                             ; preds = %8090
  br label %8092

8092:                                             ; preds = %8091
  call void @exit(i32 noundef 1) #14
  unreachable

8093:                                             ; No predecessors!
  br label %8094

8094:                                             ; preds = %8093
  br label %8095

8095:                                             ; preds = %8094, %8037
  br label %8096

8096:                                             ; preds = %8095
  br label %8097

8097:                                             ; preds = %8096
  %8098 = load ptr, ptr %7, align 8, !tbaa !9
  %8099 = call i32 @s2n_config_disable_x509_verification(ptr noundef %8098)
  br label %8100

8100:                                             ; preds = %8097
  %8101 = load i32, ptr @test_count, align 4, !tbaa !5
  %8102 = add nsw i32 %8101, 1
  store i32 %8102, ptr @test_count, align 4, !tbaa !5
  %8103 = load ptr, ptr %161, align 8, !tbaa !9
  %8104 = load ptr, ptr %7, align 8, !tbaa !9
  %8105 = call i32 @s2n_connection_set_config(ptr noundef %8103, ptr noundef %8104)
  %8106 = icmp eq i32 %8105, -1
  br i1 %8106, label %8107, label %8160

8107:                                             ; preds = %8100
  br label %8108

8108:                                             ; preds = %8107
  br label %8109

8109:                                             ; preds = %8108
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #12
  %8110 = call ptr @__errno_location() #13
  %8111 = load i32, ptr %8110, align 4, !tbaa !5
  store i32 %8111, ptr %163, align 4, !tbaa !5
  %8112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8113 = call i32 @s2n_print_stacktrace(ptr noundef %8112)
  %8114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8115 = trunc i8 %8114 to i1
  br i1 %8115, label %8116, label %8138

8116:                                             ; preds = %8109
  %8117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8118 = call i32 @fileno(ptr noundef %8117) #12
  %8119 = call i32 @isatty(i32 noundef %8118) #12
  %8120 = icmp ne i32 %8119, 0
  br i1 %8120, label %8121, label %8138

8121:                                             ; preds = %8116
  %8122 = load i32, ptr %163, align 4, !tbaa !5
  %8123 = call ptr @__errno_location() #13
  store i32 %8122, ptr %8123, align 4, !tbaa !5
  %8124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8125 = load i32, ptr @test_count, align 4, !tbaa !5
  %8126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  %8128 = call ptr @s2n_strerror(i32 noundef %8127, ptr noundef @.str.3)
  %8129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call ptr @s2n_strerror_debug(i32 noundef %8130, ptr noundef @.str.3)
  %8132 = call ptr @__errno_location() #13
  %8133 = load i32, ptr %8132, align 4, !tbaa !5
  %8134 = call ptr @strerror(i32 noundef %8133) #12
  %8135 = call ptr @__errno_location() #13
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8124, ptr noundef @.str, i32 noundef %8125, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 599, ptr noundef %8128, ptr noundef %8131, ptr noundef %8134, i32 noundef %8136) #12
  br label %8155

8138:                                             ; preds = %8116, %8109
  %8139 = load i32, ptr %163, align 4, !tbaa !5
  %8140 = call ptr @__errno_location() #13
  store i32 %8139, ptr %8140, align 4, !tbaa !5
  %8141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8142 = load i32, ptr @test_count, align 4, !tbaa !5
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8144 = load i32, ptr %8143, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror(i32 noundef %8144, ptr noundef @.str.3)
  %8146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @s2n_strerror_debug(i32 noundef %8147, ptr noundef @.str.3)
  %8149 = call ptr @__errno_location() #13
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @strerror(i32 noundef %8150) #12
  %8152 = call ptr @__errno_location() #13
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8141, ptr noundef @.str.4, i32 noundef %8142, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 599, ptr noundef %8145, ptr noundef %8148, ptr noundef %8151, i32 noundef %8153) #12
  br label %8155

8155:                                             ; preds = %8138, %8121
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #12
  br label %8156

8156:                                             ; preds = %8155
  br label %8157

8157:                                             ; preds = %8156
  call void @exit(i32 noundef 1) #14
  unreachable

8158:                                             ; No predecessors!
  br label %8159

8159:                                             ; preds = %8158
  br label %8160

8160:                                             ; preds = %8159, %8100
  br label %8161

8161:                                             ; preds = %8160
  br label %8162

8162:                                             ; preds = %8161
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #12
  %8163 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %8163, ptr %164, align 8, !tbaa !9
  br label %8164

8164:                                             ; preds = %8162
  %8165 = load i32, ptr @test_count, align 4, !tbaa !5
  %8166 = add nsw i32 %8165, 1
  store i32 %8166, ptr @test_count, align 4, !tbaa !5
  %8167 = load ptr, ptr %164, align 8, !tbaa !9
  %8168 = icmp eq ptr %8167, null
  br i1 %8168, label %8169, label %8222

8169:                                             ; preds = %8164
  br label %8170

8170:                                             ; preds = %8169
  br label %8171

8171:                                             ; preds = %8170
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #12
  %8172 = call ptr @__errno_location() #13
  %8173 = load i32, ptr %8172, align 4, !tbaa !5
  store i32 %8173, ptr %165, align 4, !tbaa !5
  %8174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8175 = call i32 @s2n_print_stacktrace(ptr noundef %8174)
  %8176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8177 = trunc i8 %8176 to i1
  br i1 %8177, label %8178, label %8200

8178:                                             ; preds = %8171
  %8179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8180 = call i32 @fileno(ptr noundef %8179) #12
  %8181 = call i32 @isatty(i32 noundef %8180) #12
  %8182 = icmp ne i32 %8181, 0
  br i1 %8182, label %8183, label %8200

8183:                                             ; preds = %8178
  %8184 = load i32, ptr %165, align 4, !tbaa !5
  %8185 = call ptr @__errno_location() #13
  store i32 %8184, ptr %8185, align 4, !tbaa !5
  %8186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8187 = load i32, ptr @test_count, align 4, !tbaa !5
  %8188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  %8190 = call ptr @s2n_strerror(i32 noundef %8189, ptr noundef @.str.3)
  %8191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8192 = load i32, ptr %8191, align 4, !tbaa !5
  %8193 = call ptr @s2n_strerror_debug(i32 noundef %8192, ptr noundef @.str.3)
  %8194 = call ptr @__errno_location() #13
  %8195 = load i32, ptr %8194, align 4, !tbaa !5
  %8196 = call ptr @strerror(i32 noundef %8195) #12
  %8197 = call ptr @__errno_location() #13
  %8198 = load i32, ptr %8197, align 4, !tbaa !5
  %8199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8186, ptr noundef @.str, i32 noundef %8187, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 602, ptr noundef %8190, ptr noundef %8193, ptr noundef %8196, i32 noundef %8198) #12
  br label %8217

8200:                                             ; preds = %8178, %8171
  %8201 = load i32, ptr %165, align 4, !tbaa !5
  %8202 = call ptr @__errno_location() #13
  store i32 %8201, ptr %8202, align 4, !tbaa !5
  %8203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8204 = load i32, ptr @test_count, align 4, !tbaa !5
  %8205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call ptr @s2n_strerror(i32 noundef %8206, ptr noundef @.str.3)
  %8208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8209 = load i32, ptr %8208, align 4, !tbaa !5
  %8210 = call ptr @s2n_strerror_debug(i32 noundef %8209, ptr noundef @.str.3)
  %8211 = call ptr @__errno_location() #13
  %8212 = load i32, ptr %8211, align 4, !tbaa !5
  %8213 = call ptr @strerror(i32 noundef %8212) #12
  %8214 = call ptr @__errno_location() #13
  %8215 = load i32, ptr %8214, align 4, !tbaa !5
  %8216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8203, ptr noundef @.str.4, i32 noundef %8204, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 602, ptr noundef %8207, ptr noundef %8210, ptr noundef %8213, i32 noundef %8215) #12
  br label %8217

8217:                                             ; preds = %8200, %8183
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #12
  br label %8218

8218:                                             ; preds = %8217
  br label %8219

8219:                                             ; preds = %8218
  call void @exit(i32 noundef 1) #14
  unreachable

8220:                                             ; No predecessors!
  br label %8221

8221:                                             ; preds = %8220
  br label %8222

8222:                                             ; preds = %8221, %8164
  br label %8223

8223:                                             ; preds = %8222
  br label %8224

8224:                                             ; preds = %8223
  br label %8225

8225:                                             ; preds = %8224
  %8226 = load i32, ptr @test_count, align 4, !tbaa !5
  %8227 = add nsw i32 %8226, 1
  store i32 %8227, ptr @test_count, align 4, !tbaa !5
  %8228 = load ptr, ptr %164, align 8, !tbaa !9
  %8229 = load ptr, ptr %7, align 8, !tbaa !9
  %8230 = call i32 @s2n_connection_set_config(ptr noundef %8228, ptr noundef %8229)
  %8231 = icmp eq i32 %8230, -1
  br i1 %8231, label %8232, label %8285

8232:                                             ; preds = %8225
  br label %8233

8233:                                             ; preds = %8232
  br label %8234

8234:                                             ; preds = %8233
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #12
  %8235 = call ptr @__errno_location() #13
  %8236 = load i32, ptr %8235, align 4, !tbaa !5
  store i32 %8236, ptr %166, align 4, !tbaa !5
  %8237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8238 = call i32 @s2n_print_stacktrace(ptr noundef %8237)
  %8239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8240 = trunc i8 %8239 to i1
  br i1 %8240, label %8241, label %8263

8241:                                             ; preds = %8234
  %8242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8243 = call i32 @fileno(ptr noundef %8242) #12
  %8244 = call i32 @isatty(i32 noundef %8243) #12
  %8245 = icmp ne i32 %8244, 0
  br i1 %8245, label %8246, label %8263

8246:                                             ; preds = %8241
  %8247 = load i32, ptr %166, align 4, !tbaa !5
  %8248 = call ptr @__errno_location() #13
  store i32 %8247, ptr %8248, align 4, !tbaa !5
  %8249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8250 = load i32, ptr @test_count, align 4, !tbaa !5
  %8251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8252 = load i32, ptr %8251, align 4, !tbaa !5
  %8253 = call ptr @s2n_strerror(i32 noundef %8252, ptr noundef @.str.3)
  %8254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8255 = load i32, ptr %8254, align 4, !tbaa !5
  %8256 = call ptr @s2n_strerror_debug(i32 noundef %8255, ptr noundef @.str.3)
  %8257 = call ptr @__errno_location() #13
  %8258 = load i32, ptr %8257, align 4, !tbaa !5
  %8259 = call ptr @strerror(i32 noundef %8258) #12
  %8260 = call ptr @__errno_location() #13
  %8261 = load i32, ptr %8260, align 4, !tbaa !5
  %8262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8249, ptr noundef @.str, i32 noundef %8250, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 603, ptr noundef %8253, ptr noundef %8256, ptr noundef %8259, i32 noundef %8261) #12
  br label %8280

8263:                                             ; preds = %8241, %8234
  %8264 = load i32, ptr %166, align 4, !tbaa !5
  %8265 = call ptr @__errno_location() #13
  store i32 %8264, ptr %8265, align 4, !tbaa !5
  %8266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8267 = load i32, ptr @test_count, align 4, !tbaa !5
  %8268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8269 = load i32, ptr %8268, align 4, !tbaa !5
  %8270 = call ptr @s2n_strerror(i32 noundef %8269, ptr noundef @.str.3)
  %8271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8272 = load i32, ptr %8271, align 4, !tbaa !5
  %8273 = call ptr @s2n_strerror_debug(i32 noundef %8272, ptr noundef @.str.3)
  %8274 = call ptr @__errno_location() #13
  %8275 = load i32, ptr %8274, align 4, !tbaa !5
  %8276 = call ptr @strerror(i32 noundef %8275) #12
  %8277 = call ptr @__errno_location() #13
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8266, ptr noundef @.str.4, i32 noundef %8267, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 603, ptr noundef %8270, ptr noundef %8273, ptr noundef %8276, i32 noundef %8278) #12
  br label %8280

8280:                                             ; preds = %8263, %8246
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #12
  br label %8281

8281:                                             ; preds = %8280
  br label %8282

8282:                                             ; preds = %8281
  call void @exit(i32 noundef 1) #14
  unreachable

8283:                                             ; No predecessors!
  br label %8284

8284:                                             ; preds = %8283
  br label %8285

8285:                                             ; preds = %8284, %8225
  br label %8286

8286:                                             ; preds = %8285
  br label %8287

8287:                                             ; preds = %8286
  br label %8288

8288:                                             ; preds = %8287
  %8289 = load i32, ptr @test_count, align 4, !tbaa !5
  %8290 = add nsw i32 %8289, 1
  store i32 %8290, ptr @test_count, align 4, !tbaa !5
  %8291 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %25)
  %8292 = icmp eq i32 %8291, -1
  br i1 %8292, label %8293, label %8346

8293:                                             ; preds = %8288
  br label %8294

8294:                                             ; preds = %8293
  br label %8295

8295:                                             ; preds = %8294
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #12
  %8296 = call ptr @__errno_location() #13
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  store i32 %8297, ptr %167, align 4, !tbaa !5
  %8298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8299 = call i32 @s2n_print_stacktrace(ptr noundef %8298)
  %8300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8301 = trunc i8 %8300 to i1
  br i1 %8301, label %8302, label %8324

8302:                                             ; preds = %8295
  %8303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8304 = call i32 @fileno(ptr noundef %8303) #12
  %8305 = call i32 @isatty(i32 noundef %8304) #12
  %8306 = icmp ne i32 %8305, 0
  br i1 %8306, label %8307, label %8324

8307:                                             ; preds = %8302
  %8308 = load i32, ptr %167, align 4, !tbaa !5
  %8309 = call ptr @__errno_location() #13
  store i32 %8308, ptr %8309, align 4, !tbaa !5
  %8310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8311 = load i32, ptr @test_count, align 4, !tbaa !5
  %8312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8313 = load i32, ptr %8312, align 4, !tbaa !5
  %8314 = call ptr @s2n_strerror(i32 noundef %8313, ptr noundef @.str.3)
  %8315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8316 = load i32, ptr %8315, align 4, !tbaa !5
  %8317 = call ptr @s2n_strerror_debug(i32 noundef %8316, ptr noundef @.str.3)
  %8318 = call ptr @__errno_location() #13
  %8319 = load i32, ptr %8318, align 4, !tbaa !5
  %8320 = call ptr @strerror(i32 noundef %8319) #12
  %8321 = call ptr @__errno_location() #13
  %8322 = load i32, ptr %8321, align 4, !tbaa !5
  %8323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8310, ptr noundef @.str, i32 noundef %8311, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 606, ptr noundef %8314, ptr noundef %8317, ptr noundef %8320, i32 noundef %8322) #12
  br label %8341

8324:                                             ; preds = %8302, %8295
  %8325 = load i32, ptr %167, align 4, !tbaa !5
  %8326 = call ptr @__errno_location() #13
  store i32 %8325, ptr %8326, align 4, !tbaa !5
  %8327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8328 = load i32, ptr @test_count, align 4, !tbaa !5
  %8329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8330 = load i32, ptr %8329, align 4, !tbaa !5
  %8331 = call ptr @s2n_strerror(i32 noundef %8330, ptr noundef @.str.3)
  %8332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8333 = load i32, ptr %8332, align 4, !tbaa !5
  %8334 = call ptr @s2n_strerror_debug(i32 noundef %8333, ptr noundef @.str.3)
  %8335 = call ptr @__errno_location() #13
  %8336 = load i32, ptr %8335, align 4, !tbaa !5
  %8337 = call ptr @strerror(i32 noundef %8336) #12
  %8338 = call ptr @__errno_location() #13
  %8339 = load i32, ptr %8338, align 4, !tbaa !5
  %8340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8327, ptr noundef @.str.4, i32 noundef %8328, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 606, ptr noundef %8331, ptr noundef %8334, ptr noundef %8337, i32 noundef %8339) #12
  br label %8341

8341:                                             ; preds = %8324, %8307
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #12
  br label %8342

8342:                                             ; preds = %8341
  br label %8343

8343:                                             ; preds = %8342
  call void @exit(i32 noundef 1) #14
  unreachable

8344:                                             ; No predecessors!
  br label %8345

8345:                                             ; preds = %8344
  br label %8346

8346:                                             ; preds = %8345, %8288
  br label %8347

8347:                                             ; preds = %8346
  br label %8348

8348:                                             ; preds = %8347
  br label %8349

8349:                                             ; preds = %8348
  %8350 = load i32, ptr @test_count, align 4, !tbaa !5
  %8351 = add nsw i32 %8350, 1
  store i32 %8351, ptr @test_count, align 4, !tbaa !5
  %8352 = load ptr, ptr %161, align 8, !tbaa !9
  %8353 = load ptr, ptr %164, align 8, !tbaa !9
  %8354 = call i32 @s2n_connections_set_io_pair(ptr noundef %8352, ptr noundef %8353, ptr noundef %25)
  %8355 = icmp eq i32 %8354, -1
  br i1 %8355, label %8356, label %8409

8356:                                             ; preds = %8349
  br label %8357

8357:                                             ; preds = %8356
  br label %8358

8358:                                             ; preds = %8357
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #12
  %8359 = call ptr @__errno_location() #13
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  store i32 %8360, ptr %168, align 4, !tbaa !5
  %8361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8362 = call i32 @s2n_print_stacktrace(ptr noundef %8361)
  %8363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8364 = trunc i8 %8363 to i1
  br i1 %8364, label %8365, label %8387

8365:                                             ; preds = %8358
  %8366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8367 = call i32 @fileno(ptr noundef %8366) #12
  %8368 = call i32 @isatty(i32 noundef %8367) #12
  %8369 = icmp ne i32 %8368, 0
  br i1 %8369, label %8370, label %8387

8370:                                             ; preds = %8365
  %8371 = load i32, ptr %168, align 4, !tbaa !5
  %8372 = call ptr @__errno_location() #13
  store i32 %8371, ptr %8372, align 4, !tbaa !5
  %8373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8374 = load i32, ptr @test_count, align 4, !tbaa !5
  %8375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8376 = load i32, ptr %8375, align 4, !tbaa !5
  %8377 = call ptr @s2n_strerror(i32 noundef %8376, ptr noundef @.str.3)
  %8378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8379 = load i32, ptr %8378, align 4, !tbaa !5
  %8380 = call ptr @s2n_strerror_debug(i32 noundef %8379, ptr noundef @.str.3)
  %8381 = call ptr @__errno_location() #13
  %8382 = load i32, ptr %8381, align 4, !tbaa !5
  %8383 = call ptr @strerror(i32 noundef %8382) #12
  %8384 = call ptr @__errno_location() #13
  %8385 = load i32, ptr %8384, align 4, !tbaa !5
  %8386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8373, ptr noundef @.str, i32 noundef %8374, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 607, ptr noundef %8377, ptr noundef %8380, ptr noundef %8383, i32 noundef %8385) #12
  br label %8404

8387:                                             ; preds = %8365, %8358
  %8388 = load i32, ptr %168, align 4, !tbaa !5
  %8389 = call ptr @__errno_location() #13
  store i32 %8388, ptr %8389, align 4, !tbaa !5
  %8390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8391 = load i32, ptr @test_count, align 4, !tbaa !5
  %8392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8393 = load i32, ptr %8392, align 4, !tbaa !5
  %8394 = call ptr @s2n_strerror(i32 noundef %8393, ptr noundef @.str.3)
  %8395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8396 = load i32, ptr %8395, align 4, !tbaa !5
  %8397 = call ptr @s2n_strerror_debug(i32 noundef %8396, ptr noundef @.str.3)
  %8398 = call ptr @__errno_location() #13
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @strerror(i32 noundef %8399) #12
  %8401 = call ptr @__errno_location() #13
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8390, ptr noundef @.str.4, i32 noundef %8391, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 607, ptr noundef %8394, ptr noundef %8397, ptr noundef %8400, i32 noundef %8402) #12
  br label %8404

8404:                                             ; preds = %8387, %8370
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #12
  br label %8405

8405:                                             ; preds = %8404
  br label %8406

8406:                                             ; preds = %8405
  call void @exit(i32 noundef 1) #14
  unreachable

8407:                                             ; No predecessors!
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

8409:                                             ; preds = %8408, %8349
  br label %8410

8410:                                             ; preds = %8409
  br label %8411

8411:                                             ; preds = %8410
  br label %8412

8412:                                             ; preds = %8411
  %8413 = load i32, ptr @test_count, align 4, !tbaa !5
  %8414 = add nsw i32 %8413, 1
  store i32 %8414, ptr @test_count, align 4, !tbaa !5
  %8415 = load ptr, ptr %161, align 8, !tbaa !9
  %8416 = call i32 @s2n_negotiate_until_message(ptr noundef %8415, ptr noundef %8, i32 noundef 1)
  %8417 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  store i32 %8416, ptr %8417, align 4
  %8418 = getelementptr inbounds %struct.s2n_result, ptr %169, i32 0, i32 0
  %8419 = load i32, ptr %8418, align 4
  %8420 = call zeroext i1 @s2n_result_is_ok(i32 %8419)
  br i1 %8420, label %8474, label %8421

8421:                                             ; preds = %8412
  br label %8422

8422:                                             ; preds = %8421
  br label %8423

8423:                                             ; preds = %8422
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #12
  %8424 = call ptr @__errno_location() #13
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  store i32 %8425, ptr %170, align 4, !tbaa !5
  %8426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8427 = call i32 @s2n_print_stacktrace(ptr noundef %8426)
  %8428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8429 = trunc i8 %8428 to i1
  br i1 %8429, label %8430, label %8452

8430:                                             ; preds = %8423
  %8431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8432 = call i32 @fileno(ptr noundef %8431) #12
  %8433 = call i32 @isatty(i32 noundef %8432) #12
  %8434 = icmp ne i32 %8433, 0
  br i1 %8434, label %8435, label %8452

8435:                                             ; preds = %8430
  %8436 = load i32, ptr %170, align 4, !tbaa !5
  %8437 = call ptr @__errno_location() #13
  store i32 %8436, ptr %8437, align 4, !tbaa !5
  %8438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8441 = load i32, ptr %8440, align 4, !tbaa !5
  %8442 = call ptr @s2n_strerror(i32 noundef %8441, ptr noundef @.str.3)
  %8443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8444 = load i32, ptr %8443, align 4, !tbaa !5
  %8445 = call ptr @s2n_strerror_debug(i32 noundef %8444, ptr noundef @.str.3)
  %8446 = call ptr @__errno_location() #13
  %8447 = load i32, ptr %8446, align 4, !tbaa !5
  %8448 = call ptr @strerror(i32 noundef %8447) #12
  %8449 = call ptr @__errno_location() #13
  %8450 = load i32, ptr %8449, align 4, !tbaa !5
  %8451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8438, ptr noundef @.str, i32 noundef %8439, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 610, ptr noundef %8442, ptr noundef %8445, ptr noundef %8448, i32 noundef %8450) #12
  br label %8469

8452:                                             ; preds = %8430, %8423
  %8453 = load i32, ptr %170, align 4, !tbaa !5
  %8454 = call ptr @__errno_location() #13
  store i32 %8453, ptr %8454, align 4, !tbaa !5
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = load i32, ptr @test_count, align 4, !tbaa !5
  %8457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8458 = load i32, ptr %8457, align 4, !tbaa !5
  %8459 = call ptr @s2n_strerror(i32 noundef %8458, ptr noundef @.str.3)
  %8460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8461 = load i32, ptr %8460, align 4, !tbaa !5
  %8462 = call ptr @s2n_strerror_debug(i32 noundef %8461, ptr noundef @.str.3)
  %8463 = call ptr @__errno_location() #13
  %8464 = load i32, ptr %8463, align 4, !tbaa !5
  %8465 = call ptr @strerror(i32 noundef %8464) #12
  %8466 = call ptr @__errno_location() #13
  %8467 = load i32, ptr %8466, align 4, !tbaa !5
  %8468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8455, ptr noundef @.str.4, i32 noundef %8456, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 610, ptr noundef %8459, ptr noundef %8462, ptr noundef %8465, i32 noundef %8467) #12
  br label %8469

8469:                                             ; preds = %8452, %8435
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #12
  br label %8470

8470:                                             ; preds = %8469
  br label %8471

8471:                                             ; preds = %8470
  call void @exit(i32 noundef 1) #14
  unreachable

8472:                                             ; No predecessors!
  br label %8473

8473:                                             ; preds = %8472
  br label %8474

8474:                                             ; preds = %8473, %8412
  br label %8475

8475:                                             ; preds = %8474
  br label %8476

8476:                                             ; preds = %8475
  br label %8477

8477:                                             ; preds = %8476
  %8478 = load i32, ptr @test_count, align 4, !tbaa !5
  %8479 = add nsw i32 %8478, 1
  store i32 %8479, ptr @test_count, align 4, !tbaa !5
  %8480 = load ptr, ptr %164, align 8, !tbaa !9
  %8481 = call i32 @s2n_negotiate_until_message(ptr noundef %8480, ptr noundef %8, i32 noundef 1)
  %8482 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  store i32 %8481, ptr %8482, align 4
  %8483 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %8484 = load i32, ptr %8483, align 4
  %8485 = call zeroext i1 @s2n_result_is_ok(i32 %8484)
  br i1 %8485, label %8539, label %8486

8486:                                             ; preds = %8477
  br label %8487

8487:                                             ; preds = %8486
  br label %8488

8488:                                             ; preds = %8487
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #12
  %8489 = call ptr @__errno_location() #13
  %8490 = load i32, ptr %8489, align 4, !tbaa !5
  store i32 %8490, ptr %172, align 4, !tbaa !5
  %8491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8492 = call i32 @s2n_print_stacktrace(ptr noundef %8491)
  %8493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8494 = trunc i8 %8493 to i1
  br i1 %8494, label %8495, label %8517

8495:                                             ; preds = %8488
  %8496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8497 = call i32 @fileno(ptr noundef %8496) #12
  %8498 = call i32 @isatty(i32 noundef %8497) #12
  %8499 = icmp ne i32 %8498, 0
  br i1 %8499, label %8500, label %8517

8500:                                             ; preds = %8495
  %8501 = load i32, ptr %172, align 4, !tbaa !5
  %8502 = call ptr @__errno_location() #13
  store i32 %8501, ptr %8502, align 4, !tbaa !5
  %8503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8504 = load i32, ptr @test_count, align 4, !tbaa !5
  %8505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  %8507 = call ptr @s2n_strerror(i32 noundef %8506, ptr noundef @.str.3)
  %8508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8509 = load i32, ptr %8508, align 4, !tbaa !5
  %8510 = call ptr @s2n_strerror_debug(i32 noundef %8509, ptr noundef @.str.3)
  %8511 = call ptr @__errno_location() #13
  %8512 = load i32, ptr %8511, align 4, !tbaa !5
  %8513 = call ptr @strerror(i32 noundef %8512) #12
  %8514 = call ptr @__errno_location() #13
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  %8516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8503, ptr noundef @.str, i32 noundef %8504, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 611, ptr noundef %8507, ptr noundef %8510, ptr noundef %8513, i32 noundef %8515) #12
  br label %8534

8517:                                             ; preds = %8495, %8488
  %8518 = load i32, ptr %172, align 4, !tbaa !5
  %8519 = call ptr @__errno_location() #13
  store i32 %8518, ptr %8519, align 4, !tbaa !5
  %8520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8521 = load i32, ptr @test_count, align 4, !tbaa !5
  %8522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8523 = load i32, ptr %8522, align 4, !tbaa !5
  %8524 = call ptr @s2n_strerror(i32 noundef %8523, ptr noundef @.str.3)
  %8525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8526 = load i32, ptr %8525, align 4, !tbaa !5
  %8527 = call ptr @s2n_strerror_debug(i32 noundef %8526, ptr noundef @.str.3)
  %8528 = call ptr @__errno_location() #13
  %8529 = load i32, ptr %8528, align 4, !tbaa !5
  %8530 = call ptr @strerror(i32 noundef %8529) #12
  %8531 = call ptr @__errno_location() #13
  %8532 = load i32, ptr %8531, align 4, !tbaa !5
  %8533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8520, ptr noundef @.str.4, i32 noundef %8521, ptr noundef @.str.61, ptr noundef @.str.2, i32 noundef 611, ptr noundef %8524, ptr noundef %8527, ptr noundef %8530, i32 noundef %8532) #12
  br label %8534

8534:                                             ; preds = %8517, %8500
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #12
  br label %8535

8535:                                             ; preds = %8534
  br label %8536

8536:                                             ; preds = %8535
  call void @exit(i32 noundef 1) #14
  unreachable

8537:                                             ; No predecessors!
  br label %8538

8538:                                             ; preds = %8537
  br label %8539

8539:                                             ; preds = %8538, %8477
  br label %8540

8540:                                             ; preds = %8539
  br label %8541

8541:                                             ; preds = %8540
  %8542 = load ptr, ptr %164, align 8, !tbaa !9
  %8543 = load i32, ptr %8542, align 8
  %8544 = and i32 %8543, -8193
  %8545 = or i32 %8544, 0
  store i32 %8545, ptr %8542, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %173) #12
  store i8 0, ptr %173, align 1, !tbaa !51
  br label %8546

8546:                                             ; preds = %8541
  %8547 = load i32, ptr @test_count, align 4, !tbaa !5
  %8548 = add nsw i32 %8547, 1
  store i32 %8548, ptr @test_count, align 4, !tbaa !5
  %8549 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 23, ptr noundef %173)
  %8550 = icmp eq i32 %8549, -1
  br i1 %8550, label %8551, label %8604

8551:                                             ; preds = %8546
  br label %8552

8552:                                             ; preds = %8551
  br label %8553

8553:                                             ; preds = %8552
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #12
  %8554 = call ptr @__errno_location() #13
  %8555 = load i32, ptr %8554, align 4, !tbaa !5
  store i32 %8555, ptr %174, align 4, !tbaa !5
  %8556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8557 = call i32 @s2n_print_stacktrace(ptr noundef %8556)
  %8558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8559 = trunc i8 %8558 to i1
  br i1 %8559, label %8560, label %8582

8560:                                             ; preds = %8553
  %8561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8562 = call i32 @fileno(ptr noundef %8561) #12
  %8563 = call i32 @isatty(i32 noundef %8562) #12
  %8564 = icmp ne i32 %8563, 0
  br i1 %8564, label %8565, label %8582

8565:                                             ; preds = %8560
  %8566 = load i32, ptr %174, align 4, !tbaa !5
  %8567 = call ptr @__errno_location() #13
  store i32 %8566, ptr %8567, align 4, !tbaa !5
  %8568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8569 = load i32, ptr @test_count, align 4, !tbaa !5
  %8570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8571 = load i32, ptr %8570, align 4, !tbaa !5
  %8572 = call ptr @s2n_strerror(i32 noundef %8571, ptr noundef @.str.3)
  %8573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8574 = load i32, ptr %8573, align 4, !tbaa !5
  %8575 = call ptr @s2n_strerror_debug(i32 noundef %8574, ptr noundef @.str.3)
  %8576 = call ptr @__errno_location() #13
  %8577 = load i32, ptr %8576, align 4, !tbaa !5
  %8578 = call ptr @strerror(i32 noundef %8577) #12
  %8579 = call ptr @__errno_location() #13
  %8580 = load i32, ptr %8579, align 4, !tbaa !5
  %8581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8568, ptr noundef @.str, i32 noundef %8569, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 617, ptr noundef %8572, ptr noundef %8575, ptr noundef %8578, i32 noundef %8580) #12
  br label %8599

8582:                                             ; preds = %8560, %8553
  %8583 = load i32, ptr %174, align 4, !tbaa !5
  %8584 = call ptr @__errno_location() #13
  store i32 %8583, ptr %8584, align 4, !tbaa !5
  %8585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8586 = load i32, ptr @test_count, align 4, !tbaa !5
  %8587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8588 = load i32, ptr %8587, align 4, !tbaa !5
  %8589 = call ptr @s2n_strerror(i32 noundef %8588, ptr noundef @.str.3)
  %8590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8591 = load i32, ptr %8590, align 4, !tbaa !5
  %8592 = call ptr @s2n_strerror_debug(i32 noundef %8591, ptr noundef @.str.3)
  %8593 = call ptr @__errno_location() #13
  %8594 = load i32, ptr %8593, align 4, !tbaa !5
  %8595 = call ptr @strerror(i32 noundef %8594) #12
  %8596 = call ptr @__errno_location() #13
  %8597 = load i32, ptr %8596, align 4, !tbaa !5
  %8598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8585, ptr noundef @.str.4, i32 noundef %8586, ptr noundef @.str.62, ptr noundef @.str.2, i32 noundef 617, ptr noundef %8589, ptr noundef %8592, ptr noundef %8595, i32 noundef %8597) #12
  br label %8599

8599:                                             ; preds = %8582, %8565
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #12
  br label %8600

8600:                                             ; preds = %8599
  br label %8601

8601:                                             ; preds = %8600
  call void @exit(i32 noundef 1) #14
  unreachable

8602:                                             ; No predecessors!
  br label %8603

8603:                                             ; preds = %8602
  br label %8604

8604:                                             ; preds = %8603, %8546
  br label %8605

8605:                                             ; preds = %8604
  br label %8606

8606:                                             ; preds = %8605
  %8607 = load i8, ptr %173, align 1, !tbaa !51
  %8608 = zext i8 %8607 to i32
  %8609 = srem i32 %8608, 8
  %8610 = shl i32 1, %8609
  %8611 = xor i32 %8610, -1
  %8612 = load ptr, ptr %164, align 8, !tbaa !9
  %8613 = getelementptr inbounds %struct.s2n_connection, ptr %8612, i32 0, i32 11
  %8614 = load i8, ptr %173, align 1, !tbaa !51
  %8615 = zext i8 %8614 to i32
  %8616 = ashr i32 %8615, 3
  %8617 = sext i32 %8616 to i64
  %8618 = getelementptr inbounds [22 x i8], ptr %8613, i64 0, i64 %8617
  %8619 = load i8, ptr %8618, align 1, !tbaa !51
  %8620 = sext i8 %8619 to i32
  %8621 = and i32 %8620, %8611
  %8622 = trunc i32 %8621 to i8
  store i8 %8622, ptr %8618, align 1, !tbaa !51
  br label %8623

8623:                                             ; preds = %8606
  %8624 = load i32, ptr @test_count, align 4, !tbaa !5
  %8625 = add nsw i32 %8624, 1
  store i32 %8625, ptr @test_count, align 4, !tbaa !5
  %8626 = load ptr, ptr %164, align 8, !tbaa !9
  %8627 = load ptr, ptr %161, align 8, !tbaa !9
  %8628 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %8626, ptr noundef %8627)
  %8629 = icmp eq i32 %8628, -1
  br i1 %8629, label %8630, label %8683

8630:                                             ; preds = %8623
  br label %8631

8631:                                             ; preds = %8630
  br label %8632

8632:                                             ; preds = %8631
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #12
  %8633 = call ptr @__errno_location() #13
  %8634 = load i32, ptr %8633, align 4, !tbaa !5
  store i32 %8634, ptr %175, align 4, !tbaa !5
  %8635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8636 = call i32 @s2n_print_stacktrace(ptr noundef %8635)
  %8637 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8638 = trunc i8 %8637 to i1
  br i1 %8638, label %8639, label %8661

8639:                                             ; preds = %8632
  %8640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8641 = call i32 @fileno(ptr noundef %8640) #12
  %8642 = call i32 @isatty(i32 noundef %8641) #12
  %8643 = icmp ne i32 %8642, 0
  br i1 %8643, label %8644, label %8661

8644:                                             ; preds = %8639
  %8645 = load i32, ptr %175, align 4, !tbaa !5
  %8646 = call ptr @__errno_location() #13
  store i32 %8645, ptr %8646, align 4, !tbaa !5
  %8647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8648 = load i32, ptr @test_count, align 4, !tbaa !5
  %8649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  %8651 = call ptr @s2n_strerror(i32 noundef %8650, ptr noundef @.str.3)
  %8652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8653 = load i32, ptr %8652, align 4, !tbaa !5
  %8654 = call ptr @s2n_strerror_debug(i32 noundef %8653, ptr noundef @.str.3)
  %8655 = call ptr @__errno_location() #13
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call ptr @strerror(i32 noundef %8656) #12
  %8658 = call ptr @__errno_location() #13
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8647, ptr noundef @.str, i32 noundef %8648, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 621, ptr noundef %8651, ptr noundef %8654, ptr noundef %8657, i32 noundef %8659) #12
  br label %8678

8661:                                             ; preds = %8639, %8632
  %8662 = load i32, ptr %175, align 4, !tbaa !5
  %8663 = call ptr @__errno_location() #13
  store i32 %8662, ptr %8663, align 4, !tbaa !5
  %8664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8665 = load i32, ptr @test_count, align 4, !tbaa !5
  %8666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call ptr @s2n_strerror(i32 noundef %8667, ptr noundef @.str.3)
  %8669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call ptr @s2n_strerror_debug(i32 noundef %8670, ptr noundef @.str.3)
  %8672 = call ptr @__errno_location() #13
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call ptr @strerror(i32 noundef %8673) #12
  %8675 = call ptr @__errno_location() #13
  %8676 = load i32, ptr %8675, align 4, !tbaa !5
  %8677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8664, ptr noundef @.str.4, i32 noundef %8665, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 621, ptr noundef %8668, ptr noundef %8671, ptr noundef %8674, i32 noundef %8676) #12
  br label %8678

8678:                                             ; preds = %8661, %8644
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #12
  br label %8679

8679:                                             ; preds = %8678
  br label %8680

8680:                                             ; preds = %8679
  call void @exit(i32 noundef 1) #14
  unreachable

8681:                                             ; No predecessors!
  br label %8682

8682:                                             ; preds = %8681
  br label %8683

8683:                                             ; preds = %8682, %8623
  br label %8684

8684:                                             ; preds = %8683
  br label %8685

8685:                                             ; preds = %8684
  br label %8686

8686:                                             ; preds = %8685
  %8687 = load i32, ptr @test_count, align 4, !tbaa !5
  %8688 = add nsw i32 %8687, 1
  store i32 %8688, ptr @test_count, align 4, !tbaa !5
  %8689 = load ptr, ptr %164, align 8, !tbaa !9
  %8690 = getelementptr inbounds %struct.s2n_connection, ptr %8689, i32 0, i32 23
  %8691 = load i8, ptr %8690, align 4, !tbaa !24
  %8692 = zext i8 %8691 to i32
  %8693 = icmp eq i32 %8692, 33
  br i1 %8693, label %8747, label %8694

8694:                                             ; preds = %8686
  br label %8695

8695:                                             ; preds = %8694
  br label %8696

8696:                                             ; preds = %8695
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #12
  %8697 = call ptr @__errno_location() #13
  %8698 = load i32, ptr %8697, align 4, !tbaa !5
  store i32 %8698, ptr %176, align 4, !tbaa !5
  %8699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8700 = call i32 @s2n_print_stacktrace(ptr noundef %8699)
  %8701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8702 = trunc i8 %8701 to i1
  br i1 %8702, label %8703, label %8725

8703:                                             ; preds = %8696
  %8704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8705 = call i32 @fileno(ptr noundef %8704) #12
  %8706 = call i32 @isatty(i32 noundef %8705) #12
  %8707 = icmp ne i32 %8706, 0
  br i1 %8707, label %8708, label %8725

8708:                                             ; preds = %8703
  %8709 = load i32, ptr %176, align 4, !tbaa !5
  %8710 = call ptr @__errno_location() #13
  store i32 %8709, ptr %8710, align 4, !tbaa !5
  %8711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8712 = load i32, ptr @test_count, align 4, !tbaa !5
  %8713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8714 = load i32, ptr %8713, align 4, !tbaa !5
  %8715 = call ptr @s2n_strerror(i32 noundef %8714, ptr noundef @.str.3)
  %8716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8717 = load i32, ptr %8716, align 4, !tbaa !5
  %8718 = call ptr @s2n_strerror_debug(i32 noundef %8717, ptr noundef @.str.3)
  %8719 = call ptr @__errno_location() #13
  %8720 = load i32, ptr %8719, align 4, !tbaa !5
  %8721 = call ptr @strerror(i32 noundef %8720) #12
  %8722 = call ptr @__errno_location() #13
  %8723 = load i32, ptr %8722, align 4, !tbaa !5
  %8724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8711, ptr noundef @.str, i32 noundef %8712, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 622, ptr noundef %8715, ptr noundef %8718, ptr noundef %8721, i32 noundef %8723) #12
  br label %8742

8725:                                             ; preds = %8703, %8696
  %8726 = load i32, ptr %176, align 4, !tbaa !5
  %8727 = call ptr @__errno_location() #13
  store i32 %8726, ptr %8727, align 4, !tbaa !5
  %8728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8729 = load i32, ptr @test_count, align 4, !tbaa !5
  %8730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8731 = load i32, ptr %8730, align 4, !tbaa !5
  %8732 = call ptr @s2n_strerror(i32 noundef %8731, ptr noundef @.str.3)
  %8733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8734 = load i32, ptr %8733, align 4, !tbaa !5
  %8735 = call ptr @s2n_strerror_debug(i32 noundef %8734, ptr noundef @.str.3)
  %8736 = call ptr @__errno_location() #13
  %8737 = load i32, ptr %8736, align 4, !tbaa !5
  %8738 = call ptr @strerror(i32 noundef %8737) #12
  %8739 = call ptr @__errno_location() #13
  %8740 = load i32, ptr %8739, align 4, !tbaa !5
  %8741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8728, ptr noundef @.str.4, i32 noundef %8729, ptr noundef @.str.64, ptr noundef @.str.2, i32 noundef 622, ptr noundef %8732, ptr noundef %8735, ptr noundef %8738, i32 noundef %8740) #12
  br label %8742

8742:                                             ; preds = %8725, %8708
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #12
  br label %8743

8743:                                             ; preds = %8742
  br label %8744

8744:                                             ; preds = %8743
  call void @exit(i32 noundef 1) #14
  unreachable

8745:                                             ; No predecessors!
  br label %8746

8746:                                             ; preds = %8745
  br label %8747

8747:                                             ; preds = %8746, %8686
  br label %8748

8748:                                             ; preds = %8747
  br label %8749

8749:                                             ; preds = %8748
  br label %8750

8750:                                             ; preds = %8749
  %8751 = load i32, ptr @test_count, align 4, !tbaa !5
  %8752 = add nsw i32 %8751, 1
  store i32 %8752, ptr @test_count, align 4, !tbaa !5
  %8753 = load ptr, ptr %161, align 8, !tbaa !9
  %8754 = getelementptr inbounds %struct.s2n_connection, ptr %8753, i32 0, i32 23
  %8755 = load i8, ptr %8754, align 4, !tbaa !24
  %8756 = zext i8 %8755 to i32
  %8757 = icmp eq i32 %8756, 33
  br i1 %8757, label %8811, label %8758

8758:                                             ; preds = %8750
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

8760:                                             ; preds = %8759
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #12
  %8761 = call ptr @__errno_location() #13
  %8762 = load i32, ptr %8761, align 4, !tbaa !5
  store i32 %8762, ptr %177, align 4, !tbaa !5
  %8763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8764 = call i32 @s2n_print_stacktrace(ptr noundef %8763)
  %8765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8766 = trunc i8 %8765 to i1
  br i1 %8766, label %8767, label %8789

8767:                                             ; preds = %8760
  %8768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8769 = call i32 @fileno(ptr noundef %8768) #12
  %8770 = call i32 @isatty(i32 noundef %8769) #12
  %8771 = icmp ne i32 %8770, 0
  br i1 %8771, label %8772, label %8789

8772:                                             ; preds = %8767
  %8773 = load i32, ptr %177, align 4, !tbaa !5
  %8774 = call ptr @__errno_location() #13
  store i32 %8773, ptr %8774, align 4, !tbaa !5
  %8775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8776 = load i32, ptr @test_count, align 4, !tbaa !5
  %8777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8778 = load i32, ptr %8777, align 4, !tbaa !5
  %8779 = call ptr @s2n_strerror(i32 noundef %8778, ptr noundef @.str.3)
  %8780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8781 = load i32, ptr %8780, align 4, !tbaa !5
  %8782 = call ptr @s2n_strerror_debug(i32 noundef %8781, ptr noundef @.str.3)
  %8783 = call ptr @__errno_location() #13
  %8784 = load i32, ptr %8783, align 4, !tbaa !5
  %8785 = call ptr @strerror(i32 noundef %8784) #12
  %8786 = call ptr @__errno_location() #13
  %8787 = load i32, ptr %8786, align 4, !tbaa !5
  %8788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8775, ptr noundef @.str, i32 noundef %8776, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 623, ptr noundef %8779, ptr noundef %8782, ptr noundef %8785, i32 noundef %8787) #12
  br label %8806

8789:                                             ; preds = %8767, %8760
  %8790 = load i32, ptr %177, align 4, !tbaa !5
  %8791 = call ptr @__errno_location() #13
  store i32 %8790, ptr %8791, align 4, !tbaa !5
  %8792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8793 = load i32, ptr @test_count, align 4, !tbaa !5
  %8794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8795 = load i32, ptr %8794, align 4, !tbaa !5
  %8796 = call ptr @s2n_strerror(i32 noundef %8795, ptr noundef @.str.3)
  %8797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8798 = load i32, ptr %8797, align 4, !tbaa !5
  %8799 = call ptr @s2n_strerror_debug(i32 noundef %8798, ptr noundef @.str.3)
  %8800 = call ptr @__errno_location() #13
  %8801 = load i32, ptr %8800, align 4, !tbaa !5
  %8802 = call ptr @strerror(i32 noundef %8801) #12
  %8803 = call ptr @__errno_location() #13
  %8804 = load i32, ptr %8803, align 4, !tbaa !5
  %8805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8792, ptr noundef @.str.4, i32 noundef %8793, ptr noundef @.str.65, ptr noundef @.str.2, i32 noundef 623, ptr noundef %8796, ptr noundef %8799, ptr noundef %8802, i32 noundef %8804) #12
  br label %8806

8806:                                             ; preds = %8789, %8772
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #12
  br label %8807

8807:                                             ; preds = %8806
  br label %8808

8808:                                             ; preds = %8807
  call void @exit(i32 noundef 1) #14
  unreachable

8809:                                             ; No predecessors!
  br label %8810

8810:                                             ; preds = %8809
  br label %8811

8811:                                             ; preds = %8810, %8750
  br label %8812

8812:                                             ; preds = %8811
  br label %8813

8813:                                             ; preds = %8812
  br label %8814

8814:                                             ; preds = %8813
  %8815 = load i32, ptr @test_count, align 4, !tbaa !5
  %8816 = add nsw i32 %8815, 1
  store i32 %8816, ptr @test_count, align 4, !tbaa !5
  %8817 = load ptr, ptr %164, align 8, !tbaa !9
  %8818 = load i32, ptr %8817, align 8
  %8819 = lshr i32 %8818, 13
  %8820 = and i32 %8819, 1
  %8821 = icmp ne i32 %8820, 0
  br i1 %8821, label %8822, label %8875

8822:                                             ; preds = %8814
  br label %8823

8823:                                             ; preds = %8822
  br label %8824

8824:                                             ; preds = %8823
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #12
  %8825 = call ptr @__errno_location() #13
  %8826 = load i32, ptr %8825, align 4, !tbaa !5
  store i32 %8826, ptr %178, align 4, !tbaa !5
  %8827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8828 = call i32 @s2n_print_stacktrace(ptr noundef %8827)
  %8829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8830 = trunc i8 %8829 to i1
  br i1 %8830, label %8831, label %8853

8831:                                             ; preds = %8824
  %8832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8833 = call i32 @fileno(ptr noundef %8832) #12
  %8834 = call i32 @isatty(i32 noundef %8833) #12
  %8835 = icmp ne i32 %8834, 0
  br i1 %8835, label %8836, label %8853

8836:                                             ; preds = %8831
  %8837 = load i32, ptr %178, align 4, !tbaa !5
  %8838 = call ptr @__errno_location() #13
  store i32 %8837, ptr %8838, align 4, !tbaa !5
  %8839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8840 = load i32, ptr @test_count, align 4, !tbaa !5
  %8841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8842 = load i32, ptr %8841, align 4, !tbaa !5
  %8843 = call ptr @s2n_strerror(i32 noundef %8842, ptr noundef @.str.3)
  %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_debug(i32 noundef %8845, ptr noundef @.str.3)
  %8847 = call ptr @__errno_location() #13
  %8848 = load i32, ptr %8847, align 4, !tbaa !5
  %8849 = call ptr @strerror(i32 noundef %8848) #12
  %8850 = call ptr @__errno_location() #13
  %8851 = load i32, ptr %8850, align 4, !tbaa !5
  %8852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8839, ptr noundef @.str, i32 noundef %8840, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 624, ptr noundef %8843, ptr noundef %8846, ptr noundef %8849, i32 noundef %8851) #12
  br label %8870

8853:                                             ; preds = %8831, %8824
  %8854 = load i32, ptr %178, align 4, !tbaa !5
  %8855 = call ptr @__errno_location() #13
  store i32 %8854, ptr %8855, align 4, !tbaa !5
  %8856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8857 = load i32, ptr @test_count, align 4, !tbaa !5
  %8858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call ptr @s2n_strerror(i32 noundef %8859, ptr noundef @.str.3)
  %8861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call ptr @s2n_strerror_debug(i32 noundef %8862, ptr noundef @.str.3)
  %8864 = call ptr @__errno_location() #13
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call ptr @strerror(i32 noundef %8865) #12
  %8867 = call ptr @__errno_location() #13
  %8868 = load i32, ptr %8867, align 4, !tbaa !5
  %8869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8856, ptr noundef @.str.4, i32 noundef %8857, ptr noundef @.str.66, ptr noundef @.str.2, i32 noundef 624, ptr noundef %8860, ptr noundef %8863, ptr noundef %8866, i32 noundef %8868) #12
  br label %8870

8870:                                             ; preds = %8853, %8836
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #12
  br label %8871

8871:                                             ; preds = %8870
  br label %8872

8872:                                             ; preds = %8871
  call void @exit(i32 noundef 1) #14
  unreachable

8873:                                             ; No predecessors!
  br label %8874

8874:                                             ; preds = %8873
  br label %8875

8875:                                             ; preds = %8874, %8814
  br label %8876

8876:                                             ; preds = %8875
  br label %8877

8877:                                             ; preds = %8876
  br label %8878

8878:                                             ; preds = %8877
  %8879 = load i32, ptr @test_count, align 4, !tbaa !5
  %8880 = add nsw i32 %8879, 1
  store i32 %8880, ptr @test_count, align 4, !tbaa !5
  %8881 = load ptr, ptr %161, align 8, !tbaa !9
  %8882 = load i32, ptr %8881, align 8
  %8883 = lshr i32 %8882, 13
  %8884 = and i32 %8883, 1
  %8885 = icmp ne i32 %8884, 0
  br i1 %8885, label %8886, label %8939

8886:                                             ; preds = %8878
  br label %8887

8887:                                             ; preds = %8886
  br label %8888

8888:                                             ; preds = %8887
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #12
  %8889 = call ptr @__errno_location() #13
  %8890 = load i32, ptr %8889, align 4, !tbaa !5
  store i32 %8890, ptr %179, align 4, !tbaa !5
  %8891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8892 = call i32 @s2n_print_stacktrace(ptr noundef %8891)
  %8893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8894 = trunc i8 %8893 to i1
  br i1 %8894, label %8895, label %8917

8895:                                             ; preds = %8888
  %8896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8897 = call i32 @fileno(ptr noundef %8896) #12
  %8898 = call i32 @isatty(i32 noundef %8897) #12
  %8899 = icmp ne i32 %8898, 0
  br i1 %8899, label %8900, label %8917

8900:                                             ; preds = %8895
  %8901 = load i32, ptr %179, align 4, !tbaa !5
  %8902 = call ptr @__errno_location() #13
  store i32 %8901, ptr %8902, align 4, !tbaa !5
  %8903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8904 = load i32, ptr @test_count, align 4, !tbaa !5
  %8905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8906 = load i32, ptr %8905, align 4, !tbaa !5
  %8907 = call ptr @s2n_strerror(i32 noundef %8906, ptr noundef @.str.3)
  %8908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8909 = load i32, ptr %8908, align 4, !tbaa !5
  %8910 = call ptr @s2n_strerror_debug(i32 noundef %8909, ptr noundef @.str.3)
  %8911 = call ptr @__errno_location() #13
  %8912 = load i32, ptr %8911, align 4, !tbaa !5
  %8913 = call ptr @strerror(i32 noundef %8912) #12
  %8914 = call ptr @__errno_location() #13
  %8915 = load i32, ptr %8914, align 4, !tbaa !5
  %8916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8903, ptr noundef @.str, i32 noundef %8904, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 625, ptr noundef %8907, ptr noundef %8910, ptr noundef %8913, i32 noundef %8915) #12
  br label %8934

8917:                                             ; preds = %8895, %8888
  %8918 = load i32, ptr %179, align 4, !tbaa !5
  %8919 = call ptr @__errno_location() #13
  store i32 %8918, ptr %8919, align 4, !tbaa !5
  %8920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8921 = load i32, ptr @test_count, align 4, !tbaa !5
  %8922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8923 = load i32, ptr %8922, align 4, !tbaa !5
  %8924 = call ptr @s2n_strerror(i32 noundef %8923, ptr noundef @.str.3)
  %8925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8926 = load i32, ptr %8925, align 4, !tbaa !5
  %8927 = call ptr @s2n_strerror_debug(i32 noundef %8926, ptr noundef @.str.3)
  %8928 = call ptr @__errno_location() #13
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  %8930 = call ptr @strerror(i32 noundef %8929) #12
  %8931 = call ptr @__errno_location() #13
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8920, ptr noundef @.str.4, i32 noundef %8921, ptr noundef @.str.67, ptr noundef @.str.2, i32 noundef 625, ptr noundef %8924, ptr noundef %8927, ptr noundef %8930, i32 noundef %8932) #12
  br label %8934

8934:                                             ; preds = %8917, %8900
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #12
  br label %8935

8935:                                             ; preds = %8934
  br label %8936

8936:                                             ; preds = %8935
  call void @exit(i32 noundef 1) #14
  unreachable

8937:                                             ; No predecessors!
  br label %8938

8938:                                             ; preds = %8937
  br label %8939

8939:                                             ; preds = %8938, %8878
  br label %8940

8940:                                             ; preds = %8939
  br label %8941

8941:                                             ; preds = %8940
  br label %8942

8942:                                             ; preds = %8941
  %8943 = load i32, ptr @test_count, align 4, !tbaa !5
  %8944 = add nsw i32 %8943, 1
  store i32 %8944, ptr @test_count, align 4, !tbaa !5
  %8945 = load ptr, ptr %164, align 8, !tbaa !9
  %8946 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %8945, i32 noundef 2)
  br i1 %8946, label %9000, label %8947

8947:                                             ; preds = %8942
  br label %8948

8948:                                             ; preds = %8947
  br label %8949

8949:                                             ; preds = %8948
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #12
  %8950 = call ptr @__errno_location() #13
  %8951 = load i32, ptr %8950, align 4, !tbaa !5
  store i32 %8951, ptr %180, align 4, !tbaa !5
  %8952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8953 = call i32 @s2n_print_stacktrace(ptr noundef %8952)
  %8954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %8955 = trunc i8 %8954 to i1
  br i1 %8955, label %8956, label %8978

8956:                                             ; preds = %8949
  %8957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8958 = call i32 @fileno(ptr noundef %8957) #12
  %8959 = call i32 @isatty(i32 noundef %8958) #12
  %8960 = icmp ne i32 %8959, 0
  br i1 %8960, label %8961, label %8978

8961:                                             ; preds = %8956
  %8962 = load i32, ptr %180, align 4, !tbaa !5
  %8963 = call ptr @__errno_location() #13
  store i32 %8962, ptr %8963, align 4, !tbaa !5
  %8964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8965 = load i32, ptr @test_count, align 4, !tbaa !5
  %8966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8967 = load i32, ptr %8966, align 4, !tbaa !5
  %8968 = call ptr @s2n_strerror(i32 noundef %8967, ptr noundef @.str.3)
  %8969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  %8971 = call ptr @s2n_strerror_debug(i32 noundef %8970, ptr noundef @.str.3)
  %8972 = call ptr @__errno_location() #13
  %8973 = load i32, ptr %8972, align 4, !tbaa !5
  %8974 = call ptr @strerror(i32 noundef %8973) #12
  %8975 = call ptr @__errno_location() #13
  %8976 = load i32, ptr %8975, align 4, !tbaa !5
  %8977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8964, ptr noundef @.str, i32 noundef %8965, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 626, ptr noundef %8968, ptr noundef %8971, ptr noundef %8974, i32 noundef %8976) #12
  br label %8995

8978:                                             ; preds = %8956, %8949
  %8979 = load i32, ptr %180, align 4, !tbaa !5
  %8980 = call ptr @__errno_location() #13
  store i32 %8979, ptr %8980, align 4, !tbaa !5
  %8981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8982 = load i32, ptr @test_count, align 4, !tbaa !5
  %8983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call ptr @s2n_strerror(i32 noundef %8984, ptr noundef @.str.3)
  %8986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8987 = load i32, ptr %8986, align 4, !tbaa !5
  %8988 = call ptr @s2n_strerror_debug(i32 noundef %8987, ptr noundef @.str.3)
  %8989 = call ptr @__errno_location() #13
  %8990 = load i32, ptr %8989, align 4, !tbaa !5
  %8991 = call ptr @strerror(i32 noundef %8990) #12
  %8992 = call ptr @__errno_location() #13
  %8993 = load i32, ptr %8992, align 4, !tbaa !5
  %8994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8981, ptr noundef @.str.4, i32 noundef %8982, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 626, ptr noundef %8985, ptr noundef %8988, ptr noundef %8991, i32 noundef %8993) #12
  br label %8995

8995:                                             ; preds = %8978, %8961
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #12
  br label %8996

8996:                                             ; preds = %8995
  br label %8997

8997:                                             ; preds = %8996
  call void @exit(i32 noundef 1) #14
  unreachable

8998:                                             ; No predecessors!
  br label %8999

8999:                                             ; preds = %8998
  br label %9000

9000:                                             ; preds = %8999, %8942
  br label %9001

9001:                                             ; preds = %9000
  br label %9002

9002:                                             ; preds = %9001
  br label %9003

9003:                                             ; preds = %9002
  %9004 = load i32, ptr @test_count, align 4, !tbaa !5
  %9005 = add nsw i32 %9004, 1
  store i32 %9005, ptr @test_count, align 4, !tbaa !5
  %9006 = load ptr, ptr %161, align 8, !tbaa !9
  %9007 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %9006, i32 noundef 2)
  br i1 %9007, label %9061, label %9008

9008:                                             ; preds = %9003
  br label %9009

9009:                                             ; preds = %9008
  br label %9010

9010:                                             ; preds = %9009
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #12
  %9011 = call ptr @__errno_location() #13
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  store i32 %9012, ptr %181, align 4, !tbaa !5
  %9013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9014 = call i32 @s2n_print_stacktrace(ptr noundef %9013)
  %9015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9016 = trunc i8 %9015 to i1
  br i1 %9016, label %9017, label %9039

9017:                                             ; preds = %9010
  %9018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9019 = call i32 @fileno(ptr noundef %9018) #12
  %9020 = call i32 @isatty(i32 noundef %9019) #12
  %9021 = icmp ne i32 %9020, 0
  br i1 %9021, label %9022, label %9039

9022:                                             ; preds = %9017
  %9023 = load i32, ptr %181, align 4, !tbaa !5
  %9024 = call ptr @__errno_location() #13
  store i32 %9023, ptr %9024, align 4, !tbaa !5
  %9025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9026 = load i32, ptr @test_count, align 4, !tbaa !5
  %9027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9028 = load i32, ptr %9027, align 4, !tbaa !5
  %9029 = call ptr @s2n_strerror(i32 noundef %9028, ptr noundef @.str.3)
  %9030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9031 = load i32, ptr %9030, align 4, !tbaa !5
  %9032 = call ptr @s2n_strerror_debug(i32 noundef %9031, ptr noundef @.str.3)
  %9033 = call ptr @__errno_location() #13
  %9034 = load i32, ptr %9033, align 4, !tbaa !5
  %9035 = call ptr @strerror(i32 noundef %9034) #12
  %9036 = call ptr @__errno_location() #13
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9025, ptr noundef @.str, i32 noundef %9026, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 627, ptr noundef %9029, ptr noundef %9032, ptr noundef %9035, i32 noundef %9037) #12
  br label %9056

9039:                                             ; preds = %9017, %9010
  %9040 = load i32, ptr %181, align 4, !tbaa !5
  %9041 = call ptr @__errno_location() #13
  store i32 %9040, ptr %9041, align 4, !tbaa !5
  %9042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9043 = load i32, ptr @test_count, align 4, !tbaa !5
  %9044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9045 = load i32, ptr %9044, align 4, !tbaa !5
  %9046 = call ptr @s2n_strerror(i32 noundef %9045, ptr noundef @.str.3)
  %9047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9048 = load i32, ptr %9047, align 4, !tbaa !5
  %9049 = call ptr @s2n_strerror_debug(i32 noundef %9048, ptr noundef @.str.3)
  %9050 = call ptr @__errno_location() #13
  %9051 = load i32, ptr %9050, align 4, !tbaa !5
  %9052 = call ptr @strerror(i32 noundef %9051) #12
  %9053 = call ptr @__errno_location() #13
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9042, ptr noundef @.str.4, i32 noundef %9043, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 627, ptr noundef %9046, ptr noundef %9049, ptr noundef %9052, i32 noundef %9054) #12
  br label %9056

9056:                                             ; preds = %9039, %9022
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #12
  br label %9057

9057:                                             ; preds = %9056
  br label %9058

9058:                                             ; preds = %9057
  call void @exit(i32 noundef 1) #14
  unreachable

9059:                                             ; No predecessors!
  br label %9060

9060:                                             ; preds = %9059
  br label %9061

9061:                                             ; preds = %9060, %9003
  br label %9062

9062:                                             ; preds = %9061
  br label %9063

9063:                                             ; preds = %9062
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #12
  %9064 = load ptr, ptr %161, align 8, !tbaa !9
  %9065 = call i32 @s2n_connection_get_session_length(ptr noundef %9064)
  %9066 = sext i32 %9065 to i64
  store i64 %9066, ptr %182, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 202, ptr %183) #12
  call void @llvm.memset.p0.i64(ptr align 16 %183, i8 0, i64 202, i1 false)
  br label %9067

9067:                                             ; preds = %9063
  %9068 = load i32, ptr @test_count, align 4, !tbaa !5
  %9069 = add nsw i32 %9068, 1
  store i32 %9069, ptr @test_count, align 4, !tbaa !5
  %9070 = load ptr, ptr %161, align 8, !tbaa !9
  %9071 = getelementptr inbounds [202 x i8], ptr %183, i64 0, i64 0
  %9072 = load i64, ptr %182, align 8, !tbaa !11
  %9073 = call i32 @s2n_connection_get_session(ptr noundef %9070, ptr noundef %9071, i64 noundef %9072)
  %9074 = icmp eq i32 %9073, -1
  br i1 %9074, label %9075, label %9128

9075:                                             ; preds = %9067
  br label %9076

9076:                                             ; preds = %9075
  br label %9077

9077:                                             ; preds = %9076
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #12
  %9078 = call ptr @__errno_location() #13
  %9079 = load i32, ptr %9078, align 4, !tbaa !5
  store i32 %9079, ptr %184, align 4, !tbaa !5
  %9080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9081 = call i32 @s2n_print_stacktrace(ptr noundef %9080)
  %9082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9083 = trunc i8 %9082 to i1
  br i1 %9083, label %9084, label %9106

9084:                                             ; preds = %9077
  %9085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9086 = call i32 @fileno(ptr noundef %9085) #12
  %9087 = call i32 @isatty(i32 noundef %9086) #12
  %9088 = icmp ne i32 %9087, 0
  br i1 %9088, label %9089, label %9106

9089:                                             ; preds = %9084
  %9090 = load i32, ptr %184, align 4, !tbaa !5
  %9091 = call ptr @__errno_location() #13
  store i32 %9090, ptr %9091, align 4, !tbaa !5
  %9092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9093 = load i32, ptr @test_count, align 4, !tbaa !5
  %9094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9095 = load i32, ptr %9094, align 4, !tbaa !5
  %9096 = call ptr @s2n_strerror(i32 noundef %9095, ptr noundef @.str.3)
  %9097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9098 = load i32, ptr %9097, align 4, !tbaa !5
  %9099 = call ptr @s2n_strerror_debug(i32 noundef %9098, ptr noundef @.str.3)
  %9100 = call ptr @__errno_location() #13
  %9101 = load i32, ptr %9100, align 4, !tbaa !5
  %9102 = call ptr @strerror(i32 noundef %9101) #12
  %9103 = call ptr @__errno_location() #13
  %9104 = load i32, ptr %9103, align 4, !tbaa !5
  %9105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9092, ptr noundef @.str, i32 noundef %9093, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 631, ptr noundef %9096, ptr noundef %9099, ptr noundef %9102, i32 noundef %9104) #12
  br label %9123

9106:                                             ; preds = %9084, %9077
  %9107 = load i32, ptr %184, align 4, !tbaa !5
  %9108 = call ptr @__errno_location() #13
  store i32 %9107, ptr %9108, align 4, !tbaa !5
  %9109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9110 = load i32, ptr @test_count, align 4, !tbaa !5
  %9111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9112 = load i32, ptr %9111, align 4, !tbaa !5
  %9113 = call ptr @s2n_strerror(i32 noundef %9112, ptr noundef @.str.3)
  %9114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9115 = load i32, ptr %9114, align 4, !tbaa !5
  %9116 = call ptr @s2n_strerror_debug(i32 noundef %9115, ptr noundef @.str.3)
  %9117 = call ptr @__errno_location() #13
  %9118 = load i32, ptr %9117, align 4, !tbaa !5
  %9119 = call ptr @strerror(i32 noundef %9118) #12
  %9120 = call ptr @__errno_location() #13
  %9121 = load i32, ptr %9120, align 4, !tbaa !5
  %9122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9109, ptr noundef @.str.4, i32 noundef %9110, ptr noundef @.str.70, ptr noundef @.str.2, i32 noundef 631, ptr noundef %9113, ptr noundef %9116, ptr noundef %9119, i32 noundef %9121) #12
  br label %9123

9123:                                             ; preds = %9106, %9089
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #12
  br label %9124

9124:                                             ; preds = %9123
  br label %9125

9125:                                             ; preds = %9124
  call void @exit(i32 noundef 1) #14
  unreachable

9126:                                             ; No predecessors!
  br label %9127

9127:                                             ; preds = %9126
  br label %9128

9128:                                             ; preds = %9127, %9067
  br label %9129

9129:                                             ; preds = %9128
  br label %9130

9130:                                             ; preds = %9129
  br label %9131

9131:                                             ; preds = %9130
  %9132 = load i32, ptr @test_count, align 4, !tbaa !5
  %9133 = add nsw i32 %9132, 1
  store i32 %9133, ptr @test_count, align 4, !tbaa !5
  %9134 = load ptr, ptr %164, align 8, !tbaa !9
  %9135 = call i32 @s2n_connection_wipe(ptr noundef %9134)
  %9136 = icmp eq i32 %9135, -1
  br i1 %9136, label %9137, label %9190

9137:                                             ; preds = %9131
  br label %9138

9138:                                             ; preds = %9137
  br label %9139

9139:                                             ; preds = %9138
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #12
  %9140 = call ptr @__errno_location() #13
  %9141 = load i32, ptr %9140, align 4, !tbaa !5
  store i32 %9141, ptr %185, align 4, !tbaa !5
  %9142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9143 = call i32 @s2n_print_stacktrace(ptr noundef %9142)
  %9144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9145 = trunc i8 %9144 to i1
  br i1 %9145, label %9146, label %9168

9146:                                             ; preds = %9139
  %9147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9148 = call i32 @fileno(ptr noundef %9147) #12
  %9149 = call i32 @isatty(i32 noundef %9148) #12
  %9150 = icmp ne i32 %9149, 0
  br i1 %9150, label %9151, label %9168

9151:                                             ; preds = %9146
  %9152 = load i32, ptr %185, align 4, !tbaa !5
  %9153 = call ptr @__errno_location() #13
  store i32 %9152, ptr %9153, align 4, !tbaa !5
  %9154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9155 = load i32, ptr @test_count, align 4, !tbaa !5
  %9156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9157 = load i32, ptr %9156, align 4, !tbaa !5
  %9158 = call ptr @s2n_strerror(i32 noundef %9157, ptr noundef @.str.3)
  %9159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9160 = load i32, ptr %9159, align 4, !tbaa !5
  %9161 = call ptr @s2n_strerror_debug(i32 noundef %9160, ptr noundef @.str.3)
  %9162 = call ptr @__errno_location() #13
  %9163 = load i32, ptr %9162, align 4, !tbaa !5
  %9164 = call ptr @strerror(i32 noundef %9163) #12
  %9165 = call ptr @__errno_location() #13
  %9166 = load i32, ptr %9165, align 4, !tbaa !5
  %9167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9154, ptr noundef @.str, i32 noundef %9155, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 634, ptr noundef %9158, ptr noundef %9161, ptr noundef %9164, i32 noundef %9166) #12
  br label %9185

9168:                                             ; preds = %9146, %9139
  %9169 = load i32, ptr %185, align 4, !tbaa !5
  %9170 = call ptr @__errno_location() #13
  store i32 %9169, ptr %9170, align 4, !tbaa !5
  %9171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9172 = load i32, ptr @test_count, align 4, !tbaa !5
  %9173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9174 = load i32, ptr %9173, align 4, !tbaa !5
  %9175 = call ptr @s2n_strerror(i32 noundef %9174, ptr noundef @.str.3)
  %9176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9177 = load i32, ptr %9176, align 4, !tbaa !5
  %9178 = call ptr @s2n_strerror_debug(i32 noundef %9177, ptr noundef @.str.3)
  %9179 = call ptr @__errno_location() #13
  %9180 = load i32, ptr %9179, align 4, !tbaa !5
  %9181 = call ptr @strerror(i32 noundef %9180) #12
  %9182 = call ptr @__errno_location() #13
  %9183 = load i32, ptr %9182, align 4, !tbaa !5
  %9184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9171, ptr noundef @.str.4, i32 noundef %9172, ptr noundef @.str.71, ptr noundef @.str.2, i32 noundef 634, ptr noundef %9175, ptr noundef %9178, ptr noundef %9181, i32 noundef %9183) #12
  br label %9185

9185:                                             ; preds = %9168, %9151
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #12
  br label %9186

9186:                                             ; preds = %9185
  br label %9187

9187:                                             ; preds = %9186
  call void @exit(i32 noundef 1) #14
  unreachable

9188:                                             ; No predecessors!
  br label %9189

9189:                                             ; preds = %9188
  br label %9190

9190:                                             ; preds = %9189, %9131
  br label %9191

9191:                                             ; preds = %9190
  br label %9192

9192:                                             ; preds = %9191
  br label %9193

9193:                                             ; preds = %9192
  %9194 = load i32, ptr @test_count, align 4, !tbaa !5
  %9195 = add nsw i32 %9194, 1
  store i32 %9195, ptr @test_count, align 4, !tbaa !5
  %9196 = load ptr, ptr %161, align 8, !tbaa !9
  %9197 = call i32 @s2n_connection_wipe(ptr noundef %9196)
  %9198 = icmp eq i32 %9197, -1
  br i1 %9198, label %9199, label %9252

9199:                                             ; preds = %9193
  br label %9200

9200:                                             ; preds = %9199
  br label %9201

9201:                                             ; preds = %9200
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #12
  %9202 = call ptr @__errno_location() #13
  %9203 = load i32, ptr %9202, align 4, !tbaa !5
  store i32 %9203, ptr %186, align 4, !tbaa !5
  %9204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9205 = call i32 @s2n_print_stacktrace(ptr noundef %9204)
  %9206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9207 = trunc i8 %9206 to i1
  br i1 %9207, label %9208, label %9230

9208:                                             ; preds = %9201
  %9209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9210 = call i32 @fileno(ptr noundef %9209) #12
  %9211 = call i32 @isatty(i32 noundef %9210) #12
  %9212 = icmp ne i32 %9211, 0
  br i1 %9212, label %9213, label %9230

9213:                                             ; preds = %9208
  %9214 = load i32, ptr %186, align 4, !tbaa !5
  %9215 = call ptr @__errno_location() #13
  store i32 %9214, ptr %9215, align 4, !tbaa !5
  %9216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9217 = load i32, ptr @test_count, align 4, !tbaa !5
  %9218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  %9220 = call ptr @s2n_strerror(i32 noundef %9219, ptr noundef @.str.3)
  %9221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call ptr @s2n_strerror_debug(i32 noundef %9222, ptr noundef @.str.3)
  %9224 = call ptr @__errno_location() #13
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  %9226 = call ptr @strerror(i32 noundef %9225) #12
  %9227 = call ptr @__errno_location() #13
  %9228 = load i32, ptr %9227, align 4, !tbaa !5
  %9229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9216, ptr noundef @.str, i32 noundef %9217, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 635, ptr noundef %9220, ptr noundef %9223, ptr noundef %9226, i32 noundef %9228) #12
  br label %9247

9230:                                             ; preds = %9208, %9201
  %9231 = load i32, ptr %186, align 4, !tbaa !5
  %9232 = call ptr @__errno_location() #13
  store i32 %9231, ptr %9232, align 4, !tbaa !5
  %9233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9234 = load i32, ptr @test_count, align 4, !tbaa !5
  %9235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9236 = load i32, ptr %9235, align 4, !tbaa !5
  %9237 = call ptr @s2n_strerror(i32 noundef %9236, ptr noundef @.str.3)
  %9238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9239 = load i32, ptr %9238, align 4, !tbaa !5
  %9240 = call ptr @s2n_strerror_debug(i32 noundef %9239, ptr noundef @.str.3)
  %9241 = call ptr @__errno_location() #13
  %9242 = load i32, ptr %9241, align 4, !tbaa !5
  %9243 = call ptr @strerror(i32 noundef %9242) #12
  %9244 = call ptr @__errno_location() #13
  %9245 = load i32, ptr %9244, align 4, !tbaa !5
  %9246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9233, ptr noundef @.str.4, i32 noundef %9234, ptr noundef @.str.72, ptr noundef @.str.2, i32 noundef 635, ptr noundef %9237, ptr noundef %9240, ptr noundef %9243, i32 noundef %9245) #12
  br label %9247

9247:                                             ; preds = %9230, %9213
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #12
  br label %9248

9248:                                             ; preds = %9247
  br label %9249

9249:                                             ; preds = %9248
  call void @exit(i32 noundef 1) #14
  unreachable

9250:                                             ; No predecessors!
  br label %9251

9251:                                             ; preds = %9250
  br label %9252

9252:                                             ; preds = %9251, %9193
  br label %9253

9253:                                             ; preds = %9252
  br label %9254

9254:                                             ; preds = %9253
  br label %9255

9255:                                             ; preds = %9254
  %9256 = load i32, ptr @test_count, align 4, !tbaa !5
  %9257 = add nsw i32 %9256, 1
  store i32 %9257, ptr @test_count, align 4, !tbaa !5
  %9258 = call i32 @s2n_io_pair_close(ptr noundef %25)
  %9259 = icmp eq i32 %9258, -1
  br i1 %9259, label %9260, label %9313

9260:                                             ; preds = %9255
  br label %9261

9261:                                             ; preds = %9260
  br label %9262

9262:                                             ; preds = %9261
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #12
  %9263 = call ptr @__errno_location() #13
  %9264 = load i32, ptr %9263, align 4, !tbaa !5
  store i32 %9264, ptr %187, align 4, !tbaa !5
  %9265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9266 = call i32 @s2n_print_stacktrace(ptr noundef %9265)
  %9267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9268 = trunc i8 %9267 to i1
  br i1 %9268, label %9269, label %9291

9269:                                             ; preds = %9262
  %9270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9271 = call i32 @fileno(ptr noundef %9270) #12
  %9272 = call i32 @isatty(i32 noundef %9271) #12
  %9273 = icmp ne i32 %9272, 0
  br i1 %9273, label %9274, label %9291

9274:                                             ; preds = %9269
  %9275 = load i32, ptr %187, align 4, !tbaa !5
  %9276 = call ptr @__errno_location() #13
  store i32 %9275, ptr %9276, align 4, !tbaa !5
  %9277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9278 = load i32, ptr @test_count, align 4, !tbaa !5
  %9279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9280 = load i32, ptr %9279, align 4, !tbaa !5
  %9281 = call ptr @s2n_strerror(i32 noundef %9280, ptr noundef @.str.3)
  %9282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9283 = load i32, ptr %9282, align 4, !tbaa !5
  %9284 = call ptr @s2n_strerror_debug(i32 noundef %9283, ptr noundef @.str.3)
  %9285 = call ptr @__errno_location() #13
  %9286 = load i32, ptr %9285, align 4, !tbaa !5
  %9287 = call ptr @strerror(i32 noundef %9286) #12
  %9288 = call ptr @__errno_location() #13
  %9289 = load i32, ptr %9288, align 4, !tbaa !5
  %9290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9277, ptr noundef @.str, i32 noundef %9278, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 636, ptr noundef %9281, ptr noundef %9284, ptr noundef %9287, i32 noundef %9289) #12
  br label %9308

9291:                                             ; preds = %9269, %9262
  %9292 = load i32, ptr %187, align 4, !tbaa !5
  %9293 = call ptr @__errno_location() #13
  store i32 %9292, ptr %9293, align 4, !tbaa !5
  %9294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9295 = load i32, ptr @test_count, align 4, !tbaa !5
  %9296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9297 = load i32, ptr %9296, align 4, !tbaa !5
  %9298 = call ptr @s2n_strerror(i32 noundef %9297, ptr noundef @.str.3)
  %9299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9300 = load i32, ptr %9299, align 4, !tbaa !5
  %9301 = call ptr @s2n_strerror_debug(i32 noundef %9300, ptr noundef @.str.3)
  %9302 = call ptr @__errno_location() #13
  %9303 = load i32, ptr %9302, align 4, !tbaa !5
  %9304 = call ptr @strerror(i32 noundef %9303) #12
  %9305 = call ptr @__errno_location() #13
  %9306 = load i32, ptr %9305, align 4, !tbaa !5
  %9307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9294, ptr noundef @.str.4, i32 noundef %9295, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 636, ptr noundef %9298, ptr noundef %9301, ptr noundef %9304, i32 noundef %9306) #12
  br label %9308

9308:                                             ; preds = %9291, %9274
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #12
  br label %9309

9309:                                             ; preds = %9308
  br label %9310

9310:                                             ; preds = %9309
  call void @exit(i32 noundef 1) #14
  unreachable

9311:                                             ; No predecessors!
  br label %9312

9312:                                             ; preds = %9311
  br label %9313

9313:                                             ; preds = %9312, %9255
  br label %9314

9314:                                             ; preds = %9313
  br label %9315

9315:                                             ; preds = %9314
  br label %9316

9316:                                             ; preds = %9315
  %9317 = load i32, ptr @test_count, align 4, !tbaa !5
  %9318 = add nsw i32 %9317, 1
  store i32 %9318, ptr @test_count, align 4, !tbaa !5
  %9319 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %25)
  %9320 = icmp eq i32 %9319, -1
  br i1 %9320, label %9321, label %9374

9321:                                             ; preds = %9316
  br label %9322

9322:                                             ; preds = %9321
  br label %9323

9323:                                             ; preds = %9322
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #12
  %9324 = call ptr @__errno_location() #13
  %9325 = load i32, ptr %9324, align 4, !tbaa !5
  store i32 %9325, ptr %188, align 4, !tbaa !5
  %9326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9327 = call i32 @s2n_print_stacktrace(ptr noundef %9326)
  %9328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9329 = trunc i8 %9328 to i1
  br i1 %9329, label %9330, label %9352

9330:                                             ; preds = %9323
  %9331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9332 = call i32 @fileno(ptr noundef %9331) #12
  %9333 = call i32 @isatty(i32 noundef %9332) #12
  %9334 = icmp ne i32 %9333, 0
  br i1 %9334, label %9335, label %9352

9335:                                             ; preds = %9330
  %9336 = load i32, ptr %188, align 4, !tbaa !5
  %9337 = call ptr @__errno_location() #13
  store i32 %9336, ptr %9337, align 4, !tbaa !5
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = load i32, ptr @test_count, align 4, !tbaa !5
  %9340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9341 = load i32, ptr %9340, align 4, !tbaa !5
  %9342 = call ptr @s2n_strerror(i32 noundef %9341, ptr noundef @.str.3)
  %9343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9344 = load i32, ptr %9343, align 4, !tbaa !5
  %9345 = call ptr @s2n_strerror_debug(i32 noundef %9344, ptr noundef @.str.3)
  %9346 = call ptr @__errno_location() #13
  %9347 = load i32, ptr %9346, align 4, !tbaa !5
  %9348 = call ptr @strerror(i32 noundef %9347) #12
  %9349 = call ptr @__errno_location() #13
  %9350 = load i32, ptr %9349, align 4, !tbaa !5
  %9351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9338, ptr noundef @.str, i32 noundef %9339, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 637, ptr noundef %9342, ptr noundef %9345, ptr noundef %9348, i32 noundef %9350) #12
  br label %9369

9352:                                             ; preds = %9330, %9323
  %9353 = load i32, ptr %188, align 4, !tbaa !5
  %9354 = call ptr @__errno_location() #13
  store i32 %9353, ptr %9354, align 4, !tbaa !5
  %9355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9356 = load i32, ptr @test_count, align 4, !tbaa !5
  %9357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9358 = load i32, ptr %9357, align 4, !tbaa !5
  %9359 = call ptr @s2n_strerror(i32 noundef %9358, ptr noundef @.str.3)
  %9360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror_debug(i32 noundef %9361, ptr noundef @.str.3)
  %9363 = call ptr @__errno_location() #13
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @strerror(i32 noundef %9364) #12
  %9366 = call ptr @__errno_location() #13
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9355, ptr noundef @.str.4, i32 noundef %9356, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 637, ptr noundef %9359, ptr noundef %9362, ptr noundef %9365, i32 noundef %9367) #12
  br label %9369

9369:                                             ; preds = %9352, %9335
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #12
  br label %9370

9370:                                             ; preds = %9369
  br label %9371

9371:                                             ; preds = %9370
  call void @exit(i32 noundef 1) #14
  unreachable

9372:                                             ; No predecessors!
  br label %9373

9373:                                             ; preds = %9372
  br label %9374

9374:                                             ; preds = %9373, %9316
  br label %9375

9375:                                             ; preds = %9374
  br label %9376

9376:                                             ; preds = %9375
  br label %9377

9377:                                             ; preds = %9376
  %9378 = load i32, ptr @test_count, align 4, !tbaa !5
  %9379 = add nsw i32 %9378, 1
  store i32 %9379, ptr @test_count, align 4, !tbaa !5
  %9380 = load ptr, ptr %161, align 8, !tbaa !9
  %9381 = load ptr, ptr %164, align 8, !tbaa !9
  %9382 = call i32 @s2n_connections_set_io_pair(ptr noundef %9380, ptr noundef %9381, ptr noundef %25)
  %9383 = icmp eq i32 %9382, -1
  br i1 %9383, label %9384, label %9437

9384:                                             ; preds = %9377
  br label %9385

9385:                                             ; preds = %9384
  br label %9386

9386:                                             ; preds = %9385
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #12
  %9387 = call ptr @__errno_location() #13
  %9388 = load i32, ptr %9387, align 4, !tbaa !5
  store i32 %9388, ptr %189, align 4, !tbaa !5
  %9389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9390 = call i32 @s2n_print_stacktrace(ptr noundef %9389)
  %9391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9392 = trunc i8 %9391 to i1
  br i1 %9392, label %9393, label %9415

9393:                                             ; preds = %9386
  %9394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9395 = call i32 @fileno(ptr noundef %9394) #12
  %9396 = call i32 @isatty(i32 noundef %9395) #12
  %9397 = icmp ne i32 %9396, 0
  br i1 %9397, label %9398, label %9415

9398:                                             ; preds = %9393
  %9399 = load i32, ptr %189, align 4, !tbaa !5
  %9400 = call ptr @__errno_location() #13
  store i32 %9399, ptr %9400, align 4, !tbaa !5
  %9401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9402 = load i32, ptr @test_count, align 4, !tbaa !5
  %9403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9404 = load i32, ptr %9403, align 4, !tbaa !5
  %9405 = call ptr @s2n_strerror(i32 noundef %9404, ptr noundef @.str.3)
  %9406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9407 = load i32, ptr %9406, align 4, !tbaa !5
  %9408 = call ptr @s2n_strerror_debug(i32 noundef %9407, ptr noundef @.str.3)
  %9409 = call ptr @__errno_location() #13
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  %9411 = call ptr @strerror(i32 noundef %9410) #12
  %9412 = call ptr @__errno_location() #13
  %9413 = load i32, ptr %9412, align 4, !tbaa !5
  %9414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9401, ptr noundef @.str, i32 noundef %9402, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 638, ptr noundef %9405, ptr noundef %9408, ptr noundef %9411, i32 noundef %9413) #12
  br label %9432

9415:                                             ; preds = %9393, %9386
  %9416 = load i32, ptr %189, align 4, !tbaa !5
  %9417 = call ptr @__errno_location() #13
  store i32 %9416, ptr %9417, align 4, !tbaa !5
  %9418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9419 = load i32, ptr @test_count, align 4, !tbaa !5
  %9420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9421 = load i32, ptr %9420, align 4, !tbaa !5
  %9422 = call ptr @s2n_strerror(i32 noundef %9421, ptr noundef @.str.3)
  %9423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9424 = load i32, ptr %9423, align 4, !tbaa !5
  %9425 = call ptr @s2n_strerror_debug(i32 noundef %9424, ptr noundef @.str.3)
  %9426 = call ptr @__errno_location() #13
  %9427 = load i32, ptr %9426, align 4, !tbaa !5
  %9428 = call ptr @strerror(i32 noundef %9427) #12
  %9429 = call ptr @__errno_location() #13
  %9430 = load i32, ptr %9429, align 4, !tbaa !5
  %9431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9418, ptr noundef @.str.4, i32 noundef %9419, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 638, ptr noundef %9422, ptr noundef %9425, ptr noundef %9428, i32 noundef %9430) #12
  br label %9432

9432:                                             ; preds = %9415, %9398
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #12
  br label %9433

9433:                                             ; preds = %9432
  br label %9434

9434:                                             ; preds = %9433
  call void @exit(i32 noundef 1) #14
  unreachable

9435:                                             ; No predecessors!
  br label %9436

9436:                                             ; preds = %9435
  br label %9437

9437:                                             ; preds = %9436, %9377
  br label %9438

9438:                                             ; preds = %9437
  br label %9439

9439:                                             ; preds = %9438
  br label %9440

9440:                                             ; preds = %9439
  %9441 = load i32, ptr @test_count, align 4, !tbaa !5
  %9442 = add nsw i32 %9441, 1
  store i32 %9442, ptr @test_count, align 4, !tbaa !5
  %9443 = load ptr, ptr %161, align 8, !tbaa !9
  %9444 = getelementptr inbounds [202 x i8], ptr %183, i64 0, i64 0
  %9445 = load i64, ptr %182, align 8, !tbaa !11
  %9446 = call i32 @s2n_connection_set_session(ptr noundef %9443, ptr noundef %9444, i64 noundef %9445)
  %9447 = icmp eq i32 %9446, -1
  br i1 %9447, label %9448, label %9501

9448:                                             ; preds = %9440
  br label %9449

9449:                                             ; preds = %9448
  br label %9450

9450:                                             ; preds = %9449
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #12
  %9451 = call ptr @__errno_location() #13
  %9452 = load i32, ptr %9451, align 4, !tbaa !5
  store i32 %9452, ptr %190, align 4, !tbaa !5
  %9453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9454 = call i32 @s2n_print_stacktrace(ptr noundef %9453)
  %9455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9456 = trunc i8 %9455 to i1
  br i1 %9456, label %9457, label %9479

9457:                                             ; preds = %9450
  %9458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9459 = call i32 @fileno(ptr noundef %9458) #12
  %9460 = call i32 @isatty(i32 noundef %9459) #12
  %9461 = icmp ne i32 %9460, 0
  br i1 %9461, label %9462, label %9479

9462:                                             ; preds = %9457
  %9463 = load i32, ptr %190, align 4, !tbaa !5
  %9464 = call ptr @__errno_location() #13
  store i32 %9463, ptr %9464, align 4, !tbaa !5
  %9465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9466 = load i32, ptr @test_count, align 4, !tbaa !5
  %9467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9468 = load i32, ptr %9467, align 4, !tbaa !5
  %9469 = call ptr @s2n_strerror(i32 noundef %9468, ptr noundef @.str.3)
  %9470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9471 = load i32, ptr %9470, align 4, !tbaa !5
  %9472 = call ptr @s2n_strerror_debug(i32 noundef %9471, ptr noundef @.str.3)
  %9473 = call ptr @__errno_location() #13
  %9474 = load i32, ptr %9473, align 4, !tbaa !5
  %9475 = call ptr @strerror(i32 noundef %9474) #12
  %9476 = call ptr @__errno_location() #13
  %9477 = load i32, ptr %9476, align 4, !tbaa !5
  %9478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9465, ptr noundef @.str, i32 noundef %9466, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 641, ptr noundef %9469, ptr noundef %9472, ptr noundef %9475, i32 noundef %9477) #12
  br label %9496

9479:                                             ; preds = %9457, %9450
  %9480 = load i32, ptr %190, align 4, !tbaa !5
  %9481 = call ptr @__errno_location() #13
  store i32 %9480, ptr %9481, align 4, !tbaa !5
  %9482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9483 = load i32, ptr @test_count, align 4, !tbaa !5
  %9484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9485 = load i32, ptr %9484, align 4, !tbaa !5
  %9486 = call ptr @s2n_strerror(i32 noundef %9485, ptr noundef @.str.3)
  %9487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9488 = load i32, ptr %9487, align 4, !tbaa !5
  %9489 = call ptr @s2n_strerror_debug(i32 noundef %9488, ptr noundef @.str.3)
  %9490 = call ptr @__errno_location() #13
  %9491 = load i32, ptr %9490, align 4, !tbaa !5
  %9492 = call ptr @strerror(i32 noundef %9491) #12
  %9493 = call ptr @__errno_location() #13
  %9494 = load i32, ptr %9493, align 4, !tbaa !5
  %9495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9482, ptr noundef @.str.4, i32 noundef %9483, ptr noundef @.str.74, ptr noundef @.str.2, i32 noundef 641, ptr noundef %9486, ptr noundef %9489, ptr noundef %9492, i32 noundef %9494) #12
  br label %9496

9496:                                             ; preds = %9479, %9462
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #12
  br label %9497

9497:                                             ; preds = %9496
  br label %9498

9498:                                             ; preds = %9497
  call void @exit(i32 noundef 1) #14
  unreachable

9499:                                             ; No predecessors!
  br label %9500

9500:                                             ; preds = %9499
  br label %9501

9501:                                             ; preds = %9500, %9440
  br label %9502

9502:                                             ; preds = %9501
  br label %9503

9503:                                             ; preds = %9502
  %9504 = load ptr, ptr %161, align 8, !tbaa !9
  %9505 = load i32, ptr %9504, align 8
  %9506 = and i32 %9505, -8193
  %9507 = or i32 %9506, 8192
  store i32 %9507, ptr %9504, align 8
  br label %9508

9508:                                             ; preds = %9503
  br label %9509

9509:                                             ; preds = %9508
  br label %9510

9510:                                             ; preds = %9509
  %9511 = load i32, ptr @test_count, align 4, !tbaa !5
  %9512 = add nsw i32 %9511, 1
  store i32 %9512, ptr @test_count, align 4, !tbaa !5
  %9513 = load ptr, ptr %164, align 8, !tbaa !9
  %9514 = load ptr, ptr %161, align 8, !tbaa !9
  %9515 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9513, ptr noundef %9514)
  %9516 = icmp eq i32 %9515, -1
  br i1 %9516, label %9570, label %9517

9517:                                             ; preds = %9510
  br label %9518

9518:                                             ; preds = %9517
  br label %9519

9519:                                             ; preds = %9518
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #12
  %9520 = call ptr @__errno_location() #13
  %9521 = load i32, ptr %9520, align 4, !tbaa !5
  store i32 %9521, ptr %191, align 4, !tbaa !5
  %9522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9523 = call i32 @s2n_print_stacktrace(ptr noundef %9522)
  %9524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9525 = trunc i8 %9524 to i1
  br i1 %9525, label %9526, label %9548

9526:                                             ; preds = %9519
  %9527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9528 = call i32 @fileno(ptr noundef %9527) #12
  %9529 = call i32 @isatty(i32 noundef %9528) #12
  %9530 = icmp ne i32 %9529, 0
  br i1 %9530, label %9531, label %9548

9531:                                             ; preds = %9526
  %9532 = load i32, ptr %191, align 4, !tbaa !5
  %9533 = call ptr @__errno_location() #13
  store i32 %9532, ptr %9533, align 4, !tbaa !5
  %9534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9535 = load i32, ptr @test_count, align 4, !tbaa !5
  %9536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call ptr @s2n_strerror(i32 noundef %9537, ptr noundef @.str.3)
  %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_debug(i32 noundef %9540, ptr noundef @.str.3)
  %9542 = call ptr @__errno_location() #13
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  %9544 = call ptr @strerror(i32 noundef %9543) #12
  %9545 = call ptr @__errno_location() #13
  %9546 = load i32, ptr %9545, align 4, !tbaa !5
  %9547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9534, ptr noundef @.str, i32 noundef %9535, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 645, ptr noundef %9538, ptr noundef %9541, ptr noundef %9544, i32 noundef %9546) #12
  br label %9565

9548:                                             ; preds = %9526, %9519
  %9549 = load i32, ptr %191, align 4, !tbaa !5
  %9550 = call ptr @__errno_location() #13
  store i32 %9549, ptr %9550, align 4, !tbaa !5
  %9551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9552 = load i32, ptr @test_count, align 4, !tbaa !5
  %9553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9554 = load i32, ptr %9553, align 4, !tbaa !5
  %9555 = call ptr @s2n_strerror(i32 noundef %9554, ptr noundef @.str.3)
  %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_debug(i32 noundef %9557, ptr noundef @.str.3)
  %9559 = call ptr @__errno_location() #13
  %9560 = load i32, ptr %9559, align 4, !tbaa !5
  %9561 = call ptr @strerror(i32 noundef %9560) #12
  %9562 = call ptr @__errno_location() #13
  %9563 = load i32, ptr %9562, align 4, !tbaa !5
  %9564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9551, ptr noundef @.str.4, i32 noundef %9552, ptr noundef @.str.75, ptr noundef @.str.2, i32 noundef 645, ptr noundef %9555, ptr noundef %9558, ptr noundef %9561, i32 noundef %9563) #12
  br label %9565

9565:                                             ; preds = %9548, %9531
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #12
  br label %9566

9566:                                             ; preds = %9565
  br label %9567

9567:                                             ; preds = %9566
  call void @exit(i32 noundef 1) #14
  unreachable

9568:                                             ; No predecessors!
  br label %9569

9569:                                             ; preds = %9568
  br label %9570

9570:                                             ; preds = %9569, %9510
  br label %9571

9571:                                             ; preds = %9570
  br label %9572

9572:                                             ; preds = %9571
  br label %9573

9573:                                             ; preds = %9572
  %9574 = load i32, ptr @test_count, align 4, !tbaa !5
  %9575 = add nsw i32 %9574, 1
  store i32 %9575, ptr @test_count, align 4, !tbaa !5
  %9576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9577 = load i32, ptr %9576, align 4, !tbaa !5
  %9578 = icmp eq i32 %9577, 201326593
  br i1 %9578, label %9632, label %9579

9579:                                             ; preds = %9573
  br label %9580

9580:                                             ; preds = %9579
  br label %9581

9581:                                             ; preds = %9580
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #12
  %9582 = call ptr @__errno_location() #13
  %9583 = load i32, ptr %9582, align 4, !tbaa !5
  store i32 %9583, ptr %192, align 4, !tbaa !5
  %9584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9585 = call i32 @s2n_print_stacktrace(ptr noundef %9584)
  %9586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9587 = trunc i8 %9586 to i1
  br i1 %9587, label %9588, label %9610

9588:                                             ; preds = %9581
  %9589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9590 = call i32 @fileno(ptr noundef %9589) #12
  %9591 = call i32 @isatty(i32 noundef %9590) #12
  %9592 = icmp ne i32 %9591, 0
  br i1 %9592, label %9593, label %9610

9593:                                             ; preds = %9588
  %9594 = load i32, ptr %192, align 4, !tbaa !5
  %9595 = call ptr @__errno_location() #13
  store i32 %9594, ptr %9595, align 4, !tbaa !5
  %9596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9597 = load i32, ptr @test_count, align 4, !tbaa !5
  %9598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9599 = load i32, ptr %9598, align 4, !tbaa !5
  %9600 = call ptr @s2n_strerror(i32 noundef %9599, ptr noundef @.str.3)
  %9601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9602 = load i32, ptr %9601, align 4, !tbaa !5
  %9603 = call ptr @s2n_strerror_debug(i32 noundef %9602, ptr noundef @.str.3)
  %9604 = call ptr @__errno_location() #13
  %9605 = load i32, ptr %9604, align 4, !tbaa !5
  %9606 = call ptr @strerror(i32 noundef %9605) #12
  %9607 = call ptr @__errno_location() #13
  %9608 = load i32, ptr %9607, align 4, !tbaa !5
  %9609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9596, ptr noundef @.str, i32 noundef %9597, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 645, ptr noundef %9600, ptr noundef %9603, ptr noundef %9606, i32 noundef %9608) #12
  br label %9627

9610:                                             ; preds = %9588, %9581
  %9611 = load i32, ptr %192, align 4, !tbaa !5
  %9612 = call ptr @__errno_location() #13
  store i32 %9611, ptr %9612, align 4, !tbaa !5
  %9613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9614 = load i32, ptr @test_count, align 4, !tbaa !5
  %9615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9616 = load i32, ptr %9615, align 4, !tbaa !5
  %9617 = call ptr @s2n_strerror(i32 noundef %9616, ptr noundef @.str.3)
  %9618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9619 = load i32, ptr %9618, align 4, !tbaa !5
  %9620 = call ptr @s2n_strerror_debug(i32 noundef %9619, ptr noundef @.str.3)
  %9621 = call ptr @__errno_location() #13
  %9622 = load i32, ptr %9621, align 4, !tbaa !5
  %9623 = call ptr @strerror(i32 noundef %9622) #12
  %9624 = call ptr @__errno_location() #13
  %9625 = load i32, ptr %9624, align 4, !tbaa !5
  %9626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9613, ptr noundef @.str.4, i32 noundef %9614, ptr noundef @.str.76, ptr noundef @.str.2, i32 noundef 645, ptr noundef %9617, ptr noundef %9620, ptr noundef %9623, i32 noundef %9625) #12
  br label %9627

9627:                                             ; preds = %9610, %9593
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #12
  br label %9628

9628:                                             ; preds = %9627
  br label %9629

9629:                                             ; preds = %9628
  call void @exit(i32 noundef 1) #14
  unreachable

9630:                                             ; No predecessors!
  br label %9631

9631:                                             ; preds = %9630
  br label %9632

9632:                                             ; preds = %9631, %9573
  br label %9633

9633:                                             ; preds = %9632
  br label %9634

9634:                                             ; preds = %9633
  br label %9635

9635:                                             ; preds = %9634
  %9636 = load i32, ptr @test_count, align 4, !tbaa !5
  %9637 = add nsw i32 %9636, 1
  store i32 %9637, ptr @test_count, align 4, !tbaa !5
  %9638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9639 = load i32, ptr %9638, align 4, !tbaa !5
  %9640 = call ptr @s2n_strerror_debug(i32 noundef %9639, ptr noundef @.str.3)
  %9641 = icmp eq ptr %9640, null
  br i1 %9641, label %9642, label %9695

9642:                                             ; preds = %9635
  br label %9643

9643:                                             ; preds = %9642
  br label %9644

9644:                                             ; preds = %9643
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #12
  %9645 = call ptr @__errno_location() #13
  %9646 = load i32, ptr %9645, align 4, !tbaa !5
  store i32 %9646, ptr %193, align 4, !tbaa !5
  %9647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9648 = call i32 @s2n_print_stacktrace(ptr noundef %9647)
  %9649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9650 = trunc i8 %9649 to i1
  br i1 %9650, label %9651, label %9673

9651:                                             ; preds = %9644
  %9652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9653 = call i32 @fileno(ptr noundef %9652) #12
  %9654 = call i32 @isatty(i32 noundef %9653) #12
  %9655 = icmp ne i32 %9654, 0
  br i1 %9655, label %9656, label %9673

9656:                                             ; preds = %9651
  %9657 = load i32, ptr %193, align 4, !tbaa !5
  %9658 = call ptr @__errno_location() #13
  store i32 %9657, ptr %9658, align 4, !tbaa !5
  %9659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9660 = load i32, ptr @test_count, align 4, !tbaa !5
  %9661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9662 = load i32, ptr %9661, align 4, !tbaa !5
  %9663 = call ptr @s2n_strerror(i32 noundef %9662, ptr noundef @.str.3)
  %9664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9665 = load i32, ptr %9664, align 4, !tbaa !5
  %9666 = call ptr @s2n_strerror_debug(i32 noundef %9665, ptr noundef @.str.3)
  %9667 = call ptr @__errno_location() #13
  %9668 = load i32, ptr %9667, align 4, !tbaa !5
  %9669 = call ptr @strerror(i32 noundef %9668) #12
  %9670 = call ptr @__errno_location() #13
  %9671 = load i32, ptr %9670, align 4, !tbaa !5
  %9672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9659, ptr noundef @.str, i32 noundef %9660, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 645, ptr noundef %9663, ptr noundef %9666, ptr noundef %9669, i32 noundef %9671) #12
  br label %9690

9673:                                             ; preds = %9651, %9644
  %9674 = load i32, ptr %193, align 4, !tbaa !5
  %9675 = call ptr @__errno_location() #13
  store i32 %9674, ptr %9675, align 4, !tbaa !5
  %9676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9677 = load i32, ptr @test_count, align 4, !tbaa !5
  %9678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9679 = load i32, ptr %9678, align 4, !tbaa !5
  %9680 = call ptr @s2n_strerror(i32 noundef %9679, ptr noundef @.str.3)
  %9681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9682 = load i32, ptr %9681, align 4, !tbaa !5
  %9683 = call ptr @s2n_strerror_debug(i32 noundef %9682, ptr noundef @.str.3)
  %9684 = call ptr @__errno_location() #13
  %9685 = load i32, ptr %9684, align 4, !tbaa !5
  %9686 = call ptr @strerror(i32 noundef %9685) #12
  %9687 = call ptr @__errno_location() #13
  %9688 = load i32, ptr %9687, align 4, !tbaa !5
  %9689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9676, ptr noundef @.str.4, i32 noundef %9677, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 645, ptr noundef %9680, ptr noundef %9683, ptr noundef %9686, i32 noundef %9688) #12
  br label %9690

9690:                                             ; preds = %9673, %9656
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #12
  br label %9691

9691:                                             ; preds = %9690
  br label %9692

9692:                                             ; preds = %9691
  call void @exit(i32 noundef 1) #14
  unreachable

9693:                                             ; No predecessors!
  br label %9694

9694:                                             ; preds = %9693
  br label %9695

9695:                                             ; preds = %9694, %9635
  br label %9696

9696:                                             ; preds = %9695
  br label %9697

9697:                                             ; preds = %9696
  br label %9698

9698:                                             ; preds = %9697
  br label %9699

9699:                                             ; preds = %9698
  br label %9700

9700:                                             ; preds = %9699
  %9701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9701, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9702 = call ptr @__errno_location() #13
  store i32 0, ptr %9702, align 4, !tbaa !5
  br label %9703

9703:                                             ; preds = %9700
  br label %9704

9704:                                             ; preds = %9703
  br label %9705

9705:                                             ; preds = %9704
  br label %9706

9706:                                             ; preds = %9705
  br label %9707

9707:                                             ; preds = %9706
  %9708 = load i32, ptr @test_count, align 4, !tbaa !5
  %9709 = add nsw i32 %9708, 1
  store i32 %9709, ptr @test_count, align 4, !tbaa !5
  %9710 = load ptr, ptr %164, align 8, !tbaa !9
  %9711 = load ptr, ptr %161, align 8, !tbaa !9
  %9712 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %9710, ptr noundef %9711)
  %9713 = icmp eq i32 %9712, -1
  br i1 %9713, label %9714, label %9767

9714:                                             ; preds = %9707
  br label %9715

9715:                                             ; preds = %9714
  br label %9716

9716:                                             ; preds = %9715
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #12
  %9717 = call ptr @__errno_location() #13
  %9718 = load i32, ptr %9717, align 4, !tbaa !5
  store i32 %9718, ptr %194, align 4, !tbaa !5
  %9719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9720 = call i32 @s2n_print_stacktrace(ptr noundef %9719)
  %9721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9722 = trunc i8 %9721 to i1
  br i1 %9722, label %9723, label %9745

9723:                                             ; preds = %9716
  %9724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9725 = call i32 @fileno(ptr noundef %9724) #12
  %9726 = call i32 @isatty(i32 noundef %9725) #12
  %9727 = icmp ne i32 %9726, 0
  br i1 %9727, label %9728, label %9745

9728:                                             ; preds = %9723
  %9729 = load i32, ptr %194, align 4, !tbaa !5
  %9730 = call ptr @__errno_location() #13
  store i32 %9729, ptr %9730, align 4, !tbaa !5
  %9731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9732 = load i32, ptr @test_count, align 4, !tbaa !5
  %9733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9734 = load i32, ptr %9733, align 4, !tbaa !5
  %9735 = call ptr @s2n_strerror(i32 noundef %9734, ptr noundef @.str.3)
  %9736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9737 = load i32, ptr %9736, align 4, !tbaa !5
  %9738 = call ptr @s2n_strerror_debug(i32 noundef %9737, ptr noundef @.str.3)
  %9739 = call ptr @__errno_location() #13
  %9740 = load i32, ptr %9739, align 4, !tbaa !5
  %9741 = call ptr @strerror(i32 noundef %9740) #12
  %9742 = call ptr @__errno_location() #13
  %9743 = load i32, ptr %9742, align 4, !tbaa !5
  %9744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9731, ptr noundef @.str, i32 noundef %9732, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 648, ptr noundef %9735, ptr noundef %9738, ptr noundef %9741, i32 noundef %9743) #12
  br label %9762

9745:                                             ; preds = %9723, %9716
  %9746 = load i32, ptr %194, align 4, !tbaa !5
  %9747 = call ptr @__errno_location() #13
  store i32 %9746, ptr %9747, align 4, !tbaa !5
  %9748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9749 = load i32, ptr @test_count, align 4, !tbaa !5
  %9750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9751 = load i32, ptr %9750, align 4, !tbaa !5
  %9752 = call ptr @s2n_strerror(i32 noundef %9751, ptr noundef @.str.3)
  %9753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9754 = load i32, ptr %9753, align 4, !tbaa !5
  %9755 = call ptr @s2n_strerror_debug(i32 noundef %9754, ptr noundef @.str.3)
  %9756 = call ptr @__errno_location() #13
  %9757 = load i32, ptr %9756, align 4, !tbaa !5
  %9758 = call ptr @strerror(i32 noundef %9757) #12
  %9759 = call ptr @__errno_location() #13
  %9760 = load i32, ptr %9759, align 4, !tbaa !5
  %9761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9748, ptr noundef @.str.4, i32 noundef %9749, ptr noundef @.str.63, ptr noundef @.str.2, i32 noundef 648, ptr noundef %9752, ptr noundef %9755, ptr noundef %9758, i32 noundef %9760) #12
  br label %9762

9762:                                             ; preds = %9745, %9728
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #12
  br label %9763

9763:                                             ; preds = %9762
  br label %9764

9764:                                             ; preds = %9763
  call void @exit(i32 noundef 1) #14
  unreachable

9765:                                             ; No predecessors!
  br label %9766

9766:                                             ; preds = %9765
  br label %9767

9767:                                             ; preds = %9766, %9707
  br label %9768

9768:                                             ; preds = %9767
  br label %9769

9769:                                             ; preds = %9768
  br label %9770

9770:                                             ; preds = %9769
  %9771 = load i32, ptr @test_count, align 4, !tbaa !5
  %9772 = add nsw i32 %9771, 1
  store i32 %9772, ptr @test_count, align 4, !tbaa !5
  %9773 = load ptr, ptr %164, align 8, !tbaa !9
  %9774 = getelementptr inbounds %struct.s2n_connection, ptr %9773, i32 0, i32 11
  %9775 = load i8, ptr %173, align 1, !tbaa !51
  %9776 = zext i8 %9775 to i32
  %9777 = ashr i32 %9776, 3
  %9778 = sext i32 %9777 to i64
  %9779 = getelementptr inbounds [22 x i8], ptr %9774, i64 0, i64 %9778
  %9780 = load i8, ptr %9779, align 1, !tbaa !51
  %9781 = sext i8 %9780 to i32
  %9782 = load i8, ptr %173, align 1, !tbaa !51
  %9783 = zext i8 %9782 to i32
  %9784 = srem i32 %9783, 8
  %9785 = shl i32 1, %9784
  %9786 = and i32 %9781, %9785
  %9787 = icmp ne i32 %9786, 0
  %9788 = zext i1 %9787 to i32
  %9789 = icmp eq i32 %9788, 1
  br i1 %9789, label %9843, label %9790

9790:                                             ; preds = %9770
  br label %9791

9791:                                             ; preds = %9790
  br label %9792

9792:                                             ; preds = %9791
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #12
  %9793 = call ptr @__errno_location() #13
  %9794 = load i32, ptr %9793, align 4, !tbaa !5
  store i32 %9794, ptr %195, align 4, !tbaa !5
  %9795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9796 = call i32 @s2n_print_stacktrace(ptr noundef %9795)
  %9797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9798 = trunc i8 %9797 to i1
  br i1 %9798, label %9799, label %9821

9799:                                             ; preds = %9792
  %9800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9801 = call i32 @fileno(ptr noundef %9800) #12
  %9802 = call i32 @isatty(i32 noundef %9801) #12
  %9803 = icmp ne i32 %9802, 0
  br i1 %9803, label %9804, label %9821

9804:                                             ; preds = %9799
  %9805 = load i32, ptr %195, align 4, !tbaa !5
  %9806 = call ptr @__errno_location() #13
  store i32 %9805, ptr %9806, align 4, !tbaa !5
  %9807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9808 = load i32, ptr @test_count, align 4, !tbaa !5
  %9809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9810 = load i32, ptr %9809, align 4, !tbaa !5
  %9811 = call ptr @s2n_strerror(i32 noundef %9810, ptr noundef @.str.3)
  %9812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9813 = load i32, ptr %9812, align 4, !tbaa !5
  %9814 = call ptr @s2n_strerror_debug(i32 noundef %9813, ptr noundef @.str.3)
  %9815 = call ptr @__errno_location() #13
  %9816 = load i32, ptr %9815, align 4, !tbaa !5
  %9817 = call ptr @strerror(i32 noundef %9816) #12
  %9818 = call ptr @__errno_location() #13
  %9819 = load i32, ptr %9818, align 4, !tbaa !5
  %9820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9807, ptr noundef @.str, i32 noundef %9808, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 649, ptr noundef %9811, ptr noundef %9814, ptr noundef %9817, i32 noundef %9819) #12
  br label %9838

9821:                                             ; preds = %9799, %9792
  %9822 = load i32, ptr %195, align 4, !tbaa !5
  %9823 = call ptr @__errno_location() #13
  store i32 %9822, ptr %9823, align 4, !tbaa !5
  %9824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9825 = load i32, ptr @test_count, align 4, !tbaa !5
  %9826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9827 = load i32, ptr %9826, align 4, !tbaa !5
  %9828 = call ptr @s2n_strerror(i32 noundef %9827, ptr noundef @.str.3)
  %9829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9830 = load i32, ptr %9829, align 4, !tbaa !5
  %9831 = call ptr @s2n_strerror_debug(i32 noundef %9830, ptr noundef @.str.3)
  %9832 = call ptr @__errno_location() #13
  %9833 = load i32, ptr %9832, align 4, !tbaa !5
  %9834 = call ptr @strerror(i32 noundef %9833) #12
  %9835 = call ptr @__errno_location() #13
  %9836 = load i32, ptr %9835, align 4, !tbaa !5
  %9837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9824, ptr noundef @.str.4, i32 noundef %9825, ptr noundef @.str.86, ptr noundef @.str.2, i32 noundef 649, ptr noundef %9828, ptr noundef %9831, ptr noundef %9834, i32 noundef %9836) #12
  br label %9838

9838:                                             ; preds = %9821, %9804
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #12
  br label %9839

9839:                                             ; preds = %9838
  br label %9840

9840:                                             ; preds = %9839
  call void @exit(i32 noundef 1) #14
  unreachable

9841:                                             ; No predecessors!
  br label %9842

9842:                                             ; preds = %9841
  br label %9843

9843:                                             ; preds = %9842, %9770
  br label %9844

9844:                                             ; preds = %9843
  br label %9845

9845:                                             ; preds = %9844
  br label %9846

9846:                                             ; preds = %9845
  %9847 = load i32, ptr @test_count, align 4, !tbaa !5
  %9848 = add nsw i32 %9847, 1
  store i32 %9848, ptr @test_count, align 4, !tbaa !5
  %9849 = load ptr, ptr %164, align 8, !tbaa !9
  %9850 = load i32, ptr %9849, align 8
  %9851 = lshr i32 %9850, 13
  %9852 = and i32 %9851, 1
  %9853 = icmp ne i32 %9852, 0
  br i1 %9853, label %9907, label %9854

9854:                                             ; preds = %9846
  br label %9855

9855:                                             ; preds = %9854
  br label %9856

9856:                                             ; preds = %9855
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #12
  %9857 = call ptr @__errno_location() #13
  %9858 = load i32, ptr %9857, align 4, !tbaa !5
  store i32 %9858, ptr %196, align 4, !tbaa !5
  %9859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9860 = call i32 @s2n_print_stacktrace(ptr noundef %9859)
  %9861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9862 = trunc i8 %9861 to i1
  br i1 %9862, label %9863, label %9885

9863:                                             ; preds = %9856
  %9864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9865 = call i32 @fileno(ptr noundef %9864) #12
  %9866 = call i32 @isatty(i32 noundef %9865) #12
  %9867 = icmp ne i32 %9866, 0
  br i1 %9867, label %9868, label %9885

9868:                                             ; preds = %9863
  %9869 = load i32, ptr %196, align 4, !tbaa !5
  %9870 = call ptr @__errno_location() #13
  store i32 %9869, ptr %9870, align 4, !tbaa !5
  %9871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9872 = load i32, ptr @test_count, align 4, !tbaa !5
  %9873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  %9875 = call ptr @s2n_strerror(i32 noundef %9874, ptr noundef @.str.3)
  %9876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9877 = load i32, ptr %9876, align 4, !tbaa !5
  %9878 = call ptr @s2n_strerror_debug(i32 noundef %9877, ptr noundef @.str.3)
  %9879 = call ptr @__errno_location() #13
  %9880 = load i32, ptr %9879, align 4, !tbaa !5
  %9881 = call ptr @strerror(i32 noundef %9880) #12
  %9882 = call ptr @__errno_location() #13
  %9883 = load i32, ptr %9882, align 4, !tbaa !5
  %9884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9871, ptr noundef @.str, i32 noundef %9872, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 650, ptr noundef %9875, ptr noundef %9878, ptr noundef %9881, i32 noundef %9883) #12
  br label %9902

9885:                                             ; preds = %9863, %9856
  %9886 = load i32, ptr %196, align 4, !tbaa !5
  %9887 = call ptr @__errno_location() #13
  store i32 %9886, ptr %9887, align 4, !tbaa !5
  %9888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9889 = load i32, ptr @test_count, align 4, !tbaa !5
  %9890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9891 = load i32, ptr %9890, align 4, !tbaa !5
  %9892 = call ptr @s2n_strerror(i32 noundef %9891, ptr noundef @.str.3)
  %9893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9894 = load i32, ptr %9893, align 4, !tbaa !5
  %9895 = call ptr @s2n_strerror_debug(i32 noundef %9894, ptr noundef @.str.3)
  %9896 = call ptr @__errno_location() #13
  %9897 = load i32, ptr %9896, align 4, !tbaa !5
  %9898 = call ptr @strerror(i32 noundef %9897) #12
  %9899 = call ptr @__errno_location() #13
  %9900 = load i32, ptr %9899, align 4, !tbaa !5
  %9901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9888, ptr noundef @.str.4, i32 noundef %9889, ptr noundef @.str.82, ptr noundef @.str.2, i32 noundef 650, ptr noundef %9892, ptr noundef %9895, ptr noundef %9898, i32 noundef %9900) #12
  br label %9902

9902:                                             ; preds = %9885, %9868
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #12
  br label %9903

9903:                                             ; preds = %9902
  br label %9904

9904:                                             ; preds = %9903
  call void @exit(i32 noundef 1) #14
  unreachable

9905:                                             ; No predecessors!
  br label %9906

9906:                                             ; preds = %9905
  br label %9907

9907:                                             ; preds = %9906, %9846
  br label %9908

9908:                                             ; preds = %9907
  br label %9909

9909:                                             ; preds = %9908
  br label %9910

9910:                                             ; preds = %9909
  %9911 = load i32, ptr @test_count, align 4, !tbaa !5
  %9912 = add nsw i32 %9911, 1
  store i32 %9912, ptr @test_count, align 4, !tbaa !5
  %9913 = load ptr, ptr %161, align 8, !tbaa !9
  %9914 = load i32, ptr %9913, align 8
  %9915 = lshr i32 %9914, 13
  %9916 = and i32 %9915, 1
  %9917 = icmp ne i32 %9916, 0
  br i1 %9917, label %9971, label %9918

9918:                                             ; preds = %9910
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

9920:                                             ; preds = %9919
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #12
  %9921 = call ptr @__errno_location() #13
  %9922 = load i32, ptr %9921, align 4, !tbaa !5
  store i32 %9922, ptr %197, align 4, !tbaa !5
  %9923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9924 = call i32 @s2n_print_stacktrace(ptr noundef %9923)
  %9925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9926 = trunc i8 %9925 to i1
  br i1 %9926, label %9927, label %9949

9927:                                             ; preds = %9920
  %9928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9929 = call i32 @fileno(ptr noundef %9928) #12
  %9930 = call i32 @isatty(i32 noundef %9929) #12
  %9931 = icmp ne i32 %9930, 0
  br i1 %9931, label %9932, label %9949

9932:                                             ; preds = %9927
  %9933 = load i32, ptr %197, align 4, !tbaa !5
  %9934 = call ptr @__errno_location() #13
  store i32 %9933, ptr %9934, align 4, !tbaa !5
  %9935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9936 = load i32, ptr @test_count, align 4, !tbaa !5
  %9937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9938 = load i32, ptr %9937, align 4, !tbaa !5
  %9939 = call ptr @s2n_strerror(i32 noundef %9938, ptr noundef @.str.3)
  %9940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9941 = load i32, ptr %9940, align 4, !tbaa !5
  %9942 = call ptr @s2n_strerror_debug(i32 noundef %9941, ptr noundef @.str.3)
  %9943 = call ptr @__errno_location() #13
  %9944 = load i32, ptr %9943, align 4, !tbaa !5
  %9945 = call ptr @strerror(i32 noundef %9944) #12
  %9946 = call ptr @__errno_location() #13
  %9947 = load i32, ptr %9946, align 4, !tbaa !5
  %9948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9935, ptr noundef @.str, i32 noundef %9936, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 651, ptr noundef %9939, ptr noundef %9942, ptr noundef %9945, i32 noundef %9947) #12
  br label %9966

9949:                                             ; preds = %9927, %9920
  %9950 = load i32, ptr %197, align 4, !tbaa !5
  %9951 = call ptr @__errno_location() #13
  store i32 %9950, ptr %9951, align 4, !tbaa !5
  %9952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9953 = load i32, ptr @test_count, align 4, !tbaa !5
  %9954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9955 = load i32, ptr %9954, align 4, !tbaa !5
  %9956 = call ptr @s2n_strerror(i32 noundef %9955, ptr noundef @.str.3)
  %9957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9958 = load i32, ptr %9957, align 4, !tbaa !5
  %9959 = call ptr @s2n_strerror_debug(i32 noundef %9958, ptr noundef @.str.3)
  %9960 = call ptr @__errno_location() #13
  %9961 = load i32, ptr %9960, align 4, !tbaa !5
  %9962 = call ptr @strerror(i32 noundef %9961) #12
  %9963 = call ptr @__errno_location() #13
  %9964 = load i32, ptr %9963, align 4, !tbaa !5
  %9965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9952, ptr noundef @.str.4, i32 noundef %9953, ptr noundef @.str.83, ptr noundef @.str.2, i32 noundef 651, ptr noundef %9956, ptr noundef %9959, ptr noundef %9962, i32 noundef %9964) #12
  br label %9966

9966:                                             ; preds = %9949, %9932
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #12
  br label %9967

9967:                                             ; preds = %9966
  br label %9968

9968:                                             ; preds = %9967
  call void @exit(i32 noundef 1) #14
  unreachable

9969:                                             ; No predecessors!
  br label %9970

9970:                                             ; preds = %9969
  br label %9971

9971:                                             ; preds = %9970, %9910
  br label %9972

9972:                                             ; preds = %9971
  br label %9973

9973:                                             ; preds = %9972
  br label %9974

9974:                                             ; preds = %9973
  %9975 = load i32, ptr @test_count, align 4, !tbaa !5
  %9976 = add nsw i32 %9975, 1
  store i32 %9976, ptr @test_count, align 4, !tbaa !5
  %9977 = load ptr, ptr %164, align 8, !tbaa !9
  %9978 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %9977, i32 noundef 2)
  br i1 %9978, label %10032, label %9979

9979:                                             ; preds = %9974
  br label %9980

9980:                                             ; preds = %9979
  br label %9981

9981:                                             ; preds = %9980
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #12
  %9982 = call ptr @__errno_location() #13
  %9983 = load i32, ptr %9982, align 4, !tbaa !5
  store i32 %9983, ptr %198, align 4, !tbaa !5
  %9984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9985 = call i32 @s2n_print_stacktrace(ptr noundef %9984)
  %9986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %9987 = trunc i8 %9986 to i1
  br i1 %9987, label %9988, label %10010

9988:                                             ; preds = %9981
  %9989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9990 = call i32 @fileno(ptr noundef %9989) #12
  %9991 = call i32 @isatty(i32 noundef %9990) #12
  %9992 = icmp ne i32 %9991, 0
  br i1 %9992, label %9993, label %10010

9993:                                             ; preds = %9988
  %9994 = load i32, ptr %198, align 4, !tbaa !5
  %9995 = call ptr @__errno_location() #13
  store i32 %9994, ptr %9995, align 4, !tbaa !5
  %9996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9997 = load i32, ptr @test_count, align 4, !tbaa !5
  %9998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9999 = load i32, ptr %9998, align 4, !tbaa !5
  %10000 = call ptr @s2n_strerror(i32 noundef %9999, ptr noundef @.str.3)
  %10001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10002 = load i32, ptr %10001, align 4, !tbaa !5
  %10003 = call ptr @s2n_strerror_debug(i32 noundef %10002, ptr noundef @.str.3)
  %10004 = call ptr @__errno_location() #13
  %10005 = load i32, ptr %10004, align 4, !tbaa !5
  %10006 = call ptr @strerror(i32 noundef %10005) #12
  %10007 = call ptr @__errno_location() #13
  %10008 = load i32, ptr %10007, align 4, !tbaa !5
  %10009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9996, ptr noundef @.str, i32 noundef %9997, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 652, ptr noundef %10000, ptr noundef %10003, ptr noundef %10006, i32 noundef %10008) #12
  br label %10027

10010:                                            ; preds = %9988, %9981
  %10011 = load i32, ptr %198, align 4, !tbaa !5
  %10012 = call ptr @__errno_location() #13
  store i32 %10011, ptr %10012, align 4, !tbaa !5
  %10013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10014 = load i32, ptr @test_count, align 4, !tbaa !5
  %10015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10016 = load i32, ptr %10015, align 4, !tbaa !5
  %10017 = call ptr @s2n_strerror(i32 noundef %10016, ptr noundef @.str.3)
  %10018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10019 = load i32, ptr %10018, align 4, !tbaa !5
  %10020 = call ptr @s2n_strerror_debug(i32 noundef %10019, ptr noundef @.str.3)
  %10021 = call ptr @__errno_location() #13
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  %10023 = call ptr @strerror(i32 noundef %10022) #12
  %10024 = call ptr @__errno_location() #13
  %10025 = load i32, ptr %10024, align 4, !tbaa !5
  %10026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10013, ptr noundef @.str.4, i32 noundef %10014, ptr noundef @.str.68, ptr noundef @.str.2, i32 noundef 652, ptr noundef %10017, ptr noundef %10020, ptr noundef %10023, i32 noundef %10025) #12
  br label %10027

10027:                                            ; preds = %10010, %9993
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #12
  br label %10028

10028:                                            ; preds = %10027
  br label %10029

10029:                                            ; preds = %10028
  call void @exit(i32 noundef 1) #14
  unreachable

10030:                                            ; No predecessors!
  br label %10031

10031:                                            ; preds = %10030
  br label %10032

10032:                                            ; preds = %10031, %9974
  br label %10033

10033:                                            ; preds = %10032
  br label %10034

10034:                                            ; preds = %10033
  br label %10035

10035:                                            ; preds = %10034
  %10036 = load i32, ptr @test_count, align 4, !tbaa !5
  %10037 = add nsw i32 %10036, 1
  store i32 %10037, ptr @test_count, align 4, !tbaa !5
  %10038 = load ptr, ptr %161, align 8, !tbaa !9
  %10039 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %10038, i32 noundef 2)
  br i1 %10039, label %10093, label %10040

10040:                                            ; preds = %10035
  br label %10041

10041:                                            ; preds = %10040
  br label %10042

10042:                                            ; preds = %10041
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #12
  %10043 = call ptr @__errno_location() #13
  %10044 = load i32, ptr %10043, align 4, !tbaa !5
  store i32 %10044, ptr %199, align 4, !tbaa !5
  %10045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10046 = call i32 @s2n_print_stacktrace(ptr noundef %10045)
  %10047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10048 = trunc i8 %10047 to i1
  br i1 %10048, label %10049, label %10071

10049:                                            ; preds = %10042
  %10050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10051 = call i32 @fileno(ptr noundef %10050) #12
  %10052 = call i32 @isatty(i32 noundef %10051) #12
  %10053 = icmp ne i32 %10052, 0
  br i1 %10053, label %10054, label %10071

10054:                                            ; preds = %10049
  %10055 = load i32, ptr %199, align 4, !tbaa !5
  %10056 = call ptr @__errno_location() #13
  store i32 %10055, ptr %10056, align 4, !tbaa !5
  %10057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10058 = load i32, ptr @test_count, align 4, !tbaa !5
  %10059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10060 = load i32, ptr %10059, align 4, !tbaa !5
  %10061 = call ptr @s2n_strerror(i32 noundef %10060, ptr noundef @.str.3)
  %10062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10063 = load i32, ptr %10062, align 4, !tbaa !5
  %10064 = call ptr @s2n_strerror_debug(i32 noundef %10063, ptr noundef @.str.3)
  %10065 = call ptr @__errno_location() #13
  %10066 = load i32, ptr %10065, align 4, !tbaa !5
  %10067 = call ptr @strerror(i32 noundef %10066) #12
  %10068 = call ptr @__errno_location() #13
  %10069 = load i32, ptr %10068, align 4, !tbaa !5
  %10070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10057, ptr noundef @.str, i32 noundef %10058, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 653, ptr noundef %10061, ptr noundef %10064, ptr noundef %10067, i32 noundef %10069) #12
  br label %10088

10071:                                            ; preds = %10049, %10042
  %10072 = load i32, ptr %199, align 4, !tbaa !5
  %10073 = call ptr @__errno_location() #13
  store i32 %10072, ptr %10073, align 4, !tbaa !5
  %10074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10075 = load i32, ptr @test_count, align 4, !tbaa !5
  %10076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10077 = load i32, ptr %10076, align 4, !tbaa !5
  %10078 = call ptr @s2n_strerror(i32 noundef %10077, ptr noundef @.str.3)
  %10079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10080 = load i32, ptr %10079, align 4, !tbaa !5
  %10081 = call ptr @s2n_strerror_debug(i32 noundef %10080, ptr noundef @.str.3)
  %10082 = call ptr @__errno_location() #13
  %10083 = load i32, ptr %10082, align 4, !tbaa !5
  %10084 = call ptr @strerror(i32 noundef %10083) #12
  %10085 = call ptr @__errno_location() #13
  %10086 = load i32, ptr %10085, align 4, !tbaa !5
  %10087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10074, ptr noundef @.str.4, i32 noundef %10075, ptr noundef @.str.69, ptr noundef @.str.2, i32 noundef 653, ptr noundef %10078, ptr noundef %10081, ptr noundef %10084, i32 noundef %10086) #12
  br label %10088

10088:                                            ; preds = %10071, %10054
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #12
  br label %10089

10089:                                            ; preds = %10088
  br label %10090

10090:                                            ; preds = %10089
  call void @exit(i32 noundef 1) #14
  unreachable

10091:                                            ; No predecessors!
  br label %10092

10092:                                            ; preds = %10091
  br label %10093

10093:                                            ; preds = %10092, %10035
  br label %10094

10094:                                            ; preds = %10093
  br label %10095

10095:                                            ; preds = %10094
  br label %10096

10096:                                            ; preds = %10095
  %10097 = load i32, ptr @test_count, align 4, !tbaa !5
  %10098 = add nsw i32 %10097, 1
  store i32 %10098, ptr @test_count, align 4, !tbaa !5
  %10099 = load ptr, ptr %161, align 8, !tbaa !9
  %10100 = call i32 @s2n_connection_free(ptr noundef %10099)
  %10101 = icmp eq i32 %10100, -1
  br i1 %10101, label %10102, label %10155

10102:                                            ; preds = %10096
  br label %10103

10103:                                            ; preds = %10102
  br label %10104

10104:                                            ; preds = %10103
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #12
  %10105 = call ptr @__errno_location() #13
  %10106 = load i32, ptr %10105, align 4, !tbaa !5
  store i32 %10106, ptr %200, align 4, !tbaa !5
  %10107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10108 = call i32 @s2n_print_stacktrace(ptr noundef %10107)
  %10109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10110 = trunc i8 %10109 to i1
  br i1 %10110, label %10111, label %10133

10111:                                            ; preds = %10104
  %10112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10113 = call i32 @fileno(ptr noundef %10112) #12
  %10114 = call i32 @isatty(i32 noundef %10113) #12
  %10115 = icmp ne i32 %10114, 0
  br i1 %10115, label %10116, label %10133

10116:                                            ; preds = %10111
  %10117 = load i32, ptr %200, align 4, !tbaa !5
  %10118 = call ptr @__errno_location() #13
  store i32 %10117, ptr %10118, align 4, !tbaa !5
  %10119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10120 = load i32, ptr @test_count, align 4, !tbaa !5
  %10121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10122 = load i32, ptr %10121, align 4, !tbaa !5
  %10123 = call ptr @s2n_strerror(i32 noundef %10122, ptr noundef @.str.3)
  %10124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10125 = load i32, ptr %10124, align 4, !tbaa !5
  %10126 = call ptr @s2n_strerror_debug(i32 noundef %10125, ptr noundef @.str.3)
  %10127 = call ptr @__errno_location() #13
  %10128 = load i32, ptr %10127, align 4, !tbaa !5
  %10129 = call ptr @strerror(i32 noundef %10128) #12
  %10130 = call ptr @__errno_location() #13
  %10131 = load i32, ptr %10130, align 4, !tbaa !5
  %10132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10119, ptr noundef @.str, i32 noundef %10120, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 655, ptr noundef %10123, ptr noundef %10126, ptr noundef %10129, i32 noundef %10131) #12
  br label %10150

10133:                                            ; preds = %10111, %10104
  %10134 = load i32, ptr %200, align 4, !tbaa !5
  %10135 = call ptr @__errno_location() #13
  store i32 %10134, ptr %10135, align 4, !tbaa !5
  %10136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10137 = load i32, ptr @test_count, align 4, !tbaa !5
  %10138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10139 = load i32, ptr %10138, align 4, !tbaa !5
  %10140 = call ptr @s2n_strerror(i32 noundef %10139, ptr noundef @.str.3)
  %10141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10142 = load i32, ptr %10141, align 4, !tbaa !5
  %10143 = call ptr @s2n_strerror_debug(i32 noundef %10142, ptr noundef @.str.3)
  %10144 = call ptr @__errno_location() #13
  %10145 = load i32, ptr %10144, align 4, !tbaa !5
  %10146 = call ptr @strerror(i32 noundef %10145) #12
  %10147 = call ptr @__errno_location() #13
  %10148 = load i32, ptr %10147, align 4, !tbaa !5
  %10149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10136, ptr noundef @.str.4, i32 noundef %10137, ptr noundef @.str.80, ptr noundef @.str.2, i32 noundef 655, ptr noundef %10140, ptr noundef %10143, ptr noundef %10146, i32 noundef %10148) #12
  br label %10150

10150:                                            ; preds = %10133, %10116
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #12
  br label %10151

10151:                                            ; preds = %10150
  br label %10152

10152:                                            ; preds = %10151
  call void @exit(i32 noundef 1) #14
  unreachable

10153:                                            ; No predecessors!
  br label %10154

10154:                                            ; preds = %10153
  br label %10155

10155:                                            ; preds = %10154, %10096
  br label %10156

10156:                                            ; preds = %10155
  br label %10157

10157:                                            ; preds = %10156
  br label %10158

10158:                                            ; preds = %10157
  %10159 = load i32, ptr @test_count, align 4, !tbaa !5
  %10160 = add nsw i32 %10159, 1
  store i32 %10160, ptr @test_count, align 4, !tbaa !5
  %10161 = load ptr, ptr %164, align 8, !tbaa !9
  %10162 = call i32 @s2n_connection_free(ptr noundef %10161)
  %10163 = icmp eq i32 %10162, -1
  br i1 %10163, label %10164, label %10217

10164:                                            ; preds = %10158
  br label %10165

10165:                                            ; preds = %10164
  br label %10166

10166:                                            ; preds = %10165
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #12
  %10167 = call ptr @__errno_location() #13
  %10168 = load i32, ptr %10167, align 4, !tbaa !5
  store i32 %10168, ptr %201, align 4, !tbaa !5
  %10169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10170 = call i32 @s2n_print_stacktrace(ptr noundef %10169)
  %10171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10172 = trunc i8 %10171 to i1
  br i1 %10172, label %10173, label %10195

10173:                                            ; preds = %10166
  %10174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10175 = call i32 @fileno(ptr noundef %10174) #12
  %10176 = call i32 @isatty(i32 noundef %10175) #12
  %10177 = icmp ne i32 %10176, 0
  br i1 %10177, label %10178, label %10195

10178:                                            ; preds = %10173
  %10179 = load i32, ptr %201, align 4, !tbaa !5
  %10180 = call ptr @__errno_location() #13
  store i32 %10179, ptr %10180, align 4, !tbaa !5
  %10181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10182 = load i32, ptr @test_count, align 4, !tbaa !5
  %10183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10184 = load i32, ptr %10183, align 4, !tbaa !5
  %10185 = call ptr @s2n_strerror(i32 noundef %10184, ptr noundef @.str.3)
  %10186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10187 = load i32, ptr %10186, align 4, !tbaa !5
  %10188 = call ptr @s2n_strerror_debug(i32 noundef %10187, ptr noundef @.str.3)
  %10189 = call ptr @__errno_location() #13
  %10190 = load i32, ptr %10189, align 4, !tbaa !5
  %10191 = call ptr @strerror(i32 noundef %10190) #12
  %10192 = call ptr @__errno_location() #13
  %10193 = load i32, ptr %10192, align 4, !tbaa !5
  %10194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10181, ptr noundef @.str, i32 noundef %10182, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 656, ptr noundef %10185, ptr noundef %10188, ptr noundef %10191, i32 noundef %10193) #12
  br label %10212

10195:                                            ; preds = %10173, %10166
  %10196 = load i32, ptr %201, align 4, !tbaa !5
  %10197 = call ptr @__errno_location() #13
  store i32 %10196, ptr %10197, align 4, !tbaa !5
  %10198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10199 = load i32, ptr @test_count, align 4, !tbaa !5
  %10200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10201 = load i32, ptr %10200, align 4, !tbaa !5
  %10202 = call ptr @s2n_strerror(i32 noundef %10201, ptr noundef @.str.3)
  %10203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  %10205 = call ptr @s2n_strerror_debug(i32 noundef %10204, ptr noundef @.str.3)
  %10206 = call ptr @__errno_location() #13
  %10207 = load i32, ptr %10206, align 4, !tbaa !5
  %10208 = call ptr @strerror(i32 noundef %10207) #12
  %10209 = call ptr @__errno_location() #13
  %10210 = load i32, ptr %10209, align 4, !tbaa !5
  %10211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10198, ptr noundef @.str.4, i32 noundef %10199, ptr noundef @.str.81, ptr noundef @.str.2, i32 noundef 656, ptr noundef %10202, ptr noundef %10205, ptr noundef %10208, i32 noundef %10210) #12
  br label %10212

10212:                                            ; preds = %10195, %10178
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #12
  br label %10213

10213:                                            ; preds = %10212
  br label %10214

10214:                                            ; preds = %10213
  call void @exit(i32 noundef 1) #14
  unreachable

10215:                                            ; No predecessors!
  br label %10216

10216:                                            ; preds = %10215
  br label %10217

10217:                                            ; preds = %10216, %10158
  br label %10218

10218:                                            ; preds = %10217
  br label %10219

10219:                                            ; preds = %10218
  br label %10220

10220:                                            ; preds = %10219
  %10221 = load i32, ptr @test_count, align 4, !tbaa !5
  %10222 = add nsw i32 %10221, 1
  store i32 %10222, ptr @test_count, align 4, !tbaa !5
  %10223 = call i32 @s2n_io_pair_close(ptr noundef %25)
  %10224 = icmp eq i32 %10223, -1
  br i1 %10224, label %10225, label %10278

10225:                                            ; preds = %10220
  br label %10226

10226:                                            ; preds = %10225
  br label %10227

10227:                                            ; preds = %10226
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #12
  %10228 = call ptr @__errno_location() #13
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  store i32 %10229, ptr %202, align 4, !tbaa !5
  %10230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10231 = call i32 @s2n_print_stacktrace(ptr noundef %10230)
  %10232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10233 = trunc i8 %10232 to i1
  br i1 %10233, label %10234, label %10256

10234:                                            ; preds = %10227
  %10235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10236 = call i32 @fileno(ptr noundef %10235) #12
  %10237 = call i32 @isatty(i32 noundef %10236) #12
  %10238 = icmp ne i32 %10237, 0
  br i1 %10238, label %10239, label %10256

10239:                                            ; preds = %10234
  %10240 = load i32, ptr %202, align 4, !tbaa !5
  %10241 = call ptr @__errno_location() #13
  store i32 %10240, ptr %10241, align 4, !tbaa !5
  %10242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10243 = load i32, ptr @test_count, align 4, !tbaa !5
  %10244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10245 = load i32, ptr %10244, align 4, !tbaa !5
  %10246 = call ptr @s2n_strerror(i32 noundef %10245, ptr noundef @.str.3)
  %10247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10248 = load i32, ptr %10247, align 4, !tbaa !5
  %10249 = call ptr @s2n_strerror_debug(i32 noundef %10248, ptr noundef @.str.3)
  %10250 = call ptr @__errno_location() #13
  %10251 = load i32, ptr %10250, align 4, !tbaa !5
  %10252 = call ptr @strerror(i32 noundef %10251) #12
  %10253 = call ptr @__errno_location() #13
  %10254 = load i32, ptr %10253, align 4, !tbaa !5
  %10255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10242, ptr noundef @.str, i32 noundef %10243, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 657, ptr noundef %10246, ptr noundef %10249, ptr noundef %10252, i32 noundef %10254) #12
  br label %10273

10256:                                            ; preds = %10234, %10227
  %10257 = load i32, ptr %202, align 4, !tbaa !5
  %10258 = call ptr @__errno_location() #13
  store i32 %10257, ptr %10258, align 4, !tbaa !5
  %10259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10260 = load i32, ptr @test_count, align 4, !tbaa !5
  %10261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10262 = load i32, ptr %10261, align 4, !tbaa !5
  %10263 = call ptr @s2n_strerror(i32 noundef %10262, ptr noundef @.str.3)
  %10264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10265 = load i32, ptr %10264, align 4, !tbaa !5
  %10266 = call ptr @s2n_strerror_debug(i32 noundef %10265, ptr noundef @.str.3)
  %10267 = call ptr @__errno_location() #13
  %10268 = load i32, ptr %10267, align 4, !tbaa !5
  %10269 = call ptr @strerror(i32 noundef %10268) #12
  %10270 = call ptr @__errno_location() #13
  %10271 = load i32, ptr %10270, align 4, !tbaa !5
  %10272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10259, ptr noundef @.str.4, i32 noundef %10260, ptr noundef @.str.73, ptr noundef @.str.2, i32 noundef 657, ptr noundef %10263, ptr noundef %10266, ptr noundef %10269, i32 noundef %10271) #12
  br label %10273

10273:                                            ; preds = %10256, %10239
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #12
  br label %10274

10274:                                            ; preds = %10273
  br label %10275

10275:                                            ; preds = %10274
  call void @exit(i32 noundef 1) #14
  unreachable

10276:                                            ; No predecessors!
  br label %10277

10277:                                            ; preds = %10276
  br label %10278

10278:                                            ; preds = %10277, %10220
  br label %10279

10279:                                            ; preds = %10278
  br label %10280

10280:                                            ; preds = %10279
  call void @llvm.lifetime.end.p0(i64 202, ptr %183) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %173) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %161) #12
  br label %10281

10281:                                            ; preds = %10280
  %10282 = load i32, ptr @test_count, align 4, !tbaa !5
  %10283 = add nsw i32 %10282, 1
  store i32 %10283, ptr @test_count, align 4, !tbaa !5
  %10284 = load ptr, ptr %7, align 8, !tbaa !9
  %10285 = call i32 @s2n_config_free(ptr noundef %10284)
  %10286 = icmp eq i32 %10285, -1
  br i1 %10286, label %10287, label %10340

10287:                                            ; preds = %10281
  br label %10288

10288:                                            ; preds = %10287
  br label %10289

10289:                                            ; preds = %10288
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #12
  %10290 = call ptr @__errno_location() #13
  %10291 = load i32, ptr %10290, align 4, !tbaa !5
  store i32 %10291, ptr %203, align 4, !tbaa !5
  %10292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10293 = call i32 @s2n_print_stacktrace(ptr noundef %10292)
  %10294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10295 = trunc i8 %10294 to i1
  br i1 %10295, label %10296, label %10318

10296:                                            ; preds = %10289
  %10297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10298 = call i32 @fileno(ptr noundef %10297) #12
  %10299 = call i32 @isatty(i32 noundef %10298) #12
  %10300 = icmp ne i32 %10299, 0
  br i1 %10300, label %10301, label %10318

10301:                                            ; preds = %10296
  %10302 = load i32, ptr %203, align 4, !tbaa !5
  %10303 = call ptr @__errno_location() #13
  store i32 %10302, ptr %10303, align 4, !tbaa !5
  %10304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10305 = load i32, ptr @test_count, align 4, !tbaa !5
  %10306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10307 = load i32, ptr %10306, align 4, !tbaa !5
  %10308 = call ptr @s2n_strerror(i32 noundef %10307, ptr noundef @.str.3)
  %10309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10310 = load i32, ptr %10309, align 4, !tbaa !5
  %10311 = call ptr @s2n_strerror_debug(i32 noundef %10310, ptr noundef @.str.3)
  %10312 = call ptr @__errno_location() #13
  %10313 = load i32, ptr %10312, align 4, !tbaa !5
  %10314 = call ptr @strerror(i32 noundef %10313) #12
  %10315 = call ptr @__errno_location() #13
  %10316 = load i32, ptr %10315, align 4, !tbaa !5
  %10317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10304, ptr noundef @.str, i32 noundef %10305, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 661, ptr noundef %10308, ptr noundef %10311, ptr noundef %10314, i32 noundef %10316) #12
  br label %10335

10318:                                            ; preds = %10296, %10289
  %10319 = load i32, ptr %203, align 4, !tbaa !5
  %10320 = call ptr @__errno_location() #13
  store i32 %10319, ptr %10320, align 4, !tbaa !5
  %10321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10322 = load i32, ptr @test_count, align 4, !tbaa !5
  %10323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10324 = load i32, ptr %10323, align 4, !tbaa !5
  %10325 = call ptr @s2n_strerror(i32 noundef %10324, ptr noundef @.str.3)
  %10326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10327 = load i32, ptr %10326, align 4, !tbaa !5
  %10328 = call ptr @s2n_strerror_debug(i32 noundef %10327, ptr noundef @.str.3)
  %10329 = call ptr @__errno_location() #13
  %10330 = load i32, ptr %10329, align 4, !tbaa !5
  %10331 = call ptr @strerror(i32 noundef %10330) #12
  %10332 = call ptr @__errno_location() #13
  %10333 = load i32, ptr %10332, align 4, !tbaa !5
  %10334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10321, ptr noundef @.str.4, i32 noundef %10322, ptr noundef @.str.87, ptr noundef @.str.2, i32 noundef 661, ptr noundef %10325, ptr noundef %10328, ptr noundef %10331, i32 noundef %10333) #12
  br label %10335

10335:                                            ; preds = %10318, %10301
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #12
  br label %10336

10336:                                            ; preds = %10335
  br label %10337

10337:                                            ; preds = %10336
  call void @exit(i32 noundef 1) #14
  unreachable

10338:                                            ; No predecessors!
  br label %10339

10339:                                            ; preds = %10338
  br label %10340

10340:                                            ; preds = %10339, %10281
  br label %10341

10341:                                            ; preds = %10340
  br label %10342

10342:                                            ; preds = %10341
  br label %10343

10343:                                            ; preds = %10342
  %10344 = load i32, ptr @test_count, align 4, !tbaa !5
  %10345 = add nsw i32 %10344, 1
  store i32 %10345, ptr @test_count, align 4, !tbaa !5
  %10346 = call i32 @waitpid(i32 noundef -1, ptr noundef %9, i32 noundef 0)
  %10347 = load i32, ptr %10, align 4, !tbaa !5
  %10348 = icmp eq i32 %10346, %10347
  br i1 %10348, label %10402, label %10349

10349:                                            ; preds = %10343
  br label %10350

10350:                                            ; preds = %10349
  br label %10351

10351:                                            ; preds = %10350
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #12
  %10352 = call ptr @__errno_location() #13
  %10353 = load i32, ptr %10352, align 4, !tbaa !5
  store i32 %10353, ptr %204, align 4, !tbaa !5
  %10354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10355 = call i32 @s2n_print_stacktrace(ptr noundef %10354)
  %10356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10357 = trunc i8 %10356 to i1
  br i1 %10357, label %10358, label %10380

10358:                                            ; preds = %10351
  %10359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10360 = call i32 @fileno(ptr noundef %10359) #12
  %10361 = call i32 @isatty(i32 noundef %10360) #12
  %10362 = icmp ne i32 %10361, 0
  br i1 %10362, label %10363, label %10380

10363:                                            ; preds = %10358
  %10364 = load i32, ptr %204, align 4, !tbaa !5
  %10365 = call ptr @__errno_location() #13
  store i32 %10364, ptr %10365, align 4, !tbaa !5
  %10366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10367 = load i32, ptr @test_count, align 4, !tbaa !5
  %10368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10369 = load i32, ptr %10368, align 4, !tbaa !5
  %10370 = call ptr @s2n_strerror(i32 noundef %10369, ptr noundef @.str.3)
  %10371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10372 = load i32, ptr %10371, align 4, !tbaa !5
  %10373 = call ptr @s2n_strerror_debug(i32 noundef %10372, ptr noundef @.str.3)
  %10374 = call ptr @__errno_location() #13
  %10375 = load i32, ptr %10374, align 4, !tbaa !5
  %10376 = call ptr @strerror(i32 noundef %10375) #12
  %10377 = call ptr @__errno_location() #13
  %10378 = load i32, ptr %10377, align 4, !tbaa !5
  %10379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10366, ptr noundef @.str, i32 noundef %10367, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 662, ptr noundef %10370, ptr noundef %10373, ptr noundef %10376, i32 noundef %10378) #12
  br label %10397

10380:                                            ; preds = %10358, %10351
  %10381 = load i32, ptr %204, align 4, !tbaa !5
  %10382 = call ptr @__errno_location() #13
  store i32 %10381, ptr %10382, align 4, !tbaa !5
  %10383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10384 = load i32, ptr @test_count, align 4, !tbaa !5
  %10385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10386 = load i32, ptr %10385, align 4, !tbaa !5
  %10387 = call ptr @s2n_strerror(i32 noundef %10386, ptr noundef @.str.3)
  %10388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10389 = load i32, ptr %10388, align 4, !tbaa !5
  %10390 = call ptr @s2n_strerror_debug(i32 noundef %10389, ptr noundef @.str.3)
  %10391 = call ptr @__errno_location() #13
  %10392 = load i32, ptr %10391, align 4, !tbaa !5
  %10393 = call ptr @strerror(i32 noundef %10392) #12
  %10394 = call ptr @__errno_location() #13
  %10395 = load i32, ptr %10394, align 4, !tbaa !5
  %10396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10383, ptr noundef @.str.4, i32 noundef %10384, ptr noundef @.str.88, ptr noundef @.str.2, i32 noundef 662, ptr noundef %10387, ptr noundef %10390, ptr noundef %10393, i32 noundef %10395) #12
  br label %10397

10397:                                            ; preds = %10380, %10363
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #12
  br label %10398

10398:                                            ; preds = %10397
  br label %10399

10399:                                            ; preds = %10398
  call void @exit(i32 noundef 1) #14
  unreachable

10400:                                            ; No predecessors!
  br label %10401

10401:                                            ; preds = %10400
  br label %10402

10402:                                            ; preds = %10401, %10343
  br label %10403

10403:                                            ; preds = %10402
  br label %10404

10404:                                            ; preds = %10403
  br label %10405

10405:                                            ; preds = %10404
  %10406 = load i32, ptr @test_count, align 4, !tbaa !5
  %10407 = add nsw i32 %10406, 1
  store i32 %10407, ptr @test_count, align 4, !tbaa !5
  %10408 = load i32, ptr %9, align 4, !tbaa !5
  %10409 = icmp eq i32 %10408, 0
  br i1 %10409, label %10463, label %10410

10410:                                            ; preds = %10405
  br label %10411

10411:                                            ; preds = %10410
  br label %10412

10412:                                            ; preds = %10411
  call void @llvm.lifetime.start.p0(i64 4, ptr %205) #12
  %10413 = call ptr @__errno_location() #13
  %10414 = load i32, ptr %10413, align 4, !tbaa !5
  store i32 %10414, ptr %205, align 4, !tbaa !5
  %10415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10416 = call i32 @s2n_print_stacktrace(ptr noundef %10415)
  %10417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10418 = trunc i8 %10417 to i1
  br i1 %10418, label %10419, label %10441

10419:                                            ; preds = %10412
  %10420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10421 = call i32 @fileno(ptr noundef %10420) #12
  %10422 = call i32 @isatty(i32 noundef %10421) #12
  %10423 = icmp ne i32 %10422, 0
  br i1 %10423, label %10424, label %10441

10424:                                            ; preds = %10419
  %10425 = load i32, ptr %205, align 4, !tbaa !5
  %10426 = call ptr @__errno_location() #13
  store i32 %10425, ptr %10426, align 4, !tbaa !5
  %10427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10428 = load i32, ptr @test_count, align 4, !tbaa !5
  %10429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10430 = load i32, ptr %10429, align 4, !tbaa !5
  %10431 = call ptr @s2n_strerror(i32 noundef %10430, ptr noundef @.str.3)
  %10432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10433 = load i32, ptr %10432, align 4, !tbaa !5
  %10434 = call ptr @s2n_strerror_debug(i32 noundef %10433, ptr noundef @.str.3)
  %10435 = call ptr @__errno_location() #13
  %10436 = load i32, ptr %10435, align 4, !tbaa !5
  %10437 = call ptr @strerror(i32 noundef %10436) #12
  %10438 = call ptr @__errno_location() #13
  %10439 = load i32, ptr %10438, align 4, !tbaa !5
  %10440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10427, ptr noundef @.str, i32 noundef %10428, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 663, ptr noundef %10431, ptr noundef %10434, ptr noundef %10437, i32 noundef %10439) #12
  br label %10458

10441:                                            ; preds = %10419, %10412
  %10442 = load i32, ptr %205, align 4, !tbaa !5
  %10443 = call ptr @__errno_location() #13
  store i32 %10442, ptr %10443, align 4, !tbaa !5
  %10444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10445 = load i32, ptr @test_count, align 4, !tbaa !5
  %10446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10447 = load i32, ptr %10446, align 4, !tbaa !5
  %10448 = call ptr @s2n_strerror(i32 noundef %10447, ptr noundef @.str.3)
  %10449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10450 = load i32, ptr %10449, align 4, !tbaa !5
  %10451 = call ptr @s2n_strerror_debug(i32 noundef %10450, ptr noundef @.str.3)
  %10452 = call ptr @__errno_location() #13
  %10453 = load i32, ptr %10452, align 4, !tbaa !5
  %10454 = call ptr @strerror(i32 noundef %10453) #12
  %10455 = call ptr @__errno_location() #13
  %10456 = load i32, ptr %10455, align 4, !tbaa !5
  %10457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10444, ptr noundef @.str.4, i32 noundef %10445, ptr noundef @.str.89, ptr noundef @.str.2, i32 noundef 663, ptr noundef %10448, ptr noundef %10451, ptr noundef %10454, i32 noundef %10456) #12
  br label %10458

10458:                                            ; preds = %10441, %10424
  call void @llvm.lifetime.end.p0(i64 4, ptr %205) #12
  br label %10459

10459:                                            ; preds = %10458
  br label %10460

10460:                                            ; preds = %10459
  call void @exit(i32 noundef 1) #14
  unreachable

10461:                                            ; No predecessors!
  br label %10462

10462:                                            ; preds = %10461
  br label %10463

10463:                                            ; preds = %10462, %10405
  br label %10464

10464:                                            ; preds = %10463
  br label %10465

10465:                                            ; preds = %10464
  br label %10466

10466:                                            ; preds = %10465
  %10467 = load i32, ptr @test_count, align 4, !tbaa !5
  %10468 = add nsw i32 %10467, 1
  store i32 %10468, ptr @test_count, align 4, !tbaa !5
  %10469 = load ptr, ptr %13, align 8, !tbaa !9
  %10470 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %10469)
  %10471 = icmp eq i32 %10470, -1
  br i1 %10471, label %10472, label %10525

10472:                                            ; preds = %10466
  br label %10473

10473:                                            ; preds = %10472
  br label %10474

10474:                                            ; preds = %10473
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #12
  %10475 = call ptr @__errno_location() #13
  %10476 = load i32, ptr %10475, align 4, !tbaa !5
  store i32 %10476, ptr %206, align 4, !tbaa !5
  %10477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10478 = call i32 @s2n_print_stacktrace(ptr noundef %10477)
  %10479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10480 = trunc i8 %10479 to i1
  br i1 %10480, label %10481, label %10503

10481:                                            ; preds = %10474
  %10482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10483 = call i32 @fileno(ptr noundef %10482) #12
  %10484 = call i32 @isatty(i32 noundef %10483) #12
  %10485 = icmp ne i32 %10484, 0
  br i1 %10485, label %10486, label %10503

10486:                                            ; preds = %10481
  %10487 = load i32, ptr %206, align 4, !tbaa !5
  %10488 = call ptr @__errno_location() #13
  store i32 %10487, ptr %10488, align 4, !tbaa !5
  %10489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10490 = load i32, ptr @test_count, align 4, !tbaa !5
  %10491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10492 = load i32, ptr %10491, align 4, !tbaa !5
  %10493 = call ptr @s2n_strerror(i32 noundef %10492, ptr noundef @.str.3)
  %10494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10495 = load i32, ptr %10494, align 4, !tbaa !5
  %10496 = call ptr @s2n_strerror_debug(i32 noundef %10495, ptr noundef @.str.3)
  %10497 = call ptr @__errno_location() #13
  %10498 = load i32, ptr %10497, align 4, !tbaa !5
  %10499 = call ptr @strerror(i32 noundef %10498) #12
  %10500 = call ptr @__errno_location() #13
  %10501 = load i32, ptr %10500, align 4, !tbaa !5
  %10502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10489, ptr noundef @.str, i32 noundef %10490, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 665, ptr noundef %10493, ptr noundef %10496, ptr noundef %10499, i32 noundef %10501) #12
  br label %10520

10503:                                            ; preds = %10481, %10474
  %10504 = load i32, ptr %206, align 4, !tbaa !5
  %10505 = call ptr @__errno_location() #13
  store i32 %10504, ptr %10505, align 4, !tbaa !5
  %10506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10507 = load i32, ptr @test_count, align 4, !tbaa !5
  %10508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10509 = load i32, ptr %10508, align 4, !tbaa !5
  %10510 = call ptr @s2n_strerror(i32 noundef %10509, ptr noundef @.str.3)
  %10511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10512 = load i32, ptr %10511, align 4, !tbaa !5
  %10513 = call ptr @s2n_strerror_debug(i32 noundef %10512, ptr noundef @.str.3)
  %10514 = call ptr @__errno_location() #13
  %10515 = load i32, ptr %10514, align 4, !tbaa !5
  %10516 = call ptr @strerror(i32 noundef %10515) #12
  %10517 = call ptr @__errno_location() #13
  %10518 = load i32, ptr %10517, align 4, !tbaa !5
  %10519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10506, ptr noundef @.str.4, i32 noundef %10507, ptr noundef @.str.90, ptr noundef @.str.2, i32 noundef 665, ptr noundef %10510, ptr noundef %10513, ptr noundef %10516, i32 noundef %10518) #12
  br label %10520

10520:                                            ; preds = %10503, %10486
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #12
  br label %10521

10521:                                            ; preds = %10520
  br label %10522

10522:                                            ; preds = %10521
  call void @exit(i32 noundef 1) #14
  unreachable

10523:                                            ; No predecessors!
  br label %10524

10524:                                            ; preds = %10523
  br label %10525

10525:                                            ; preds = %10524, %10466
  br label %10526

10526:                                            ; preds = %10525
  br label %10527

10527:                                            ; preds = %10526
  %10528 = load ptr, ptr %11, align 8, !tbaa !9
  call void @free(ptr noundef %10528) #12
  %10529 = load ptr, ptr %12, align 8, !tbaa !9
  call void @free(ptr noundef %10529) #12
  br label %10530

10530:                                            ; preds = %10527
  br label %10531

10531:                                            ; preds = %10530
  %10532 = call i32 @s2n_cleanup()
  %10533 = icmp eq i32 %10532, -1
  br i1 %10533, label %10534, label %10587

10534:                                            ; preds = %10531
  br label %10535

10535:                                            ; preds = %10534
  br label %10536

10536:                                            ; preds = %10535
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #12
  %10537 = call ptr @__errno_location() #13
  %10538 = load i32, ptr %10537, align 4, !tbaa !5
  store i32 %10538, ptr %207, align 4, !tbaa !5
  %10539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10540 = call i32 @s2n_print_stacktrace(ptr noundef %10539)
  %10541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10542 = trunc i8 %10541 to i1
  br i1 %10542, label %10543, label %10565

10543:                                            ; preds = %10536
  %10544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10545 = call i32 @fileno(ptr noundef %10544) #12
  %10546 = call i32 @isatty(i32 noundef %10545) #12
  %10547 = icmp ne i32 %10546, 0
  br i1 %10547, label %10548, label %10565

10548:                                            ; preds = %10543
  %10549 = load i32, ptr %207, align 4, !tbaa !5
  %10550 = call ptr @__errno_location() #13
  store i32 %10549, ptr %10550, align 4, !tbaa !5
  %10551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10552 = load i32, ptr @test_count, align 4, !tbaa !5
  %10553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10554 = load i32, ptr %10553, align 4, !tbaa !5
  %10555 = call ptr @s2n_strerror(i32 noundef %10554, ptr noundef @.str.3)
  %10556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10557 = load i32, ptr %10556, align 4, !tbaa !5
  %10558 = call ptr @s2n_strerror_debug(i32 noundef %10557, ptr noundef @.str.3)
  %10559 = call ptr @__errno_location() #13
  %10560 = load i32, ptr %10559, align 4, !tbaa !5
  %10561 = call ptr @strerror(i32 noundef %10560) #12
  %10562 = call ptr @__errno_location() #13
  %10563 = load i32, ptr %10562, align 4, !tbaa !5
  %10564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10551, ptr noundef @.str, i32 noundef %10552, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 669, ptr noundef %10555, ptr noundef %10558, ptr noundef %10561, i32 noundef %10563) #12
  br label %10582

10565:                                            ; preds = %10543, %10536
  %10566 = load i32, ptr %207, align 4, !tbaa !5
  %10567 = call ptr @__errno_location() #13
  store i32 %10566, ptr %10567, align 4, !tbaa !5
  %10568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10569 = load i32, ptr @test_count, align 4, !tbaa !5
  %10570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10571 = load i32, ptr %10570, align 4, !tbaa !5
  %10572 = call ptr @s2n_strerror(i32 noundef %10571, ptr noundef @.str.3)
  %10573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10574 = load i32, ptr %10573, align 4, !tbaa !5
  %10575 = call ptr @s2n_strerror_debug(i32 noundef %10574, ptr noundef @.str.3)
  %10576 = call ptr @__errno_location() #13
  %10577 = load i32, ptr %10576, align 4, !tbaa !5
  %10578 = call ptr @strerror(i32 noundef %10577) #12
  %10579 = call ptr @__errno_location() #13
  %10580 = load i32, ptr %10579, align 4, !tbaa !5
  %10581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10568, ptr noundef @.str.4, i32 noundef %10569, ptr noundef @.str.91, ptr noundef @.str.2, i32 noundef 669, ptr noundef %10572, ptr noundef %10575, ptr noundef %10578, i32 noundef %10580) #12
  br label %10582

10582:                                            ; preds = %10565, %10548
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #12
  br label %10583

10583:                                            ; preds = %10582
  br label %10584

10584:                                            ; preds = %10583
  call void @exit(i32 noundef 1) #14
  unreachable

10585:                                            ; No predecessors!
  br label %10586

10586:                                            ; preds = %10585
  br label %10587

10587:                                            ; preds = %10586, %10531
  br label %10588

10588:                                            ; preds = %10587
  br label %10589

10589:                                            ; preds = %10588
  br label %10590

10590:                                            ; preds = %10589
  br label %10591

10591:                                            ; preds = %10590
  %10592 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %10593 = icmp eq i32 %10592, -1
  br i1 %10593, label %10594, label %10647

10594:                                            ; preds = %10591
  br label %10595

10595:                                            ; preds = %10594
  br label %10596

10596:                                            ; preds = %10595
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #12
  %10597 = call ptr @__errno_location() #13
  %10598 = load i32, ptr %10597, align 4, !tbaa !5
  store i32 %10598, ptr %208, align 4, !tbaa !5
  %10599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10600 = call i32 @s2n_print_stacktrace(ptr noundef %10599)
  %10601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10602 = trunc i8 %10601 to i1
  br i1 %10602, label %10603, label %10625

10603:                                            ; preds = %10596
  %10604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10605 = call i32 @fileno(ptr noundef %10604) #12
  %10606 = call i32 @isatty(i32 noundef %10605) #12
  %10607 = icmp ne i32 %10606, 0
  br i1 %10607, label %10608, label %10625

10608:                                            ; preds = %10603
  %10609 = load i32, ptr %208, align 4, !tbaa !5
  %10610 = call ptr @__errno_location() #13
  store i32 %10609, ptr %10610, align 4, !tbaa !5
  %10611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10612 = load i32, ptr @test_count, align 4, !tbaa !5
  %10613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10614 = load i32, ptr %10613, align 4, !tbaa !5
  %10615 = call ptr @s2n_strerror(i32 noundef %10614, ptr noundef @.str.3)
  %10616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10617 = load i32, ptr %10616, align 4, !tbaa !5
  %10618 = call ptr @s2n_strerror_debug(i32 noundef %10617, ptr noundef @.str.3)
  %10619 = call ptr @__errno_location() #13
  %10620 = load i32, ptr %10619, align 4, !tbaa !5
  %10621 = call ptr @strerror(i32 noundef %10620) #12
  %10622 = call ptr @__errno_location() #13
  %10623 = load i32, ptr %10622, align 4, !tbaa !5
  %10624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10611, ptr noundef @.str, i32 noundef %10612, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 669, ptr noundef %10615, ptr noundef %10618, ptr noundef %10621, i32 noundef %10623) #12
  br label %10642

10625:                                            ; preds = %10603, %10596
  %10626 = load i32, ptr %208, align 4, !tbaa !5
  %10627 = call ptr @__errno_location() #13
  store i32 %10626, ptr %10627, align 4, !tbaa !5
  %10628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10629 = load i32, ptr @test_count, align 4, !tbaa !5
  %10630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10631 = load i32, ptr %10630, align 4, !tbaa !5
  %10632 = call ptr @s2n_strerror(i32 noundef %10631, ptr noundef @.str.3)
  %10633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10634 = load i32, ptr %10633, align 4, !tbaa !5
  %10635 = call ptr @s2n_strerror_debug(i32 noundef %10634, ptr noundef @.str.3)
  %10636 = call ptr @__errno_location() #13
  %10637 = load i32, ptr %10636, align 4, !tbaa !5
  %10638 = call ptr @strerror(i32 noundef %10637) #12
  %10639 = call ptr @__errno_location() #13
  %10640 = load i32, ptr %10639, align 4, !tbaa !5
  %10641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10628, ptr noundef @.str.4, i32 noundef %10629, ptr noundef @.str.92, ptr noundef @.str.2, i32 noundef 669, ptr noundef %10632, ptr noundef %10635, ptr noundef %10638, i32 noundef %10640) #12
  br label %10642

10642:                                            ; preds = %10625, %10608
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #12
  br label %10643

10643:                                            ; preds = %10642
  br label %10644

10644:                                            ; preds = %10643
  call void @exit(i32 noundef 1) #14
  unreachable

10645:                                            ; No predecessors!
  br label %10646

10646:                                            ; preds = %10645
  br label %10647

10647:                                            ; preds = %10646, %10591
  br label %10648

10648:                                            ; preds = %10647
  br label %10649

10649:                                            ; preds = %10648
  %10650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %10651 = trunc i8 %10650 to i1
  br i1 %10651, label %10652, label %10668

10652:                                            ; preds = %10649
  %10653 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10654 = call i32 @fileno(ptr noundef %10653) #12
  %10655 = call i32 @isatty(i32 noundef %10654) #12
  %10656 = icmp ne i32 %10655, 0
  br i1 %10656, label %10657, label %10668

10657:                                            ; preds = %10652
  %10658 = load i32, ptr @test_count, align 4, !tbaa !5
  %10659 = icmp ne i32 %10658, 0
  br i1 %10659, label %10660, label %10664

10660:                                            ; preds = %10657
  %10661 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10662 = load i32, ptr @test_count, align 4, !tbaa !5
  %10663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10661, ptr noundef @.str.93, i32 noundef %10662) #12
  br label %10667

10664:                                            ; preds = %10657
  %10665 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10665, ptr noundef @.str.94) #12
  br label %10667

10667:                                            ; preds = %10664, %10660
  br label %10679

10668:                                            ; preds = %10652, %10649
  %10669 = load i32, ptr @test_count, align 4, !tbaa !5
  %10670 = icmp ne i32 %10669, 0
  br i1 %10670, label %10671, label %10675

10671:                                            ; preds = %10668
  %10672 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10673 = load i32, ptr @test_count, align 4, !tbaa !5
  %10674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10672, ptr noundef @.str.95, i32 noundef %10673) #12
  br label %10678

10675:                                            ; preds = %10668
  %10676 = load ptr, ptr @stdout, align 8, !tbaa !9
  %10677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10676, ptr noundef @.str.96) #12
  br label %10678

10678:                                            ; preds = %10675, %10671
  br label %10679

10679:                                            ; preds = %10678, %10667
  store i32 0, ptr %3, align 4
  store i32 1, ptr %42, align 4
  br label %10684

10680:                                            ; No predecessors!
  br label %10681

10681:                                            ; preds = %10680
  br label %10682

10682:                                            ; preds = %10681
  br label %10683

10683:                                            ; preds = %10682
  store i32 0, ptr %42, align 4
  br label %10684

10684:                                            ; preds = %10683, %10679, %1407, %1394
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #12
  %10685 = load i32, ptr %42, align 4
  switch i32 %10685, label %10688 [
    i32 0, label %10686
    i32 1, label %10686
  ]

10686:                                            ; preds = %10684, %10684
  %10687 = load i32, ptr %3, align 4
  ret i32 %10687

10688:                                            ; preds = %10684
  unreachable
}

; 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

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_io_pair_init(ptr noundef) #3

; Function Attrs: nounwind
declare i32 @fork() #4

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #10

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #3

declare ptr @s2n_cert_chain_and_key_new() #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_cache_store_callback(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_cache_retrieve_callback(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_cache_delete_callback(ptr noundef, ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_session_cache_onoff(ptr noundef, i8 noundef zeroext) #3

declare i32 @s2n_config_add_ticket_crypto_key(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i64 noundef) #3

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #7

declare i32 @s2n_error_get_type(i32 noundef) #3

declare i32 @s2n_connection_get_session_id_length(ptr noundef) #3

declare i32 @s2n_connection_get_session_id(ptr noundef, ptr noundef, i64 noundef) #3

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #3

declare void @s2n_debug_info_reset() #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #3

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #11

declare i32 @s2n_negotiate_until_message(ptr noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #3

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_wipe(ptr noundef) #3

declare i32 @s2n_io_pair_close(ptr noundef) #3

declare i32 @waitpid(i32 noundef, ptr noundef, i32 noundef) #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #4

declare i32 @s2n_cleanup() #3

; Function Attrs: nounwind uwtable
declare hidden void @initialize_cache() #0

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { nounwind allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind allocsize(0) }
attributes #16 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_Bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !10, i64 80}
!18 = !{!"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, !19, i64 24, !20, 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, !12, i64 144, !10, i64 152, !12, i64 160, !12, 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, !21, i64 304, !22, 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, !20, i64 448}
!19 = !{!"certs_by_type", !7, i64 0}
!20 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!22 = !{!"short", !7, i64 0}
!23 = !{!18, !10, i64 104}
!24 = !{!25, !7, i64 220}
!25 = !{!"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, !26, i64 160, !12, i64 168, !12, 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, !27, i64 240, !10, i64 632, !10, i64 640, !28, i64 648, !33, i64 1144, !36, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !38, i64 1776, !38, i64 1816, !38, i64 1856, !38, i64 1896, !6, i64 1936, !12, i64 1944, !7, i64 1952, !38, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !14, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !22, i64 2208, !6, i64 2212, !22, i64 2216, !12, i64 2224, !7, i64 2232, !12, i64 2240, !12, i64 2248, !12, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !38, i64 3992, !20, i64 4032, !20, i64 4056, !14, i64 4080, !14, i64 4081, !14, i64 4082, !22, i64 4084, !22, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !12, i64 0}
!27 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!28 = !{!"s2n_kex_parameters", !29, i64 0, !30, i64 8, !7, i64 24, !30, i64 56, !31, i64 72, !31, i64 184, !7, i64 296, !32, i64 360, !20, i64 448, !20, i64 472}
!29 = !{!"s2n_dh_params", !10, i64 0}
!30 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!31 = !{!"s2n_kem_group_params", !10, i64 0, !32, i64 8, !30, i64 96}
!32 = !{!"s2n_kem_params", !10, i64 0, !20, i64 8, !20, i64 32, !20, i64 56, !14, i64 80}
!33 = !{!"s2n_handshake_parameters", !34, i64 0, !34, i64 48, !20, i64 96, !6, i64 120, !35, 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}
!34 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!35 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!36 = !{!"s2n_psk_parameters", !6, i64 0, !37, i64 8, !22, i64 40, !22, i64 42, !10, i64 48, !6, i64 56}
!37 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!38 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!39 = !{!"", !6, i64 0}
!40 = !{!"s2n_handshake", !38, 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, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !10, i64 0}
!42 = !{!"s2n_client_hello", !20, i64 0, !43, i64 24, !20, i64 728, !20, i64 752, !20, 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}
!43 = !{!"", !7, i64 0, !20, i64 672, !22, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !22, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !45, i64 48, !14, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !38, i64 0, !7, i64 40}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = distinct !{!50, !49}
!51 = !{!7, !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.session_cache_entry = type { [32 x i8], i8, [255 x i8], i8, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }

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

; Function Attrs: nounwind uwtable
declare dso_local i32 @cache_store_callback(ptr noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef) #0

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #2

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #4

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #4

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare dso_local i32 @cache_retrieve_callback(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare dso_local i32 @cache_delete_callback(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #0

; Function Attrs: nounwind uwtable
declare dso_local void @mock_client(ptr noundef) local_unnamed_addr #0

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) local_unnamed_addr #3

declare zeroext i1 @s2n_handshake_type_check_flag(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_get_session_length(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_get_session(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare i32 @s2n_shutdown(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_session(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_close_one_end(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca [256 x i8], align 16
  %6 = alloca i64, align 8
  %7 = alloca [32 x i8], align 16
  %8 = alloca [32 x i8], align 16
  %9 = alloca [16 x i8], align 16
  %10 = alloca [32 x i8], align 16
  %11 = alloca %struct.s2n_test_io_pair, align 4
  %12 = alloca i8, align 1
  %13 = alloca [202 x i8], align 16
  %14 = alloca [202 x i8], align 16
  %15 = alloca i8, align 1
  %16 = alloca [202 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #15
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #15
  store i32 0, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %5) #15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #15
  store i64 0, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #15
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #15
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %9, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.ticket_key_name, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #15
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %10, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.ticket_key, i64 32, i1 false)
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %17 = load ptr, ptr @stdout, align 8, !tbaa !11
  %18 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %17, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2) #15
  %19 = load ptr, ptr @stdout, align 8, !tbaa !11
  %20 = tail call i32 @fflush(ptr noundef %19)
  %21 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #15
  %22 = icmp eq i32 %21, -1
  br i1 %22, label %23, label %47

23:                                               ; preds = %2
  %24 = tail call ptr @__errno_location() #16
  %25 = load i32, ptr %24, align 4, !tbaa !5
  %26 = load ptr, ptr @stderr, align 8, !tbaa !11
  %27 = tail call i32 @s2n_print_stacktrace(ptr noundef %26) #15
  %28 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %29 = trunc nuw i8 %28 to i1
  br i1 %29, label %30, label %34

30:                                               ; preds = %23
  %31 = load ptr, ptr @stderr, align 8, !tbaa !11
  %32 = tail call i32 @fileno(ptr noundef %31) #15
  %33 = tail call i32 @isatty(i32 noundef %32) #15
  %.not708 = icmp eq i32 %33, 0
  br i1 %.not708, label %34, label %35

34:                                               ; preds = %30, %23
  br label %35

35:                                               ; preds = %30, %34
  %.str.4.sink = phi ptr [ @.str.4, %34 ], [ @.str, %30 ]
  store i32 %25, ptr %24, align 4, !tbaa !5
  %36 = load ptr, ptr @stderr, align 8, !tbaa !11
  %37 = load i32, ptr @test_count, align 4, !tbaa !5
  %38 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %39 = load i32, ptr %38, align 4, !tbaa !5
  %40 = tail call ptr @s2n_strerror(i32 noundef %39, ptr noundef nonnull @.str.3) #15
  %41 = load i32, ptr %38, align 4, !tbaa !5
  %42 = tail call ptr @s2n_strerror_debug(i32 noundef %41, ptr noundef nonnull @.str.3) #15
  %43 = load i32, ptr %24, align 4, !tbaa !5
  %44 = tail call ptr @strerror(i32 noundef %43) #15
  %45 = load i32, ptr %24, align 4, !tbaa !5
  %46 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %36, ptr noundef nonnull %.str.4.sink, i32 noundef %37, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 314, ptr noundef %40, ptr noundef %42, ptr noundef %44, i32 noundef %45) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

47:                                               ; preds = %2
  %48 = load i32, ptr @test_count, align 4, !tbaa !5
  %49 = add nsw i32 %48, 1
  store i32 %49, ptr @test_count, align 4, !tbaa !5
  %50 = tail call i32 @s2n_enable_atexit() #15
  %51 = icmp eq i32 %50, -1
  br i1 %51, label %52, label %76

52:                                               ; preds = %47
  %53 = tail call ptr @__errno_location() #16
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = load ptr, ptr @stderr, align 8, !tbaa !11
  %56 = tail call i32 @s2n_print_stacktrace(ptr noundef %55) #15
  %57 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %58 = trunc nuw i8 %57 to i1
  br i1 %58, label %59, label %63

59:                                               ; preds = %52
  %60 = load ptr, ptr @stderr, align 8, !tbaa !11
  %61 = tail call i32 @fileno(ptr noundef %60) #15
  %62 = tail call i32 @isatty(i32 noundef %61) #15
  %.not707 = icmp eq i32 %62, 0
  br i1 %.not707, label %63, label %64

63:                                               ; preds = %59, %52
  br label %64

64:                                               ; preds = %59, %63
  %.str.4.sink743 = phi ptr [ @.str.4, %63 ], [ @.str, %59 ]
  store i32 %54, ptr %53, align 4, !tbaa !5
  %65 = load ptr, ptr @stderr, align 8, !tbaa !11
  %66 = load i32, ptr @test_count, align 4, !tbaa !5
  %67 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror(i32 noundef %68, ptr noundef nonnull @.str.3) #15
  %70 = load i32, ptr %67, align 4, !tbaa !5
  %71 = tail call ptr @s2n_strerror_debug(i32 noundef %70, ptr noundef nonnull @.str.3) #15
  %72 = load i32, ptr %53, align 4, !tbaa !5
  %73 = tail call ptr @strerror(i32 noundef %72) #15
  %74 = load i32, ptr %53, align 4, !tbaa !5
  %75 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %65, ptr noundef nonnull %.str.4.sink743, i32 noundef %66, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 314, ptr noundef %69, ptr noundef %71, ptr noundef %73, i32 noundef %74) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

76:                                               ; preds = %47
  %77 = tail call i32 @s2n_init() #15
  %78 = icmp eq i32 %77, -1
  br i1 %78, label %79, label %103

79:                                               ; preds = %76
  %80 = tail call ptr @__errno_location() #16
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = load ptr, ptr @stderr, align 8, !tbaa !11
  %83 = tail call i32 @s2n_print_stacktrace(ptr noundef %82) #15
  %84 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %85 = trunc nuw i8 %84 to i1
  br i1 %85, label %86, label %90

86:                                               ; preds = %79
  %87 = load ptr, ptr @stderr, align 8, !tbaa !11
  %88 = tail call i32 @fileno(ptr noundef %87) #15
  %89 = tail call i32 @isatty(i32 noundef %88) #15
  %.not706 = icmp eq i32 %89, 0
  br i1 %.not706, label %90, label %91

90:                                               ; preds = %86, %79
  br label %91

91:                                               ; preds = %86, %90
  %.str.4.sink754 = phi ptr [ @.str.4, %90 ], [ @.str, %86 ]
  store i32 %81, ptr %80, align 4, !tbaa !5
  %92 = load ptr, ptr @stderr, align 8, !tbaa !11
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror(i32 noundef %95, ptr noundef nonnull @.str.3) #15
  %97 = load i32, ptr %94, align 4, !tbaa !5
  %98 = tail call ptr @s2n_strerror_debug(i32 noundef %97, ptr noundef nonnull @.str.3) #15
  %99 = load i32, ptr %80, align 4, !tbaa !5
  %100 = tail call ptr @strerror(i32 noundef %99) #15
  %101 = load i32, ptr %80, align 4, !tbaa !5
  %102 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef nonnull %.str.4.sink754, i32 noundef %93, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 314, ptr noundef %96, ptr noundef %98, ptr noundef %100, i32 noundef %101) #17
  tail call void @exit(i32 noundef 1) #18
  unreachable

103:                                              ; preds = %76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #15
  %104 = load i32, ptr @test_count, align 4, !tbaa !5
  %105 = add nsw i32 %104, 1
  store i32 %105, ptr @test_count, align 4, !tbaa !5
  %106 = call i32 @s2n_io_pair_init(ptr noundef nonnull %11) #15
  %107 = icmp eq i32 %106, -1
  br i1 %107, label %108, label %132

108:                                              ; preds = %103
  %109 = tail call ptr @__errno_location() #16
  %110 = load i32, ptr %109, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !11
  %112 = call i32 @s2n_print_stacktrace(ptr noundef %111) #15
  %113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %114 = trunc nuw i8 %113 to i1
  br i1 %114, label %115, label %119

115:                                              ; preds = %108
  %116 = load ptr, ptr @stderr, align 8, !tbaa !11
  %117 = call i32 @fileno(ptr noundef %116) #15
  %118 = call i32 @isatty(i32 noundef %117) #15
  %.not705 = icmp eq i32 %118, 0
  br i1 %.not705, label %119, label %120

119:                                              ; preds = %115, %108
  br label %120

120:                                              ; preds = %115, %119
  %.str.4.sink765 = phi ptr [ @.str.4, %119 ], [ @.str, %115 ]
  store i32 %110, ptr %109, align 4, !tbaa !5
  %121 = load ptr, ptr @stderr, align 8, !tbaa !11
  %122 = load i32, ptr @test_count, align 4, !tbaa !5
  %123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = call ptr @s2n_strerror(i32 noundef %124, ptr noundef nonnull @.str.3) #15
  %126 = load i32, ptr %123, align 4, !tbaa !5
  %127 = call ptr @s2n_strerror_debug(i32 noundef %126, ptr noundef nonnull @.str.3) #15
  %128 = load i32, ptr %109, align 4, !tbaa !5
  %129 = call ptr @strerror(i32 noundef %128) #15
  %130 = load i32, ptr %109, align 4, !tbaa !5
  %131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %121, ptr noundef nonnull %.str.4.sink765, i32 noundef %122, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 318, ptr noundef %125, ptr noundef %127, ptr noundef %129, i32 noundef %130) #17
  call void @exit(i32 noundef 1) #18
  unreachable

132:                                              ; preds = %103
  %133 = call i32 @fork() #15
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %165

135:                                              ; preds = %132
  %136 = load i32, ptr @test_count, align 4, !tbaa !5
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr @test_count, align 4, !tbaa !5
  %138 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %11, i32 noundef 0) #15
  %139 = icmp eq i32 %138, -1
  br i1 %139, label %140, label %164

140:                                              ; preds = %135
  %141 = tail call ptr @__errno_location() #16
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !11
  %144 = call i32 @s2n_print_stacktrace(ptr noundef %143) #15
  %145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %146 = trunc nuw i8 %145 to i1
  br i1 %146, label %147, label %151

147:                                              ; preds = %140
  %148 = load ptr, ptr @stderr, align 8, !tbaa !11
  %149 = call i32 @fileno(ptr noundef %148) #15
  %150 = call i32 @isatty(i32 noundef %149) #15
  %.not704 = icmp eq i32 %150, 0
  br i1 %.not704, label %151, label %152

151:                                              ; preds = %147, %140
  br label %152

152:                                              ; preds = %147, %151
  %.str.4.sink776 = phi ptr [ @.str.4, %151 ], [ @.str, %147 ]
  store i32 %142, ptr %141, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !11
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = call ptr @s2n_strerror(i32 noundef %156, ptr noundef nonnull @.str.3) #15
  %158 = load i32, ptr %155, align 4, !tbaa !5
  %159 = call ptr @s2n_strerror_debug(i32 noundef %158, ptr noundef nonnull @.str.3) #15
  %160 = load i32, ptr %141, align 4, !tbaa !5
  %161 = call ptr @strerror(i32 noundef %160) #15
  %162 = load i32, ptr %141, align 4, !tbaa !5
  %163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef nonnull %.str.4.sink776, i32 noundef %154, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 324, ptr noundef %157, ptr noundef %159, ptr noundef %161, i32 noundef %162) #17
  call void @exit(i32 noundef 1) #18
  unreachable

164:                                              ; preds = %135
  call void @mock_client(ptr noundef nonnull %11)
  br label %165

165:                                              ; preds = %132, %164
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %167 = add nsw i32 %166, 1
  store i32 %167, ptr @test_count, align 4, !tbaa !5
  %168 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #19
  %169 = icmp eq ptr %168, null
  br i1 %169, label %170, label %194

170:                                              ; preds = %165
  %171 = tail call ptr @__errno_location() #16
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !11
  %174 = call i32 @s2n_print_stacktrace(ptr noundef %173) #15
  %175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %176 = trunc nuw i8 %175 to i1
  br i1 %176, label %177, label %181

177:                                              ; preds = %170
  %178 = load ptr, ptr @stderr, align 8, !tbaa !11
  %179 = call i32 @fileno(ptr noundef %178) #15
  %180 = call i32 @isatty(i32 noundef %179) #15
  %.not703 = icmp eq i32 %180, 0
  br i1 %.not703, label %181, label %182

181:                                              ; preds = %177, %170
  br label %182

182:                                              ; preds = %177, %181
  %.str.4.sink787 = phi ptr [ @.str.4, %181 ], [ @.str, %177 ]
  store i32 %172, ptr %171, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !11
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call ptr @s2n_strerror(i32 noundef %186, ptr noundef nonnull @.str.3) #15
  %188 = load i32, ptr %185, align 4, !tbaa !5
  %189 = call ptr @s2n_strerror_debug(i32 noundef %188, ptr noundef nonnull @.str.3) #15
  %190 = load i32, ptr %171, align 4, !tbaa !5
  %191 = call ptr @strerror(i32 noundef %190) #15
  %192 = load i32, ptr %171, align 4, !tbaa !5
  %193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull %.str.4.sink787, i32 noundef %184, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 330, ptr noundef %187, ptr noundef %189, ptr noundef %191, i32 noundef %192) #17
  call void @exit(i32 noundef 1) #18
  unreachable

194:                                              ; preds = %165
  %195 = add nsw i32 %166, 2
  store i32 %195, ptr @test_count, align 4, !tbaa !5
  %196 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #19
  %197 = icmp eq ptr %196, null
  br i1 %197, label %198, label %222

198:                                              ; preds = %194
  %199 = tail call ptr @__errno_location() #16
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !11
  %202 = call i32 @s2n_print_stacktrace(ptr noundef %201) #15
  %203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %204 = trunc nuw i8 %203 to i1
  br i1 %204, label %205, label %209

205:                                              ; preds = %198
  %206 = load ptr, ptr @stderr, align 8, !tbaa !11
  %207 = call i32 @fileno(ptr noundef %206) #15
  %208 = call i32 @isatty(i32 noundef %207) #15
  %.not702 = icmp eq i32 %208, 0
  br i1 %.not702, label %209, label %210

209:                                              ; preds = %205, %198
  br label %210

210:                                              ; preds = %205, %209
  %.str.4.sink798 = phi ptr [ @.str.4, %209 ], [ @.str, %205 ]
  store i32 %200, ptr %199, align 4, !tbaa !5
  %211 = load ptr, ptr @stderr, align 8, !tbaa !11
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call ptr @s2n_strerror(i32 noundef %214, ptr noundef nonnull @.str.3) #15
  %216 = load i32, ptr %213, align 4, !tbaa !5
  %217 = call ptr @s2n_strerror_debug(i32 noundef %216, ptr noundef nonnull @.str.3) #15
  %218 = load i32, ptr %199, align 4, !tbaa !5
  %219 = call ptr @strerror(i32 noundef %218) #15
  %220 = load i32, ptr %199, align 4, !tbaa !5
  %221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef nonnull %.str.4.sink798, i32 noundef %212, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 331, ptr noundef %215, ptr noundef %217, ptr noundef %219, i32 noundef %220) #17
  call void @exit(i32 noundef 1) #18
  unreachable

222:                                              ; preds = %194
  %223 = add nsw i32 %166, 3
  store i32 %223, ptr @test_count, align 4, !tbaa !5
  %224 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %11, i32 noundef 1) #15
  %225 = icmp eq i32 %224, -1
  br i1 %225, label %226, label %250

226:                                              ; preds = %222
  %227 = tail call ptr @__errno_location() #16
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !11
  %230 = call i32 @s2n_print_stacktrace(ptr noundef %229) #15
  %231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %232 = trunc nuw i8 %231 to i1
  br i1 %232, label %233, label %237

233:                                              ; preds = %226
  %234 = load ptr, ptr @stderr, align 8, !tbaa !11
  %235 = call i32 @fileno(ptr noundef %234) #15
  %236 = call i32 @isatty(i32 noundef %235) #15
  %.not701 = icmp eq i32 %236, 0
  br i1 %.not701, label %237, label %238

237:                                              ; preds = %233, %226
  br label %238

238:                                              ; preds = %233, %237
  %.str.4.sink809 = phi ptr [ @.str.4, %237 ], [ @.str, %233 ]
  store i32 %228, ptr %227, align 4, !tbaa !5
  %239 = load ptr, ptr @stderr, align 8, !tbaa !11
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @s2n_strerror(i32 noundef %242, ptr noundef nonnull @.str.3) #15
  %244 = load i32, ptr %241, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror_debug(i32 noundef %244, ptr noundef nonnull @.str.3) #15
  %246 = load i32, ptr %227, align 4, !tbaa !5
  %247 = call ptr @strerror(i32 noundef %246) #15
  %248 = load i32, ptr %227, align 4, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef nonnull %.str.4.sink809, i32 noundef %240, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 334, ptr noundef %243, ptr noundef %245, ptr noundef %247, i32 noundef %248) #17
  call void @exit(i32 noundef 1) #18
  unreachable

250:                                              ; preds = %222
  call void @initialize_cache()
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr @test_count, align 4, !tbaa !5
  %253 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %254 = icmp eq ptr %253, null
  br i1 %254, label %255, label %279

255:                                              ; preds = %250
  %256 = tail call ptr @__errno_location() #16
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !11
  %259 = call i32 @s2n_print_stacktrace(ptr noundef %258) #15
  %260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %266

262:                                              ; preds = %255
  %263 = load ptr, ptr @stderr, align 8, !tbaa !11
  %264 = call i32 @fileno(ptr noundef %263) #15
  %265 = call i32 @isatty(i32 noundef %264) #15
  %.not700 = icmp eq i32 %265, 0
  br i1 %.not700, label %266, label %267

266:                                              ; preds = %262, %255
  br label %267

267:                                              ; preds = %262, %266
  %.str.4.sink820 = phi ptr [ @.str.4, %266 ], [ @.str, %262 ]
  store i32 %257, ptr %256, align 4, !tbaa !5
  %268 = load ptr, ptr @stderr, align 8, !tbaa !11
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror(i32 noundef %271, ptr noundef nonnull @.str.3) #15
  %273 = load i32, ptr %270, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror_debug(i32 noundef %273, ptr noundef nonnull @.str.3) #15
  %275 = load i32, ptr %256, align 4, !tbaa !5
  %276 = call ptr @strerror(i32 noundef %275) #15
  %277 = load i32, ptr %256, align 4, !tbaa !5
  %278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef nonnull %.str.4.sink820, i32 noundef %269, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 340, ptr noundef %272, ptr noundef %274, ptr noundef %276, i32 noundef %277) #17
  call void @exit(i32 noundef 1) #18
  unreachable

279:                                              ; preds = %250
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr @test_count, align 4, !tbaa !5
  %282 = call ptr @s2n_config_new() #15
  %283 = icmp eq ptr %282, null
  br i1 %283, label %284, label %308

284:                                              ; preds = %279
  %285 = tail call ptr @__errno_location() #16
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = load ptr, ptr @stderr, align 8, !tbaa !11
  %288 = call i32 @s2n_print_stacktrace(ptr noundef %287) #15
  %289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %290 = trunc nuw i8 %289 to i1
  br i1 %290, label %291, label %295

291:                                              ; preds = %284
  %292 = load ptr, ptr @stderr, align 8, !tbaa !11
  %293 = call i32 @fileno(ptr noundef %292) #15
  %294 = call i32 @isatty(i32 noundef %293) #15
  %.not699 = icmp eq i32 %294, 0
  br i1 %.not699, label %295, label %296

295:                                              ; preds = %291, %284
  br label %296

296:                                              ; preds = %291, %295
  %.str.4.sink831 = phi ptr [ @.str.4, %295 ], [ @.str, %291 ]
  store i32 %286, ptr %285, align 4, !tbaa !5
  %297 = load ptr, ptr @stderr, align 8, !tbaa !11
  %298 = load i32, ptr @test_count, align 4, !tbaa !5
  %299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call ptr @s2n_strerror(i32 noundef %300, ptr noundef nonnull @.str.3) #15
  %302 = load i32, ptr %299, align 4, !tbaa !5
  %303 = call ptr @s2n_strerror_debug(i32 noundef %302, ptr noundef nonnull @.str.3) #15
  %304 = load i32, ptr %285, align 4, !tbaa !5
  %305 = call ptr @strerror(i32 noundef %304) #15
  %306 = load i32, ptr %285, align 4, !tbaa !5
  %307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %297, ptr noundef nonnull %.str.4.sink831, i32 noundef %298, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 341, ptr noundef %301, ptr noundef %303, ptr noundef %305, i32 noundef %306) #17
  call void @exit(i32 noundef 1) #18
  unreachable

308:                                              ; preds = %279
  %309 = load i32, ptr @test_count, align 4, !tbaa !5
  %310 = add nsw i32 %309, 1
  store i32 %310, ptr @test_count, align 4, !tbaa !5
  %311 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %282, ptr noundef nonnull @.str.7) #15
  %312 = icmp eq i32 %311, -1
  br i1 %312, label %313, label %337

313:                                              ; preds = %308
  %314 = tail call ptr @__errno_location() #16
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !11
  %317 = call i32 @s2n_print_stacktrace(ptr noundef %316) #15
  %318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %319 = trunc nuw i8 %318 to i1
  br i1 %319, label %320, label %324

320:                                              ; preds = %313
  %321 = load ptr, ptr @stderr, align 8, !tbaa !11
  %322 = call i32 @fileno(ptr noundef %321) #15
  %323 = call i32 @isatty(i32 noundef %322) #15
  %.not698 = icmp eq i32 %323, 0
  br i1 %.not698, label %324, label %325

324:                                              ; preds = %320, %313
  br label %325

325:                                              ; preds = %320, %324
  %.str.4.sink842 = phi ptr [ @.str.4, %324 ], [ @.str, %320 ]
  store i32 %315, ptr %314, align 4, !tbaa !5
  %326 = load ptr, ptr @stderr, align 8, !tbaa !11
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror(i32 noundef %329, ptr noundef nonnull @.str.3) #15
  %331 = load i32, ptr %328, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror_debug(i32 noundef %331, ptr noundef nonnull @.str.3) #15
  %333 = load i32, ptr %314, align 4, !tbaa !5
  %334 = call ptr @strerror(i32 noundef %333) #15
  %335 = load i32, ptr %314, align 4, !tbaa !5
  %336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %326, ptr noundef nonnull %.str.4.sink842, i32 noundef %327, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 342, ptr noundef %330, ptr noundef %332, ptr noundef %334, i32 noundef %335) #17
  call void @exit(i32 noundef 1) #18
  unreachable

337:                                              ; preds = %308
  %338 = load i32, ptr @test_count, align 4, !tbaa !5
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr @test_count, align 4, !tbaa !5
  %340 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.22, ptr noundef nonnull %168, i64 noundef 12000) #15
  %341 = icmp eq i32 %340, -1
  br i1 %341, label %342, label %366

342:                                              ; preds = %337
  %343 = tail call ptr @__errno_location() #16
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !11
  %346 = call i32 @s2n_print_stacktrace(ptr noundef %345) #15
  %347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %348 = trunc nuw i8 %347 to i1
  br i1 %348, label %349, label %353

349:                                              ; preds = %342
  %350 = load ptr, ptr @stderr, align 8, !tbaa !11
  %351 = call i32 @fileno(ptr noundef %350) #15
  %352 = call i32 @isatty(i32 noundef %351) #15
  %.not697 = icmp eq i32 %352, 0
  br i1 %.not697, label %353, label %354

353:                                              ; preds = %349, %342
  br label %354

354:                                              ; preds = %349, %353
  %.str.4.sink853 = phi ptr [ @.str.4, %353 ], [ @.str, %349 ]
  store i32 %344, ptr %343, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !11
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror(i32 noundef %358, ptr noundef nonnull @.str.3) #15
  %360 = load i32, ptr %357, align 4, !tbaa !5
  %361 = call ptr @s2n_strerror_debug(i32 noundef %360, ptr noundef nonnull @.str.3) #15
  %362 = load i32, ptr %343, align 4, !tbaa !5
  %363 = call ptr @strerror(i32 noundef %362) #15
  %364 = load i32, ptr %343, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %355, ptr noundef nonnull %.str.4.sink853, i32 noundef %356, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 344, ptr noundef %359, ptr noundef %361, ptr noundef %363, i32 noundef %364) #17
  call void @exit(i32 noundef 1) #18
  unreachable

366:                                              ; preds = %337
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.24, ptr noundef nonnull %196, i64 noundef 12000) #15
  %370 = icmp eq i32 %369, -1
  br i1 %370, label %371, label %395

371:                                              ; preds = %366
  %372 = tail call ptr @__errno_location() #16
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !11
  %375 = call i32 @s2n_print_stacktrace(ptr noundef %374) #15
  %376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %377 = trunc nuw i8 %376 to i1
  br i1 %377, label %378, label %382

378:                                              ; preds = %371
  %379 = load ptr, ptr @stderr, align 8, !tbaa !11
  %380 = call i32 @fileno(ptr noundef %379) #15
  %381 = call i32 @isatty(i32 noundef %380) #15
  %.not696 = icmp eq i32 %381, 0
  br i1 %.not696, label %382, label %383

382:                                              ; preds = %378, %371
  br label %383

383:                                              ; preds = %378, %382
  %.str.4.sink864 = phi ptr [ @.str.4, %382 ], [ @.str, %378 ]
  store i32 %373, ptr %372, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !11
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %387 = load i32, ptr %386, align 4, !tbaa !5
  %388 = call ptr @s2n_strerror(i32 noundef %387, ptr noundef nonnull @.str.3) #15
  %389 = load i32, ptr %386, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror_debug(i32 noundef %389, ptr noundef nonnull @.str.3) #15
  %391 = load i32, ptr %372, align 4, !tbaa !5
  %392 = call ptr @strerror(i32 noundef %391) #15
  %393 = load i32, ptr %372, align 4, !tbaa !5
  %394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %384, ptr noundef nonnull %.str.4.sink864, i32 noundef %385, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 345, ptr noundef %388, ptr noundef %390, ptr noundef %392, i32 noundef %393) #17
  call void @exit(i32 noundef 1) #18
  unreachable

395:                                              ; preds = %366
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = call ptr @s2n_cert_chain_and_key_new() #15
  %399 = icmp eq ptr %398, null
  br i1 %399, label %400, label %424

400:                                              ; preds = %395
  %401 = tail call ptr @__errno_location() #16
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = load ptr, ptr @stderr, align 8, !tbaa !11
  %404 = call i32 @s2n_print_stacktrace(ptr noundef %403) #15
  %405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %406 = trunc nuw i8 %405 to i1
  br i1 %406, label %407, label %411

407:                                              ; preds = %400
  %408 = load ptr, ptr @stderr, align 8, !tbaa !11
  %409 = call i32 @fileno(ptr noundef %408) #15
  %410 = call i32 @isatty(i32 noundef %409) #15
  %.not695 = icmp eq i32 %410, 0
  br i1 %.not695, label %411, label %412

411:                                              ; preds = %407, %400
  br label %412

412:                                              ; preds = %407, %411
  %.str.4.sink875 = phi ptr [ @.str.4, %411 ], [ @.str, %407 ]
  store i32 %402, ptr %401, align 4, !tbaa !5
  %413 = load ptr, ptr @stderr, align 8, !tbaa !11
  %414 = load i32, ptr @test_count, align 4, !tbaa !5
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef nonnull @.str.3) #15
  %418 = load i32, ptr %415, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef nonnull @.str.3) #15
  %420 = load i32, ptr %401, align 4, !tbaa !5
  %421 = call ptr @strerror(i32 noundef %420) #15
  %422 = load i32, ptr %401, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %413, ptr noundef nonnull %.str.4.sink875, i32 noundef %414, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 346, ptr noundef %417, ptr noundef %419, ptr noundef %421, i32 noundef %422) #17
  call void @exit(i32 noundef 1) #18
  unreachable

424:                                              ; preds = %395
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %398, ptr noundef nonnull %168, ptr noundef nonnull %196) #15
  %428 = icmp eq i32 %427, -1
  br i1 %428, label %429, label %453

429:                                              ; preds = %424
  %430 = tail call ptr @__errno_location() #16
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !11
  %433 = call i32 @s2n_print_stacktrace(ptr noundef %432) #15
  %434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %435 = trunc nuw i8 %434 to i1
  br i1 %435, label %436, label %440

436:                                              ; preds = %429
  %437 = load ptr, ptr @stderr, align 8, !tbaa !11
  %438 = call i32 @fileno(ptr noundef %437) #15
  %439 = call i32 @isatty(i32 noundef %438) #15
  %.not694 = icmp eq i32 %439, 0
  br i1 %.not694, label %440, label %441

440:                                              ; preds = %436, %429
  br label %441

441:                                              ; preds = %436, %440
  %.str.4.sink886 = phi ptr [ @.str.4, %440 ], [ @.str, %436 ]
  store i32 %431, ptr %430, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !11
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %445 = load i32, ptr %444, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror(i32 noundef %445, ptr noundef nonnull @.str.3) #15
  %447 = load i32, ptr %444, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef nonnull @.str.3) #15
  %449 = load i32, ptr %430, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #15
  %451 = load i32, ptr %430, align 4, !tbaa !5
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull %.str.4.sink886, i32 noundef %443, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 347, ptr noundef %446, ptr noundef %448, ptr noundef %450, i32 noundef %451) #17
  call void @exit(i32 noundef 1) #18
  unreachable

453:                                              ; preds = %424
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %282, ptr noundef nonnull %398) #15
  %457 = icmp eq i32 %456, -1
  br i1 %457, label %458, label %482

458:                                              ; preds = %453
  %459 = tail call ptr @__errno_location() #16
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !11
  %462 = call i32 @s2n_print_stacktrace(ptr noundef %461) #15
  %463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %464 = trunc nuw i8 %463 to i1
  br i1 %464, label %465, label %469

465:                                              ; preds = %458
  %466 = load ptr, ptr @stderr, align 8, !tbaa !11
  %467 = call i32 @fileno(ptr noundef %466) #15
  %468 = call i32 @isatty(i32 noundef %467) #15
  %.not693 = icmp eq i32 %468, 0
  br i1 %.not693, label %469, label %470

469:                                              ; preds = %465, %458
  br label %470

470:                                              ; preds = %465, %469
  %.str.4.sink897 = phi ptr [ @.str.4, %469 ], [ @.str, %465 ]
  store i32 %460, ptr %459, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !11
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef nonnull @.str.3) #15
  %476 = load i32, ptr %473, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror_debug(i32 noundef %476, ptr noundef nonnull @.str.3) #15
  %478 = load i32, ptr %459, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #15
  %480 = load i32, ptr %459, align 4, !tbaa !5
  %481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef nonnull %.str.4.sink897, i32 noundef %472, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 348, ptr noundef %475, ptr noundef %477, ptr noundef %479, i32 noundef %480) #17
  call void @exit(i32 noundef 1) #18
  unreachable

482:                                              ; preds = %453
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  %485 = call i32 @s2n_config_set_cache_store_callback(ptr noundef nonnull %282, ptr noundef nonnull @cache_store_callback, ptr noundef nonnull @session_cache) #15
  %486 = icmp eq i32 %485, -1
  br i1 %486, label %487, label %511

487:                                              ; preds = %482
  %488 = tail call ptr @__errno_location() #16
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !11
  %491 = call i32 @s2n_print_stacktrace(ptr noundef %490) #15
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %493 = trunc nuw i8 %492 to i1
  br i1 %493, label %494, label %498

494:                                              ; preds = %487
  %495 = load ptr, ptr @stderr, align 8, !tbaa !11
  %496 = call i32 @fileno(ptr noundef %495) #15
  %497 = call i32 @isatty(i32 noundef %496) #15
  %.not692 = icmp eq i32 %497, 0
  br i1 %.not692, label %498, label %499

498:                                              ; preds = %494, %487
  br label %499

499:                                              ; preds = %494, %498
  %.str.4.sink908 = phi ptr [ @.str.4, %498 ], [ @.str, %494 ]
  store i32 %489, ptr %488, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !11
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef nonnull @.str.3) #15
  %505 = load i32, ptr %502, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef nonnull @.str.3) #15
  %507 = load i32, ptr %488, align 4, !tbaa !5
  %508 = call ptr @strerror(i32 noundef %507) #15
  %509 = load i32, ptr %488, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull %.str.4.sink908, i32 noundef %501, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 350, ptr noundef %504, ptr noundef %506, ptr noundef %508, i32 noundef %509) #17
  call void @exit(i32 noundef 1) #18
  unreachable

511:                                              ; preds = %482
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = call i32 @s2n_config_set_cache_retrieve_callback(ptr noundef nonnull %282, ptr noundef nonnull @cache_retrieve_callback, ptr noundef nonnull @session_cache) #15
  %515 = icmp eq i32 %514, -1
  br i1 %515, label %516, label %540

516:                                              ; preds = %511
  %517 = tail call ptr @__errno_location() #16
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !11
  %520 = call i32 @s2n_print_stacktrace(ptr noundef %519) #15
  %521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %522 = trunc nuw i8 %521 to i1
  br i1 %522, label %523, label %527

523:                                              ; preds = %516
  %524 = load ptr, ptr @stderr, align 8, !tbaa !11
  %525 = call i32 @fileno(ptr noundef %524) #15
  %526 = call i32 @isatty(i32 noundef %525) #15
  %.not691 = icmp eq i32 %526, 0
  br i1 %.not691, label %527, label %528

527:                                              ; preds = %523, %516
  br label %528

528:                                              ; preds = %523, %527
  %.str.4.sink919 = phi ptr [ @.str.4, %527 ], [ @.str, %523 ]
  store i32 %518, ptr %517, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !11
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror(i32 noundef %532, ptr noundef nonnull @.str.3) #15
  %534 = load i32, ptr %531, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror_debug(i32 noundef %534, ptr noundef nonnull @.str.3) #15
  %536 = load i32, ptr %517, align 4, !tbaa !5
  %537 = call ptr @strerror(i32 noundef %536) #15
  %538 = load i32, ptr %517, align 4, !tbaa !5
  %539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef nonnull %.str.4.sink919, i32 noundef %530, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 351, ptr noundef %533, ptr noundef %535, ptr noundef %537, i32 noundef %538) #17
  call void @exit(i32 noundef 1) #18
  unreachable

540:                                              ; preds = %511
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %542 = add nsw i32 %541, 1
  store i32 %542, ptr @test_count, align 4, !tbaa !5
  %543 = call i32 @s2n_config_set_cache_delete_callback(ptr noundef nonnull %282, ptr noundef nonnull @cache_delete_callback, ptr noundef nonnull @session_cache) #15
  %544 = icmp eq i32 %543, -1
  br i1 %544, label %545, label %569

545:                                              ; preds = %540
  %546 = tail call ptr @__errno_location() #16
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !11
  %549 = call i32 @s2n_print_stacktrace(ptr noundef %548) #15
  %550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %551 = trunc nuw i8 %550 to i1
  br i1 %551, label %552, label %556

552:                                              ; preds = %545
  %553 = load ptr, ptr @stderr, align 8, !tbaa !11
  %554 = call i32 @fileno(ptr noundef %553) #15
  %555 = call i32 @isatty(i32 noundef %554) #15
  %.not690 = icmp eq i32 %555, 0
  br i1 %.not690, label %556, label %557

556:                                              ; preds = %552, %545
  br label %557

557:                                              ; preds = %552, %556
  %.str.4.sink930 = phi ptr [ @.str.4, %556 ], [ @.str, %552 ]
  store i32 %547, ptr %546, align 4, !tbaa !5
  %558 = load ptr, ptr @stderr, align 8, !tbaa !11
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror(i32 noundef %561, ptr noundef nonnull @.str.3) #15
  %563 = load i32, ptr %560, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror_debug(i32 noundef %563, ptr noundef nonnull @.str.3) #15
  %565 = load i32, ptr %546, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #15
  %567 = load i32, ptr %546, align 4, !tbaa !5
  %568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %558, ptr noundef nonnull %.str.4.sink930, i32 noundef %559, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 352, ptr noundef %562, ptr noundef %564, ptr noundef %566, i32 noundef %567) #17
  call void @exit(i32 noundef 1) #18
  unreachable

569:                                              ; preds = %540
  %570 = call i32 @s2n_config_set_session_cache_onoff(ptr noundef nonnull %282, i8 noundef zeroext 1) #15
  %571 = icmp sgt i32 %570, -1
  br i1 %571, label %572, label %4577

572:                                              ; preds = %569
  %573 = getelementptr inbounds i8, ptr %282, i64 80
  %574 = load ptr, ptr %573, align 8, !tbaa !17
  %575 = getelementptr inbounds i8, ptr %282, i64 104
  %576 = load ptr, ptr %575, align 8, !tbaa !23
  %577 = call i32 %574(ptr noundef %576, ptr noundef nonnull %6) #15
  %578 = icmp sgt i32 %577, -1
  br i1 %578, label %579, label %4577

579:                                              ; preds = %572
  %580 = load i32, ptr @test_count, align 4, !tbaa !5
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr @test_count, align 4, !tbaa !5
  %582 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #20
  %583 = trunc i64 %582 to i32
  %584 = load i64, ptr %6, align 8, !tbaa !9
  %585 = udiv i64 %584, 1000000000
  %586 = call i32 @s2n_config_add_ticket_crypto_key(ptr noundef nonnull %282, ptr noundef nonnull %9, i32 noundef %583, ptr noundef nonnull %10, i32 noundef 32, i64 noundef %585) #15
  %587 = icmp eq i32 %586, -1
  br i1 %587, label %588, label %612

588:                                              ; preds = %579
  %589 = tail call ptr @__errno_location() #16
  %590 = load i32, ptr %589, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !11
  %592 = call i32 @s2n_print_stacktrace(ptr noundef %591) #15
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %599

595:                                              ; preds = %588
  %596 = load ptr, ptr @stderr, align 8, !tbaa !11
  %597 = call i32 @fileno(ptr noundef %596) #15
  %598 = call i32 @isatty(i32 noundef %597) #15
  %.not689 = icmp eq i32 %598, 0
  br i1 %.not689, label %599, label %600

599:                                              ; preds = %595, %588
  br label %600

600:                                              ; preds = %595, %599
  %.str.4.sink941 = phi ptr [ @.str.4, %599 ], [ @.str, %595 ]
  store i32 %590, ptr %589, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !11
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror(i32 noundef %604, ptr noundef nonnull @.str.3) #15
  %606 = load i32, ptr %603, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror_debug(i32 noundef %606, ptr noundef nonnull @.str.3) #15
  %608 = load i32, ptr %589, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #15
  %610 = load i32, ptr %589, align 4, !tbaa !5
  %611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.4.sink941, i32 noundef %602, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 359, ptr noundef %605, ptr noundef %607, ptr noundef %609, i32 noundef %610) #17
  call void @exit(i32 noundef 1) #18
  unreachable

612:                                              ; preds = %579
  %613 = load i32, ptr @test_count, align 4, !tbaa !5
  %614 = add nsw i32 %613, 1
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = call i32 @s2n_connection_set_config(ptr noundef nonnull %253, ptr noundef nonnull %282) #15
  %616 = icmp eq i32 %615, -1
  br i1 %616, label %617, label %641

617:                                              ; preds = %612
  %618 = tail call ptr @__errno_location() #16
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !11
  %621 = call i32 @s2n_print_stacktrace(ptr noundef %620) #15
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %623 = trunc nuw i8 %622 to i1
  br i1 %623, label %624, label %628

624:                                              ; preds = %617
  %625 = load ptr, ptr @stderr, align 8, !tbaa !11
  %626 = call i32 @fileno(ptr noundef %625) #15
  %627 = call i32 @isatty(i32 noundef %626) #15
  %.not688 = icmp eq i32 %627, 0
  br i1 %.not688, label %628, label %629

628:                                              ; preds = %624, %617
  br label %629

629:                                              ; preds = %624, %628
  %.str.4.sink952 = phi ptr [ @.str.4, %628 ], [ @.str, %624 ]
  store i32 %619, ptr %618, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !11
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror(i32 noundef %633, ptr noundef nonnull @.str.3) #15
  %635 = load i32, ptr %632, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror_debug(i32 noundef %635, ptr noundef nonnull @.str.3) #15
  %637 = load i32, ptr %618, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #15
  %639 = load i32, ptr %618, align 4, !tbaa !5
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.4.sink952, i32 noundef %631, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 361, ptr noundef %634, ptr noundef %636, ptr noundef %638, i32 noundef %639) #17
  call void @exit(i32 noundef 1) #18
  unreachable

641:                                              ; preds = %612
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = add nsw i32 %642, 1
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %253, ptr noundef nonnull %11) #15
  %645 = icmp eq i32 %644, -1
  br i1 %645, label %646, label %670

646:                                              ; preds = %641
  %647 = tail call ptr @__errno_location() #16
  %648 = load i32, ptr %647, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !11
  %650 = call i32 @s2n_print_stacktrace(ptr noundef %649) #15
  %651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %652 = trunc nuw i8 %651 to i1
  br i1 %652, label %653, label %657

653:                                              ; preds = %646
  %654 = load ptr, ptr @stderr, align 8, !tbaa !11
  %655 = call i32 @fileno(ptr noundef %654) #15
  %656 = call i32 @isatty(i32 noundef %655) #15
  %.not687 = icmp eq i32 %656, 0
  br i1 %.not687, label %657, label %658

657:                                              ; preds = %653, %646
  br label %658

658:                                              ; preds = %653, %657
  %.str.4.sink963 = phi ptr [ @.str.4, %657 ], [ @.str, %653 ]
  store i32 %648, ptr %647, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !11
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %662 = load i32, ptr %661, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror(i32 noundef %662, ptr noundef nonnull @.str.3) #15
  %664 = load i32, ptr %661, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef nonnull @.str.3) #15
  %666 = load i32, ptr %647, align 4, !tbaa !5
  %667 = call ptr @strerror(i32 noundef %666) #15
  %668 = load i32, ptr %647, align 4, !tbaa !5
  %669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %659, ptr noundef nonnull %.str.4.sink963, i32 noundef %660, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 364, ptr noundef %663, ptr noundef %665, ptr noundef %667, i32 noundef %668) #17
  call void @exit(i32 noundef 1) #18
  unreachable

670:                                              ; preds = %641
  %671 = call i32 @s2n_negotiate(ptr noundef nonnull %253, ptr noundef nonnull %3) #15
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = icmp eq i32 %671, -1
  br i1 %674, label %699, label %675

675:                                              ; preds = %670
  %676 = tail call ptr @__errno_location() #16
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !11
  %679 = call i32 @s2n_print_stacktrace(ptr noundef %678) #15
  %680 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %681 = trunc nuw i8 %680 to i1
  br i1 %681, label %682, label %686

682:                                              ; preds = %675
  %683 = load ptr, ptr @stderr, align 8, !tbaa !11
  %684 = call i32 @fileno(ptr noundef %683) #15
  %685 = call i32 @isatty(i32 noundef %684) #15
  %.not = icmp eq i32 %685, 0
  br i1 %.not, label %686, label %687

686:                                              ; preds = %682, %675
  br label %687

687:                                              ; preds = %682, %686
  %.str.4.sink974 = phi ptr [ @.str.4, %686 ], [ @.str, %682 ]
  store i32 %677, ptr %676, align 4, !tbaa !5
  %688 = load ptr, ptr @stderr, align 8, !tbaa !11
  %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 nonnull @.str.3) #15
  %693 = load i32, ptr %690, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror_debug(i32 noundef %693, ptr noundef nonnull @.str.3) #15
  %695 = load i32, ptr %676, align 4, !tbaa !5
  %696 = call ptr @strerror(i32 noundef %695) #15
  %697 = load i32, ptr %676, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %688, ptr noundef nonnull %.str.4.sink974, i32 noundef %689, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 371, ptr noundef %692, ptr noundef %694, ptr noundef %696, i32 noundef %697) #17
  call void @exit(i32 noundef 1) #18
  unreachable

699:                                              ; preds = %670
  %700 = add nsw i32 %672, 2
  store i32 %700, ptr @test_count, align 4, !tbaa !5
  %701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call i32 @s2n_error_get_type(i32 noundef %702) #15
  %704 = icmp eq i32 %703, 3
  br i1 %704, label %728, label %705

705:                                              ; preds = %699
  %706 = tail call ptr @__errno_location() #16
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !11
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708) #15
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %711 = trunc nuw i8 %710 to i1
  br i1 %711, label %712, label %716

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

716:                                              ; preds = %712, %705
  br label %717

717:                                              ; preds = %712, %716
  %.str.4.sink985 = phi ptr [ @.str.4, %716 ], [ @.str, %712 ]
  store i32 %707, ptr %706, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !11
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = load i32, ptr %701, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror(i32 noundef %720, ptr noundef nonnull @.str.3) #15
  %722 = load i32, ptr %701, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror_debug(i32 noundef %722, ptr noundef nonnull @.str.3) #15
  %724 = load i32, ptr %706, align 4, !tbaa !5
  %725 = call ptr @strerror(i32 noundef %724) #15
  %726 = load i32, ptr %706, align 4, !tbaa !5
  %727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %718, ptr noundef nonnull %.str.4.sink985, i32 noundef %719, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 372, ptr noundef %721, ptr noundef %723, ptr noundef %725, i32 noundef %726) #17
  call void @exit(i32 noundef 1) #18
  unreachable

728:                                              ; preds = %699
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = add nsw i32 %729, 1
  store i32 %730, ptr @test_count, align 4, !tbaa !5
  %731 = load i32, ptr %3, align 4, !tbaa !5
  %732 = icmp eq i32 %731, 3
  br i1 %732, label %756, label %733

733:                                              ; preds = %728
  %734 = tail call ptr @__errno_location() #16
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !11
  %737 = call i32 @s2n_print_stacktrace(ptr noundef %736) #15
  %738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %739 = trunc nuw i8 %738 to i1
  br i1 %739, label %740, label %744

740:                                              ; preds = %733
  %741 = load ptr, ptr @stderr, align 8, !tbaa !11
  %742 = call i32 @fileno(ptr noundef %741) #15
  %743 = call i32 @isatty(i32 noundef %742) #15
  %.not529 = icmp eq i32 %743, 0
  br i1 %.not529, label %744, label %745

744:                                              ; preds = %740, %733
  br label %745

745:                                              ; preds = %740, %744
  %.str.4.sink994 = phi ptr [ @.str.4, %744 ], [ @.str, %740 ]
  store i32 %735, ptr %734, align 4, !tbaa !5
  %746 = load ptr, ptr @stderr, align 8, !tbaa !11
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = load i32, ptr %701, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef nonnull @.str.3) #15
  %750 = load i32, ptr %701, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef nonnull @.str.3) #15
  %752 = load i32, ptr %734, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #15
  %754 = load i32, ptr %734, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %746, ptr noundef nonnull %.str.4.sink994, i32 noundef %747, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 373, ptr noundef %749, ptr noundef %751, ptr noundef %753, i32 noundef %754) #17
  call void @exit(i32 noundef 1) #18
  unreachable

756:                                              ; preds = %728
  %757 = add nsw i32 %729, 2
  store i32 %757, ptr @test_count, align 4, !tbaa !5
  %758 = call i32 @s2n_negotiate(ptr noundef nonnull %253, ptr noundef nonnull %3) #15
  %759 = icmp eq i32 %758, -1
  br i1 %759, label %760, label %783

760:                                              ; preds = %756
  %761 = tail call ptr @__errno_location() #16
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !11
  %764 = call i32 @s2n_print_stacktrace(ptr noundef %763) #15
  %765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %766 = trunc nuw i8 %765 to i1
  br i1 %766, label %767, label %771

767:                                              ; preds = %760
  %768 = load ptr, ptr @stderr, align 8, !tbaa !11
  %769 = call i32 @fileno(ptr noundef %768) #15
  %770 = call i32 @isatty(i32 noundef %769) #15
  %.not686 = icmp eq i32 %770, 0
  br i1 %.not686, label %771, label %772

771:                                              ; preds = %767, %760
  br label %772

772:                                              ; preds = %767, %771
  %.str.4.sink1003 = phi ptr [ @.str.4, %771 ], [ @.str, %767 ]
  store i32 %762, ptr %761, align 4, !tbaa !5
  %773 = load ptr, ptr @stderr, align 8, !tbaa !11
  %774 = load i32, ptr @test_count, align 4, !tbaa !5
  %775 = load i32, ptr %701, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef nonnull @.str.3) #15
  %777 = load i32, ptr %701, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror_debug(i32 noundef %777, ptr noundef nonnull @.str.3) #15
  %779 = load i32, ptr %761, align 4, !tbaa !5
  %780 = call ptr @strerror(i32 noundef %779) #15
  %781 = load i32, ptr %761, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %773, ptr noundef nonnull %.str.4.sink1003, i32 noundef %774, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 374, ptr noundef %776, ptr noundef %778, ptr noundef %780, i32 noundef %781) #17
  call void @exit(i32 noundef 1) #18
  unreachable

783:                                              ; preds = %756
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !5
  %786 = call i32 @s2n_connection_get_session_id_length(ptr noundef nonnull %253) #15
  %787 = icmp eq i32 %786, 32
  br i1 %787, label %811, label %788

788:                                              ; preds = %783
  %789 = tail call ptr @__errno_location() #16
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !11
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #15
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %788
  %796 = load ptr, ptr @stderr, align 8, !tbaa !11
  %797 = call i32 @fileno(ptr noundef %796) #15
  %798 = call i32 @isatty(i32 noundef %797) #15
  %.not530 = icmp eq i32 %798, 0
  br i1 %.not530, label %799, label %800

799:                                              ; preds = %795, %788
  br label %800

800:                                              ; preds = %795, %799
  %.str.4.sink1012 = phi ptr [ @.str.4, %799 ], [ @.str, %795 ]
  store i32 %790, ptr %789, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !11
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = load i32, ptr %701, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef nonnull @.str.3) #15
  %805 = load i32, ptr %701, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef nonnull @.str.3) #15
  %807 = load i32, ptr %789, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #15
  %809 = load i32, ptr %789, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.4.sink1012, i32 noundef %802, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 378, ptr noundef %804, ptr noundef %806, ptr noundef %808, i32 noundef %809) #17
  call void @exit(i32 noundef 1) #18
  unreachable

811:                                              ; preds = %783
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = add nsw i32 %812, 1
  store i32 %813, ptr @test_count, align 4, !tbaa !5
  %814 = call i32 @s2n_connection_get_session_id(ptr noundef nonnull %253, ptr noundef nonnull %7, i64 noundef 32) #15
  %815 = call i32 @s2n_connection_get_session_id_length(ptr noundef nonnull %253) #15
  %816 = icmp eq i32 %814, %815
  br i1 %816, label %840, label %817

817:                                              ; preds = %811
  %818 = tail call ptr @__errno_location() #16
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !11
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820) #15
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %823 = trunc nuw i8 %822 to i1
  br i1 %823, label %824, label %828

824:                                              ; preds = %817
  %825 = load ptr, ptr @stderr, align 8, !tbaa !11
  %826 = call i32 @fileno(ptr noundef %825) #15
  %827 = call i32 @isatty(i32 noundef %826) #15
  %.not531 = icmp eq i32 %827, 0
  br i1 %.not531, label %828, label %829

828:                                              ; preds = %824, %817
  br label %829

829:                                              ; preds = %824, %828
  %.str.4.sink1021 = phi ptr [ @.str.4, %828 ], [ @.str, %824 ]
  store i32 %819, ptr %818, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !11
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = load i32, ptr %701, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.3) #15
  %834 = load i32, ptr %701, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.3) #15
  %836 = load i32, ptr %818, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #15
  %838 = load i32, ptr %818, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef nonnull %.str.4.sink1021, i32 noundef %831, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 379, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #17
  call void @exit(i32 noundef 1) #18
  unreachable

840:                                              ; preds = %811
  %841 = load i32, ptr @test_count, align 4, !tbaa !5
  %842 = add nsw i32 %841, 1
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %253, i32 noundef 2) #15
  br i1 %843, label %867, label %844

844:                                              ; preds = %840
  %845 = tail call ptr @__errno_location() #16
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !11
  %848 = call i32 @s2n_print_stacktrace(ptr noundef %847) #15
  %849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %853 = call i32 @fileno(ptr noundef %852) #15
  %854 = call i32 @isatty(i32 noundef %853) #15
  %.not532 = icmp eq i32 %854, 0
  br i1 %.not532, label %855, label %856

855:                                              ; preds = %851, %844
  br label %856

856:                                              ; preds = %851, %855
  %.str.4.sink1030 = phi ptr [ @.str.4, %855 ], [ @.str, %851 ]
  store i32 %846, ptr %845, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !11
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = load i32, ptr %701, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror(i32 noundef %859, ptr noundef nonnull @.str.3) #15
  %861 = load i32, ptr %701, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror_debug(i32 noundef %861, ptr noundef nonnull @.str.3) #15
  %863 = load i32, ptr %845, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #15
  %865 = load i32, ptr %845, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef nonnull %.str.4.sink1030, i32 noundef %858, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 382, ptr noundef %860, ptr noundef %862, ptr noundef %864, i32 noundef %865) #17
  call void @exit(i32 noundef 1) #18
  unreachable

867:                                              ; preds = %840
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = getelementptr inbounds i8, ptr %253, i64 220
  %871 = load i8, ptr %870, align 4, !tbaa !24
  %872 = icmp eq i8 %871, 33
  br i1 %872, label %896, label %873

873:                                              ; preds = %867
  %874 = tail call ptr @__errno_location() #16
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !11
  %877 = call i32 @s2n_print_stacktrace(ptr noundef %876) #15
  %878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %882 = call i32 @fileno(ptr noundef %881) #15
  %883 = call i32 @isatty(i32 noundef %882) #15
  %.not533 = icmp eq i32 %883, 0
  br i1 %.not533, label %884, label %885

884:                                              ; preds = %880, %873
  br label %885

885:                                              ; preds = %880, %884
  %.str.4.sink1039 = phi ptr [ @.str.4, %884 ], [ @.str, %880 ]
  store i32 %875, ptr %874, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !11
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = load i32, ptr %701, align 4, !tbaa !5
  %889 = call ptr @s2n_strerror(i32 noundef %888, ptr noundef nonnull @.str.3) #15
  %890 = load i32, ptr %701, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror_debug(i32 noundef %890, ptr noundef nonnull @.str.3) #15
  %892 = load i32, ptr %874, align 4, !tbaa !5
  %893 = call ptr @strerror(i32 noundef %892) #15
  %894 = load i32, ptr %874, align 4, !tbaa !5
  %895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %886, ptr noundef nonnull %.str.4.sink1039, i32 noundef %887, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 383, ptr noundef %889, ptr noundef %891, ptr noundef %893, i32 noundef %894) #17
  call void @exit(i32 noundef 1) #18
  unreachable

896:                                              ; preds = %867
  %897 = add nsw i32 %868, 2
  store i32 %897, ptr @test_count, align 4, !tbaa !5
  %898 = call i64 @s2n_recv(ptr noundef nonnull %253, ptr noundef nonnull %5, i64 noundef 256, ptr noundef nonnull %3) #15
  %899 = and i64 %898, 4294967295
  %900 = icmp eq i64 %899, 4294967295
  br i1 %900, label %901, label %924

901:                                              ; preds = %896
  %902 = tail call ptr @__errno_location() #16
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !11
  %905 = call i32 @s2n_print_stacktrace(ptr noundef %904) #15
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %910 = call i32 @fileno(ptr noundef %909) #15
  %911 = call i32 @isatty(i32 noundef %910) #15
  %.not685 = icmp eq i32 %911, 0
  br i1 %.not685, label %912, label %913

912:                                              ; preds = %908, %901
  br label %913

913:                                              ; preds = %908, %912
  %.str.4.sink1048 = phi ptr [ @.str.4, %912 ], [ @.str, %908 ]
  store i32 %903, ptr %902, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !11
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = load i32, ptr %701, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.3) #15
  %918 = load i32, ptr %701, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.3) #15
  %920 = load i32, ptr %902, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #15
  %922 = load i32, ptr %902, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.4.sink1048, i32 noundef %915, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 386, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #17
  call void @exit(i32 noundef 1) #18
  unreachable

924:                                              ; preds = %896
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = icmp eq i64 %899, 5
  br i1 %927, label %951, label %928

928:                                              ; preds = %924
  %929 = tail call ptr @__errno_location() #16
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !11
  %932 = call i32 @s2n_print_stacktrace(ptr noundef %931) #15
  %933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %934 = trunc nuw i8 %933 to i1
  br i1 %934, label %935, label %939

935:                                              ; preds = %928
  %936 = load ptr, ptr @stderr, align 8, !tbaa !11
  %937 = call i32 @fileno(ptr noundef %936) #15
  %938 = call i32 @isatty(i32 noundef %937) #15
  %.not534 = icmp eq i32 %938, 0
  br i1 %.not534, label %939, label %940

939:                                              ; preds = %935, %928
  br label %940

940:                                              ; preds = %935, %939
  %.str.4.sink1057 = phi ptr [ @.str.4, %939 ], [ @.str, %935 ]
  store i32 %930, ptr %929, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !11
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = load i32, ptr %701, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef nonnull @.str.3) #15
  %945 = load i32, ptr %701, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef nonnull @.str.3) #15
  %947 = load i32, ptr %929, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #15
  %949 = load i32, ptr %929, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.4.sink1057, i32 noundef %942, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 387, ptr noundef %944, ptr noundef %946, ptr noundef %948, i32 noundef %949) #17
  call void @exit(i32 noundef 1) #18
  unreachable

951:                                              ; preds = %924
  %952 = add nsw i32 %925, 2
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(5) %5, ptr noundef nonnull dereferenceable(5) @MSG, i64 5)
  %953 = icmp eq i32 %bcmp, 0
  br i1 %953, label %.preheader711, label %954

954:                                              ; preds = %951
  %955 = tail call ptr @__errno_location() #16
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !11
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957) #15
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %965

961:                                              ; preds = %954
  %962 = load ptr, ptr @stderr, align 8, !tbaa !11
  %963 = call i32 @fileno(ptr noundef %962) #15
  %964 = call i32 @isatty(i32 noundef %963) #15
  %.not535 = icmp eq i32 %964, 0
  br i1 %.not535, label %965, label %966

965:                                              ; preds = %961, %954
  br label %966

966:                                              ; preds = %961, %965
  %.str.4.sink1066 = phi ptr [ @.str.4, %965 ], [ @.str, %961 ]
  store i32 %956, ptr %955, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !11
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = load i32, ptr %701, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.3) #15
  %971 = load i32, ptr %701, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.3) #15
  %973 = load i32, ptr %955, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #15
  %975 = load i32, ptr %955, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.4.sink1066, i32 noundef %968, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 388, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #17
  call void @exit(i32 noundef 1) #18
  unreachable

.preheader711:                                    ; preds = %951, %980
  %977 = call i32 @s2n_shutdown(ptr noundef nonnull %253, ptr noundef nonnull %3) #15
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %cond = icmp eq i32 %977, 0
  br i1 %cond, label %1007, label %980

980:                                              ; preds = %.preheader711
  %981 = tail call ptr @__errno_location() #16
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = icmp eq i32 %982, 11
  %984 = load i32, ptr %3, align 4
  %985 = icmp ne i32 %984, 0
  %or.cond = select i1 %983, i1 %985, i1 false
  br i1 %or.cond, label %.preheader711, label %986, !llvm.loop !48

986:                                              ; preds = %980
  %987 = load ptr, ptr @stderr, align 8, !tbaa !11
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #15
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

991:                                              ; preds = %986
  %992 = load ptr, ptr @stderr, align 8, !tbaa !11
  %993 = call i32 @fileno(ptr noundef %992) #15
  %994 = call i32 @isatty(i32 noundef %993) #15
  %.not536 = icmp eq i32 %994, 0
  br i1 %.not536, label %995, label %996

995:                                              ; preds = %991, %986
  br label %996

996:                                              ; preds = %991, %995
  %.str.4.sink1075 = phi ptr [ @.str.4, %995 ], [ @.str, %991 ]
  store i32 %982, ptr %981, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !11
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = load i32, ptr %701, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef nonnull @.str.3) #15
  %1001 = load i32, ptr %701, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror_debug(i32 noundef %1001, ptr noundef nonnull @.str.3) #15
  %1003 = load i32, ptr %981, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #15
  %1005 = load i32, ptr %981, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.4.sink1075, i32 noundef %998, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 393, ptr noundef %1000, ptr noundef %1002, ptr noundef %1004, i32 noundef %1005) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1007:                                             ; preds = %.preheader711
  %1008 = add nsw i32 %978, 2
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = call i32 @s2n_connection_free(ptr noundef nonnull %253) #15
  %1010 = icmp eq i32 %1009, -1
  br i1 %1010, label %1011, label %1034

1011:                                             ; preds = %1007
  %1012 = tail call ptr @__errno_location() #16
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1015 = call i32 @s2n_print_stacktrace(ptr noundef %1014) #15
  %1016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1017 = trunc nuw i8 %1016 to i1
  br i1 %1017, label %1018, label %1022

1018:                                             ; preds = %1011
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1020 = call i32 @fileno(ptr noundef %1019) #15
  %1021 = call i32 @isatty(i32 noundef %1020) #15
  %.not684 = icmp eq i32 %1021, 0
  br i1 %.not684, label %1022, label %1023

1022:                                             ; preds = %1018, %1011
  br label %1023

1023:                                             ; preds = %1018, %1022
  %.str.4.sink1084 = phi ptr [ @.str.4, %1022 ], [ @.str, %1018 ]
  store i32 %1013, ptr %1012, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = load i32, ptr %701, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef nonnull @.str.3) #15
  %1028 = load i32, ptr %701, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror_debug(i32 noundef %1028, ptr noundef nonnull @.str.3) #15
  %1030 = load i32, ptr %1012, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #15
  %1032 = load i32, ptr %1012, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef nonnull %.str.4.sink1084, i32 noundef %1025, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 397, ptr noundef %1027, ptr noundef %1029, ptr noundef %1031, i32 noundef %1032) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1034:                                             ; preds = %1007
  call void @initialize_cache()
  %1035 = load i32, ptr @test_count, align 4, !tbaa !5
  %1036 = add nsw i32 %1035, 1
  store i32 %1036, ptr @test_count, align 4, !tbaa !5
  %1037 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %1038 = icmp eq ptr %1037, null
  br i1 %1038, label %1039, label %1062

1039:                                             ; preds = %1034
  %1040 = tail call ptr @__errno_location() #16
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1043 = call i32 @s2n_print_stacktrace(ptr noundef %1042) #15
  %1044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1045 = trunc nuw i8 %1044 to i1
  br i1 %1045, label %1046, label %1050

1046:                                             ; preds = %1039
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1048 = call i32 @fileno(ptr noundef %1047) #15
  %1049 = call i32 @isatty(i32 noundef %1048) #15
  %.not683 = icmp eq i32 %1049, 0
  br i1 %.not683, label %1050, label %1051

1050:                                             ; preds = %1046, %1039
  br label %1051

1051:                                             ; preds = %1046, %1050
  %.str.4.sink1093 = phi ptr [ @.str.4, %1050 ], [ @.str, %1046 ]
  store i32 %1041, ptr %1040, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = load i32, ptr %701, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror(i32 noundef %1054, ptr noundef nonnull @.str.3) #15
  %1056 = load i32, ptr %701, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror_debug(i32 noundef %1056, ptr noundef nonnull @.str.3) #15
  %1058 = load i32, ptr %1040, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #15
  %1060 = load i32, ptr %1040, align 4, !tbaa !5
  %1061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef nonnull %.str.4.sink1093, i32 noundef %1053, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 403, ptr noundef %1055, ptr noundef %1057, ptr noundef %1059, i32 noundef %1060) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1062:                                             ; preds = %1034
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1037, ptr noundef %282) #15
  %1066 = icmp eq i32 %1065, -1
  br i1 %1066, label %1067, label %1090

1067:                                             ; preds = %1062
  %1068 = tail call ptr @__errno_location() #16
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1071 = call i32 @s2n_print_stacktrace(ptr noundef %1070) #15
  %1072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1073 = trunc nuw i8 %1072 to i1
  br i1 %1073, label %1074, label %1078

1074:                                             ; preds = %1067
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1076 = call i32 @fileno(ptr noundef %1075) #15
  %1077 = call i32 @isatty(i32 noundef %1076) #15
  %.not682 = icmp eq i32 %1077, 0
  br i1 %.not682, label %1078, label %1079

1078:                                             ; preds = %1074, %1067
  br label %1079

1079:                                             ; preds = %1074, %1078
  %.str.4.sink1102 = phi ptr [ @.str.4, %1078 ], [ @.str, %1074 ]
  store i32 %1069, ptr %1068, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1081 = load i32, ptr @test_count, align 4, !tbaa !5
  %1082 = load i32, ptr %701, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef nonnull @.str.3) #15
  %1084 = load i32, ptr %701, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef nonnull @.str.3) #15
  %1086 = load i32, ptr %1068, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #15
  %1088 = load i32, ptr %1068, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1080, ptr noundef nonnull %.str.4.sink1102, i32 noundef %1081, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 404, ptr noundef %1083, ptr noundef %1085, ptr noundef %1087, i32 noundef %1088) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1090:                                             ; preds = %1062
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = add nsw i32 %1091, 1
  store i32 %1092, ptr @test_count, align 4, !tbaa !5
  %1093 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1037, ptr noundef nonnull %11) #15
  %1094 = icmp eq i32 %1093, -1
  br i1 %1094, label %1095, label %1118

1095:                                             ; preds = %1090
  %1096 = tail call ptr @__errno_location() #16
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1099 = call i32 @s2n_print_stacktrace(ptr noundef %1098) #15
  %1100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1101 = trunc nuw i8 %1100 to i1
  br i1 %1101, label %1102, label %1106

1102:                                             ; preds = %1095
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1104 = call i32 @fileno(ptr noundef %1103) #15
  %1105 = call i32 @isatty(i32 noundef %1104) #15
  %.not681 = icmp eq i32 %1105, 0
  br i1 %.not681, label %1106, label %1107

1106:                                             ; preds = %1102, %1095
  br label %1107

1107:                                             ; preds = %1102, %1106
  %.str.4.sink1111 = phi ptr [ @.str.4, %1106 ], [ @.str, %1102 ]
  store i32 %1097, ptr %1096, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = load i32, ptr %701, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef nonnull @.str.3) #15
  %1112 = load i32, ptr %701, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef nonnull @.str.3) #15
  %1114 = load i32, ptr %1096, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #15
  %1116 = load i32, ptr %1096, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1108, ptr noundef nonnull %.str.4.sink1111, i32 noundef %1109, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 407, ptr noundef %1111, ptr noundef %1113, ptr noundef %1115, i32 noundef %1116) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1118:                                             ; preds = %1090
  %1119 = call i32 @s2n_negotiate(ptr noundef nonnull %1037, ptr noundef nonnull %3) #15
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = add nsw i32 %1120, 1
  store i32 %1121, ptr @test_count, align 4, !tbaa !5
  %1122 = icmp eq i32 %1119, -1
  br i1 %1122, label %1146, label %1123

1123:                                             ; preds = %1118
  %1124 = tail call ptr @__errno_location() #16
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1127 = call i32 @s2n_print_stacktrace(ptr noundef %1126) #15
  %1128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1129 = trunc nuw i8 %1128 to i1
  br i1 %1129, label %1130, label %1134

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

1134:                                             ; preds = %1130, %1123
  br label %1135

1135:                                             ; preds = %1130, %1134
  %.str.4.sink1120 = phi ptr [ @.str.4, %1134 ], [ @.str, %1130 ]
  store i32 %1125, ptr %1124, align 4, !tbaa !5
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = load i32, ptr %701, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef nonnull @.str.3) #15
  %1140 = load i32, ptr %701, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror_debug(i32 noundef %1140, ptr noundef nonnull @.str.3) #15
  %1142 = load i32, ptr %1124, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #15
  %1144 = load i32, ptr %1124, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1136, ptr noundef nonnull %.str.4.sink1120, i32 noundef %1137, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 414, ptr noundef %1139, ptr noundef %1141, ptr noundef %1143, i32 noundef %1144) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1146:                                             ; preds = %1118
  %1147 = add nsw i32 %1120, 2
  store i32 %1147, ptr @test_count, align 4, !tbaa !5
  %1148 = load i32, ptr %3, align 4, !tbaa !5
  %1149 = icmp eq i32 %1148, 3
  br i1 %1149, label %1173, label %1150

1150:                                             ; preds = %1146
  %1151 = tail call ptr @__errno_location() #16
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1154 = call i32 @s2n_print_stacktrace(ptr noundef %1153) #15
  %1155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1156 = trunc nuw i8 %1155 to i1
  br i1 %1156, label %1157, label %1161

1157:                                             ; preds = %1150
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1159 = call i32 @fileno(ptr noundef %1158) #15
  %1160 = call i32 @isatty(i32 noundef %1159) #15
  %.not539 = icmp eq i32 %1160, 0
  br i1 %.not539, label %1161, label %1162

1161:                                             ; preds = %1157, %1150
  br label %1162

1162:                                             ; preds = %1157, %1161
  %.str.4.sink1129 = phi ptr [ @.str.4, %1161 ], [ @.str, %1157 ]
  store i32 %1152, ptr %1151, align 4, !tbaa !5
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = load i32, ptr %701, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.3) #15
  %1167 = load i32, ptr %701, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.3) #15
  %1169 = load i32, ptr %1151, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #15
  %1171 = load i32, ptr %1151, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef nonnull %.str.4.sink1129, i32 noundef %1164, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 415, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1173:                                             ; preds = %1146
  %1174 = add nsw i32 %1120, 3
  store i32 %1174, ptr @test_count, align 4, !tbaa !5
  %1175 = call i32 @s2n_negotiate(ptr noundef nonnull %1037, ptr noundef nonnull %3) #15
  %1176 = icmp eq i32 %1175, -1
  br i1 %1176, label %1177, label %1200

1177:                                             ; preds = %1173
  %1178 = tail call ptr @__errno_location() #16
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180) #15
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1183 = trunc nuw i8 %1182 to i1
  br i1 %1183, label %1184, label %1188

1184:                                             ; preds = %1177
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1186 = call i32 @fileno(ptr noundef %1185) #15
  %1187 = call i32 @isatty(i32 noundef %1186) #15
  %.not680 = icmp eq i32 %1187, 0
  br i1 %.not680, label %1188, label %1189

1188:                                             ; preds = %1184, %1177
  br label %1189

1189:                                             ; preds = %1184, %1188
  %.str.4.sink1138 = phi ptr [ @.str.4, %1188 ], [ @.str, %1184 ]
  store i32 %1179, ptr %1178, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = load i32, ptr %701, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror(i32 noundef %1192, ptr noundef nonnull @.str.3) #15
  %1194 = load i32, ptr %701, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef nonnull @.str.3) #15
  %1196 = load i32, ptr %1178, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #15
  %1198 = load i32, ptr %1178, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef nonnull %.str.4.sink1138, i32 noundef %1191, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 416, ptr noundef %1193, ptr noundef %1195, ptr noundef %1197, i32 noundef %1198) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1200:                                             ; preds = %1173
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = call i32 @s2n_connection_get_session_id_length(ptr noundef nonnull %1037) #15
  %1204 = icmp eq i32 %1203, 32
  br i1 %1204, label %1228, label %1205

1205:                                             ; preds = %1200
  %1206 = tail call ptr @__errno_location() #16
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #15
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1214 = call i32 @fileno(ptr noundef %1213) #15
  %1215 = call i32 @isatty(i32 noundef %1214) #15
  %.not540 = icmp eq i32 %1215, 0
  br i1 %.not540, label %1216, label %1217

1216:                                             ; preds = %1212, %1205
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.4.sink1147 = phi ptr [ @.str.4, %1216 ], [ @.str, %1212 ]
  store i32 %1207, ptr %1206, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %701, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.3) #15
  %1222 = load i32, ptr %701, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.3) #15
  %1224 = load i32, ptr %1206, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #15
  %1226 = load i32, ptr %1206, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.4.sink1147, i32 noundef %1219, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 420, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1228:                                             ; preds = %1200
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr @test_count, align 4, !tbaa !5
  %1231 = call i32 @s2n_connection_get_session_id(ptr noundef nonnull %1037, ptr noundef nonnull %8, i64 noundef 32) #15
  %1232 = call i32 @s2n_connection_get_session_id_length(ptr noundef nonnull %1037) #15
  %1233 = icmp eq i32 %1231, %1232
  br i1 %1233, label %1257, label %1234

1234:                                             ; preds = %1228
  %1235 = tail call ptr @__errno_location() #16
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1238 = call i32 @s2n_print_stacktrace(ptr noundef %1237) #15
  %1239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1240 = trunc nuw i8 %1239 to i1
  br i1 %1240, label %1241, label %1245

1241:                                             ; preds = %1234
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1243 = call i32 @fileno(ptr noundef %1242) #15
  %1244 = call i32 @isatty(i32 noundef %1243) #15
  %.not541 = icmp eq i32 %1244, 0
  br i1 %.not541, label %1245, label %1246

1245:                                             ; preds = %1241, %1234
  br label %1246

1246:                                             ; preds = %1241, %1245
  %.str.4.sink1156 = phi ptr [ @.str.4, %1245 ], [ @.str, %1241 ]
  store i32 %1236, ptr %1235, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = load i32, ptr %701, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror(i32 noundef %1249, ptr noundef nonnull @.str.3) #15
  %1251 = load i32, ptr %701, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef nonnull @.str.3) #15
  %1253 = load i32, ptr %1235, align 4, !tbaa !5
  %1254 = call ptr @strerror(i32 noundef %1253) #15
  %1255 = load i32, ptr %1235, align 4, !tbaa !5
  %1256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1247, ptr noundef nonnull %.str.4.sink1156, i32 noundef %1248, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 421, ptr noundef %1250, ptr noundef %1252, ptr noundef %1254, i32 noundef %1255) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1257:                                             ; preds = %1228
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = add nsw i32 %1258, 1
  store i32 %1259, ptr @test_count, align 4, !tbaa !5
  %bcmp710 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %8, ptr noundef nonnull dereferenceable(32) %7, i64 32)
  %1260 = icmp eq i32 %bcmp710, 0
  br i1 %1260, label %1284, label %1261

1261:                                             ; preds = %1257
  %1262 = tail call ptr @__errno_location() #16
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1265 = call i32 @s2n_print_stacktrace(ptr noundef %1264) #15
  %1266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1267 = trunc nuw i8 %1266 to i1
  br i1 %1267, label %1268, label %1272

1268:                                             ; preds = %1261
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1270 = call i32 @fileno(ptr noundef %1269) #15
  %1271 = call i32 @isatty(i32 noundef %1270) #15
  %.not542 = icmp eq i32 %1271, 0
  br i1 %.not542, label %1272, label %1273

1272:                                             ; preds = %1268, %1261
  br label %1273

1273:                                             ; preds = %1268, %1272
  %.str.4.sink1165 = phi ptr [ @.str.4, %1272 ], [ @.str, %1268 ]
  store i32 %1263, ptr %1262, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = load i32, ptr %701, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef nonnull @.str.3) #15
  %1278 = load i32, ptr %701, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror_debug(i32 noundef %1278, ptr noundef nonnull @.str.3) #15
  %1280 = load i32, ptr %1262, align 4, !tbaa !5
  %1281 = call ptr @strerror(i32 noundef %1280) #15
  %1282 = load i32, ptr %1262, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef nonnull %.str.4.sink1165, i32 noundef %1275, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 422, ptr noundef %1277, ptr noundef %1279, ptr noundef %1281, i32 noundef %1282) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1284:                                             ; preds = %1257
  %1285 = add nsw i32 %1258, 2
  store i32 %1285, ptr @test_count, align 4, !tbaa !5
  %1286 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1037, i32 noundef 2) #15
  br i1 %1286, label %1289, label %1287

1287:                                             ; preds = %1284
  %1288 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1037, i32 noundef 1) #15
  br i1 %1288, label %1312, label %1289

1289:                                             ; preds = %1287, %1284
  %1290 = tail call ptr @__errno_location() #16
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1293 = call i32 @s2n_print_stacktrace(ptr noundef %1292) #15
  %1294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %1298 = call i32 @fileno(ptr noundef %1297) #15
  %1299 = call i32 @isatty(i32 noundef %1298) #15
  %.not679 = icmp eq i32 %1299, 0
  br i1 %.not679, label %1300, label %1301

1300:                                             ; preds = %1296, %1289
  br label %1301

1301:                                             ; preds = %1296, %1300
  %.str.4.sink1174 = phi ptr [ @.str.4, %1300 ], [ @.str, %1296 ]
  store i32 %1291, ptr %1290, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1303 = load i32, ptr @test_count, align 4, !tbaa !5
  %1304 = load i32, ptr %701, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror(i32 noundef %1304, ptr noundef nonnull @.str.3) #15
  %1306 = load i32, ptr %701, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror_debug(i32 noundef %1306, ptr noundef nonnull @.str.3) #15
  %1308 = load i32, ptr %1290, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #15
  %1310 = load i32, ptr %1290, align 4, !tbaa !5
  %1311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1302, ptr noundef nonnull %.str.4.sink1174, i32 noundef %1303, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 425, ptr noundef %1305, ptr noundef %1307, ptr noundef %1309, i32 noundef %1310) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1312:                                             ; preds = %1287
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %5, i8 0, i64 256, i1 false)
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = add nsw i32 %1313, 1
  store i32 %1314, ptr @test_count, align 4, !tbaa !5
  %1315 = call i64 @s2n_recv(ptr noundef nonnull %1037, ptr noundef nonnull %5, i64 noundef 256, ptr noundef nonnull %3) #15
  %1316 = and i64 %1315, 4294967295
  %1317 = icmp eq i64 %1316, 4294967295
  br i1 %1317, label %1318, label %1341

1318:                                             ; preds = %1312
  %1319 = tail call ptr @__errno_location() #16
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1322 = call i32 @s2n_print_stacktrace(ptr noundef %1321) #15
  %1323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1324 = trunc nuw i8 %1323 to i1
  br i1 %1324, label %1325, label %1329

1325:                                             ; preds = %1318
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1327 = call i32 @fileno(ptr noundef %1326) #15
  %1328 = call i32 @isatty(i32 noundef %1327) #15
  %.not678 = icmp eq i32 %1328, 0
  br i1 %.not678, label %1329, label %1330

1329:                                             ; preds = %1325, %1318
  br label %1330

1330:                                             ; preds = %1325, %1329
  %.str.4.sink1183 = phi ptr [ @.str.4, %1329 ], [ @.str, %1325 ]
  store i32 %1320, ptr %1319, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = load i32, ptr %701, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror(i32 noundef %1333, ptr noundef nonnull @.str.3) #15
  %1335 = load i32, ptr %701, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef nonnull @.str.3) #15
  %1337 = load i32, ptr %1319, align 4, !tbaa !5
  %1338 = call ptr @strerror(i32 noundef %1337) #15
  %1339 = load i32, ptr %1319, align 4, !tbaa !5
  %1340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1331, ptr noundef nonnull %.str.4.sink1183, i32 noundef %1332, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 429, ptr noundef %1334, ptr noundef %1336, ptr noundef %1338, i32 noundef %1339) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1341:                                             ; preds = %1312
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = add nsw i32 %1342, 1
  store i32 %1343, ptr @test_count, align 4, !tbaa !5
  %1344 = icmp eq i64 %1316, 5
  br i1 %1344, label %1368, label %1345

1345:                                             ; preds = %1341
  %1346 = tail call ptr @__errno_location() #16
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1349 = call i32 @s2n_print_stacktrace(ptr noundef %1348) #15
  %1350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1351 = trunc nuw i8 %1350 to i1
  br i1 %1351, label %1352, label %1356

1352:                                             ; preds = %1345
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1354 = call i32 @fileno(ptr noundef %1353) #15
  %1355 = call i32 @isatty(i32 noundef %1354) #15
  %.not544 = icmp eq i32 %1355, 0
  br i1 %.not544, label %1356, label %1357

1356:                                             ; preds = %1352, %1345
  br label %1357

1357:                                             ; preds = %1352, %1356
  %.str.4.sink1192 = phi ptr [ @.str.4, %1356 ], [ @.str, %1352 ]
  store i32 %1347, ptr %1346, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = load i32, ptr %701, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror(i32 noundef %1360, ptr noundef nonnull @.str.3) #15
  %1362 = load i32, ptr %701, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror_debug(i32 noundef %1362, ptr noundef nonnull @.str.3) #15
  %1364 = load i32, ptr %1346, align 4, !tbaa !5
  %1365 = call ptr @strerror(i32 noundef %1364) #15
  %1366 = load i32, ptr %1346, align 4, !tbaa !5
  %1367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1358, ptr noundef nonnull %.str.4.sink1192, i32 noundef %1359, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 430, ptr noundef %1361, ptr noundef %1363, ptr noundef %1365, i32 noundef %1366) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1368:                                             ; preds = %1341
  %1369 = add nsw i32 %1342, 2
  store i32 %1369, ptr @test_count, align 4, !tbaa !5
  %bcmp545 = call i32 @bcmp(ptr noundef nonnull dereferenceable(5) %5, ptr noundef nonnull dereferenceable(5) @MSG, i64 5)
  %1370 = icmp eq i32 %bcmp545, 0
  br i1 %1370, label %.preheader, label %1371

1371:                                             ; preds = %1368
  %1372 = tail call ptr @__errno_location() #16
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1375 = call i32 @s2n_print_stacktrace(ptr noundef %1374) #15
  %1376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1377 = trunc nuw i8 %1376 to i1
  br i1 %1377, label %1378, label %1382

1378:                                             ; preds = %1371
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1380 = call i32 @fileno(ptr noundef %1379) #15
  %1381 = call i32 @isatty(i32 noundef %1380) #15
  %.not546 = icmp eq i32 %1381, 0
  br i1 %.not546, label %1382, label %1383

1382:                                             ; preds = %1378, %1371
  br label %1383

1383:                                             ; preds = %1378, %1382
  %.str.4.sink1201 = phi ptr [ @.str.4, %1382 ], [ @.str, %1378 ]
  store i32 %1373, ptr %1372, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = load i32, ptr %701, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef nonnull @.str.3) #15
  %1388 = load i32, ptr %701, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef nonnull @.str.3) #15
  %1390 = load i32, ptr %1372, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #15
  %1392 = load i32, ptr %1372, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1384, ptr noundef nonnull %.str.4.sink1201, i32 noundef %1385, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 431, ptr noundef %1387, ptr noundef %1389, ptr noundef %1391, i32 noundef %1392) #17
  call void @exit(i32 noundef 1) #18
  unreachable

.preheader:                                       ; preds = %1368, %1397
  %1394 = call i32 @s2n_shutdown(ptr noundef nonnull %1037, ptr noundef nonnull %3) #15
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr @test_count, align 4, !tbaa !5
  %cond709 = icmp eq i32 %1394, 0
  br i1 %cond709, label %1424, label %1397

1397:                                             ; preds = %.preheader
  %1398 = tail call ptr @__errno_location() #16
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = icmp eq i32 %1399, 11
  %1401 = load i32, ptr %3, align 4
  %1402 = icmp ne i32 %1401, 0
  %or.cond3 = select i1 %1400, i1 %1402, i1 false
  br i1 %or.cond3, label %.preheader, label %1403, !llvm.loop !50

1403:                                             ; preds = %1397
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1405 = call i32 @s2n_print_stacktrace(ptr noundef %1404) #15
  %1406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1407 = trunc nuw i8 %1406 to i1
  br i1 %1407, label %1408, label %1412

1408:                                             ; preds = %1403
  %1409 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1410 = call i32 @fileno(ptr noundef %1409) #15
  %1411 = call i32 @isatty(i32 noundef %1410) #15
  %.not547 = icmp eq i32 %1411, 0
  br i1 %.not547, label %1412, label %1413

1412:                                             ; preds = %1408, %1403
  br label %1413

1413:                                             ; preds = %1408, %1412
  %.str.4.sink1210 = phi ptr [ @.str.4, %1412 ], [ @.str, %1408 ]
  store i32 %1399, ptr %1398, align 4, !tbaa !5
  %1414 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1415 = load i32, ptr @test_count, align 4, !tbaa !5
  %1416 = load i32, ptr %701, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror(i32 noundef %1416, ptr noundef nonnull @.str.3) #15
  %1418 = load i32, ptr %701, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef nonnull @.str.3) #15
  %1420 = load i32, ptr %1398, align 4, !tbaa !5
  %1421 = call ptr @strerror(i32 noundef %1420) #15
  %1422 = load i32, ptr %1398, align 4, !tbaa !5
  %1423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1414, ptr noundef nonnull %.str.4.sink1210, i32 noundef %1415, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 436, ptr noundef %1417, ptr noundef %1419, ptr noundef %1421, i32 noundef %1422) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1424:                                             ; preds = %.preheader
  %1425 = add nsw i32 %1395, 2
  store i32 %1425, ptr @test_count, align 4, !tbaa !5
  %1426 = call i32 @s2n_connection_free(ptr noundef nonnull %1037) #15
  %1427 = icmp eq i32 %1426, -1
  br i1 %1427, label %1428, label %1451

1428:                                             ; preds = %1424
  %1429 = tail call ptr @__errno_location() #16
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1432 = call i32 @s2n_print_stacktrace(ptr noundef %1431) #15
  %1433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1434 = trunc nuw i8 %1433 to i1
  br i1 %1434, label %1435, label %1439

1435:                                             ; preds = %1428
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1437 = call i32 @fileno(ptr noundef %1436) #15
  %1438 = call i32 @isatty(i32 noundef %1437) #15
  %.not677 = icmp eq i32 %1438, 0
  br i1 %.not677, label %1439, label %1440

1439:                                             ; preds = %1435, %1428
  br label %1440

1440:                                             ; preds = %1435, %1439
  %.str.4.sink1219 = phi ptr [ @.str.4, %1439 ], [ @.str, %1435 ]
  store i32 %1430, ptr %1429, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = load i32, ptr %701, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror(i32 noundef %1443, ptr noundef nonnull @.str.3) #15
  %1445 = load i32, ptr %701, align 4, !tbaa !5
  %1446 = call ptr @s2n_strerror_debug(i32 noundef %1445, ptr noundef nonnull @.str.3) #15
  %1447 = load i32, ptr %1429, align 4, !tbaa !5
  %1448 = call ptr @strerror(i32 noundef %1447) #15
  %1449 = load i32, ptr %1429, align 4, !tbaa !5
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef nonnull %.str.4.sink1219, i32 noundef %1442, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 440, ptr noundef %1444, ptr noundef %1446, ptr noundef %1448, i32 noundef %1449) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1451:                                             ; preds = %1424
  call void @initialize_cache()
  %1452 = load i32, ptr @test_count, align 4, !tbaa !5
  %1453 = add nsw i32 %1452, 1
  store i32 %1453, ptr @test_count, align 4, !tbaa !5
  %1454 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %1455 = icmp eq ptr %1454, null
  br i1 %1455, label %1456, label %1479

1456:                                             ; preds = %1451
  %1457 = tail call ptr @__errno_location() #16
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1460 = call i32 @s2n_print_stacktrace(ptr noundef %1459) #15
  %1461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1462 = trunc nuw i8 %1461 to i1
  br i1 %1462, label %1463, label %1467

1463:                                             ; preds = %1456
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1465 = call i32 @fileno(ptr noundef %1464) #15
  %1466 = call i32 @isatty(i32 noundef %1465) #15
  %.not676 = icmp eq i32 %1466, 0
  br i1 %.not676, label %1467, label %1468

1467:                                             ; preds = %1463, %1456
  br label %1468

1468:                                             ; preds = %1463, %1467
  %.str.4.sink1228 = phi ptr [ @.str.4, %1467 ], [ @.str, %1463 ]
  store i32 %1458, ptr %1457, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = load i32, ptr %701, align 4, !tbaa !5
  %1472 = call ptr @s2n_strerror(i32 noundef %1471, ptr noundef nonnull @.str.3) #15
  %1473 = load i32, ptr %701, align 4, !tbaa !5
  %1474 = call ptr @s2n_strerror_debug(i32 noundef %1473, ptr noundef nonnull @.str.3) #15
  %1475 = load i32, ptr %1457, align 4, !tbaa !5
  %1476 = call ptr @strerror(i32 noundef %1475) #15
  %1477 = load i32, ptr %1457, align 4, !tbaa !5
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1469, ptr noundef nonnull %.str.4.sink1228, i32 noundef %1470, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 446, ptr noundef %1472, ptr noundef %1474, ptr noundef %1476, i32 noundef %1477) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1479:                                             ; preds = %1451
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = add nsw i32 %1480, 1
  store i32 %1481, ptr @test_count, align 4, !tbaa !5
  %1482 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1454, ptr noundef %282) #15
  %1483 = icmp eq i32 %1482, -1
  br i1 %1483, label %1484, label %1507

1484:                                             ; preds = %1479
  %1485 = tail call ptr @__errno_location() #16
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1488 = call i32 @s2n_print_stacktrace(ptr noundef %1487) #15
  %1489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1490 = trunc nuw i8 %1489 to i1
  br i1 %1490, label %1491, label %1495

1491:                                             ; preds = %1484
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1493 = call i32 @fileno(ptr noundef %1492) #15
  %1494 = call i32 @isatty(i32 noundef %1493) #15
  %.not675 = icmp eq i32 %1494, 0
  br i1 %.not675, label %1495, label %1496

1495:                                             ; preds = %1491, %1484
  br label %1496

1496:                                             ; preds = %1491, %1495
  %.str.4.sink1237 = phi ptr [ @.str.4, %1495 ], [ @.str, %1491 ]
  store i32 %1486, ptr %1485, align 4, !tbaa !5
  %1497 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = load i32, ptr %701, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror(i32 noundef %1499, ptr noundef nonnull @.str.3) #15
  %1501 = load i32, ptr %701, align 4, !tbaa !5
  %1502 = call ptr @s2n_strerror_debug(i32 noundef %1501, ptr noundef nonnull @.str.3) #15
  %1503 = load i32, ptr %1485, align 4, !tbaa !5
  %1504 = call ptr @strerror(i32 noundef %1503) #15
  %1505 = load i32, ptr %1485, align 4, !tbaa !5
  %1506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1497, ptr noundef nonnull %.str.4.sink1237, i32 noundef %1498, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 447, ptr noundef %1500, ptr noundef %1502, ptr noundef %1504, i32 noundef %1505) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1507:                                             ; preds = %1479
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1454, ptr noundef nonnull %11) #15
  %1511 = icmp eq i32 %1510, -1
  br i1 %1511, label %1512, label %1535

1512:                                             ; preds = %1507
  %1513 = tail call ptr @__errno_location() #16
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1516 = call i32 @s2n_print_stacktrace(ptr noundef %1515) #15
  %1517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1518 = trunc nuw i8 %1517 to i1
  br i1 %1518, label %1519, label %1523

1519:                                             ; preds = %1512
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1521 = call i32 @fileno(ptr noundef %1520) #15
  %1522 = call i32 @isatty(i32 noundef %1521) #15
  %.not674 = icmp eq i32 %1522, 0
  br i1 %.not674, label %1523, label %1524

1523:                                             ; preds = %1519, %1512
  br label %1524

1524:                                             ; preds = %1519, %1523
  %.str.4.sink1246 = phi ptr [ @.str.4, %1523 ], [ @.str, %1519 ]
  store i32 %1514, ptr %1513, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1526 = load i32, ptr @test_count, align 4, !tbaa !5
  %1527 = load i32, ptr %701, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror(i32 noundef %1527, ptr noundef nonnull @.str.3) #15
  %1529 = load i32, ptr %701, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef nonnull @.str.3) #15
  %1531 = load i32, ptr %1513, align 4, !tbaa !5
  %1532 = call ptr @strerror(i32 noundef %1531) #15
  %1533 = load i32, ptr %1513, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1525, ptr noundef nonnull %.str.4.sink1246, i32 noundef %1526, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 450, ptr noundef %1528, ptr noundef %1530, ptr noundef %1532, i32 noundef %1533) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1535:                                             ; preds = %1507
  %1536 = call i32 @s2n_negotiate(ptr noundef nonnull %1454, ptr noundef nonnull %3) #15
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = add nsw i32 %1537, 1
  store i32 %1538, ptr @test_count, align 4, !tbaa !5
  %1539 = icmp eq i32 %1536, -1
  br i1 %1539, label %1563, label %1540

1540:                                             ; preds = %1535
  %1541 = tail call ptr @__errno_location() #16
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1544 = call i32 @s2n_print_stacktrace(ptr noundef %1543) #15
  %1545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1546 = trunc nuw i8 %1545 to i1
  br i1 %1546, label %1547, label %1551

1547:                                             ; preds = %1540
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1549 = call i32 @fileno(ptr noundef %1548) #15
  %1550 = call i32 @isatty(i32 noundef %1549) #15
  %.not549 = icmp eq i32 %1550, 0
  br i1 %.not549, label %1551, label %1552

1551:                                             ; preds = %1547, %1540
  br label %1552

1552:                                             ; preds = %1547, %1551
  %.str.4.sink1255 = phi ptr [ @.str.4, %1551 ], [ @.str, %1547 ]
  store i32 %1542, ptr %1541, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = load i32, ptr %701, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror(i32 noundef %1555, ptr noundef nonnull @.str.3) #15
  %1557 = load i32, ptr %701, align 4, !tbaa !5
  %1558 = call ptr @s2n_strerror_debug(i32 noundef %1557, ptr noundef nonnull @.str.3) #15
  %1559 = load i32, ptr %1541, align 4, !tbaa !5
  %1560 = call ptr @strerror(i32 noundef %1559) #15
  %1561 = load i32, ptr %1541, align 4, !tbaa !5
  %1562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef nonnull %.str.4.sink1255, i32 noundef %1554, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 453, ptr noundef %1556, ptr noundef %1558, ptr noundef %1560, i32 noundef %1561) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1563:                                             ; preds = %1535
  %1564 = add nsw i32 %1537, 2
  store i32 %1564, ptr @test_count, align 4, !tbaa !5
  %1565 = load i32, ptr %3, align 4, !tbaa !5
  %1566 = icmp eq i32 %1565, 3
  br i1 %1566, label %1590, label %1567

1567:                                             ; preds = %1563
  %1568 = tail call ptr @__errno_location() #16
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1571 = call i32 @s2n_print_stacktrace(ptr noundef %1570) #15
  %1572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1573 = trunc nuw i8 %1572 to i1
  br i1 %1573, label %1574, label %1578

1574:                                             ; preds = %1567
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1576 = call i32 @fileno(ptr noundef %1575) #15
  %1577 = call i32 @isatty(i32 noundef %1576) #15
  %.not550 = icmp eq i32 %1577, 0
  br i1 %.not550, label %1578, label %1579

1578:                                             ; preds = %1574, %1567
  br label %1579

1579:                                             ; preds = %1574, %1578
  %.str.4.sink1264 = phi ptr [ @.str.4, %1578 ], [ @.str, %1574 ]
  store i32 %1569, ptr %1568, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = load i32, ptr %701, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror(i32 noundef %1582, ptr noundef nonnull @.str.3) #15
  %1584 = load i32, ptr %701, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror_debug(i32 noundef %1584, ptr noundef nonnull @.str.3) #15
  %1586 = load i32, ptr %1568, align 4, !tbaa !5
  %1587 = call ptr @strerror(i32 noundef %1586) #15
  %1588 = load i32, ptr %1568, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1580, ptr noundef nonnull %.str.4.sink1264, i32 noundef %1581, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 454, ptr noundef %1583, ptr noundef %1585, ptr noundef %1587, i32 noundef %1588) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1590:                                             ; preds = %1563
  %1591 = add nsw i32 %1537, 3
  store i32 %1591, ptr @test_count, align 4, !tbaa !5
  %1592 = call i32 @s2n_negotiate(ptr noundef nonnull %1454, ptr noundef nonnull %3) #15
  %1593 = icmp eq i32 %1592, -1
  br i1 %1593, label %1617, label %1594

1594:                                             ; preds = %1590
  %1595 = tail call ptr @__errno_location() #16
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1598 = call i32 @s2n_print_stacktrace(ptr noundef %1597) #15
  %1599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1600 = trunc nuw i8 %1599 to i1
  br i1 %1600, label %1601, label %1605

1601:                                             ; preds = %1594
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1603 = call i32 @fileno(ptr noundef %1602) #15
  %1604 = call i32 @isatty(i32 noundef %1603) #15
  %.not551 = icmp eq i32 %1604, 0
  br i1 %.not551, label %1605, label %1606

1605:                                             ; preds = %1601, %1594
  br label %1606

1606:                                             ; preds = %1601, %1605
  %.str.4.sink1273 = phi ptr [ @.str.4, %1605 ], [ @.str, %1601 ]
  store i32 %1596, ptr %1595, align 4, !tbaa !5
  %1607 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1608 = load i32, ptr @test_count, align 4, !tbaa !5
  %1609 = load i32, ptr %701, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror(i32 noundef %1609, ptr noundef nonnull @.str.3) #15
  %1611 = load i32, ptr %701, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror_debug(i32 noundef %1611, ptr noundef nonnull @.str.3) #15
  %1613 = load i32, ptr %1595, align 4, !tbaa !5
  %1614 = call ptr @strerror(i32 noundef %1613) #15
  %1615 = load i32, ptr %1595, align 4, !tbaa !5
  %1616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1607, ptr noundef nonnull %.str.4.sink1273, i32 noundef %1608, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 456, ptr noundef %1610, ptr noundef %1612, ptr noundef %1614, i32 noundef %1615) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1617:                                             ; preds = %1590
  %1618 = load i32, ptr @test_count, align 4, !tbaa !5
  %1619 = add nsw i32 %1618, 1
  store i32 %1619, ptr @test_count, align 4, !tbaa !5
  %1620 = load i32, ptr %701, align 4, !tbaa !5
  %1621 = icmp eq i32 %1620, 0
  br i1 %1621, label %1622, label %1645

1622:                                             ; preds = %1617
  %1623 = tail call ptr @__errno_location() #16
  %1624 = load i32, ptr %1623, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1626 = call i32 @s2n_print_stacktrace(ptr noundef %1625) #15
  %1627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1628 = trunc nuw i8 %1627 to i1
  br i1 %1628, label %1629, label %1633

1629:                                             ; preds = %1622
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1631 = call i32 @fileno(ptr noundef %1630) #15
  %1632 = call i32 @isatty(i32 noundef %1631) #15
  %.not673 = icmp eq i32 %1632, 0
  br i1 %.not673, label %1633, label %1634

1633:                                             ; preds = %1629, %1622
  br label %1634

1634:                                             ; preds = %1629, %1633
  %.str.4.sink1282 = phi ptr [ @.str.4, %1633 ], [ @.str, %1629 ]
  store i32 %1624, ptr %1623, align 4, !tbaa !5
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = load i32, ptr %701, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror(i32 noundef %1637, ptr noundef nonnull @.str.3) #15
  %1639 = load i32, ptr %701, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef nonnull @.str.3) #15
  %1641 = load i32, ptr %1623, align 4, !tbaa !5
  %1642 = call ptr @strerror(i32 noundef %1641) #15
  %1643 = load i32, ptr %1623, align 4, !tbaa !5
  %1644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1635, ptr noundef nonnull %.str.4.sink1282, i32 noundef %1636, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 456, ptr noundef %1638, ptr noundef %1640, ptr noundef %1642, i32 noundef %1643) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1645:                                             ; preds = %1617
  %1646 = add nsw i32 %1618, 2
  store i32 %1646, ptr @test_count, align 4, !tbaa !5
  %1647 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef nonnull @.str.3) #15
  %1648 = icmp eq ptr %1647, null
  br i1 %1648, label %1649, label %1672

1649:                                             ; preds = %1645
  %1650 = tail call ptr @__errno_location() #16
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1653 = call i32 @s2n_print_stacktrace(ptr noundef %1652) #15
  %1654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1655 = trunc nuw i8 %1654 to i1
  br i1 %1655, label %1656, label %1660

1656:                                             ; preds = %1649
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1658 = call i32 @fileno(ptr noundef %1657) #15
  %1659 = call i32 @isatty(i32 noundef %1658) #15
  %.not672 = icmp eq i32 %1659, 0
  br i1 %.not672, label %1660, label %1661

1660:                                             ; preds = %1656, %1649
  br label %1661

1661:                                             ; preds = %1656, %1660
  %.str.4.sink1291 = phi ptr [ @.str.4, %1660 ], [ @.str, %1656 ]
  store i32 %1651, ptr %1650, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = load i32, ptr %701, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef nonnull @.str.3) #15
  %1666 = load i32, ptr %701, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror_debug(i32 noundef %1666, ptr noundef nonnull @.str.3) #15
  %1668 = load i32, ptr %1650, align 4, !tbaa !5
  %1669 = call ptr @strerror(i32 noundef %1668) #15
  %1670 = load i32, ptr %1650, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef nonnull %.str.4.sink1291, i32 noundef %1663, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 456, ptr noundef %1665, ptr noundef %1667, ptr noundef %1669, i32 noundef %1670) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1672:                                             ; preds = %1645
  store i32 0, ptr %701, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #15
  %1673 = tail call ptr @__errno_location() #16
  store i32 0, ptr %1673, align 4, !tbaa !5
  %1674 = load i32, ptr @test_count, align 4, !tbaa !5
  %1675 = add nsw i32 %1674, 1
  store i32 %1675, ptr @test_count, align 4, !tbaa !5
  %1676 = call i32 @s2n_connection_free(ptr noundef nonnull %1454) #15
  %1677 = icmp eq i32 %1676, -1
  br i1 %1677, label %1678, label %1700

1678:                                             ; preds = %1672
  %1679 = load i32, ptr %1673, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1681 = call i32 @s2n_print_stacktrace(ptr noundef %1680) #15
  %1682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1683 = trunc nuw i8 %1682 to i1
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1678
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1686 = call i32 @fileno(ptr noundef %1685) #15
  %1687 = call i32 @isatty(i32 noundef %1686) #15
  %.not671 = icmp eq i32 %1687, 0
  br i1 %.not671, label %1688, label %1689

1688:                                             ; preds = %1684, %1678
  br label %1689

1689:                                             ; preds = %1684, %1688
  %.str.4.sink1300 = phi ptr [ @.str.4, %1688 ], [ @.str, %1684 ]
  store i32 %1679, ptr %1673, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = load i32, ptr %701, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror(i32 noundef %1692, ptr noundef nonnull @.str.3) #15
  %1694 = load i32, ptr %701, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror_debug(i32 noundef %1694, ptr noundef nonnull @.str.3) #15
  %1696 = load i32, ptr %1673, align 4, !tbaa !5
  %1697 = call ptr @strerror(i32 noundef %1696) #15
  %1698 = load i32, ptr %1673, align 4, !tbaa !5
  %1699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull %.str.4.sink1300, i32 noundef %1691, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 459, ptr noundef %1693, ptr noundef %1695, ptr noundef %1697, i32 noundef %1698) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1700:                                             ; preds = %1672
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = add nsw i32 %1701, 1
  store i32 %1702, ptr @test_count, align 4, !tbaa !5
  %1703 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %11, i32 noundef 0) #15
  %1704 = icmp eq i32 %1703, -1
  br i1 %1704, label %1705, label %1727

1705:                                             ; preds = %1700
  %1706 = load i32, ptr %1673, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1708 = call i32 @s2n_print_stacktrace(ptr noundef %1707) #15
  %1709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1710 = trunc nuw i8 %1709 to i1
  br i1 %1710, label %1711, label %1715

1711:                                             ; preds = %1705
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1713 = call i32 @fileno(ptr noundef %1712) #15
  %1714 = call i32 @isatty(i32 noundef %1713) #15
  %.not670 = icmp eq i32 %1714, 0
  br i1 %.not670, label %1715, label %1716

1715:                                             ; preds = %1711, %1705
  br label %1716

1716:                                             ; preds = %1711, %1715
  %.str.4.sink1309 = phi ptr [ @.str.4, %1715 ], [ @.str, %1711 ]
  store i32 %1706, ptr %1673, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1718 = load i32, ptr @test_count, align 4, !tbaa !5
  %1719 = load i32, ptr %701, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror(i32 noundef %1719, ptr noundef nonnull @.str.3) #15
  %1721 = load i32, ptr %701, align 4, !tbaa !5
  %1722 = call ptr @s2n_strerror_debug(i32 noundef %1721, ptr noundef nonnull @.str.3) #15
  %1723 = load i32, ptr %1673, align 4, !tbaa !5
  %1724 = call ptr @strerror(i32 noundef %1723) #15
  %1725 = load i32, ptr %1673, align 4, !tbaa !5
  %1726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1717, ptr noundef nonnull %.str.4.sink1309, i32 noundef %1718, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 463, ptr noundef %1720, ptr noundef %1722, ptr noundef %1724, i32 noundef %1725) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1727:                                             ; preds = %1700
  call void @initialize_cache()
  %1728 = call ptr @s2n_connection_new(i32 noundef 1) #15
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = add nsw i32 %1729, 1
  store i32 %1730, ptr @test_count, align 4, !tbaa !5
  %1731 = icmp eq ptr %1728, null
  br i1 %1731, label %1732, label %1754

1732:                                             ; preds = %1727
  %1733 = load i32, ptr %1673, align 4, !tbaa !5
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1735 = call i32 @s2n_print_stacktrace(ptr noundef %1734) #15
  %1736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1737 = trunc nuw i8 %1736 to i1
  br i1 %1737, label %1738, label %1742

1738:                                             ; preds = %1732
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1740 = call i32 @fileno(ptr noundef %1739) #15
  %1741 = call i32 @isatty(i32 noundef %1740) #15
  %.not669 = icmp eq i32 %1741, 0
  br i1 %.not669, label %1742, label %1743

1742:                                             ; preds = %1738, %1732
  br label %1743

1743:                                             ; preds = %1738, %1742
  %.str.4.sink1318 = phi ptr [ @.str.4, %1742 ], [ @.str, %1738 ]
  store i32 %1733, ptr %1673, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1745 = load i32, ptr @test_count, align 4, !tbaa !5
  %1746 = load i32, ptr %701, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror(i32 noundef %1746, ptr noundef nonnull @.str.3) #15
  %1748 = load i32, ptr %701, align 4, !tbaa !5
  %1749 = call ptr @s2n_strerror_debug(i32 noundef %1748, ptr noundef nonnull @.str.3) #15
  %1750 = load i32, ptr %1673, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #15
  %1752 = load i32, ptr %1673, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1744, ptr noundef nonnull %.str.4.sink1318, i32 noundef %1745, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 469, ptr noundef %1747, ptr noundef %1749, ptr noundef %1751, i32 noundef %1752) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1754:                                             ; preds = %1727
  %1755 = call i32 @s2n_config_disable_x509_verification(ptr noundef %282) #15
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = add nsw i32 %1756, 1
  store i32 %1757, ptr @test_count, align 4, !tbaa !5
  %1758 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1728, ptr noundef %282) #15
  %1759 = icmp eq i32 %1758, -1
  br i1 %1759, label %1760, label %1782

1760:                                             ; preds = %1754
  %1761 = load i32, ptr %1673, align 4, !tbaa !5
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1763 = call i32 @s2n_print_stacktrace(ptr noundef %1762) #15
  %1764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1765 = trunc nuw i8 %1764 to i1
  br i1 %1765, label %1766, label %1770

1766:                                             ; preds = %1760
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1768 = call i32 @fileno(ptr noundef %1767) #15
  %1769 = call i32 @isatty(i32 noundef %1768) #15
  %.not668 = icmp eq i32 %1769, 0
  br i1 %.not668, label %1770, label %1771

1770:                                             ; preds = %1766, %1760
  br label %1771

1771:                                             ; preds = %1766, %1770
  %.str.4.sink1327 = phi ptr [ @.str.4, %1770 ], [ @.str, %1766 ]
  store i32 %1761, ptr %1673, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = load i32, ptr %701, align 4, !tbaa !5
  %1775 = call ptr @s2n_strerror(i32 noundef %1774, ptr noundef nonnull @.str.3) #15
  %1776 = load i32, ptr %701, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef nonnull @.str.3) #15
  %1778 = load i32, ptr %1673, align 4, !tbaa !5
  %1779 = call ptr @strerror(i32 noundef %1778) #15
  %1780 = load i32, ptr %1673, align 4, !tbaa !5
  %1781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef nonnull %.str.4.sink1327, i32 noundef %1773, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 471, ptr noundef %1775, ptr noundef %1777, ptr noundef %1779, i32 noundef %1780) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1782:                                             ; preds = %1754
  %1783 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 1
  store i32 %1785, ptr @test_count, align 4, !tbaa !5
  %1786 = icmp eq ptr %1783, null
  br i1 %1786, label %1787, label %1809

1787:                                             ; preds = %1782
  %1788 = load i32, ptr %1673, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1790 = call i32 @s2n_print_stacktrace(ptr noundef %1789) #15
  %1791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1792 = trunc nuw i8 %1791 to i1
  br i1 %1792, label %1793, label %1797

1793:                                             ; preds = %1787
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1795 = call i32 @fileno(ptr noundef %1794) #15
  %1796 = call i32 @isatty(i32 noundef %1795) #15
  %.not667 = icmp eq i32 %1796, 0
  br i1 %.not667, label %1797, label %1798

1797:                                             ; preds = %1793, %1787
  br label %1798

1798:                                             ; preds = %1793, %1797
  %.str.4.sink1336 = phi ptr [ @.str.4, %1797 ], [ @.str, %1793 ]
  store i32 %1788, ptr %1673, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = load i32, ptr %701, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror(i32 noundef %1801, ptr noundef nonnull @.str.3) #15
  %1803 = load i32, ptr %701, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror_debug(i32 noundef %1803, ptr noundef nonnull @.str.3) #15
  %1805 = load i32, ptr %1673, align 4, !tbaa !5
  %1806 = call ptr @strerror(i32 noundef %1805) #15
  %1807 = load i32, ptr %1673, align 4, !tbaa !5
  %1808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1799, ptr noundef nonnull %.str.4.sink1336, i32 noundef %1800, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 474, ptr noundef %1802, ptr noundef %1804, ptr noundef %1806, i32 noundef %1807) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1809:                                             ; preds = %1782
  %1810 = add nsw i32 %1784, 2
  store i32 %1810, ptr @test_count, align 4, !tbaa !5
  %1811 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1783, ptr noundef %282) #15
  %1812 = icmp eq i32 %1811, -1
  br i1 %1812, label %1813, label %1835

1813:                                             ; preds = %1809
  %1814 = load i32, ptr %1673, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1816 = call i32 @s2n_print_stacktrace(ptr noundef %1815) #15
  %1817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1818 = trunc nuw i8 %1817 to i1
  br i1 %1818, label %1819, label %1823

1819:                                             ; preds = %1813
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1821 = call i32 @fileno(ptr noundef %1820) #15
  %1822 = call i32 @isatty(i32 noundef %1821) #15
  %.not666 = icmp eq i32 %1822, 0
  br i1 %.not666, label %1823, label %1824

1823:                                             ; preds = %1819, %1813
  br label %1824

1824:                                             ; preds = %1819, %1823
  %.str.4.sink1345 = phi ptr [ @.str.4, %1823 ], [ @.str, %1819 ]
  store i32 %1814, ptr %1673, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = load i32, ptr %701, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror(i32 noundef %1827, ptr noundef nonnull @.str.3) #15
  %1829 = load i32, ptr %701, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef nonnull @.str.3) #15
  %1831 = load i32, ptr %1673, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #15
  %1833 = load i32, ptr %1673, align 4, !tbaa !5
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef nonnull %.str.4.sink1345, i32 noundef %1826, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 475, ptr noundef %1828, ptr noundef %1830, ptr noundef %1832, i32 noundef %1833) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1835:                                             ; preds = %1809
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = add nsw i32 %1836, 1
  store i32 %1837, ptr @test_count, align 4, !tbaa !5
  %1838 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #15
  %1839 = icmp eq i32 %1838, -1
  br i1 %1839, label %1840, label %1862

1840:                                             ; preds = %1835
  %1841 = load i32, ptr %1673, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1843 = call i32 @s2n_print_stacktrace(ptr noundef %1842) #15
  %1844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1845 = trunc nuw i8 %1844 to i1
  br i1 %1845, label %1846, label %1850

1846:                                             ; preds = %1840
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1848 = call i32 @fileno(ptr noundef %1847) #15
  %1849 = call i32 @isatty(i32 noundef %1848) #15
  %.not665 = icmp eq i32 %1849, 0
  br i1 %.not665, label %1850, label %1851

1850:                                             ; preds = %1846, %1840
  br label %1851

1851:                                             ; preds = %1846, %1850
  %.str.4.sink1354 = phi ptr [ @.str.4, %1850 ], [ @.str, %1846 ]
  store i32 %1841, ptr %1673, align 4, !tbaa !5
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = load i32, ptr %701, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef nonnull @.str.3) #15
  %1856 = load i32, ptr %701, align 4, !tbaa !5
  %1857 = call ptr @s2n_strerror_debug(i32 noundef %1856, ptr noundef nonnull @.str.3) #15
  %1858 = load i32, ptr %1673, align 4, !tbaa !5
  %1859 = call ptr @strerror(i32 noundef %1858) #15
  %1860 = load i32, ptr %1673, align 4, !tbaa !5
  %1861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1852, ptr noundef nonnull %.str.4.sink1354, i32 noundef %1853, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 478, ptr noundef %1855, ptr noundef %1857, ptr noundef %1859, i32 noundef %1860) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1862:                                             ; preds = %1835
  %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 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %1728, ptr noundef nonnull %1783, ptr noundef nonnull %11) #15
  %1866 = icmp eq i32 %1865, -1
  br i1 %1866, label %1867, label %1889

1867:                                             ; preds = %1862
  %1868 = load i32, ptr %1673, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1870 = call i32 @s2n_print_stacktrace(ptr noundef %1869) #15
  %1871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1872 = trunc nuw i8 %1871 to i1
  br i1 %1872, label %1873, label %1877

1873:                                             ; preds = %1867
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1875 = call i32 @fileno(ptr noundef %1874) #15
  %1876 = call i32 @isatty(i32 noundef %1875) #15
  %.not664 = icmp eq i32 %1876, 0
  br i1 %.not664, label %1877, label %1878

1877:                                             ; preds = %1873, %1867
  br label %1878

1878:                                             ; preds = %1873, %1877
  %.str.4.sink1363 = phi ptr [ @.str.4, %1877 ], [ @.str, %1873 ]
  store i32 %1868, ptr %1673, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = load i32, ptr %701, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror(i32 noundef %1881, ptr noundef nonnull @.str.3) #15
  %1883 = load i32, ptr %701, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef nonnull @.str.3) #15
  %1885 = load i32, ptr %1673, align 4, !tbaa !5
  %1886 = call ptr @strerror(i32 noundef %1885) #15
  %1887 = load i32, ptr %1673, align 4, !tbaa !5
  %1888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef nonnull %.str.4.sink1363, i32 noundef %1880, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 479, ptr noundef %1882, ptr noundef %1884, ptr noundef %1886, i32 noundef %1887) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1889:                                             ; preds = %1862
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = add nsw i32 %1890, 1
  store i32 %1891, ptr @test_count, align 4, !tbaa !5
  %1892 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %1728, ptr noundef nonnull %3, i32 noundef 1) #15
  %1893 = call zeroext i1 @s2n_result_is_ok(i32 %1892)
  br i1 %1893, label %1916, label %1894

1894:                                             ; preds = %1889
  %1895 = load i32, ptr %1673, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1897 = call i32 @s2n_print_stacktrace(ptr noundef %1896) #15
  %1898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1899 = trunc nuw i8 %1898 to i1
  br i1 %1899, label %1900, label %1904

1900:                                             ; preds = %1894
  %1901 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1902 = call i32 @fileno(ptr noundef %1901) #15
  %1903 = call i32 @isatty(i32 noundef %1902) #15
  %.not552 = icmp eq i32 %1903, 0
  br i1 %.not552, label %1904, label %1905

1904:                                             ; preds = %1900, %1894
  br label %1905

1905:                                             ; preds = %1900, %1904
  %.str.4.sink1372 = phi ptr [ @.str.4, %1904 ], [ @.str, %1900 ]
  store i32 %1895, ptr %1673, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = load i32, ptr %701, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef nonnull @.str.3) #15
  %1910 = load i32, ptr %701, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef nonnull @.str.3) #15
  %1912 = load i32, ptr %1673, align 4, !tbaa !5
  %1913 = call ptr @strerror(i32 noundef %1912) #15
  %1914 = load i32, ptr %1673, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1906, ptr noundef nonnull %.str.4.sink1372, i32 noundef %1907, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 482, ptr noundef %1909, ptr noundef %1911, ptr noundef %1913, i32 noundef %1914) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1916:                                             ; preds = %1889
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %1783, ptr noundef nonnull %3, i32 noundef 1) #15
  %1920 = call zeroext i1 @s2n_result_is_ok(i32 %1919)
  br i1 %1920, label %1943, label %1921

1921:                                             ; preds = %1916
  %1922 = load i32, ptr %1673, align 4, !tbaa !5
  %1923 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1924 = call i32 @s2n_print_stacktrace(ptr noundef %1923) #15
  %1925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1926 = trunc nuw i8 %1925 to i1
  br i1 %1926, label %1927, label %1931

1927:                                             ; preds = %1921
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1929 = call i32 @fileno(ptr noundef %1928) #15
  %1930 = call i32 @isatty(i32 noundef %1929) #15
  %.not553 = icmp eq i32 %1930, 0
  br i1 %.not553, label %1931, label %1932

1931:                                             ; preds = %1927, %1921
  br label %1932

1932:                                             ; preds = %1927, %1931
  %.str.4.sink1381 = phi ptr [ @.str.4, %1931 ], [ @.str, %1927 ]
  store i32 %1922, ptr %1673, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1934 = load i32, ptr @test_count, align 4, !tbaa !5
  %1935 = load i32, ptr %701, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror(i32 noundef %1935, ptr noundef nonnull @.str.3) #15
  %1937 = load i32, ptr %701, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef nonnull @.str.3) #15
  %1939 = load i32, ptr %1673, align 4, !tbaa !5
  %1940 = call ptr @strerror(i32 noundef %1939) #15
  %1941 = load i32, ptr %1673, align 4, !tbaa !5
  %1942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1933, ptr noundef nonnull %.str.4.sink1381, i32 noundef %1934, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.2, i32 noundef 483, ptr noundef %1936, ptr noundef %1938, ptr noundef %1940, i32 noundef %1941) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1943:                                             ; preds = %1916
  %1944 = load i32, ptr %1783, align 8
  %1945 = and i32 %1944, -8193
  store i32 %1945, ptr %1783, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #15
  store i8 0, ptr %12, align 1, !tbaa !51
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = add nsw i32 %1946, 1
  store i32 %1947, ptr @test_count, align 4, !tbaa !5
  %1948 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 23, ptr noundef nonnull %12) #15
  %1949 = icmp eq i32 %1948, -1
  br i1 %1949, label %1950, label %1972

1950:                                             ; preds = %1943
  %1951 = load i32, ptr %1673, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1953 = call i32 @s2n_print_stacktrace(ptr noundef %1952) #15
  %1954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1955 = trunc nuw i8 %1954 to i1
  br i1 %1955, label %1956, label %1960

1956:                                             ; preds = %1950
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1958 = call i32 @fileno(ptr noundef %1957) #15
  %1959 = call i32 @isatty(i32 noundef %1958) #15
  %.not663 = icmp eq i32 %1959, 0
  br i1 %.not663, label %1960, label %1961

1960:                                             ; preds = %1956, %1950
  br label %1961

1961:                                             ; preds = %1956, %1960
  %.str.4.sink1390 = phi ptr [ @.str.4, %1960 ], [ @.str, %1956 ]
  store i32 %1951, ptr %1673, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = load i32, ptr %701, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror(i32 noundef %1964, ptr noundef nonnull @.str.3) #15
  %1966 = load i32, ptr %701, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror_debug(i32 noundef %1966, ptr noundef nonnull @.str.3) #15
  %1968 = load i32, ptr %1673, align 4, !tbaa !5
  %1969 = call ptr @strerror(i32 noundef %1968) #15
  %1970 = load i32, ptr %1673, align 4, !tbaa !5
  %1971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1962, ptr noundef nonnull %.str.4.sink1390, i32 noundef %1963, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 489, ptr noundef %1965, ptr noundef %1967, ptr noundef %1969, i32 noundef %1970) #17
  call void @exit(i32 noundef 1) #18
  unreachable

1972:                                             ; preds = %1943
  %1973 = load i8, ptr %12, align 1, !tbaa !51
  %1974 = and i8 %1973, 7
  %1975 = shl nuw i8 1, %1974
  %1976 = xor i8 %1975, -1
  %1977 = getelementptr inbounds i8, ptr %1783, i64 102
  %1978 = lshr i8 %1973, 3
  %1979 = zext nneg i8 %1978 to i64
  %1980 = getelementptr inbounds [22 x i8], ptr %1977, i64 0, i64 %1979
  %1981 = load i8, ptr %1980, align 1, !tbaa !51
  %1982 = and i8 %1981, %1976
  store i8 %1982, ptr %1980, align 1, !tbaa !51
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1783, ptr noundef nonnull %1728) #15
  %1986 = icmp eq i32 %1985, -1
  br i1 %1986, label %1987, label %2009

1987:                                             ; preds = %1972
  %1988 = load i32, ptr %1673, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989) #15
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %1992 = trunc nuw i8 %1991 to i1
  br i1 %1992, label %1993, label %1997

1993:                                             ; preds = %1987
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !11
  %1995 = call i32 @fileno(ptr noundef %1994) #15
  %1996 = call i32 @isatty(i32 noundef %1995) #15
  %.not662 = icmp eq i32 %1996, 0
  br i1 %.not662, label %1997, label %1998

1997:                                             ; preds = %1993, %1987
  br label %1998

1998:                                             ; preds = %1993, %1997
  %.str.4.sink1399 = phi ptr [ @.str.4, %1997 ], [ @.str, %1993 ]
  store i32 %1988, ptr %1673, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = load i32, ptr %701, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror(i32 noundef %2001, ptr noundef nonnull @.str.3) #15
  %2003 = load i32, ptr %701, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef nonnull @.str.3) #15
  %2005 = load i32, ptr %1673, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #15
  %2007 = load i32, ptr %1673, align 4, !tbaa !5
  %2008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef nonnull %.str.4.sink1399, i32 noundef %2000, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 493, ptr noundef %2002, ptr noundef %2004, ptr noundef %2006, i32 noundef %2007) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2009:                                             ; preds = %1972
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = add nsw i32 %2010, 1
  store i32 %2011, ptr @test_count, align 4, !tbaa !5
  %2012 = getelementptr inbounds i8, ptr %1783, i64 220
  %2013 = load i8, ptr %2012, align 4, !tbaa !24
  %2014 = icmp eq i8 %2013, 33
  br i1 %2014, label %2037, label %2015

2015:                                             ; preds = %2009
  %2016 = load i32, ptr %1673, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2018 = call i32 @s2n_print_stacktrace(ptr noundef %2017) #15
  %2019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2020 = trunc nuw i8 %2019 to i1
  br i1 %2020, label %2021, label %2025

2021:                                             ; preds = %2015
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2023 = call i32 @fileno(ptr noundef %2022) #15
  %2024 = call i32 @isatty(i32 noundef %2023) #15
  %.not554 = icmp eq i32 %2024, 0
  br i1 %.not554, label %2025, label %2026

2025:                                             ; preds = %2021, %2015
  br label %2026

2026:                                             ; preds = %2021, %2025
  %.str.4.sink1408 = phi ptr [ @.str.4, %2025 ], [ @.str, %2021 ]
  store i32 %2016, ptr %1673, align 4, !tbaa !5
  %2027 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = load i32, ptr %701, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror(i32 noundef %2029, ptr noundef nonnull @.str.3) #15
  %2031 = load i32, ptr %701, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror_debug(i32 noundef %2031, ptr noundef nonnull @.str.3) #15
  %2033 = load i32, ptr %1673, align 4, !tbaa !5
  %2034 = call ptr @strerror(i32 noundef %2033) #15
  %2035 = load i32, ptr %1673, align 4, !tbaa !5
  %2036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2027, ptr noundef nonnull %.str.4.sink1408, i32 noundef %2028, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.2, i32 noundef 494, ptr noundef %2030, ptr noundef %2032, ptr noundef %2034, i32 noundef %2035) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2037:                                             ; preds = %2009
  %2038 = add nsw i32 %2010, 2
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = getelementptr inbounds i8, ptr %1728, i64 220
  %2040 = load i8, ptr %2039, align 4, !tbaa !24
  %2041 = icmp eq i8 %2040, 33
  br i1 %2041, label %2064, label %2042

2042:                                             ; preds = %2037
  %2043 = load i32, ptr %1673, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2045 = call i32 @s2n_print_stacktrace(ptr noundef %2044) #15
  %2046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2047 = trunc nuw i8 %2046 to i1
  br i1 %2047, label %2048, label %2052

2048:                                             ; preds = %2042
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2050 = call i32 @fileno(ptr noundef %2049) #15
  %2051 = call i32 @isatty(i32 noundef %2050) #15
  %.not555 = icmp eq i32 %2051, 0
  br i1 %.not555, label %2052, label %2053

2052:                                             ; preds = %2048, %2042
  br label %2053

2053:                                             ; preds = %2048, %2052
  %.str.4.sink1417 = phi ptr [ @.str.4, %2052 ], [ @.str, %2048 ]
  store i32 %2043, ptr %1673, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = load i32, ptr %701, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef nonnull @.str.3) #15
  %2058 = load i32, ptr %701, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef nonnull @.str.3) #15
  %2060 = load i32, ptr %1673, align 4, !tbaa !5
  %2061 = call ptr @strerror(i32 noundef %2060) #15
  %2062 = load i32, ptr %1673, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2054, ptr noundef nonnull %.str.4.sink1417, i32 noundef %2055, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 495, ptr noundef %2057, ptr noundef %2059, ptr noundef %2061, i32 noundef %2062) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2064:                                             ; preds = %2037
  %2065 = add nsw i32 %2010, 3
  store i32 %2065, ptr @test_count, align 4, !tbaa !5
  %2066 = load i32, ptr %1783, align 8
  %2067 = and i32 %2066, 8192
  %.not556 = icmp eq i32 %2067, 0
  br i1 %.not556, label %2090, label %2068

2068:                                             ; preds = %2064
  %2069 = load i32, ptr %1673, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2071 = call i32 @s2n_print_stacktrace(ptr noundef %2070) #15
  %2072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2073 = trunc nuw i8 %2072 to i1
  br i1 %2073, label %2074, label %2078

2074:                                             ; preds = %2068
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2076 = call i32 @fileno(ptr noundef %2075) #15
  %2077 = call i32 @isatty(i32 noundef %2076) #15
  %.not661 = icmp eq i32 %2077, 0
  br i1 %.not661, label %2078, label %2079

2078:                                             ; preds = %2074, %2068
  br label %2079

2079:                                             ; preds = %2074, %2078
  %.str.4.sink1426 = phi ptr [ @.str.4, %2078 ], [ @.str, %2074 ]
  store i32 %2069, ptr %1673, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = load i32, ptr %701, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef nonnull @.str.3) #15
  %2084 = load i32, ptr %701, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef nonnull @.str.3) #15
  %2086 = load i32, ptr %1673, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #15
  %2088 = load i32, ptr %1673, align 4, !tbaa !5
  %2089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2080, ptr noundef nonnull %.str.4.sink1426, i32 noundef %2081, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.2, i32 noundef 496, ptr noundef %2083, ptr noundef %2085, ptr noundef %2087, i32 noundef %2088) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2090:                                             ; preds = %2064
  %2091 = add nsw i32 %2010, 4
  store i32 %2091, ptr @test_count, align 4, !tbaa !5
  %2092 = load i32, ptr %1728, align 8
  %2093 = and i32 %2092, 8192
  %.not557 = icmp eq i32 %2093, 0
  br i1 %.not557, label %2116, label %2094

2094:                                             ; preds = %2090
  %2095 = load i32, ptr %1673, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2097 = call i32 @s2n_print_stacktrace(ptr noundef %2096) #15
  %2098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2099 = trunc nuw i8 %2098 to i1
  br i1 %2099, label %2100, label %2104

2100:                                             ; preds = %2094
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2102 = call i32 @fileno(ptr noundef %2101) #15
  %2103 = call i32 @isatty(i32 noundef %2102) #15
  %.not660 = icmp eq i32 %2103, 0
  br i1 %.not660, label %2104, label %2105

2104:                                             ; preds = %2100, %2094
  br label %2105

2105:                                             ; preds = %2100, %2104
  %.str.4.sink1435 = phi ptr [ @.str.4, %2104 ], [ @.str, %2100 ]
  store i32 %2095, ptr %1673, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = load i32, ptr %701, align 4, !tbaa !5
  %2109 = call ptr @s2n_strerror(i32 noundef %2108, ptr noundef nonnull @.str.3) #15
  %2110 = load i32, ptr %701, align 4, !tbaa !5
  %2111 = call ptr @s2n_strerror_debug(i32 noundef %2110, ptr noundef nonnull @.str.3) #15
  %2112 = load i32, ptr %1673, align 4, !tbaa !5
  %2113 = call ptr @strerror(i32 noundef %2112) #15
  %2114 = load i32, ptr %1673, align 4, !tbaa !5
  %2115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2106, ptr noundef nonnull %.str.4.sink1435, i32 noundef %2107, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.2, i32 noundef 497, ptr noundef %2109, ptr noundef %2111, ptr noundef %2113, i32 noundef %2114) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2116:                                             ; preds = %2090
  %2117 = add nsw i32 %2010, 5
  store i32 %2117, ptr @test_count, align 4, !tbaa !5
  %2118 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1783, i32 noundef 2) #15
  br i1 %2118, label %2141, label %2119

2119:                                             ; preds = %2116
  %2120 = load i32, ptr %1673, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2122 = call i32 @s2n_print_stacktrace(ptr noundef %2121) #15
  %2123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2124 = trunc nuw i8 %2123 to i1
  br i1 %2124, label %2125, label %2129

2125:                                             ; preds = %2119
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2127 = call i32 @fileno(ptr noundef %2126) #15
  %2128 = call i32 @isatty(i32 noundef %2127) #15
  %.not558 = icmp eq i32 %2128, 0
  br i1 %.not558, label %2129, label %2130

2129:                                             ; preds = %2125, %2119
  br label %2130

2130:                                             ; preds = %2125, %2129
  %.str.4.sink1444 = phi ptr [ @.str.4, %2129 ], [ @.str, %2125 ]
  store i32 %2120, ptr %1673, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = load i32, ptr %701, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror(i32 noundef %2133, ptr noundef nonnull @.str.3) #15
  %2135 = load i32, ptr %701, align 4, !tbaa !5
  %2136 = call ptr @s2n_strerror_debug(i32 noundef %2135, ptr noundef nonnull @.str.3) #15
  %2137 = load i32, ptr %1673, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #15
  %2139 = load i32, ptr %1673, align 4, !tbaa !5
  %2140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2131, ptr noundef nonnull %.str.4.sink1444, i32 noundef %2132, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 498, ptr noundef %2134, ptr noundef %2136, ptr noundef %2138, i32 noundef %2139) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2141:                                             ; preds = %2116
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = add nsw i32 %2142, 1
  store i32 %2143, ptr @test_count, align 4, !tbaa !5
  %2144 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1728, i32 noundef 2) #15
  br i1 %2144, label %2167, label %2145

2145:                                             ; preds = %2141
  %2146 = load i32, ptr %1673, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2148 = call i32 @s2n_print_stacktrace(ptr noundef %2147) #15
  %2149 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2150 = trunc nuw i8 %2149 to i1
  br i1 %2150, label %2151, label %2155

2151:                                             ; preds = %2145
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2153 = call i32 @fileno(ptr noundef %2152) #15
  %2154 = call i32 @isatty(i32 noundef %2153) #15
  %.not559 = icmp eq i32 %2154, 0
  br i1 %.not559, label %2155, label %2156

2155:                                             ; preds = %2151, %2145
  br label %2156

2156:                                             ; preds = %2151, %2155
  %.str.4.sink1453 = phi ptr [ @.str.4, %2155 ], [ @.str, %2151 ]
  store i32 %2146, ptr %1673, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = load i32, ptr %701, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror(i32 noundef %2159, ptr noundef nonnull @.str.3) #15
  %2161 = load i32, ptr %701, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror_debug(i32 noundef %2161, ptr noundef nonnull @.str.3) #15
  %2163 = load i32, ptr %1673, align 4, !tbaa !5
  %2164 = call ptr @strerror(i32 noundef %2163) #15
  %2165 = load i32, ptr %1673, align 4, !tbaa !5
  %2166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2157, ptr noundef nonnull %.str.4.sink1453, i32 noundef %2158, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 499, ptr noundef %2160, ptr noundef %2162, ptr noundef %2164, i32 noundef %2165) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2167:                                             ; preds = %2141
  %2168 = call i32 @s2n_connection_get_session_length(ptr noundef nonnull %1728) #15
  %2169 = sext i32 %2168 to i64
  call void @llvm.lifetime.start.p0(i64 202, ptr nonnull %13) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(202) %13, i8 0, i64 202, i1 false)
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = add nsw i32 %2170, 1
  store i32 %2171, ptr @test_count, align 4, !tbaa !5
  %2172 = call i32 @s2n_connection_get_session(ptr noundef nonnull %1728, ptr noundef nonnull %13, i64 noundef %2169) #15
  %2173 = icmp eq i32 %2172, -1
  br i1 %2173, label %2174, label %2196

2174:                                             ; preds = %2167
  %2175 = load i32, ptr %1673, align 4, !tbaa !5
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2177 = call i32 @s2n_print_stacktrace(ptr noundef %2176) #15
  %2178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2179 = trunc nuw i8 %2178 to i1
  br i1 %2179, label %2180, label %2184

2180:                                             ; preds = %2174
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2182 = call i32 @fileno(ptr noundef %2181) #15
  %2183 = call i32 @isatty(i32 noundef %2182) #15
  %.not659 = icmp eq i32 %2183, 0
  br i1 %.not659, label %2184, label %2185

2184:                                             ; preds = %2180, %2174
  br label %2185

2185:                                             ; preds = %2180, %2184
  %.str.4.sink1462 = phi ptr [ @.str.4, %2184 ], [ @.str, %2180 ]
  store i32 %2175, ptr %1673, align 4, !tbaa !5
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = load i32, ptr %701, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror(i32 noundef %2188, ptr noundef nonnull @.str.3) #15
  %2190 = load i32, ptr %701, align 4, !tbaa !5
  %2191 = call ptr @s2n_strerror_debug(i32 noundef %2190, ptr noundef nonnull @.str.3) #15
  %2192 = load i32, ptr %1673, align 4, !tbaa !5
  %2193 = call ptr @strerror(i32 noundef %2192) #15
  %2194 = load i32, ptr %1673, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2186, ptr noundef nonnull %.str.4.sink1462, i32 noundef %2187, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 503, ptr noundef %2189, ptr noundef %2191, ptr noundef %2193, i32 noundef %2194) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2196:                                             ; preds = %2167
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = add nsw i32 %2197, 1
  store i32 %2198, ptr @test_count, align 4, !tbaa !5
  %2199 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1783) #15
  %2200 = icmp eq i32 %2199, -1
  br i1 %2200, label %2201, label %2223

2201:                                             ; preds = %2196
  %2202 = load i32, ptr %1673, align 4, !tbaa !5
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2204 = call i32 @s2n_print_stacktrace(ptr noundef %2203) #15
  %2205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2206 = trunc nuw i8 %2205 to i1
  br i1 %2206, label %2207, label %2211

2207:                                             ; preds = %2201
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2209 = call i32 @fileno(ptr noundef %2208) #15
  %2210 = call i32 @isatty(i32 noundef %2209) #15
  %.not658 = icmp eq i32 %2210, 0
  br i1 %.not658, label %2211, label %2212

2211:                                             ; preds = %2207, %2201
  br label %2212

2212:                                             ; preds = %2207, %2211
  %.str.4.sink1471 = phi ptr [ @.str.4, %2211 ], [ @.str, %2207 ]
  store i32 %2202, ptr %1673, align 4, !tbaa !5
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = load i32, ptr %701, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror(i32 noundef %2215, ptr noundef nonnull @.str.3) #15
  %2217 = load i32, ptr %701, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror_debug(i32 noundef %2217, ptr noundef nonnull @.str.3) #15
  %2219 = load i32, ptr %1673, align 4, !tbaa !5
  %2220 = call ptr @strerror(i32 noundef %2219) #15
  %2221 = load i32, ptr %1673, align 4, !tbaa !5
  %2222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2213, ptr noundef nonnull %.str.4.sink1471, i32 noundef %2214, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 506, ptr noundef %2216, ptr noundef %2218, ptr noundef %2220, i32 noundef %2221) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2223:                                             ; preds = %2196
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = add nsw i32 %2224, 1
  store i32 %2225, ptr @test_count, align 4, !tbaa !5
  %2226 = call i32 @s2n_connection_wipe(ptr noundef nonnull %1728) #15
  %2227 = icmp eq i32 %2226, -1
  br i1 %2227, label %2228, label %2250

2228:                                             ; preds = %2223
  %2229 = load i32, ptr %1673, align 4, !tbaa !5
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2231 = call i32 @s2n_print_stacktrace(ptr noundef %2230) #15
  %2232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2233 = trunc nuw i8 %2232 to i1
  br i1 %2233, label %2234, label %2238

2234:                                             ; preds = %2228
  %2235 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2236 = call i32 @fileno(ptr noundef %2235) #15
  %2237 = call i32 @isatty(i32 noundef %2236) #15
  %.not657 = icmp eq i32 %2237, 0
  br i1 %.not657, label %2238, label %2239

2238:                                             ; preds = %2234, %2228
  br label %2239

2239:                                             ; preds = %2234, %2238
  %.str.4.sink1480 = phi ptr [ @.str.4, %2238 ], [ @.str, %2234 ]
  store i32 %2229, ptr %1673, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = load i32, ptr %701, align 4, !tbaa !5
  %2243 = call ptr @s2n_strerror(i32 noundef %2242, ptr noundef nonnull @.str.3) #15
  %2244 = load i32, ptr %701, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror_debug(i32 noundef %2244, ptr noundef nonnull @.str.3) #15
  %2246 = load i32, ptr %1673, align 4, !tbaa !5
  %2247 = call ptr @strerror(i32 noundef %2246) #15
  %2248 = load i32, ptr %1673, align 4, !tbaa !5
  %2249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2240, ptr noundef nonnull %.str.4.sink1480, i32 noundef %2241, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 507, ptr noundef %2243, ptr noundef %2245, ptr noundef %2247, i32 noundef %2248) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2250:                                             ; preds = %2223
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = add nsw i32 %2251, 1
  store i32 %2252, ptr @test_count, align 4, !tbaa !5
  %2253 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #15
  %2254 = icmp eq i32 %2253, -1
  br i1 %2254, label %2255, label %2277

2255:                                             ; preds = %2250
  %2256 = load i32, ptr %1673, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2258 = call i32 @s2n_print_stacktrace(ptr noundef %2257) #15
  %2259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2260 = trunc nuw i8 %2259 to i1
  br i1 %2260, label %2261, label %2265

2261:                                             ; preds = %2255
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2263 = call i32 @fileno(ptr noundef %2262) #15
  %2264 = call i32 @isatty(i32 noundef %2263) #15
  %.not656 = icmp eq i32 %2264, 0
  br i1 %.not656, label %2265, label %2266

2265:                                             ; preds = %2261, %2255
  br label %2266

2266:                                             ; preds = %2261, %2265
  %.str.4.sink1489 = phi ptr [ @.str.4, %2265 ], [ @.str, %2261 ]
  store i32 %2256, ptr %1673, align 4, !tbaa !5
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = load i32, ptr %701, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef nonnull @.str.3) #15
  %2271 = load i32, ptr %701, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef nonnull @.str.3) #15
  %2273 = load i32, ptr %1673, align 4, !tbaa !5
  %2274 = call ptr @strerror(i32 noundef %2273) #15
  %2275 = load i32, ptr %1673, align 4, !tbaa !5
  %2276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2267, ptr noundef nonnull %.str.4.sink1489, i32 noundef %2268, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 508, ptr noundef %2270, ptr noundef %2272, ptr noundef %2274, i32 noundef %2275) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2277:                                             ; preds = %2250
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = add nsw i32 %2278, 1
  store i32 %2279, ptr @test_count, align 4, !tbaa !5
  %2280 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #15
  %2281 = icmp eq i32 %2280, -1
  br i1 %2281, label %2282, label %2304

2282:                                             ; preds = %2277
  %2283 = load i32, ptr %1673, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2285 = call i32 @s2n_print_stacktrace(ptr noundef %2284) #15
  %2286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2287 = trunc nuw i8 %2286 to i1
  br i1 %2287, label %2288, label %2292

2288:                                             ; preds = %2282
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2290 = call i32 @fileno(ptr noundef %2289) #15
  %2291 = call i32 @isatty(i32 noundef %2290) #15
  %.not655 = icmp eq i32 %2291, 0
  br i1 %.not655, label %2292, label %2293

2292:                                             ; preds = %2288, %2282
  br label %2293

2293:                                             ; preds = %2288, %2292
  %.str.4.sink1498 = phi ptr [ @.str.4, %2292 ], [ @.str, %2288 ]
  store i32 %2283, ptr %1673, align 4, !tbaa !5
  %2294 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = load i32, ptr %701, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror(i32 noundef %2296, ptr noundef nonnull @.str.3) #15
  %2298 = load i32, ptr %701, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror_debug(i32 noundef %2298, ptr noundef nonnull @.str.3) #15
  %2300 = load i32, ptr %1673, align 4, !tbaa !5
  %2301 = call ptr @strerror(i32 noundef %2300) #15
  %2302 = load i32, ptr %1673, align 4, !tbaa !5
  %2303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2294, ptr noundef nonnull %.str.4.sink1498, i32 noundef %2295, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 509, ptr noundef %2297, ptr noundef %2299, ptr noundef %2301, i32 noundef %2302) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2304:                                             ; preds = %2277
  %2305 = load i32, ptr @test_count, align 4, !tbaa !5
  %2306 = add nsw i32 %2305, 1
  store i32 %2306, ptr @test_count, align 4, !tbaa !5
  %2307 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %1728, ptr noundef nonnull %1783, ptr noundef nonnull %11) #15
  %2308 = icmp eq i32 %2307, -1
  br i1 %2308, label %2309, label %2331

2309:                                             ; preds = %2304
  %2310 = load i32, ptr %1673, align 4, !tbaa !5
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2312 = call i32 @s2n_print_stacktrace(ptr noundef %2311) #15
  %2313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2314 = trunc nuw i8 %2313 to i1
  br i1 %2314, label %2315, label %2319

2315:                                             ; preds = %2309
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2317 = call i32 @fileno(ptr noundef %2316) #15
  %2318 = call i32 @isatty(i32 noundef %2317) #15
  %.not654 = icmp eq i32 %2318, 0
  br i1 %.not654, label %2319, label %2320

2319:                                             ; preds = %2315, %2309
  br label %2320

2320:                                             ; preds = %2315, %2319
  %.str.4.sink1507 = phi ptr [ @.str.4, %2319 ], [ @.str, %2315 ]
  store i32 %2310, ptr %1673, align 4, !tbaa !5
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2322 = load i32, ptr @test_count, align 4, !tbaa !5
  %2323 = load i32, ptr %701, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror(i32 noundef %2323, ptr noundef nonnull @.str.3) #15
  %2325 = load i32, ptr %701, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror_debug(i32 noundef %2325, ptr noundef nonnull @.str.3) #15
  %2327 = load i32, ptr %1673, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #15
  %2329 = load i32, ptr %1673, align 4, !tbaa !5
  %2330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2321, ptr noundef nonnull %.str.4.sink1507, i32 noundef %2322, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 510, ptr noundef %2324, ptr noundef %2326, ptr noundef %2328, i32 noundef %2329) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2331:                                             ; preds = %2304
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = add nsw i32 %2332, 1
  store i32 %2333, ptr @test_count, align 4, !tbaa !5
  %2334 = call i32 @s2n_connection_set_session(ptr noundef nonnull %1728, ptr noundef nonnull %13, i64 noundef %2169) #15
  %2335 = icmp eq i32 %2334, -1
  br i1 %2335, label %2336, label %2358

2336:                                             ; preds = %2331
  %2337 = load i32, ptr %1673, align 4, !tbaa !5
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2339 = call i32 @s2n_print_stacktrace(ptr noundef %2338) #15
  %2340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2341 = trunc nuw i8 %2340 to i1
  br i1 %2341, label %2342, label %2346

2342:                                             ; preds = %2336
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2344 = call i32 @fileno(ptr noundef %2343) #15
  %2345 = call i32 @isatty(i32 noundef %2344) #15
  %.not653 = icmp eq i32 %2345, 0
  br i1 %.not653, label %2346, label %2347

2346:                                             ; preds = %2342, %2336
  br label %2347

2347:                                             ; preds = %2342, %2346
  %.str.4.sink1516 = phi ptr [ @.str.4, %2346 ], [ @.str, %2342 ]
  store i32 %2337, ptr %1673, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = load i32, ptr %701, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror(i32 noundef %2350, ptr noundef nonnull @.str.3) #15
  %2352 = load i32, ptr %701, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef nonnull @.str.3) #15
  %2354 = load i32, ptr %1673, align 4, !tbaa !5
  %2355 = call ptr @strerror(i32 noundef %2354) #15
  %2356 = load i32, ptr %1673, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2348, ptr noundef nonnull %.str.4.sink1516, i32 noundef %2349, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 511, ptr noundef %2351, ptr noundef %2353, ptr noundef %2355, i32 noundef %2356) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2358:                                             ; preds = %2331
  %2359 = load i32, ptr @test_count, align 4, !tbaa !5
  %2360 = add nsw i32 %2359, 1
  store i32 %2360, ptr @test_count, align 4, !tbaa !5
  %2361 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1783, ptr noundef nonnull %1728) #15
  %2362 = icmp eq i32 %2361, -1
  br i1 %2362, label %2385, label %2363

2363:                                             ; preds = %2358
  %2364 = load i32, ptr %1673, align 4, !tbaa !5
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2366 = call i32 @s2n_print_stacktrace(ptr noundef %2365) #15
  %2367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2368 = trunc nuw i8 %2367 to i1
  br i1 %2368, label %2369, label %2373

2369:                                             ; preds = %2363
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2371 = call i32 @fileno(ptr noundef %2370) #15
  %2372 = call i32 @isatty(i32 noundef %2371) #15
  %.not560 = icmp eq i32 %2372, 0
  br i1 %.not560, label %2373, label %2374

2373:                                             ; preds = %2369, %2363
  br label %2374

2374:                                             ; preds = %2369, %2373
  %.str.4.sink1525 = phi ptr [ @.str.4, %2373 ], [ @.str, %2369 ]
  store i32 %2364, ptr %1673, align 4, !tbaa !5
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2376 = load i32, ptr @test_count, align 4, !tbaa !5
  %2377 = load i32, ptr %701, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror(i32 noundef %2377, ptr noundef nonnull @.str.3) #15
  %2379 = load i32, ptr %701, align 4, !tbaa !5
  %2380 = call ptr @s2n_strerror_debug(i32 noundef %2379, ptr noundef nonnull @.str.3) #15
  %2381 = load i32, ptr %1673, align 4, !tbaa !5
  %2382 = call ptr @strerror(i32 noundef %2381) #15
  %2383 = load i32, ptr %1673, align 4, !tbaa !5
  %2384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2375, ptr noundef nonnull %.str.4.sink1525, i32 noundef %2376, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.2, i32 noundef 514, ptr noundef %2378, ptr noundef %2380, ptr noundef %2382, i32 noundef %2383) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2385:                                             ; preds = %2358
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = add nsw i32 %2386, 1
  store i32 %2387, ptr @test_count, align 4, !tbaa !5
  %2388 = load i32, ptr %701, align 4, !tbaa !5
  %2389 = icmp eq i32 %2388, 201326593
  br i1 %2389, label %2412, label %2390

2390:                                             ; preds = %2385
  %2391 = load i32, ptr %1673, align 4, !tbaa !5
  %2392 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2393 = call i32 @s2n_print_stacktrace(ptr noundef %2392) #15
  %2394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2395 = trunc nuw i8 %2394 to i1
  br i1 %2395, label %2396, label %2400

2396:                                             ; preds = %2390
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2398 = call i32 @fileno(ptr noundef %2397) #15
  %2399 = call i32 @isatty(i32 noundef %2398) #15
  %.not561 = icmp eq i32 %2399, 0
  br i1 %.not561, label %2400, label %2401

2400:                                             ; preds = %2396, %2390
  br label %2401

2401:                                             ; preds = %2396, %2400
  %.str.4.sink1534 = phi ptr [ @.str.4, %2400 ], [ @.str, %2396 ]
  store i32 %2391, ptr %1673, align 4, !tbaa !5
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2403 = load i32, ptr @test_count, align 4, !tbaa !5
  %2404 = load i32, ptr %701, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror(i32 noundef %2404, ptr noundef nonnull @.str.3) #15
  %2406 = load i32, ptr %701, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror_debug(i32 noundef %2406, ptr noundef nonnull @.str.3) #15
  %2408 = load i32, ptr %1673, align 4, !tbaa !5
  %2409 = call ptr @strerror(i32 noundef %2408) #15
  %2410 = load i32, ptr %1673, align 4, !tbaa !5
  %2411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2402, ptr noundef nonnull %.str.4.sink1534, i32 noundef %2403, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 514, ptr noundef %2405, ptr noundef %2407, ptr noundef %2409, i32 noundef %2410) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2412:                                             ; preds = %2385
  %2413 = add nsw i32 %2386, 2
  store i32 %2413, ptr @test_count, align 4, !tbaa !5
  %2414 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.3) #15
  %2415 = icmp eq ptr %2414, null
  br i1 %2415, label %2416, label %2438

2416:                                             ; preds = %2412
  %2417 = load i32, ptr %1673, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2419 = call i32 @s2n_print_stacktrace(ptr noundef %2418) #15
  %2420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2421 = trunc nuw i8 %2420 to i1
  br i1 %2421, label %2422, label %2426

2422:                                             ; preds = %2416
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2424 = call i32 @fileno(ptr noundef %2423) #15
  %2425 = call i32 @isatty(i32 noundef %2424) #15
  %.not652 = icmp eq i32 %2425, 0
  br i1 %.not652, label %2426, label %2427

2426:                                             ; preds = %2422, %2416
  br label %2427

2427:                                             ; preds = %2422, %2426
  %.str.4.sink1543 = phi ptr [ @.str.4, %2426 ], [ @.str, %2422 ]
  store i32 %2417, ptr %1673, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = load i32, ptr %701, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef nonnull @.str.3) #15
  %2432 = load i32, ptr %701, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef nonnull @.str.3) #15
  %2434 = load i32, ptr %1673, align 4, !tbaa !5
  %2435 = call ptr @strerror(i32 noundef %2434) #15
  %2436 = load i32, ptr %1673, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2428, ptr noundef nonnull %.str.4.sink1543, i32 noundef %2429, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 514, ptr noundef %2431, ptr noundef %2433, ptr noundef %2435, i32 noundef %2436) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2438:                                             ; preds = %2412
  store i32 0, ptr %701, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #15
  store i32 0, ptr %1673, align 4, !tbaa !5
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = add nsw i32 %2439, 1
  store i32 %2440, ptr @test_count, align 4, !tbaa !5
  %2441 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %1783, ptr noundef nonnull %1728) #15
  %2442 = icmp eq i32 %2441, -1
  br i1 %2442, label %2443, label %2465

2443:                                             ; preds = %2438
  %2444 = load i32, ptr %1673, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2446 = call i32 @s2n_print_stacktrace(ptr noundef %2445) #15
  %2447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2448 = trunc nuw i8 %2447 to i1
  br i1 %2448, label %2449, label %2453

2449:                                             ; preds = %2443
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2451 = call i32 @fileno(ptr noundef %2450) #15
  %2452 = call i32 @isatty(i32 noundef %2451) #15
  %.not651 = icmp eq i32 %2452, 0
  br i1 %.not651, label %2453, label %2454

2453:                                             ; preds = %2449, %2443
  br label %2454

2454:                                             ; preds = %2449, %2453
  %.str.4.sink1552 = phi ptr [ @.str.4, %2453 ], [ @.str, %2449 ]
  store i32 %2444, ptr %1673, align 4, !tbaa !5
  %2455 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2456 = load i32, ptr @test_count, align 4, !tbaa !5
  %2457 = load i32, ptr %701, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror(i32 noundef %2457, ptr noundef nonnull @.str.3) #15
  %2459 = load i32, ptr %701, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef nonnull @.str.3) #15
  %2461 = load i32, ptr %1673, align 4, !tbaa !5
  %2462 = call ptr @strerror(i32 noundef %2461) #15
  %2463 = load i32, ptr %1673, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2455, ptr noundef nonnull %.str.4.sink1552, i32 noundef %2456, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 517, ptr noundef %2458, ptr noundef %2460, ptr noundef %2462, i32 noundef %2463) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2465:                                             ; preds = %2438
  %2466 = load i32, ptr @test_count, align 4, !tbaa !5
  %2467 = add nsw i32 %2466, 1
  store i32 %2467, ptr @test_count, align 4, !tbaa !5
  %2468 = load i8, ptr %12, align 1, !tbaa !51
  %2469 = zext i8 %2468 to i32
  %2470 = lshr i32 %2469, 3
  %2471 = zext nneg i32 %2470 to i64
  %2472 = getelementptr inbounds [22 x i8], ptr %1977, i64 0, i64 %2471
  %2473 = load i8, ptr %2472, align 1, !tbaa !51
  %2474 = zext i8 %2473 to i32
  %2475 = and i32 %2469, 7
  %2476 = shl nuw nsw i32 1, %2475
  %2477 = and i32 %2476, %2474
  %2478 = icmp eq i32 %2477, 0
  br i1 %2478, label %2501, label %2479

2479:                                             ; preds = %2465
  %2480 = load i32, ptr %1673, align 4, !tbaa !5
  %2481 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2482 = call i32 @s2n_print_stacktrace(ptr noundef %2481) #15
  %2483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2484 = trunc nuw i8 %2483 to i1
  br i1 %2484, label %2485, label %2489

2485:                                             ; preds = %2479
  %2486 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2487 = call i32 @fileno(ptr noundef %2486) #15
  %2488 = call i32 @isatty(i32 noundef %2487) #15
  %.not562 = icmp eq i32 %2488, 0
  br i1 %.not562, label %2489, label %2490

2489:                                             ; preds = %2485, %2479
  br label %2490

2490:                                             ; preds = %2485, %2489
  %.str.4.sink1561 = phi ptr [ @.str.4, %2489 ], [ @.str, %2485 ]
  store i32 %2480, ptr %1673, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = load i32, ptr %701, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef nonnull @.str.3) #15
  %2495 = load i32, ptr %701, align 4, !tbaa !5
  %2496 = call ptr @s2n_strerror_debug(i32 noundef %2495, ptr noundef nonnull @.str.3) #15
  %2497 = load i32, ptr %1673, align 4, !tbaa !5
  %2498 = call ptr @strerror(i32 noundef %2497) #15
  %2499 = load i32, ptr %1673, align 4, !tbaa !5
  %2500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef nonnull %.str.4.sink1561, i32 noundef %2492, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.2, i32 noundef 518, ptr noundef %2494, ptr noundef %2496, ptr noundef %2498, i32 noundef %2499) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2501:                                             ; preds = %2465
  %2502 = add nsw i32 %2466, 2
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = load i8, ptr %2012, align 4, !tbaa !24
  %2504 = icmp eq i8 %2503, 33
  br i1 %2504, label %2527, label %2505

2505:                                             ; preds = %2501
  %2506 = load i32, ptr %1673, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2508 = call i32 @s2n_print_stacktrace(ptr noundef %2507) #15
  %2509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2510 = trunc nuw i8 %2509 to i1
  br i1 %2510, label %2511, label %2515

2511:                                             ; preds = %2505
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2513 = call i32 @fileno(ptr noundef %2512) #15
  %2514 = call i32 @isatty(i32 noundef %2513) #15
  %.not563 = icmp eq i32 %2514, 0
  br i1 %.not563, label %2515, label %2516

2515:                                             ; preds = %2511, %2505
  br label %2516

2516:                                             ; preds = %2511, %2515
  %.str.4.sink1570 = phi ptr [ @.str.4, %2515 ], [ @.str, %2511 ]
  store i32 %2506, ptr %1673, align 4, !tbaa !5
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = load i32, ptr %701, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror(i32 noundef %2519, ptr noundef nonnull @.str.3) #15
  %2521 = load i32, ptr %701, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef nonnull @.str.3) #15
  %2523 = load i32, ptr %1673, align 4, !tbaa !5
  %2524 = call ptr @strerror(i32 noundef %2523) #15
  %2525 = load i32, ptr %1673, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2517, ptr noundef nonnull %.str.4.sink1570, i32 noundef %2518, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.2, i32 noundef 519, ptr noundef %2520, ptr noundef %2522, ptr noundef %2524, i32 noundef %2525) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2527:                                             ; preds = %2501
  %2528 = add nsw i32 %2466, 3
  store i32 %2528, ptr @test_count, align 4, !tbaa !5
  %2529 = load i8, ptr %2039, align 4, !tbaa !24
  %2530 = icmp eq i8 %2529, 33
  br i1 %2530, label %2553, label %2531

2531:                                             ; preds = %2527
  %2532 = load i32, ptr %1673, align 4, !tbaa !5
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2534 = call i32 @s2n_print_stacktrace(ptr noundef %2533) #15
  %2535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2536 = trunc nuw i8 %2535 to i1
  br i1 %2536, label %2537, label %2541

2537:                                             ; preds = %2531
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2539 = call i32 @fileno(ptr noundef %2538) #15
  %2540 = call i32 @isatty(i32 noundef %2539) #15
  %.not564 = icmp eq i32 %2540, 0
  br i1 %.not564, label %2541, label %2542

2541:                                             ; preds = %2537, %2531
  br label %2542

2542:                                             ; preds = %2537, %2541
  %.str.4.sink1579 = phi ptr [ @.str.4, %2541 ], [ @.str, %2537 ]
  store i32 %2532, ptr %1673, align 4, !tbaa !5
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = load i32, ptr %701, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror(i32 noundef %2545, ptr noundef nonnull @.str.3) #15
  %2547 = load i32, ptr %701, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef nonnull @.str.3) #15
  %2549 = load i32, ptr %1673, align 4, !tbaa !5
  %2550 = call ptr @strerror(i32 noundef %2549) #15
  %2551 = load i32, ptr %1673, align 4, !tbaa !5
  %2552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2543, ptr noundef nonnull %.str.4.sink1579, i32 noundef %2544, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 520, ptr noundef %2546, ptr noundef %2548, ptr noundef %2550, i32 noundef %2551) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2553:                                             ; preds = %2527
  %2554 = add nsw i32 %2466, 4
  store i32 %2554, ptr @test_count, align 4, !tbaa !5
  %2555 = load i32, ptr %1783, align 8
  %2556 = and i32 %2555, 8192
  %.not565 = icmp eq i32 %2556, 0
  br i1 %.not565, label %2579, label %2557

2557:                                             ; preds = %2553
  %2558 = load i32, ptr %1673, align 4, !tbaa !5
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2560 = call i32 @s2n_print_stacktrace(ptr noundef %2559) #15
  %2561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2562 = trunc nuw i8 %2561 to i1
  br i1 %2562, label %2563, label %2567

2563:                                             ; preds = %2557
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2565 = call i32 @fileno(ptr noundef %2564) #15
  %2566 = call i32 @isatty(i32 noundef %2565) #15
  %.not650 = icmp eq i32 %2566, 0
  br i1 %.not650, label %2567, label %2568

2567:                                             ; preds = %2563, %2557
  br label %2568

2568:                                             ; preds = %2563, %2567
  %.str.4.sink1588 = phi ptr [ @.str.4, %2567 ], [ @.str, %2563 ]
  store i32 %2558, ptr %1673, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = load i32, ptr %701, align 4, !tbaa !5
  %2572 = call ptr @s2n_strerror(i32 noundef %2571, ptr noundef nonnull @.str.3) #15
  %2573 = load i32, ptr %701, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror_debug(i32 noundef %2573, ptr noundef nonnull @.str.3) #15
  %2575 = load i32, ptr %1673, align 4, !tbaa !5
  %2576 = call ptr @strerror(i32 noundef %2575) #15
  %2577 = load i32, ptr %1673, align 4, !tbaa !5
  %2578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2569, ptr noundef nonnull %.str.4.sink1588, i32 noundef %2570, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.2, i32 noundef 521, ptr noundef %2572, ptr noundef %2574, ptr noundef %2576, i32 noundef %2577) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2579:                                             ; preds = %2553
  %2580 = add nsw i32 %2466, 5
  store i32 %2580, ptr @test_count, align 4, !tbaa !5
  %2581 = load i32, ptr %1728, align 8
  %2582 = and i32 %2581, 8192
  %.not566 = icmp eq i32 %2582, 0
  br i1 %.not566, label %2605, label %2583

2583:                                             ; preds = %2579
  %2584 = load i32, ptr %1673, align 4, !tbaa !5
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2586 = call i32 @s2n_print_stacktrace(ptr noundef %2585) #15
  %2587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2588 = trunc nuw i8 %2587 to i1
  br i1 %2588, label %2589, label %2593

2589:                                             ; preds = %2583
  %2590 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2591 = call i32 @fileno(ptr noundef %2590) #15
  %2592 = call i32 @isatty(i32 noundef %2591) #15
  %.not649 = icmp eq i32 %2592, 0
  br i1 %.not649, label %2593, label %2594

2593:                                             ; preds = %2589, %2583
  br label %2594

2594:                                             ; preds = %2589, %2593
  %.str.4.sink1597 = phi ptr [ @.str.4, %2593 ], [ @.str, %2589 ]
  store i32 %2584, ptr %1673, align 4, !tbaa !5
  %2595 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = load i32, ptr %701, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror(i32 noundef %2597, ptr noundef nonnull @.str.3) #15
  %2599 = load i32, ptr %701, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef nonnull @.str.3) #15
  %2601 = load i32, ptr %1673, align 4, !tbaa !5
  %2602 = call ptr @strerror(i32 noundef %2601) #15
  %2603 = load i32, ptr %1673, align 4, !tbaa !5
  %2604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2595, ptr noundef nonnull %.str.4.sink1597, i32 noundef %2596, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.2, i32 noundef 522, ptr noundef %2598, ptr noundef %2600, ptr noundef %2602, i32 noundef %2603) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2605:                                             ; preds = %2579
  %2606 = add nsw i32 %2466, 6
  store i32 %2606, ptr @test_count, align 4, !tbaa !5
  %2607 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1783, i32 noundef 2) #15
  br i1 %2607, label %2608, label %2630

2608:                                             ; preds = %2605
  %2609 = load i32, ptr %1673, align 4, !tbaa !5
  %2610 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2611 = call i32 @s2n_print_stacktrace(ptr noundef %2610) #15
  %2612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2613 = trunc nuw i8 %2612 to i1
  br i1 %2613, label %2614, label %2618

2614:                                             ; preds = %2608
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2616 = call i32 @fileno(ptr noundef %2615) #15
  %2617 = call i32 @isatty(i32 noundef %2616) #15
  %.not648 = icmp eq i32 %2617, 0
  br i1 %.not648, label %2618, label %2619

2618:                                             ; preds = %2614, %2608
  br label %2619

2619:                                             ; preds = %2614, %2618
  %.str.4.sink1606 = phi ptr [ @.str.4, %2618 ], [ @.str, %2614 ]
  store i32 %2609, ptr %1673, align 4, !tbaa !5
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2621 = load i32, ptr @test_count, align 4, !tbaa !5
  %2622 = load i32, ptr %701, align 4, !tbaa !5
  %2623 = call ptr @s2n_strerror(i32 noundef %2622, ptr noundef nonnull @.str.3) #15
  %2624 = load i32, ptr %701, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef nonnull @.str.3) #15
  %2626 = load i32, ptr %1673, align 4, !tbaa !5
  %2627 = call ptr @strerror(i32 noundef %2626) #15
  %2628 = load i32, ptr %1673, align 4, !tbaa !5
  %2629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2620, ptr noundef nonnull %.str.4.sink1606, i32 noundef %2621, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.2, i32 noundef 523, ptr noundef %2623, ptr noundef %2625, ptr noundef %2627, i32 noundef %2628) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2630:                                             ; preds = %2605
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = add nsw i32 %2631, 1
  store i32 %2632, ptr @test_count, align 4, !tbaa !5
  %2633 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %1728, i32 noundef 2) #15
  br i1 %2633, label %2634, label %2656

2634:                                             ; preds = %2630
  %2635 = load i32, ptr %1673, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636) #15
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2639 = trunc nuw i8 %2638 to i1
  br i1 %2639, label %2640, label %2644

2640:                                             ; preds = %2634
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2642 = call i32 @fileno(ptr noundef %2641) #15
  %2643 = call i32 @isatty(i32 noundef %2642) #15
  %.not647 = icmp eq i32 %2643, 0
  br i1 %.not647, label %2644, label %2645

2644:                                             ; preds = %2640, %2634
  br label %2645

2645:                                             ; preds = %2640, %2644
  %.str.4.sink1615 = phi ptr [ @.str.4, %2644 ], [ @.str, %2640 ]
  store i32 %2635, ptr %1673, align 4, !tbaa !5
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2647 = load i32, ptr @test_count, align 4, !tbaa !5
  %2648 = load i32, ptr %701, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror(i32 noundef %2648, ptr noundef nonnull @.str.3) #15
  %2650 = load i32, ptr %701, align 4, !tbaa !5
  %2651 = call ptr @s2n_strerror_debug(i32 noundef %2650, ptr noundef nonnull @.str.3) #15
  %2652 = load i32, ptr %1673, align 4, !tbaa !5
  %2653 = call ptr @strerror(i32 noundef %2652) #15
  %2654 = load i32, ptr %1673, align 4, !tbaa !5
  %2655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2646, ptr noundef nonnull %.str.4.sink1615, i32 noundef %2647, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.2, i32 noundef 524, ptr noundef %2649, ptr noundef %2651, ptr noundef %2653, i32 noundef %2654) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2656:                                             ; preds = %2630
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = add nsw i32 %2657, 1
  store i32 %2658, ptr @test_count, align 4, !tbaa !5
  %2659 = call i32 @s2n_connection_free(ptr noundef nonnull %1728) #15
  %2660 = icmp eq i32 %2659, -1
  br i1 %2660, label %2661, label %2683

2661:                                             ; preds = %2656
  %2662 = load i32, ptr %1673, align 4, !tbaa !5
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2664 = call i32 @s2n_print_stacktrace(ptr noundef %2663) #15
  %2665 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2666 = trunc nuw i8 %2665 to i1
  br i1 %2666, label %2667, label %2671

2667:                                             ; preds = %2661
  %2668 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2669 = call i32 @fileno(ptr noundef %2668) #15
  %2670 = call i32 @isatty(i32 noundef %2669) #15
  %.not646 = icmp eq i32 %2670, 0
  br i1 %.not646, label %2671, label %2672

2671:                                             ; preds = %2667, %2661
  br label %2672

2672:                                             ; preds = %2667, %2671
  %.str.4.sink1624 = phi ptr [ @.str.4, %2671 ], [ @.str, %2667 ]
  store i32 %2662, ptr %1673, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2674 = load i32, ptr @test_count, align 4, !tbaa !5
  %2675 = load i32, ptr %701, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror(i32 noundef %2675, ptr noundef nonnull @.str.3) #15
  %2677 = load i32, ptr %701, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef nonnull @.str.3) #15
  %2679 = load i32, ptr %1673, align 4, !tbaa !5
  %2680 = call ptr @strerror(i32 noundef %2679) #15
  %2681 = load i32, ptr %1673, align 4, !tbaa !5
  %2682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2673, ptr noundef nonnull %.str.4.sink1624, i32 noundef %2674, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 526, ptr noundef %2676, ptr noundef %2678, ptr noundef %2680, i32 noundef %2681) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2683:                                             ; preds = %2656
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = add nsw i32 %2684, 1
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = call i32 @s2n_connection_free(ptr noundef nonnull %1783) #15
  %2687 = icmp eq i32 %2686, -1
  br i1 %2687, label %2688, label %2710

2688:                                             ; preds = %2683
  %2689 = load i32, ptr %1673, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690) #15
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2693 = trunc nuw i8 %2692 to i1
  br i1 %2693, label %2694, label %2698

2694:                                             ; preds = %2688
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2696 = call i32 @fileno(ptr noundef %2695) #15
  %2697 = call i32 @isatty(i32 noundef %2696) #15
  %.not645 = icmp eq i32 %2697, 0
  br i1 %.not645, label %2698, label %2699

2698:                                             ; preds = %2694, %2688
  br label %2699

2699:                                             ; preds = %2694, %2698
  %.str.4.sink1633 = phi ptr [ @.str.4, %2698 ], [ @.str, %2694 ]
  store i32 %2689, ptr %1673, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = load i32, ptr %701, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef nonnull @.str.3) #15
  %2704 = load i32, ptr %701, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef nonnull @.str.3) #15
  %2706 = load i32, ptr %1673, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #15
  %2708 = load i32, ptr %1673, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef nonnull %.str.4.sink1633, i32 noundef %2701, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 527, ptr noundef %2703, ptr noundef %2705, ptr noundef %2707, i32 noundef %2708) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2710:                                             ; preds = %2683
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #15
  %2714 = icmp eq i32 %2713, -1
  br i1 %2714, label %2715, label %2737

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %1673, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2718 = call i32 @s2n_print_stacktrace(ptr noundef %2717) #15
  %2719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2720 = trunc nuw i8 %2719 to i1
  br i1 %2720, label %2721, label %2725

2721:                                             ; preds = %2715
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2723 = call i32 @fileno(ptr noundef %2722) #15
  %2724 = call i32 @isatty(i32 noundef %2723) #15
  %.not644 = icmp eq i32 %2724, 0
  br i1 %.not644, label %2725, label %2726

2725:                                             ; preds = %2721, %2715
  br label %2726

2726:                                             ; preds = %2721, %2725
  %.str.4.sink1642 = phi ptr [ @.str.4, %2725 ], [ @.str, %2721 ]
  store i32 %2716, ptr %1673, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = load i32, ptr %701, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror(i32 noundef %2729, ptr noundef nonnull @.str.3) #15
  %2731 = load i32, ptr %701, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef nonnull @.str.3) #15
  %2733 = load i32, ptr %1673, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #15
  %2735 = load i32, ptr %1673, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef nonnull %.str.4.sink1642, i32 noundef %2728, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 528, ptr noundef %2730, ptr noundef %2732, ptr noundef %2734, i32 noundef %2735) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2737:                                             ; preds = %2710
  call void @llvm.lifetime.end.p0(i64 202, ptr nonnull %13) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #15
  call void @initialize_cache()
  %2738 = call ptr @s2n_connection_new(i32 noundef 1) #15
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = add nsw i32 %2739, 1
  store i32 %2740, ptr @test_count, align 4, !tbaa !5
  %2741 = icmp eq ptr %2738, null
  br i1 %2741, label %2742, label %2764

2742:                                             ; preds = %2737
  %2743 = load i32, ptr %1673, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744) #15
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2747 = trunc nuw i8 %2746 to i1
  br i1 %2747, label %2748, label %2752

2748:                                             ; preds = %2742
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2750 = call i32 @fileno(ptr noundef %2749) #15
  %2751 = call i32 @isatty(i32 noundef %2750) #15
  %.not643 = icmp eq i32 %2751, 0
  br i1 %.not643, label %2752, label %2753

2752:                                             ; preds = %2748, %2742
  br label %2753

2753:                                             ; preds = %2748, %2752
  %.str.4.sink1651 = phi ptr [ @.str.4, %2752 ], [ @.str, %2748 ]
  store i32 %2743, ptr %1673, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = load i32, ptr %701, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror(i32 noundef %2756, ptr noundef nonnull @.str.3) #15
  %2758 = load i32, ptr %701, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror_debug(i32 noundef %2758, ptr noundef nonnull @.str.3) #15
  %2760 = load i32, ptr %1673, align 4, !tbaa !5
  %2761 = call ptr @strerror(i32 noundef %2760) #15
  %2762 = load i32, ptr %1673, align 4, !tbaa !5
  %2763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef nonnull %.str.4.sink1651, i32 noundef %2755, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 541, ptr noundef %2757, ptr noundef %2759, ptr noundef %2761, i32 noundef %2762) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2764:                                             ; preds = %2737
  %2765 = call i32 @s2n_config_disable_x509_verification(ptr noundef %282) #15
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = add nsw i32 %2766, 1
  store i32 %2767, ptr @test_count, align 4, !tbaa !5
  %2768 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2738, ptr noundef %282) #15
  %2769 = icmp eq i32 %2768, -1
  br i1 %2769, label %2770, label %2792

2770:                                             ; preds = %2764
  %2771 = load i32, ptr %1673, align 4, !tbaa !5
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2773 = call i32 @s2n_print_stacktrace(ptr noundef %2772) #15
  %2774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2775 = trunc nuw i8 %2774 to i1
  br i1 %2775, label %2776, label %2780

2776:                                             ; preds = %2770
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2778 = call i32 @fileno(ptr noundef %2777) #15
  %2779 = call i32 @isatty(i32 noundef %2778) #15
  %.not642 = icmp eq i32 %2779, 0
  br i1 %.not642, label %2780, label %2781

2780:                                             ; preds = %2776, %2770
  br label %2781

2781:                                             ; preds = %2776, %2780
  %.str.4.sink1660 = phi ptr [ @.str.4, %2780 ], [ @.str, %2776 ]
  store i32 %2771, ptr %1673, align 4, !tbaa !5
  %2782 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = load i32, ptr %701, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef nonnull @.str.3) #15
  %2786 = load i32, ptr %701, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror_debug(i32 noundef %2786, ptr noundef nonnull @.str.3) #15
  %2788 = load i32, ptr %1673, align 4, !tbaa !5
  %2789 = call ptr @strerror(i32 noundef %2788) #15
  %2790 = load i32, ptr %1673, align 4, !tbaa !5
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2782, ptr noundef nonnull %.str.4.sink1660, i32 noundef %2783, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 543, ptr noundef %2785, ptr noundef %2787, ptr noundef %2789, i32 noundef %2790) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2792:                                             ; preds = %2764
  %2793 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %2794 = load i32, ptr @test_count, align 4, !tbaa !5
  %2795 = add nsw i32 %2794, 1
  store i32 %2795, ptr @test_count, align 4, !tbaa !5
  %2796 = icmp eq ptr %2793, null
  br i1 %2796, label %2797, label %2819

2797:                                             ; preds = %2792
  %2798 = load i32, ptr %1673, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2800 = call i32 @s2n_print_stacktrace(ptr noundef %2799) #15
  %2801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2802 = trunc nuw i8 %2801 to i1
  br i1 %2802, label %2803, label %2807

2803:                                             ; preds = %2797
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2805 = call i32 @fileno(ptr noundef %2804) #15
  %2806 = call i32 @isatty(i32 noundef %2805) #15
  %.not641 = icmp eq i32 %2806, 0
  br i1 %.not641, label %2807, label %2808

2807:                                             ; preds = %2803, %2797
  br label %2808

2808:                                             ; preds = %2803, %2807
  %.str.4.sink1669 = phi ptr [ @.str.4, %2807 ], [ @.str, %2803 ]
  store i32 %2798, ptr %1673, align 4, !tbaa !5
  %2809 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = load i32, ptr %701, align 4, !tbaa !5
  %2812 = call ptr @s2n_strerror(i32 noundef %2811, ptr noundef nonnull @.str.3) #15
  %2813 = load i32, ptr %701, align 4, !tbaa !5
  %2814 = call ptr @s2n_strerror_debug(i32 noundef %2813, ptr noundef nonnull @.str.3) #15
  %2815 = load i32, ptr %1673, align 4, !tbaa !5
  %2816 = call ptr @strerror(i32 noundef %2815) #15
  %2817 = load i32, ptr %1673, align 4, !tbaa !5
  %2818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2809, ptr noundef nonnull %.str.4.sink1669, i32 noundef %2810, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 546, ptr noundef %2812, ptr noundef %2814, ptr noundef %2816, i32 noundef %2817) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2819:                                             ; preds = %2792
  %2820 = add nsw i32 %2794, 2
  store i32 %2820, ptr @test_count, align 4, !tbaa !5
  %2821 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2793, ptr noundef %282) #15
  %2822 = icmp eq i32 %2821, -1
  br i1 %2822, label %2823, label %2845

2823:                                             ; preds = %2819
  %2824 = load i32, ptr %1673, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2826 = call i32 @s2n_print_stacktrace(ptr noundef %2825) #15
  %2827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2828 = trunc nuw i8 %2827 to i1
  br i1 %2828, label %2829, label %2833

2829:                                             ; preds = %2823
  %2830 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2831 = call i32 @fileno(ptr noundef %2830) #15
  %2832 = call i32 @isatty(i32 noundef %2831) #15
  %.not640 = icmp eq i32 %2832, 0
  br i1 %.not640, label %2833, label %2834

2833:                                             ; preds = %2829, %2823
  br label %2834

2834:                                             ; preds = %2829, %2833
  %.str.4.sink1678 = phi ptr [ @.str.4, %2833 ], [ @.str, %2829 ]
  store i32 %2824, ptr %1673, align 4, !tbaa !5
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = load i32, ptr %701, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror(i32 noundef %2837, ptr noundef nonnull @.str.3) #15
  %2839 = load i32, ptr %701, align 4, !tbaa !5
  %2840 = call ptr @s2n_strerror_debug(i32 noundef %2839, ptr noundef nonnull @.str.3) #15
  %2841 = load i32, ptr %1673, align 4, !tbaa !5
  %2842 = call ptr @strerror(i32 noundef %2841) #15
  %2843 = load i32, ptr %1673, align 4, !tbaa !5
  %2844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2835, ptr noundef nonnull %.str.4.sink1678, i32 noundef %2836, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 547, ptr noundef %2838, ptr noundef %2840, ptr noundef %2842, i32 noundef %2843) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2845:                                             ; preds = %2819
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = add nsw i32 %2846, 1
  store i32 %2847, ptr @test_count, align 4, !tbaa !5
  %2848 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #15
  %2849 = icmp eq i32 %2848, -1
  br i1 %2849, label %2850, label %2872

2850:                                             ; preds = %2845
  %2851 = load i32, ptr %1673, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2853 = call i32 @s2n_print_stacktrace(ptr noundef %2852) #15
  %2854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2855 = trunc nuw i8 %2854 to i1
  br i1 %2855, label %2856, label %2860

2856:                                             ; preds = %2850
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2858 = call i32 @fileno(ptr noundef %2857) #15
  %2859 = call i32 @isatty(i32 noundef %2858) #15
  %.not639 = icmp eq i32 %2859, 0
  br i1 %.not639, label %2860, label %2861

2860:                                             ; preds = %2856, %2850
  br label %2861

2861:                                             ; preds = %2856, %2860
  %.str.4.sink1687 = phi ptr [ @.str.4, %2860 ], [ @.str, %2856 ]
  store i32 %2851, ptr %1673, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = load i32, ptr %701, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror(i32 noundef %2864, ptr noundef nonnull @.str.3) #15
  %2866 = load i32, ptr %701, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef nonnull @.str.3) #15
  %2868 = load i32, ptr %1673, align 4, !tbaa !5
  %2869 = call ptr @strerror(i32 noundef %2868) #15
  %2870 = load i32, ptr %1673, align 4, !tbaa !5
  %2871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2862, ptr noundef nonnull %.str.4.sink1687, i32 noundef %2863, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 550, ptr noundef %2865, ptr noundef %2867, ptr noundef %2869, i32 noundef %2870) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2872:                                             ; preds = %2845
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = add nsw i32 %2873, 1
  store i32 %2874, ptr @test_count, align 4, !tbaa !5
  %2875 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %2738, ptr noundef nonnull %2793, ptr noundef nonnull %11) #15
  %2876 = icmp eq i32 %2875, -1
  br i1 %2876, label %2877, label %2899

2877:                                             ; preds = %2872
  %2878 = load i32, ptr %1673, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2880 = call i32 @s2n_print_stacktrace(ptr noundef %2879) #15
  %2881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2882 = trunc nuw i8 %2881 to i1
  br i1 %2882, label %2883, label %2887

2883:                                             ; preds = %2877
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2885 = call i32 @fileno(ptr noundef %2884) #15
  %2886 = call i32 @isatty(i32 noundef %2885) #15
  %.not638 = icmp eq i32 %2886, 0
  br i1 %.not638, label %2887, label %2888

2887:                                             ; preds = %2883, %2877
  br label %2888

2888:                                             ; preds = %2883, %2887
  %.str.4.sink1696 = phi ptr [ @.str.4, %2887 ], [ @.str, %2883 ]
  store i32 %2878, ptr %1673, align 4, !tbaa !5
  %2889 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = load i32, ptr %701, align 4, !tbaa !5
  %2892 = call ptr @s2n_strerror(i32 noundef %2891, ptr noundef nonnull @.str.3) #15
  %2893 = load i32, ptr %701, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef nonnull @.str.3) #15
  %2895 = load i32, ptr %1673, align 4, !tbaa !5
  %2896 = call ptr @strerror(i32 noundef %2895) #15
  %2897 = load i32, ptr %1673, align 4, !tbaa !5
  %2898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2889, ptr noundef nonnull %.str.4.sink1696, i32 noundef %2890, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 551, ptr noundef %2892, ptr noundef %2894, ptr noundef %2896, i32 noundef %2897) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2899:                                             ; preds = %2872
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %2793, ptr noundef nonnull %2738) #15
  %2903 = icmp eq i32 %2902, -1
  br i1 %2903, label %2904, label %2926

2904:                                             ; preds = %2899
  %2905 = load i32, ptr %1673, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2907 = call i32 @s2n_print_stacktrace(ptr noundef %2906) #15
  %2908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %2912 = call i32 @fileno(ptr noundef %2911) #15
  %2913 = call i32 @isatty(i32 noundef %2912) #15
  %.not637 = icmp eq i32 %2913, 0
  br i1 %.not637, label %2914, label %2915

2914:                                             ; preds = %2910, %2904
  br label %2915

2915:                                             ; preds = %2910, %2914
  %.str.4.sink1705 = phi ptr [ @.str.4, %2914 ], [ @.str, %2910 ]
  store i32 %2905, ptr %1673, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = load i32, ptr %701, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef nonnull @.str.3) #15
  %2920 = load i32, ptr %701, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef nonnull @.str.3) #15
  %2922 = load i32, ptr %1673, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #15
  %2924 = load i32, ptr %1673, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef nonnull %.str.4.sink1705, i32 noundef %2917, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 554, ptr noundef %2919, ptr noundef %2921, ptr noundef %2923, i32 noundef %2924) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2926:                                             ; preds = %2899
  %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 = load i32, ptr %2793, align 8
  %2930 = and i32 %2929, 8192
  %.not567 = icmp eq i32 %2930, 0
  br i1 %.not567, label %2931, label %2953

2931:                                             ; preds = %2926
  %2932 = load i32, ptr %1673, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2934 = call i32 @s2n_print_stacktrace(ptr noundef %2933) #15
  %2935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %2939 = call i32 @fileno(ptr noundef %2938) #15
  %2940 = call i32 @isatty(i32 noundef %2939) #15
  %.not568 = icmp eq i32 %2940, 0
  br i1 %.not568, label %2941, label %2942

2941:                                             ; preds = %2937, %2931
  br label %2942

2942:                                             ; preds = %2937, %2941
  %.str.4.sink1714 = phi ptr [ @.str.4, %2941 ], [ @.str, %2937 ]
  store i32 %2932, ptr %1673, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = load i32, ptr %701, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror(i32 noundef %2945, ptr noundef nonnull @.str.3) #15
  %2947 = load i32, ptr %701, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror_debug(i32 noundef %2947, ptr noundef nonnull @.str.3) #15
  %2949 = load i32, ptr %1673, align 4, !tbaa !5
  %2950 = call ptr @strerror(i32 noundef %2949) #15
  %2951 = load i32, ptr %1673, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef nonnull %.str.4.sink1714, i32 noundef %2944, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.2, i32 noundef 555, ptr noundef %2946, ptr noundef %2948, ptr noundef %2950, i32 noundef %2951) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2953:                                             ; preds = %2926
  %2954 = add nsw i32 %2927, 2
  store i32 %2954, ptr @test_count, align 4, !tbaa !5
  %2955 = load i32, ptr %2738, align 8
  %2956 = and i32 %2955, 8192
  %.not569 = icmp eq i32 %2956, 0
  br i1 %.not569, label %2957, label %2979

2957:                                             ; preds = %2953
  %2958 = load i32, ptr %1673, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2960 = call i32 @s2n_print_stacktrace(ptr noundef %2959) #15
  %2961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2962 = trunc nuw i8 %2961 to i1
  br i1 %2962, label %2963, label %2967

2963:                                             ; preds = %2957
  %2964 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2965 = call i32 @fileno(ptr noundef %2964) #15
  %2966 = call i32 @isatty(i32 noundef %2965) #15
  %.not570 = icmp eq i32 %2966, 0
  br i1 %.not570, label %2967, label %2968

2967:                                             ; preds = %2963, %2957
  br label %2968

2968:                                             ; preds = %2963, %2967
  %.str.4.sink1723 = phi ptr [ @.str.4, %2967 ], [ @.str, %2963 ]
  store i32 %2958, ptr %1673, align 4, !tbaa !5
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2970 = load i32, ptr @test_count, align 4, !tbaa !5
  %2971 = load i32, ptr %701, align 4, !tbaa !5
  %2972 = call ptr @s2n_strerror(i32 noundef %2971, ptr noundef nonnull @.str.3) #15
  %2973 = load i32, ptr %701, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror_debug(i32 noundef %2973, ptr noundef nonnull @.str.3) #15
  %2975 = load i32, ptr %1673, align 4, !tbaa !5
  %2976 = call ptr @strerror(i32 noundef %2975) #15
  %2977 = load i32, ptr %1673, align 4, !tbaa !5
  %2978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2969, ptr noundef nonnull %.str.4.sink1723, i32 noundef %2970, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 556, ptr noundef %2972, ptr noundef %2974, ptr noundef %2976, i32 noundef %2977) #17
  call void @exit(i32 noundef 1) #18
  unreachable

2979:                                             ; preds = %2953
  %2980 = call i32 @s2n_connection_get_session_length(ptr noundef nonnull %2738) #15
  %2981 = sext i32 %2980 to i64
  call void @llvm.lifetime.start.p0(i64 202, ptr nonnull %14) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(202) %14, i8 0, i64 202, i1 false)
  %2982 = load i32, ptr @test_count, align 4, !tbaa !5
  %2983 = add nsw i32 %2982, 1
  store i32 %2983, ptr @test_count, align 4, !tbaa !5
  %2984 = call i32 @s2n_connection_get_session(ptr noundef nonnull %2738, ptr noundef nonnull %14, i64 noundef %2981) #15
  %2985 = icmp eq i32 %2984, -1
  br i1 %2985, label %2986, label %3008

2986:                                             ; preds = %2979
  %2987 = load i32, ptr %1673, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2989 = call i32 @s2n_print_stacktrace(ptr noundef %2988) #15
  %2990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %2991 = trunc nuw i8 %2990 to i1
  br i1 %2991, label %2992, label %2996

2992:                                             ; preds = %2986
  %2993 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2994 = call i32 @fileno(ptr noundef %2993) #15
  %2995 = call i32 @isatty(i32 noundef %2994) #15
  %.not636 = icmp eq i32 %2995, 0
  br i1 %.not636, label %2996, label %2997

2996:                                             ; preds = %2992, %2986
  br label %2997

2997:                                             ; preds = %2992, %2996
  %.str.4.sink1732 = phi ptr [ @.str.4, %2996 ], [ @.str, %2992 ]
  store i32 %2987, ptr %1673, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !11
  %2999 = load i32, ptr @test_count, align 4, !tbaa !5
  %3000 = load i32, ptr %701, align 4, !tbaa !5
  %3001 = call ptr @s2n_strerror(i32 noundef %3000, ptr noundef nonnull @.str.3) #15
  %3002 = load i32, ptr %701, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror_debug(i32 noundef %3002, ptr noundef nonnull @.str.3) #15
  %3004 = load i32, ptr %1673, align 4, !tbaa !5
  %3005 = call ptr @strerror(i32 noundef %3004) #15
  %3006 = load i32, ptr %1673, align 4, !tbaa !5
  %3007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2998, ptr noundef nonnull %.str.4.sink1732, i32 noundef %2999, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 560, ptr noundef %3001, ptr noundef %3003, ptr noundef %3005, i32 noundef %3006) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3008:                                             ; preds = %2979
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = add nsw i32 %3009, 1
  store i32 %3010, ptr @test_count, align 4, !tbaa !5
  %3011 = call i32 @s2n_connection_wipe(ptr noundef nonnull %2793) #15
  %3012 = icmp eq i32 %3011, -1
  br i1 %3012, label %3013, label %3035

3013:                                             ; preds = %3008
  %3014 = load i32, ptr %1673, align 4, !tbaa !5
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3016 = call i32 @s2n_print_stacktrace(ptr noundef %3015) #15
  %3017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3018 = trunc nuw i8 %3017 to i1
  br i1 %3018, label %3019, label %3023

3019:                                             ; preds = %3013
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3021 = call i32 @fileno(ptr noundef %3020) #15
  %3022 = call i32 @isatty(i32 noundef %3021) #15
  %.not635 = icmp eq i32 %3022, 0
  br i1 %.not635, label %3023, label %3024

3023:                                             ; preds = %3019, %3013
  br label %3024

3024:                                             ; preds = %3019, %3023
  %.str.4.sink1741 = phi ptr [ @.str.4, %3023 ], [ @.str, %3019 ]
  store i32 %3014, ptr %1673, align 4, !tbaa !5
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3026 = load i32, ptr @test_count, align 4, !tbaa !5
  %3027 = load i32, ptr %701, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror(i32 noundef %3027, ptr noundef nonnull @.str.3) #15
  %3029 = load i32, ptr %701, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror_debug(i32 noundef %3029, ptr noundef nonnull @.str.3) #15
  %3031 = load i32, ptr %1673, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #15
  %3033 = load i32, ptr %1673, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3025, ptr noundef nonnull %.str.4.sink1741, i32 noundef %3026, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 563, ptr noundef %3028, ptr noundef %3030, ptr noundef %3032, i32 noundef %3033) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3035:                                             ; preds = %3008
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = add nsw i32 %3036, 1
  store i32 %3037, ptr @test_count, align 4, !tbaa !5
  %3038 = call i32 @s2n_connection_wipe(ptr noundef nonnull %2738) #15
  %3039 = icmp eq i32 %3038, -1
  br i1 %3039, label %3040, label %3062

3040:                                             ; preds = %3035
  %3041 = load i32, ptr %1673, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3043 = call i32 @s2n_print_stacktrace(ptr noundef %3042) #15
  %3044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3045 = trunc nuw i8 %3044 to i1
  br i1 %3045, label %3046, label %3050

3046:                                             ; preds = %3040
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3048 = call i32 @fileno(ptr noundef %3047) #15
  %3049 = call i32 @isatty(i32 noundef %3048) #15
  %.not634 = icmp eq i32 %3049, 0
  br i1 %.not634, label %3050, label %3051

3050:                                             ; preds = %3046, %3040
  br label %3051

3051:                                             ; preds = %3046, %3050
  %.str.4.sink1750 = phi ptr [ @.str.4, %3050 ], [ @.str, %3046 ]
  store i32 %3041, ptr %1673, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = load i32, ptr %701, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef nonnull @.str.3) #15
  %3056 = load i32, ptr %701, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef nonnull @.str.3) #15
  %3058 = load i32, ptr %1673, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #15
  %3060 = load i32, ptr %1673, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef nonnull %.str.4.sink1750, i32 noundef %3053, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 564, ptr noundef %3055, ptr noundef %3057, ptr noundef %3059, i32 noundef %3060) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3062:                                             ; preds = %3035
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = add nsw i32 %3063, 1
  store i32 %3064, ptr @test_count, align 4, !tbaa !5
  %3065 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %2793, i32 noundef 1) #15
  %3066 = icmp eq i32 %3065, -1
  br i1 %3066, label %3067, label %3089

3067:                                             ; preds = %3062
  %3068 = load i32, ptr %1673, align 4, !tbaa !5
  %3069 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3070 = call i32 @s2n_print_stacktrace(ptr noundef %3069) #15
  %3071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %3075 = call i32 @fileno(ptr noundef %3074) #15
  %3076 = call i32 @isatty(i32 noundef %3075) #15
  %.not633 = icmp eq i32 %3076, 0
  br i1 %.not633, label %3077, label %3078

3077:                                             ; preds = %3073, %3067
  br label %3078

3078:                                             ; preds = %3073, %3077
  %.str.4.sink1759 = phi ptr [ @.str.4, %3077 ], [ @.str, %3073 ]
  store i32 %3068, ptr %1673, align 4, !tbaa !5
  %3079 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3080 = load i32, ptr @test_count, align 4, !tbaa !5
  %3081 = load i32, ptr %701, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror(i32 noundef %3081, ptr noundef nonnull @.str.3) #15
  %3083 = load i32, ptr %701, align 4, !tbaa !5
  %3084 = call ptr @s2n_strerror_debug(i32 noundef %3083, ptr noundef nonnull @.str.3) #15
  %3085 = load i32, ptr %1673, align 4, !tbaa !5
  %3086 = call ptr @strerror(i32 noundef %3085) #15
  %3087 = load i32, ptr %1673, align 4, !tbaa !5
  %3088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3079, ptr noundef nonnull %.str.4.sink1759, i32 noundef %3080, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.2, i32 noundef 565, ptr noundef %3082, ptr noundef %3084, ptr noundef %3086, i32 noundef %3087) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3089:                                             ; preds = %3062
  %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 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #15
  %3093 = icmp eq i32 %3092, -1
  br i1 %3093, label %3094, label %3116

3094:                                             ; preds = %3089
  %3095 = load i32, ptr %1673, align 4, !tbaa !5
  %3096 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3097 = call i32 @s2n_print_stacktrace(ptr noundef %3096) #15
  %3098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3099 = trunc nuw i8 %3098 to i1
  br i1 %3099, label %3100, label %3104

3100:                                             ; preds = %3094
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3102 = call i32 @fileno(ptr noundef %3101) #15
  %3103 = call i32 @isatty(i32 noundef %3102) #15
  %.not632 = icmp eq i32 %3103, 0
  br i1 %.not632, label %3104, label %3105

3104:                                             ; preds = %3100, %3094
  br label %3105

3105:                                             ; preds = %3100, %3104
  %.str.4.sink1768 = phi ptr [ @.str.4, %3104 ], [ @.str, %3100 ]
  store i32 %3095, ptr %1673, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3107 = load i32, ptr @test_count, align 4, !tbaa !5
  %3108 = load i32, ptr %701, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror(i32 noundef %3108, ptr noundef nonnull @.str.3) #15
  %3110 = load i32, ptr %701, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror_debug(i32 noundef %3110, ptr noundef nonnull @.str.3) #15
  %3112 = load i32, ptr %1673, align 4, !tbaa !5
  %3113 = call ptr @strerror(i32 noundef %3112) #15
  %3114 = load i32, ptr %1673, align 4, !tbaa !5
  %3115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3106, ptr noundef nonnull %.str.4.sink1768, i32 noundef %3107, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 566, ptr noundef %3109, ptr noundef %3111, ptr noundef %3113, i32 noundef %3114) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3116:                                             ; preds = %3089
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = add nsw i32 %3117, 1
  store i32 %3118, ptr @test_count, align 4, !tbaa !5
  %3119 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #15
  %3120 = icmp eq i32 %3119, -1
  br i1 %3120, label %3121, label %3143

3121:                                             ; preds = %3116
  %3122 = load i32, ptr %1673, align 4, !tbaa !5
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3124 = call i32 @s2n_print_stacktrace(ptr noundef %3123) #15
  %3125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3126 = trunc nuw i8 %3125 to i1
  br i1 %3126, label %3127, label %3131

3127:                                             ; preds = %3121
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3129 = call i32 @fileno(ptr noundef %3128) #15
  %3130 = call i32 @isatty(i32 noundef %3129) #15
  %.not631 = icmp eq i32 %3130, 0
  br i1 %.not631, label %3131, label %3132

3131:                                             ; preds = %3127, %3121
  br label %3132

3132:                                             ; preds = %3127, %3131
  %.str.4.sink1777 = phi ptr [ @.str.4, %3131 ], [ @.str, %3127 ]
  store i32 %3122, ptr %1673, align 4, !tbaa !5
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = load i32, ptr %701, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror(i32 noundef %3135, ptr noundef nonnull @.str.3) #15
  %3137 = load i32, ptr %701, align 4, !tbaa !5
  %3138 = call ptr @s2n_strerror_debug(i32 noundef %3137, ptr noundef nonnull @.str.3) #15
  %3139 = load i32, ptr %1673, align 4, !tbaa !5
  %3140 = call ptr @strerror(i32 noundef %3139) #15
  %3141 = load i32, ptr %1673, align 4, !tbaa !5
  %3142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3133, ptr noundef nonnull %.str.4.sink1777, i32 noundef %3134, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 567, ptr noundef %3136, ptr noundef %3138, ptr noundef %3140, i32 noundef %3141) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3143:                                             ; preds = %3116
  %3144 = load i32, ptr @test_count, align 4, !tbaa !5
  %3145 = add nsw i32 %3144, 1
  store i32 %3145, ptr @test_count, align 4, !tbaa !5
  %3146 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %2738, ptr noundef nonnull %2793, ptr noundef nonnull %11) #15
  %3147 = icmp eq i32 %3146, -1
  br i1 %3147, label %3148, label %3170

3148:                                             ; preds = %3143
  %3149 = load i32, ptr %1673, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3151 = call i32 @s2n_print_stacktrace(ptr noundef %3150) #15
  %3152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3153 = trunc nuw i8 %3152 to i1
  br i1 %3153, label %3154, label %3158

3154:                                             ; preds = %3148
  %3155 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3156 = call i32 @fileno(ptr noundef %3155) #15
  %3157 = call i32 @isatty(i32 noundef %3156) #15
  %.not630 = icmp eq i32 %3157, 0
  br i1 %.not630, label %3158, label %3159

3158:                                             ; preds = %3154, %3148
  br label %3159

3159:                                             ; preds = %3154, %3158
  %.str.4.sink1786 = phi ptr [ @.str.4, %3158 ], [ @.str, %3154 ]
  store i32 %3149, ptr %1673, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3161 = load i32, ptr @test_count, align 4, !tbaa !5
  %3162 = load i32, ptr %701, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror(i32 noundef %3162, ptr noundef nonnull @.str.3) #15
  %3164 = load i32, ptr %701, align 4, !tbaa !5
  %3165 = call ptr @s2n_strerror_debug(i32 noundef %3164, ptr noundef nonnull @.str.3) #15
  %3166 = load i32, ptr %1673, align 4, !tbaa !5
  %3167 = call ptr @strerror(i32 noundef %3166) #15
  %3168 = load i32, ptr %1673, align 4, !tbaa !5
  %3169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3160, ptr noundef nonnull %.str.4.sink1786, i32 noundef %3161, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 568, ptr noundef %3163, ptr noundef %3165, ptr noundef %3167, i32 noundef %3168) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3170:                                             ; preds = %3143
  %3171 = load i32, ptr @test_count, align 4, !tbaa !5
  %3172 = add nsw i32 %3171, 1
  store i32 %3172, ptr @test_count, align 4, !tbaa !5
  %3173 = call i32 @s2n_connection_set_session(ptr noundef nonnull %2738, ptr noundef nonnull %14, i64 noundef %2981) #15
  %3174 = icmp eq i32 %3173, -1
  br i1 %3174, label %3175, label %3197

3175:                                             ; preds = %3170
  %3176 = load i32, ptr %1673, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3178 = call i32 @s2n_print_stacktrace(ptr noundef %3177) #15
  %3179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3180 = trunc nuw i8 %3179 to i1
  br i1 %3180, label %3181, label %3185

3181:                                             ; preds = %3175
  %3182 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3183 = call i32 @fileno(ptr noundef %3182) #15
  %3184 = call i32 @isatty(i32 noundef %3183) #15
  %.not629 = icmp eq i32 %3184, 0
  br i1 %.not629, label %3185, label %3186

3185:                                             ; preds = %3181, %3175
  br label %3186

3186:                                             ; preds = %3181, %3185
  %.str.4.sink1795 = phi ptr [ @.str.4, %3185 ], [ @.str, %3181 ]
  store i32 %3176, ptr %1673, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = load i32, ptr %701, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef nonnull @.str.3) #15
  %3191 = load i32, ptr %701, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef nonnull @.str.3) #15
  %3193 = load i32, ptr %1673, align 4, !tbaa !5
  %3194 = call ptr @strerror(i32 noundef %3193) #15
  %3195 = load i32, ptr %1673, align 4, !tbaa !5
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef nonnull %.str.4.sink1795, i32 noundef %3188, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 571, ptr noundef %3190, ptr noundef %3192, ptr noundef %3194, i32 noundef %3195) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3197:                                             ; preds = %3170
  %3198 = load i32, ptr %2738, align 8
  %3199 = and i32 %3198, -8193
  store i32 %3199, ptr %2738, align 8
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %3201 = add nsw i32 %3200, 1
  store i32 %3201, ptr @test_count, align 4, !tbaa !5
  %3202 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %2793, ptr noundef nonnull %2738) #15
  %3203 = icmp eq i32 %3202, -1
  br i1 %3203, label %3226, label %3204

3204:                                             ; preds = %3197
  %3205 = load i32, ptr %1673, align 4, !tbaa !5
  %3206 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3207 = call i32 @s2n_print_stacktrace(ptr noundef %3206) #15
  %3208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3209 = trunc nuw i8 %3208 to i1
  br i1 %3209, label %3210, label %3214

3210:                                             ; preds = %3204
  %3211 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3212 = call i32 @fileno(ptr noundef %3211) #15
  %3213 = call i32 @isatty(i32 noundef %3212) #15
  %.not571 = icmp eq i32 %3213, 0
  br i1 %.not571, label %3214, label %3215

3214:                                             ; preds = %3210, %3204
  br label %3215

3215:                                             ; preds = %3210, %3214
  %.str.4.sink1804 = phi ptr [ @.str.4, %3214 ], [ @.str, %3210 ]
  store i32 %3205, ptr %1673, align 4, !tbaa !5
  %3216 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3217 = load i32, ptr @test_count, align 4, !tbaa !5
  %3218 = load i32, ptr %701, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror(i32 noundef %3218, ptr noundef nonnull @.str.3) #15
  %3220 = load i32, ptr %701, align 4, !tbaa !5
  %3221 = call ptr @s2n_strerror_debug(i32 noundef %3220, ptr noundef nonnull @.str.3) #15
  %3222 = load i32, ptr %1673, align 4, !tbaa !5
  %3223 = call ptr @strerror(i32 noundef %3222) #15
  %3224 = load i32, ptr %1673, align 4, !tbaa !5
  %3225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3216, ptr noundef nonnull %.str.4.sink1804, i32 noundef %3217, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.2, i32 noundef 575, ptr noundef %3219, ptr noundef %3221, ptr noundef %3223, i32 noundef %3224) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3226:                                             ; preds = %3197
  %3227 = load i32, ptr @test_count, align 4, !tbaa !5
  %3228 = add nsw i32 %3227, 1
  store i32 %3228, ptr @test_count, align 4, !tbaa !5
  %3229 = load i32, ptr %701, align 4, !tbaa !5
  %3230 = icmp eq i32 %3229, 201326593
  br i1 %3230, label %3253, label %3231

3231:                                             ; preds = %3226
  %3232 = load i32, ptr %1673, align 4, !tbaa !5
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3234 = call i32 @s2n_print_stacktrace(ptr noundef %3233) #15
  %3235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3236 = trunc nuw i8 %3235 to i1
  br i1 %3236, label %3237, label %3241

3237:                                             ; preds = %3231
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3239 = call i32 @fileno(ptr noundef %3238) #15
  %3240 = call i32 @isatty(i32 noundef %3239) #15
  %.not572 = icmp eq i32 %3240, 0
  br i1 %.not572, label %3241, label %3242

3241:                                             ; preds = %3237, %3231
  br label %3242

3242:                                             ; preds = %3237, %3241
  %.str.4.sink1813 = phi ptr [ @.str.4, %3241 ], [ @.str, %3237 ]
  store i32 %3232, ptr %1673, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = load i32, ptr %701, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror(i32 noundef %3245, ptr noundef nonnull @.str.3) #15
  %3247 = load i32, ptr %701, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror_debug(i32 noundef %3247, ptr noundef nonnull @.str.3) #15
  %3249 = load i32, ptr %1673, align 4, !tbaa !5
  %3250 = call ptr @strerror(i32 noundef %3249) #15
  %3251 = load i32, ptr %1673, align 4, !tbaa !5
  %3252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3243, ptr noundef nonnull %.str.4.sink1813, i32 noundef %3244, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 575, ptr noundef %3246, ptr noundef %3248, ptr noundef %3250, i32 noundef %3251) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3253:                                             ; preds = %3226
  %3254 = add nsw i32 %3227, 2
  store i32 %3254, ptr @test_count, align 4, !tbaa !5
  %3255 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.3) #15
  %3256 = icmp eq ptr %3255, null
  br i1 %3256, label %3257, label %3279

3257:                                             ; preds = %3253
  %3258 = load i32, ptr %1673, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3260 = call i32 @s2n_print_stacktrace(ptr noundef %3259) #15
  %3261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3262 = trunc nuw i8 %3261 to i1
  br i1 %3262, label %3263, label %3267

3263:                                             ; preds = %3257
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3265 = call i32 @fileno(ptr noundef %3264) #15
  %3266 = call i32 @isatty(i32 noundef %3265) #15
  %.not628 = icmp eq i32 %3266, 0
  br i1 %.not628, label %3267, label %3268

3267:                                             ; preds = %3263, %3257
  br label %3268

3268:                                             ; preds = %3263, %3267
  %.str.4.sink1822 = phi ptr [ @.str.4, %3267 ], [ @.str, %3263 ]
  store i32 %3258, ptr %1673, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = load i32, ptr %701, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror(i32 noundef %3271, ptr noundef nonnull @.str.3) #15
  %3273 = load i32, ptr %701, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror_debug(i32 noundef %3273, ptr noundef nonnull @.str.3) #15
  %3275 = load i32, ptr %1673, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #15
  %3277 = load i32, ptr %1673, align 4, !tbaa !5
  %3278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3269, ptr noundef nonnull %.str.4.sink1822, i32 noundef %3270, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 575, ptr noundef %3272, ptr noundef %3274, ptr noundef %3276, i32 noundef %3277) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3279:                                             ; preds = %3253
  store i32 0, ptr %701, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #15
  store i32 0, ptr %1673, align 4, !tbaa !5
  %3280 = load i32, ptr @test_count, align 4, !tbaa !5
  %3281 = add nsw i32 %3280, 1
  store i32 %3281, ptr @test_count, align 4, !tbaa !5
  %3282 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %2793, ptr noundef nonnull %2738) #15
  %3283 = icmp eq i32 %3282, -1
  br i1 %3283, label %3306, label %3284

3284:                                             ; preds = %3279
  %3285 = load i32, ptr %1673, align 4, !tbaa !5
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3287 = call i32 @s2n_print_stacktrace(ptr noundef %3286) #15
  %3288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3289 = trunc nuw i8 %3288 to i1
  br i1 %3289, label %3290, label %3294

3290:                                             ; preds = %3284
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3292 = call i32 @fileno(ptr noundef %3291) #15
  %3293 = call i32 @isatty(i32 noundef %3292) #15
  %.not573 = icmp eq i32 %3293, 0
  br i1 %.not573, label %3294, label %3295

3294:                                             ; preds = %3290, %3284
  br label %3295

3295:                                             ; preds = %3290, %3294
  %.str.4.sink1831 = phi ptr [ @.str.4, %3294 ], [ @.str, %3290 ]
  store i32 %3285, ptr %1673, align 4, !tbaa !5
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = load i32, ptr %701, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror(i32 noundef %3298, ptr noundef nonnull @.str.3) #15
  %3300 = load i32, ptr %701, align 4, !tbaa !5
  %3301 = call ptr @s2n_strerror_debug(i32 noundef %3300, ptr noundef nonnull @.str.3) #15
  %3302 = load i32, ptr %1673, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #15
  %3304 = load i32, ptr %1673, align 4, !tbaa !5
  %3305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3296, ptr noundef nonnull %.str.4.sink1831, i32 noundef %3297, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.2, i32 noundef 578, ptr noundef %3299, ptr noundef %3301, ptr noundef %3303, i32 noundef %3304) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3306:                                             ; preds = %3279
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = add nsw i32 %3307, 1
  store i32 %3308, ptr @test_count, align 4, !tbaa !5
  %3309 = load i32, ptr %701, align 4, !tbaa !5
  %3310 = icmp eq i32 %3309, 335544393
  br i1 %3310, label %3333, label %3311

3311:                                             ; preds = %3306
  %3312 = load i32, ptr %1673, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3314 = call i32 @s2n_print_stacktrace(ptr noundef %3313) #15
  %3315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3316 = trunc nuw i8 %3315 to i1
  br i1 %3316, label %3317, label %3321

3317:                                             ; preds = %3311
  %3318 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3319 = call i32 @fileno(ptr noundef %3318) #15
  %3320 = call i32 @isatty(i32 noundef %3319) #15
  %.not574 = icmp eq i32 %3320, 0
  br i1 %.not574, label %3321, label %3322

3321:                                             ; preds = %3317, %3311
  br label %3322

3322:                                             ; preds = %3317, %3321
  %.str.4.sink1840 = phi ptr [ @.str.4, %3321 ], [ @.str, %3317 ]
  store i32 %3312, ptr %1673, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = load i32, ptr %701, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror(i32 noundef %3325, ptr noundef nonnull @.str.3) #15
  %3327 = load i32, ptr %701, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror_debug(i32 noundef %3327, ptr noundef nonnull @.str.3) #15
  %3329 = load i32, ptr %1673, align 4, !tbaa !5
  %3330 = call ptr @strerror(i32 noundef %3329) #15
  %3331 = load i32, ptr %1673, align 4, !tbaa !5
  %3332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef nonnull %.str.4.sink1840, i32 noundef %3324, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.2, i32 noundef 578, ptr noundef %3326, ptr noundef %3328, ptr noundef %3330, i32 noundef %3331) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3333:                                             ; preds = %3306
  %3334 = add nsw i32 %3307, 2
  store i32 %3334, ptr @test_count, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.3) #15
  %3336 = icmp eq ptr %3335, null
  br i1 %3336, label %3337, label %3359

3337:                                             ; preds = %3333
  %3338 = load i32, ptr %1673, align 4, !tbaa !5
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3340 = call i32 @s2n_print_stacktrace(ptr noundef %3339) #15
  %3341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3342 = trunc nuw i8 %3341 to i1
  br i1 %3342, label %3343, label %3347

3343:                                             ; preds = %3337
  %3344 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3345 = call i32 @fileno(ptr noundef %3344) #15
  %3346 = call i32 @isatty(i32 noundef %3345) #15
  %.not627 = icmp eq i32 %3346, 0
  br i1 %.not627, label %3347, label %3348

3347:                                             ; preds = %3343, %3337
  br label %3348

3348:                                             ; preds = %3343, %3347
  %.str.4.sink1849 = phi ptr [ @.str.4, %3347 ], [ @.str, %3343 ]
  store i32 %3338, ptr %1673, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = load i32, ptr %701, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror(i32 noundef %3351, ptr noundef nonnull @.str.3) #15
  %3353 = load i32, ptr %701, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror_debug(i32 noundef %3353, ptr noundef nonnull @.str.3) #15
  %3355 = load i32, ptr %1673, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #15
  %3357 = load i32, ptr %1673, align 4, !tbaa !5
  %3358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef nonnull %.str.4.sink1849, i32 noundef %3350, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 578, ptr noundef %3352, ptr noundef %3354, ptr noundef %3356, i32 noundef %3357) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3359:                                             ; preds = %3333
  store i32 0, ptr %701, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #15
  store i32 0, ptr %1673, align 4, !tbaa !5
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = add nsw i32 %3360, 1
  store i32 %3361, ptr @test_count, align 4, !tbaa !5
  %3362 = call i32 @s2n_connection_free(ptr noundef nonnull %2738) #15
  %3363 = icmp eq i32 %3362, -1
  br i1 %3363, label %3364, label %3386

3364:                                             ; preds = %3359
  %3365 = load i32, ptr %1673, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3367 = call i32 @s2n_print_stacktrace(ptr noundef %3366) #15
  %3368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3369 = trunc nuw i8 %3368 to i1
  br i1 %3369, label %3370, label %3374

3370:                                             ; preds = %3364
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3372 = call i32 @fileno(ptr noundef %3371) #15
  %3373 = call i32 @isatty(i32 noundef %3372) #15
  %.not626 = icmp eq i32 %3373, 0
  br i1 %.not626, label %3374, label %3375

3374:                                             ; preds = %3370, %3364
  br label %3375

3375:                                             ; preds = %3370, %3374
  %.str.4.sink1858 = phi ptr [ @.str.4, %3374 ], [ @.str, %3370 ]
  store i32 %3365, ptr %1673, align 4, !tbaa !5
  %3376 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = load i32, ptr %701, align 4, !tbaa !5
  %3379 = call ptr @s2n_strerror(i32 noundef %3378, ptr noundef nonnull @.str.3) #15
  %3380 = load i32, ptr %701, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef nonnull @.str.3) #15
  %3382 = load i32, ptr %1673, align 4, !tbaa !5
  %3383 = call ptr @strerror(i32 noundef %3382) #15
  %3384 = load i32, ptr %1673, align 4, !tbaa !5
  %3385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3376, ptr noundef nonnull %.str.4.sink1858, i32 noundef %3377, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 580, ptr noundef %3379, ptr noundef %3381, ptr noundef %3383, i32 noundef %3384) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3386:                                             ; preds = %3359
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = add nsw i32 %3387, 1
  store i32 %3388, ptr @test_count, align 4, !tbaa !5
  %3389 = call i32 @s2n_connection_free(ptr noundef nonnull %2793) #15
  %3390 = icmp eq i32 %3389, -1
  br i1 %3390, label %3391, label %3413

3391:                                             ; preds = %3386
  %3392 = load i32, ptr %1673, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3394 = call i32 @s2n_print_stacktrace(ptr noundef %3393) #15
  %3395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3396 = trunc nuw i8 %3395 to i1
  br i1 %3396, label %3397, label %3401

3397:                                             ; preds = %3391
  %3398 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3399 = call i32 @fileno(ptr noundef %3398) #15
  %3400 = call i32 @isatty(i32 noundef %3399) #15
  %.not625 = icmp eq i32 %3400, 0
  br i1 %.not625, label %3401, label %3402

3401:                                             ; preds = %3397, %3391
  br label %3402

3402:                                             ; preds = %3397, %3401
  %.str.4.sink1867 = phi ptr [ @.str.4, %3401 ], [ @.str, %3397 ]
  store i32 %3392, ptr %1673, align 4, !tbaa !5
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3404 = load i32, ptr @test_count, align 4, !tbaa !5
  %3405 = load i32, ptr %701, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror(i32 noundef %3405, ptr noundef nonnull @.str.3) #15
  %3407 = load i32, ptr %701, align 4, !tbaa !5
  %3408 = call ptr @s2n_strerror_debug(i32 noundef %3407, ptr noundef nonnull @.str.3) #15
  %3409 = load i32, ptr %1673, align 4, !tbaa !5
  %3410 = call ptr @strerror(i32 noundef %3409) #15
  %3411 = load i32, ptr %1673, align 4, !tbaa !5
  %3412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3403, ptr noundef nonnull %.str.4.sink1867, i32 noundef %3404, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 581, ptr noundef %3406, ptr noundef %3408, ptr noundef %3410, i32 noundef %3411) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3413:                                             ; preds = %3386
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = add nsw i32 %3414, 1
  store i32 %3415, ptr @test_count, align 4, !tbaa !5
  %3416 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #15
  %3417 = icmp eq i32 %3416, -1
  br i1 %3417, label %3418, label %3440

3418:                                             ; preds = %3413
  %3419 = load i32, ptr %1673, align 4, !tbaa !5
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3421 = call i32 @s2n_print_stacktrace(ptr noundef %3420) #15
  %3422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3423 = trunc nuw i8 %3422 to i1
  br i1 %3423, label %3424, label %3428

3424:                                             ; preds = %3418
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3426 = call i32 @fileno(ptr noundef %3425) #15
  %3427 = call i32 @isatty(i32 noundef %3426) #15
  %.not624 = icmp eq i32 %3427, 0
  br i1 %.not624, label %3428, label %3429

3428:                                             ; preds = %3424, %3418
  br label %3429

3429:                                             ; preds = %3424, %3428
  %.str.4.sink1876 = phi ptr [ @.str.4, %3428 ], [ @.str, %3424 ]
  store i32 %3419, ptr %1673, align 4, !tbaa !5
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3431 = load i32, ptr @test_count, align 4, !tbaa !5
  %3432 = load i32, ptr %701, align 4, !tbaa !5
  %3433 = call ptr @s2n_strerror(i32 noundef %3432, ptr noundef nonnull @.str.3) #15
  %3434 = load i32, ptr %701, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror_debug(i32 noundef %3434, ptr noundef nonnull @.str.3) #15
  %3436 = load i32, ptr %1673, align 4, !tbaa !5
  %3437 = call ptr @strerror(i32 noundef %3436) #15
  %3438 = load i32, ptr %1673, align 4, !tbaa !5
  %3439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3430, ptr noundef nonnull %.str.4.sink1876, i32 noundef %3431, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 582, ptr noundef %3433, ptr noundef %3435, ptr noundef %3437, i32 noundef %3438) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3440:                                             ; preds = %3413
  call void @llvm.lifetime.end.p0(i64 202, ptr nonnull %14) #15
  call void @initialize_cache()
  %3441 = call ptr @s2n_connection_new(i32 noundef 1) #15
  %3442 = load i32, ptr @test_count, align 4, !tbaa !5
  %3443 = add nsw i32 %3442, 1
  store i32 %3443, ptr @test_count, align 4, !tbaa !5
  %3444 = icmp eq ptr %3441, null
  br i1 %3444, label %3445, label %3467

3445:                                             ; preds = %3440
  %3446 = load i32, ptr %1673, align 4, !tbaa !5
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3448 = call i32 @s2n_print_stacktrace(ptr noundef %3447) #15
  %3449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3450 = trunc nuw i8 %3449 to i1
  br i1 %3450, label %3451, label %3455

3451:                                             ; preds = %3445
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3453 = call i32 @fileno(ptr noundef %3452) #15
  %3454 = call i32 @isatty(i32 noundef %3453) #15
  %.not623 = icmp eq i32 %3454, 0
  br i1 %.not623, label %3455, label %3456

3455:                                             ; preds = %3451, %3445
  br label %3456

3456:                                             ; preds = %3451, %3455
  %.str.4.sink1885 = phi ptr [ @.str.4, %3455 ], [ @.str, %3451 ]
  store i32 %3446, ptr %1673, align 4, !tbaa !5
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3458 = load i32, ptr @test_count, align 4, !tbaa !5
  %3459 = load i32, ptr %701, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror(i32 noundef %3459, ptr noundef nonnull @.str.3) #15
  %3461 = load i32, ptr %701, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror_debug(i32 noundef %3461, ptr noundef nonnull @.str.3) #15
  %3463 = load i32, ptr %1673, align 4, !tbaa !5
  %3464 = call ptr @strerror(i32 noundef %3463) #15
  %3465 = load i32, ptr %1673, align 4, !tbaa !5
  %3466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3457, ptr noundef nonnull %.str.4.sink1885, i32 noundef %3458, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 597, ptr noundef %3460, ptr noundef %3462, ptr noundef %3464, i32 noundef %3465) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3467:                                             ; preds = %3440
  %3468 = call i32 @s2n_config_disable_x509_verification(ptr noundef %282) #15
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = add nsw i32 %3469, 1
  store i32 %3470, ptr @test_count, align 4, !tbaa !5
  %3471 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3441, ptr noundef %282) #15
  %3472 = icmp eq i32 %3471, -1
  br i1 %3472, label %3473, label %3495

3473:                                             ; preds = %3467
  %3474 = load i32, ptr %1673, align 4, !tbaa !5
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3476 = call i32 @s2n_print_stacktrace(ptr noundef %3475) #15
  %3477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3478 = trunc nuw i8 %3477 to i1
  br i1 %3478, label %3479, label %3483

3479:                                             ; preds = %3473
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3481 = call i32 @fileno(ptr noundef %3480) #15
  %3482 = call i32 @isatty(i32 noundef %3481) #15
  %.not622 = icmp eq i32 %3482, 0
  br i1 %.not622, label %3483, label %3484

3483:                                             ; preds = %3479, %3473
  br label %3484

3484:                                             ; preds = %3479, %3483
  %.str.4.sink1894 = phi ptr [ @.str.4, %3483 ], [ @.str, %3479 ]
  store i32 %3474, ptr %1673, align 4, !tbaa !5
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3486 = load i32, ptr @test_count, align 4, !tbaa !5
  %3487 = load i32, ptr %701, align 4, !tbaa !5
  %3488 = call ptr @s2n_strerror(i32 noundef %3487, ptr noundef nonnull @.str.3) #15
  %3489 = load i32, ptr %701, align 4, !tbaa !5
  %3490 = call ptr @s2n_strerror_debug(i32 noundef %3489, ptr noundef nonnull @.str.3) #15
  %3491 = load i32, ptr %1673, align 4, !tbaa !5
  %3492 = call ptr @strerror(i32 noundef %3491) #15
  %3493 = load i32, ptr %1673, align 4, !tbaa !5
  %3494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3485, ptr noundef nonnull %.str.4.sink1894, i32 noundef %3486, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 599, ptr noundef %3488, ptr noundef %3490, ptr noundef %3492, i32 noundef %3493) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3495:                                             ; preds = %3467
  %3496 = call ptr @s2n_connection_new(i32 noundef 0) #15
  %3497 = load i32, ptr @test_count, align 4, !tbaa !5
  %3498 = add nsw i32 %3497, 1
  store i32 %3498, ptr @test_count, align 4, !tbaa !5
  %3499 = icmp eq ptr %3496, null
  br i1 %3499, label %3500, label %3522

3500:                                             ; preds = %3495
  %3501 = load i32, ptr %1673, align 4, !tbaa !5
  %3502 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3503 = call i32 @s2n_print_stacktrace(ptr noundef %3502) #15
  %3504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3505 = trunc nuw i8 %3504 to i1
  br i1 %3505, label %3506, label %3510

3506:                                             ; preds = %3500
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3508 = call i32 @fileno(ptr noundef %3507) #15
  %3509 = call i32 @isatty(i32 noundef %3508) #15
  %.not621 = icmp eq i32 %3509, 0
  br i1 %.not621, label %3510, label %3511

3510:                                             ; preds = %3506, %3500
  br label %3511

3511:                                             ; preds = %3506, %3510
  %.str.4.sink1903 = phi ptr [ @.str.4, %3510 ], [ @.str, %3506 ]
  store i32 %3501, ptr %1673, align 4, !tbaa !5
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3513 = load i32, ptr @test_count, align 4, !tbaa !5
  %3514 = load i32, ptr %701, align 4, !tbaa !5
  %3515 = call ptr @s2n_strerror(i32 noundef %3514, ptr noundef nonnull @.str.3) #15
  %3516 = load i32, ptr %701, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror_debug(i32 noundef %3516, ptr noundef nonnull @.str.3) #15
  %3518 = load i32, ptr %1673, align 4, !tbaa !5
  %3519 = call ptr @strerror(i32 noundef %3518) #15
  %3520 = load i32, ptr %1673, align 4, !tbaa !5
  %3521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3512, ptr noundef nonnull %.str.4.sink1903, i32 noundef %3513, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 602, ptr noundef %3515, ptr noundef %3517, ptr noundef %3519, i32 noundef %3520) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3522:                                             ; preds = %3495
  %3523 = add nsw i32 %3497, 2
  store i32 %3523, ptr @test_count, align 4, !tbaa !5
  %3524 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3496, ptr noundef %282) #15
  %3525 = icmp eq i32 %3524, -1
  br i1 %3525, label %3526, label %3548

3526:                                             ; preds = %3522
  %3527 = load i32, ptr %1673, align 4, !tbaa !5
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3529 = call i32 @s2n_print_stacktrace(ptr noundef %3528) #15
  %3530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3531 = trunc nuw i8 %3530 to i1
  br i1 %3531, label %3532, label %3536

3532:                                             ; preds = %3526
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3534 = call i32 @fileno(ptr noundef %3533) #15
  %3535 = call i32 @isatty(i32 noundef %3534) #15
  %.not620 = icmp eq i32 %3535, 0
  br i1 %.not620, label %3536, label %3537

3536:                                             ; preds = %3532, %3526
  br label %3537

3537:                                             ; preds = %3532, %3536
  %.str.4.sink1912 = phi ptr [ @.str.4, %3536 ], [ @.str, %3532 ]
  store i32 %3527, ptr %1673, align 4, !tbaa !5
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = load i32, ptr %701, align 4, !tbaa !5
  %3541 = call ptr @s2n_strerror(i32 noundef %3540, ptr noundef nonnull @.str.3) #15
  %3542 = load i32, ptr %701, align 4, !tbaa !5
  %3543 = call ptr @s2n_strerror_debug(i32 noundef %3542, ptr noundef nonnull @.str.3) #15
  %3544 = load i32, ptr %1673, align 4, !tbaa !5
  %3545 = call ptr @strerror(i32 noundef %3544) #15
  %3546 = load i32, ptr %1673, align 4, !tbaa !5
  %3547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3538, ptr noundef nonnull %.str.4.sink1912, i32 noundef %3539, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 603, ptr noundef %3541, ptr noundef %3543, ptr noundef %3545, i32 noundef %3546) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3548:                                             ; preds = %3522
  %3549 = load i32, ptr @test_count, align 4, !tbaa !5
  %3550 = add nsw i32 %3549, 1
  store i32 %3550, ptr @test_count, align 4, !tbaa !5
  %3551 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #15
  %3552 = icmp eq i32 %3551, -1
  br i1 %3552, label %3553, label %3575

3553:                                             ; preds = %3548
  %3554 = load i32, ptr %1673, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3556 = call i32 @s2n_print_stacktrace(ptr noundef %3555) #15
  %3557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3558 = trunc nuw i8 %3557 to i1
  br i1 %3558, label %3559, label %3563

3559:                                             ; preds = %3553
  %3560 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3561 = call i32 @fileno(ptr noundef %3560) #15
  %3562 = call i32 @isatty(i32 noundef %3561) #15
  %.not619 = icmp eq i32 %3562, 0
  br i1 %.not619, label %3563, label %3564

3563:                                             ; preds = %3559, %3553
  br label %3564

3564:                                             ; preds = %3559, %3563
  %.str.4.sink1921 = phi ptr [ @.str.4, %3563 ], [ @.str, %3559 ]
  store i32 %3554, ptr %1673, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3566 = load i32, ptr @test_count, align 4, !tbaa !5
  %3567 = load i32, ptr %701, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror(i32 noundef %3567, ptr noundef nonnull @.str.3) #15
  %3569 = load i32, ptr %701, align 4, !tbaa !5
  %3570 = call ptr @s2n_strerror_debug(i32 noundef %3569, ptr noundef nonnull @.str.3) #15
  %3571 = load i32, ptr %1673, align 4, !tbaa !5
  %3572 = call ptr @strerror(i32 noundef %3571) #15
  %3573 = load i32, ptr %1673, align 4, !tbaa !5
  %3574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3565, ptr noundef nonnull %.str.4.sink1921, i32 noundef %3566, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 606, ptr noundef %3568, ptr noundef %3570, ptr noundef %3572, i32 noundef %3573) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3575:                                             ; preds = %3548
  %3576 = load i32, ptr @test_count, align 4, !tbaa !5
  %3577 = add nsw i32 %3576, 1
  store i32 %3577, ptr @test_count, align 4, !tbaa !5
  %3578 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %3441, ptr noundef nonnull %3496, ptr noundef nonnull %11) #15
  %3579 = icmp eq i32 %3578, -1
  br i1 %3579, label %3580, label %3602

3580:                                             ; preds = %3575
  %3581 = load i32, ptr %1673, align 4, !tbaa !5
  %3582 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3583 = call i32 @s2n_print_stacktrace(ptr noundef %3582) #15
  %3584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3585 = trunc nuw i8 %3584 to i1
  br i1 %3585, label %3586, label %3590

3586:                                             ; preds = %3580
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3588 = call i32 @fileno(ptr noundef %3587) #15
  %3589 = call i32 @isatty(i32 noundef %3588) #15
  %.not618 = icmp eq i32 %3589, 0
  br i1 %.not618, label %3590, label %3591

3590:                                             ; preds = %3586, %3580
  br label %3591

3591:                                             ; preds = %3586, %3590
  %.str.4.sink1930 = phi ptr [ @.str.4, %3590 ], [ @.str, %3586 ]
  store i32 %3581, ptr %1673, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = load i32, ptr %701, align 4, !tbaa !5
  %3595 = call ptr @s2n_strerror(i32 noundef %3594, ptr noundef nonnull @.str.3) #15
  %3596 = load i32, ptr %701, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror_debug(i32 noundef %3596, ptr noundef nonnull @.str.3) #15
  %3598 = load i32, ptr %1673, align 4, !tbaa !5
  %3599 = call ptr @strerror(i32 noundef %3598) #15
  %3600 = load i32, ptr %1673, align 4, !tbaa !5
  %3601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef nonnull %.str.4.sink1930, i32 noundef %3593, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 607, ptr noundef %3595, ptr noundef %3597, ptr noundef %3599, i32 noundef %3600) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3602:                                             ; preds = %3575
  %3603 = load i32, ptr @test_count, align 4, !tbaa !5
  %3604 = add nsw i32 %3603, 1
  store i32 %3604, ptr @test_count, align 4, !tbaa !5
  %3605 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %3441, ptr noundef nonnull %3, i32 noundef 1) #15
  %3606 = call zeroext i1 @s2n_result_is_ok(i32 %3605)
  br i1 %3606, label %3629, label %3607

3607:                                             ; preds = %3602
  %3608 = load i32, ptr %1673, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3610 = call i32 @s2n_print_stacktrace(ptr noundef %3609) #15
  %3611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3612 = trunc nuw i8 %3611 to i1
  br i1 %3612, label %3613, label %3617

3613:                                             ; preds = %3607
  %3614 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3615 = call i32 @fileno(ptr noundef %3614) #15
  %3616 = call i32 @isatty(i32 noundef %3615) #15
  %.not575 = icmp eq i32 %3616, 0
  br i1 %.not575, label %3617, label %3618

3617:                                             ; preds = %3613, %3607
  br label %3618

3618:                                             ; preds = %3613, %3617
  %.str.4.sink1939 = phi ptr [ @.str.4, %3617 ], [ @.str, %3613 ]
  store i32 %3608, ptr %1673, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = load i32, ptr %701, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror(i32 noundef %3621, ptr noundef nonnull @.str.3) #15
  %3623 = load i32, ptr %701, align 4, !tbaa !5
  %3624 = call ptr @s2n_strerror_debug(i32 noundef %3623, ptr noundef nonnull @.str.3) #15
  %3625 = load i32, ptr %1673, align 4, !tbaa !5
  %3626 = call ptr @strerror(i32 noundef %3625) #15
  %3627 = load i32, ptr %1673, align 4, !tbaa !5
  %3628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef nonnull %.str.4.sink1939, i32 noundef %3620, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 610, ptr noundef %3622, ptr noundef %3624, ptr noundef %3626, i32 noundef %3627) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3629:                                             ; preds = %3602
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = add nsw i32 %3630, 1
  store i32 %3631, ptr @test_count, align 4, !tbaa !5
  %3632 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %3496, ptr noundef nonnull %3, i32 noundef 1) #15
  %3633 = call zeroext i1 @s2n_result_is_ok(i32 %3632)
  br i1 %3633, label %3656, label %3634

3634:                                             ; preds = %3629
  %3635 = load i32, ptr %1673, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3637 = call i32 @s2n_print_stacktrace(ptr noundef %3636) #15
  %3638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3639 = trunc nuw i8 %3638 to i1
  br i1 %3639, label %3640, label %3644

3640:                                             ; preds = %3634
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3642 = call i32 @fileno(ptr noundef %3641) #15
  %3643 = call i32 @isatty(i32 noundef %3642) #15
  %.not576 = icmp eq i32 %3643, 0
  br i1 %.not576, label %3644, label %3645

3644:                                             ; preds = %3640, %3634
  br label %3645

3645:                                             ; preds = %3640, %3644
  %.str.4.sink1948 = phi ptr [ @.str.4, %3644 ], [ @.str, %3640 ]
  store i32 %3635, ptr %1673, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = load i32, ptr %701, align 4, !tbaa !5
  %3649 = call ptr @s2n_strerror(i32 noundef %3648, ptr noundef nonnull @.str.3) #15
  %3650 = load i32, ptr %701, align 4, !tbaa !5
  %3651 = call ptr @s2n_strerror_debug(i32 noundef %3650, ptr noundef nonnull @.str.3) #15
  %3652 = load i32, ptr %1673, align 4, !tbaa !5
  %3653 = call ptr @strerror(i32 noundef %3652) #15
  %3654 = load i32, ptr %1673, align 4, !tbaa !5
  %3655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef nonnull %.str.4.sink1948, i32 noundef %3647, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.2, i32 noundef 611, ptr noundef %3649, ptr noundef %3651, ptr noundef %3653, i32 noundef %3654) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3656:                                             ; preds = %3629
  %3657 = load i32, ptr %3496, align 8
  %3658 = and i32 %3657, -8193
  store i32 %3658, ptr %3496, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #15
  store i8 0, ptr %15, align 1, !tbaa !51
  %3659 = load i32, ptr @test_count, align 4, !tbaa !5
  %3660 = add nsw i32 %3659, 1
  store i32 %3660, ptr @test_count, align 4, !tbaa !5
  %3661 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 23, ptr noundef nonnull %15) #15
  %3662 = icmp eq i32 %3661, -1
  br i1 %3662, label %3663, label %3685

3663:                                             ; preds = %3656
  %3664 = load i32, ptr %1673, align 4, !tbaa !5
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3666 = call i32 @s2n_print_stacktrace(ptr noundef %3665) #15
  %3667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3668 = trunc nuw i8 %3667 to i1
  br i1 %3668, label %3669, label %3673

3669:                                             ; preds = %3663
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3671 = call i32 @fileno(ptr noundef %3670) #15
  %3672 = call i32 @isatty(i32 noundef %3671) #15
  %.not617 = icmp eq i32 %3672, 0
  br i1 %.not617, label %3673, label %3674

3673:                                             ; preds = %3669, %3663
  br label %3674

3674:                                             ; preds = %3669, %3673
  %.str.4.sink1957 = phi ptr [ @.str.4, %3673 ], [ @.str, %3669 ]
  store i32 %3664, ptr %1673, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3676 = load i32, ptr @test_count, align 4, !tbaa !5
  %3677 = load i32, ptr %701, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror(i32 noundef %3677, ptr noundef nonnull @.str.3) #15
  %3679 = load i32, ptr %701, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror_debug(i32 noundef %3679, ptr noundef nonnull @.str.3) #15
  %3681 = load i32, ptr %1673, align 4, !tbaa !5
  %3682 = call ptr @strerror(i32 noundef %3681) #15
  %3683 = load i32, ptr %1673, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3675, ptr noundef nonnull %.str.4.sink1957, i32 noundef %3676, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.2, i32 noundef 617, ptr noundef %3678, ptr noundef %3680, ptr noundef %3682, i32 noundef %3683) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3685:                                             ; preds = %3656
  %3686 = load i8, ptr %15, align 1, !tbaa !51
  %3687 = and i8 %3686, 7
  %3688 = shl nuw i8 1, %3687
  %3689 = xor i8 %3688, -1
  %3690 = getelementptr inbounds i8, ptr %3496, i64 102
  %3691 = lshr i8 %3686, 3
  %3692 = zext nneg i8 %3691 to i64
  %3693 = getelementptr inbounds [22 x i8], ptr %3690, i64 0, i64 %3692
  %3694 = load i8, ptr %3693, align 1, !tbaa !51
  %3695 = and i8 %3694, %3689
  store i8 %3695, ptr %3693, align 1, !tbaa !51
  %3696 = load i32, ptr @test_count, align 4, !tbaa !5
  %3697 = add nsw i32 %3696, 1
  store i32 %3697, ptr @test_count, align 4, !tbaa !5
  %3698 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %3496, ptr noundef nonnull %3441) #15
  %3699 = icmp eq i32 %3698, -1
  br i1 %3699, label %3700, label %3722

3700:                                             ; preds = %3685
  %3701 = load i32, ptr %1673, align 4, !tbaa !5
  %3702 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3703 = call i32 @s2n_print_stacktrace(ptr noundef %3702) #15
  %3704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3705 = trunc nuw i8 %3704 to i1
  br i1 %3705, label %3706, label %3710

3706:                                             ; preds = %3700
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3708 = call i32 @fileno(ptr noundef %3707) #15
  %3709 = call i32 @isatty(i32 noundef %3708) #15
  %.not616 = icmp eq i32 %3709, 0
  br i1 %.not616, label %3710, label %3711

3710:                                             ; preds = %3706, %3700
  br label %3711

3711:                                             ; preds = %3706, %3710
  %.str.4.sink1966 = phi ptr [ @.str.4, %3710 ], [ @.str, %3706 ]
  store i32 %3701, ptr %1673, align 4, !tbaa !5
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = load i32, ptr %701, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror(i32 noundef %3714, ptr noundef nonnull @.str.3) #15
  %3716 = load i32, ptr %701, align 4, !tbaa !5
  %3717 = call ptr @s2n_strerror_debug(i32 noundef %3716, ptr noundef nonnull @.str.3) #15
  %3718 = load i32, ptr %1673, align 4, !tbaa !5
  %3719 = call ptr @strerror(i32 noundef %3718) #15
  %3720 = load i32, ptr %1673, align 4, !tbaa !5
  %3721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3712, ptr noundef nonnull %.str.4.sink1966, i32 noundef %3713, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 621, ptr noundef %3715, ptr noundef %3717, ptr noundef %3719, i32 noundef %3720) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3722:                                             ; preds = %3685
  %3723 = load i32, ptr @test_count, align 4, !tbaa !5
  %3724 = add nsw i32 %3723, 1
  store i32 %3724, ptr @test_count, align 4, !tbaa !5
  %3725 = getelementptr inbounds i8, ptr %3496, i64 220
  %3726 = load i8, ptr %3725, align 4, !tbaa !24
  %3727 = icmp eq i8 %3726, 33
  br i1 %3727, label %3750, label %3728

3728:                                             ; preds = %3722
  %3729 = load i32, ptr %1673, align 4, !tbaa !5
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3731 = call i32 @s2n_print_stacktrace(ptr noundef %3730) #15
  %3732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3733 = trunc nuw i8 %3732 to i1
  br i1 %3733, label %3734, label %3738

3734:                                             ; preds = %3728
  %3735 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3736 = call i32 @fileno(ptr noundef %3735) #15
  %3737 = call i32 @isatty(i32 noundef %3736) #15
  %.not577 = icmp eq i32 %3737, 0
  br i1 %.not577, label %3738, label %3739

3738:                                             ; preds = %3734, %3728
  br label %3739

3739:                                             ; preds = %3734, %3738
  %.str.4.sink1975 = phi ptr [ @.str.4, %3738 ], [ @.str, %3734 ]
  store i32 %3729, ptr %1673, align 4, !tbaa !5
  %3740 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = load i32, ptr %701, align 4, !tbaa !5
  %3743 = call ptr @s2n_strerror(i32 noundef %3742, ptr noundef nonnull @.str.3) #15
  %3744 = load i32, ptr %701, align 4, !tbaa !5
  %3745 = call ptr @s2n_strerror_debug(i32 noundef %3744, ptr noundef nonnull @.str.3) #15
  %3746 = load i32, ptr %1673, align 4, !tbaa !5
  %3747 = call ptr @strerror(i32 noundef %3746) #15
  %3748 = load i32, ptr %1673, align 4, !tbaa !5
  %3749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3740, ptr noundef nonnull %.str.4.sink1975, i32 noundef %3741, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.2, i32 noundef 622, ptr noundef %3743, ptr noundef %3745, ptr noundef %3747, i32 noundef %3748) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3750:                                             ; preds = %3722
  %3751 = add nsw i32 %3723, 2
  store i32 %3751, ptr @test_count, align 4, !tbaa !5
  %3752 = getelementptr inbounds i8, ptr %3441, i64 220
  %3753 = load i8, ptr %3752, align 4, !tbaa !24
  %3754 = icmp eq i8 %3753, 33
  br i1 %3754, label %3777, label %3755

3755:                                             ; preds = %3750
  %3756 = load i32, ptr %1673, align 4, !tbaa !5
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3758 = call i32 @s2n_print_stacktrace(ptr noundef %3757) #15
  %3759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3760 = trunc nuw i8 %3759 to i1
  br i1 %3760, label %3761, label %3765

3761:                                             ; preds = %3755
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3763 = call i32 @fileno(ptr noundef %3762) #15
  %3764 = call i32 @isatty(i32 noundef %3763) #15
  %.not578 = icmp eq i32 %3764, 0
  br i1 %.not578, label %3765, label %3766

3765:                                             ; preds = %3761, %3755
  br label %3766

3766:                                             ; preds = %3761, %3765
  %.str.4.sink1984 = phi ptr [ @.str.4, %3765 ], [ @.str, %3761 ]
  store i32 %3756, ptr %1673, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3768 = load i32, ptr @test_count, align 4, !tbaa !5
  %3769 = load i32, ptr %701, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror(i32 noundef %3769, ptr noundef nonnull @.str.3) #15
  %3771 = load i32, ptr %701, align 4, !tbaa !5
  %3772 = call ptr @s2n_strerror_debug(i32 noundef %3771, ptr noundef nonnull @.str.3) #15
  %3773 = load i32, ptr %1673, align 4, !tbaa !5
  %3774 = call ptr @strerror(i32 noundef %3773) #15
  %3775 = load i32, ptr %1673, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3767, ptr noundef nonnull %.str.4.sink1984, i32 noundef %3768, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.2, i32 noundef 623, ptr noundef %3770, ptr noundef %3772, ptr noundef %3774, i32 noundef %3775) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3777:                                             ; preds = %3750
  %3778 = add nsw i32 %3723, 3
  store i32 %3778, ptr @test_count, align 4, !tbaa !5
  %3779 = load i32, ptr %3496, align 8
  %3780 = and i32 %3779, 8192
  %.not579 = icmp eq i32 %3780, 0
  br i1 %.not579, label %3803, label %3781

3781:                                             ; preds = %3777
  %3782 = load i32, ptr %1673, align 4, !tbaa !5
  %3783 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3784 = call i32 @s2n_print_stacktrace(ptr noundef %3783) #15
  %3785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3786 = trunc nuw i8 %3785 to i1
  br i1 %3786, label %3787, label %3791

3787:                                             ; preds = %3781
  %3788 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3789 = call i32 @fileno(ptr noundef %3788) #15
  %3790 = call i32 @isatty(i32 noundef %3789) #15
  %.not615 = icmp eq i32 %3790, 0
  br i1 %.not615, label %3791, label %3792

3791:                                             ; preds = %3787, %3781
  br label %3792

3792:                                             ; preds = %3787, %3791
  %.str.4.sink1993 = phi ptr [ @.str.4, %3791 ], [ @.str, %3787 ]
  store i32 %3782, ptr %1673, align 4, !tbaa !5
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = load i32, ptr %701, align 4, !tbaa !5
  %3796 = call ptr @s2n_strerror(i32 noundef %3795, ptr noundef nonnull @.str.3) #15
  %3797 = load i32, ptr %701, align 4, !tbaa !5
  %3798 = call ptr @s2n_strerror_debug(i32 noundef %3797, ptr noundef nonnull @.str.3) #15
  %3799 = load i32, ptr %1673, align 4, !tbaa !5
  %3800 = call ptr @strerror(i32 noundef %3799) #15
  %3801 = load i32, ptr %1673, align 4, !tbaa !5
  %3802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3793, ptr noundef nonnull %.str.4.sink1993, i32 noundef %3794, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.2, i32 noundef 624, ptr noundef %3796, ptr noundef %3798, ptr noundef %3800, i32 noundef %3801) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3803:                                             ; preds = %3777
  %3804 = add nsw i32 %3723, 4
  store i32 %3804, ptr @test_count, align 4, !tbaa !5
  %3805 = load i32, ptr %3441, align 8
  %3806 = and i32 %3805, 8192
  %.not580 = icmp eq i32 %3806, 0
  br i1 %.not580, label %3829, label %3807

3807:                                             ; preds = %3803
  %3808 = load i32, ptr %1673, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3810 = call i32 @s2n_print_stacktrace(ptr noundef %3809) #15
  %3811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3812 = trunc nuw i8 %3811 to i1
  br i1 %3812, label %3813, label %3817

3813:                                             ; preds = %3807
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3815 = call i32 @fileno(ptr noundef %3814) #15
  %3816 = call i32 @isatty(i32 noundef %3815) #15
  %.not614 = icmp eq i32 %3816, 0
  br i1 %.not614, label %3817, label %3818

3817:                                             ; preds = %3813, %3807
  br label %3818

3818:                                             ; preds = %3813, %3817
  %.str.4.sink2002 = phi ptr [ @.str.4, %3817 ], [ @.str, %3813 ]
  store i32 %3808, ptr %1673, align 4, !tbaa !5
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3820 = load i32, ptr @test_count, align 4, !tbaa !5
  %3821 = load i32, ptr %701, align 4, !tbaa !5
  %3822 = call ptr @s2n_strerror(i32 noundef %3821, ptr noundef nonnull @.str.3) #15
  %3823 = load i32, ptr %701, align 4, !tbaa !5
  %3824 = call ptr @s2n_strerror_debug(i32 noundef %3823, ptr noundef nonnull @.str.3) #15
  %3825 = load i32, ptr %1673, align 4, !tbaa !5
  %3826 = call ptr @strerror(i32 noundef %3825) #15
  %3827 = load i32, ptr %1673, align 4, !tbaa !5
  %3828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3819, ptr noundef nonnull %.str.4.sink2002, i32 noundef %3820, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.2, i32 noundef 625, ptr noundef %3822, ptr noundef %3824, ptr noundef %3826, i32 noundef %3827) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3829:                                             ; preds = %3803
  %3830 = add nsw i32 %3723, 5
  store i32 %3830, ptr @test_count, align 4, !tbaa !5
  %3831 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %3496, i32 noundef 2) #15
  br i1 %3831, label %3854, label %3832

3832:                                             ; preds = %3829
  %3833 = load i32, ptr %1673, align 4, !tbaa !5
  %3834 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3835 = call i32 @s2n_print_stacktrace(ptr noundef %3834) #15
  %3836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3837 = trunc nuw i8 %3836 to i1
  br i1 %3837, label %3838, label %3842

3838:                                             ; preds = %3832
  %3839 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3840 = call i32 @fileno(ptr noundef %3839) #15
  %3841 = call i32 @isatty(i32 noundef %3840) #15
  %.not581 = icmp eq i32 %3841, 0
  br i1 %.not581, label %3842, label %3843

3842:                                             ; preds = %3838, %3832
  br label %3843

3843:                                             ; preds = %3838, %3842
  %.str.4.sink2011 = phi ptr [ @.str.4, %3842 ], [ @.str, %3838 ]
  store i32 %3833, ptr %1673, align 4, !tbaa !5
  %3844 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3845 = load i32, ptr @test_count, align 4, !tbaa !5
  %3846 = load i32, ptr %701, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror(i32 noundef %3846, ptr noundef nonnull @.str.3) #15
  %3848 = load i32, ptr %701, align 4, !tbaa !5
  %3849 = call ptr @s2n_strerror_debug(i32 noundef %3848, ptr noundef nonnull @.str.3) #15
  %3850 = load i32, ptr %1673, align 4, !tbaa !5
  %3851 = call ptr @strerror(i32 noundef %3850) #15
  %3852 = load i32, ptr %1673, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3844, ptr noundef nonnull %.str.4.sink2011, i32 noundef %3845, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 626, ptr noundef %3847, ptr noundef %3849, ptr noundef %3851, i32 noundef %3852) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3854:                                             ; preds = %3829
  %3855 = load i32, ptr @test_count, align 4, !tbaa !5
  %3856 = add nsw i32 %3855, 1
  store i32 %3856, ptr @test_count, align 4, !tbaa !5
  %3857 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %3441, i32 noundef 2) #15
  br i1 %3857, label %3880, label %3858

3858:                                             ; preds = %3854
  %3859 = load i32, ptr %1673, align 4, !tbaa !5
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3861 = call i32 @s2n_print_stacktrace(ptr noundef %3860) #15
  %3862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3863 = trunc nuw i8 %3862 to i1
  br i1 %3863, label %3864, label %3868

3864:                                             ; preds = %3858
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3866 = call i32 @fileno(ptr noundef %3865) #15
  %3867 = call i32 @isatty(i32 noundef %3866) #15
  %.not582 = icmp eq i32 %3867, 0
  br i1 %.not582, label %3868, label %3869

3868:                                             ; preds = %3864, %3858
  br label %3869

3869:                                             ; preds = %3864, %3868
  %.str.4.sink2020 = phi ptr [ @.str.4, %3868 ], [ @.str, %3864 ]
  store i32 %3859, ptr %1673, align 4, !tbaa !5
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = load i32, ptr %701, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror(i32 noundef %3872, ptr noundef nonnull @.str.3) #15
  %3874 = load i32, ptr %701, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror_debug(i32 noundef %3874, ptr noundef nonnull @.str.3) #15
  %3876 = load i32, ptr %1673, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #15
  %3878 = load i32, ptr %1673, align 4, !tbaa !5
  %3879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3870, ptr noundef nonnull %.str.4.sink2020, i32 noundef %3871, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 627, ptr noundef %3873, ptr noundef %3875, ptr noundef %3877, i32 noundef %3878) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3880:                                             ; preds = %3854
  %3881 = call i32 @s2n_connection_get_session_length(ptr noundef nonnull %3441) #15
  %3882 = sext i32 %3881 to i64
  call void @llvm.lifetime.start.p0(i64 202, ptr nonnull %16) #15
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(202) %16, i8 0, i64 202, i1 false)
  %3883 = load i32, ptr @test_count, align 4, !tbaa !5
  %3884 = add nsw i32 %3883, 1
  store i32 %3884, ptr @test_count, align 4, !tbaa !5
  %3885 = call i32 @s2n_connection_get_session(ptr noundef nonnull %3441, ptr noundef nonnull %16, i64 noundef %3882) #15
  %3886 = icmp eq i32 %3885, -1
  br i1 %3886, label %3887, label %3909

3887:                                             ; preds = %3880
  %3888 = load i32, ptr %1673, align 4, !tbaa !5
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3890 = call i32 @s2n_print_stacktrace(ptr noundef %3889) #15
  %3891 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3892 = trunc nuw i8 %3891 to i1
  br i1 %3892, label %3893, label %3897

3893:                                             ; preds = %3887
  %3894 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3895 = call i32 @fileno(ptr noundef %3894) #15
  %3896 = call i32 @isatty(i32 noundef %3895) #15
  %.not613 = icmp eq i32 %3896, 0
  br i1 %.not613, label %3897, label %3898

3897:                                             ; preds = %3893, %3887
  br label %3898

3898:                                             ; preds = %3893, %3897
  %.str.4.sink2029 = phi ptr [ @.str.4, %3897 ], [ @.str, %3893 ]
  store i32 %3888, ptr %1673, align 4, !tbaa !5
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = load i32, ptr %701, align 4, !tbaa !5
  %3902 = call ptr @s2n_strerror(i32 noundef %3901, ptr noundef nonnull @.str.3) #15
  %3903 = load i32, ptr %701, align 4, !tbaa !5
  %3904 = call ptr @s2n_strerror_debug(i32 noundef %3903, ptr noundef nonnull @.str.3) #15
  %3905 = load i32, ptr %1673, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #15
  %3907 = load i32, ptr %1673, align 4, !tbaa !5
  %3908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3899, ptr noundef nonnull %.str.4.sink2029, i32 noundef %3900, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.2, i32 noundef 631, ptr noundef %3902, ptr noundef %3904, ptr noundef %3906, i32 noundef %3907) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3909:                                             ; preds = %3880
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %3911 = add nsw i32 %3910, 1
  store i32 %3911, ptr @test_count, align 4, !tbaa !5
  %3912 = call i32 @s2n_connection_wipe(ptr noundef nonnull %3496) #15
  %3913 = icmp eq i32 %3912, -1
  br i1 %3913, label %3914, label %3936

3914:                                             ; preds = %3909
  %3915 = load i32, ptr %1673, align 4, !tbaa !5
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3917 = call i32 @s2n_print_stacktrace(ptr noundef %3916) #15
  %3918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3919 = trunc nuw i8 %3918 to i1
  br i1 %3919, label %3920, label %3924

3920:                                             ; preds = %3914
  %3921 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3922 = call i32 @fileno(ptr noundef %3921) #15
  %3923 = call i32 @isatty(i32 noundef %3922) #15
  %.not612 = icmp eq i32 %3923, 0
  br i1 %.not612, label %3924, label %3925

3924:                                             ; preds = %3920, %3914
  br label %3925

3925:                                             ; preds = %3920, %3924
  %.str.4.sink2038 = phi ptr [ @.str.4, %3924 ], [ @.str, %3920 ]
  store i32 %3915, ptr %1673, align 4, !tbaa !5
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = load i32, ptr %701, align 4, !tbaa !5
  %3929 = call ptr @s2n_strerror(i32 noundef %3928, ptr noundef nonnull @.str.3) #15
  %3930 = load i32, ptr %701, align 4, !tbaa !5
  %3931 = call ptr @s2n_strerror_debug(i32 noundef %3930, ptr noundef nonnull @.str.3) #15
  %3932 = load i32, ptr %1673, align 4, !tbaa !5
  %3933 = call ptr @strerror(i32 noundef %3932) #15
  %3934 = load i32, ptr %1673, align 4, !tbaa !5
  %3935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3926, ptr noundef nonnull %.str.4.sink2038, i32 noundef %3927, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.2, i32 noundef 634, ptr noundef %3929, ptr noundef %3931, ptr noundef %3933, i32 noundef %3934) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3936:                                             ; preds = %3909
  %3937 = load i32, ptr @test_count, align 4, !tbaa !5
  %3938 = add nsw i32 %3937, 1
  store i32 %3938, ptr @test_count, align 4, !tbaa !5
  %3939 = call i32 @s2n_connection_wipe(ptr noundef nonnull %3441) #15
  %3940 = icmp eq i32 %3939, -1
  br i1 %3940, label %3941, label %3963

3941:                                             ; preds = %3936
  %3942 = load i32, ptr %1673, align 4, !tbaa !5
  %3943 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3944 = call i32 @s2n_print_stacktrace(ptr noundef %3943) #15
  %3945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3946 = trunc nuw i8 %3945 to i1
  br i1 %3946, label %3947, label %3951

3947:                                             ; preds = %3941
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3949 = call i32 @fileno(ptr noundef %3948) #15
  %3950 = call i32 @isatty(i32 noundef %3949) #15
  %.not611 = icmp eq i32 %3950, 0
  br i1 %.not611, label %3951, label %3952

3951:                                             ; preds = %3947, %3941
  br label %3952

3952:                                             ; preds = %3947, %3951
  %.str.4.sink2047 = phi ptr [ @.str.4, %3951 ], [ @.str, %3947 ]
  store i32 %3942, ptr %1673, align 4, !tbaa !5
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3954 = load i32, ptr @test_count, align 4, !tbaa !5
  %3955 = load i32, ptr %701, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror(i32 noundef %3955, ptr noundef nonnull @.str.3) #15
  %3957 = load i32, ptr %701, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror_debug(i32 noundef %3957, ptr noundef nonnull @.str.3) #15
  %3959 = load i32, ptr %1673, align 4, !tbaa !5
  %3960 = call ptr @strerror(i32 noundef %3959) #15
  %3961 = load i32, ptr %1673, align 4, !tbaa !5
  %3962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3953, ptr noundef nonnull %.str.4.sink2047, i32 noundef %3954, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.2, i32 noundef 635, ptr noundef %3956, ptr noundef %3958, ptr noundef %3960, i32 noundef %3961) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3963:                                             ; preds = %3936
  %3964 = load i32, ptr @test_count, align 4, !tbaa !5
  %3965 = add nsw i32 %3964, 1
  store i32 %3965, ptr @test_count, align 4, !tbaa !5
  %3966 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #15
  %3967 = icmp eq i32 %3966, -1
  br i1 %3967, label %3968, label %3990

3968:                                             ; preds = %3963
  %3969 = load i32, ptr %1673, align 4, !tbaa !5
  %3970 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3971 = call i32 @s2n_print_stacktrace(ptr noundef %3970) #15
  %3972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %3973 = trunc nuw i8 %3972 to i1
  br i1 %3973, label %3974, label %3978

3974:                                             ; preds = %3968
  %3975 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3976 = call i32 @fileno(ptr noundef %3975) #15
  %3977 = call i32 @isatty(i32 noundef %3976) #15
  %.not610 = icmp eq i32 %3977, 0
  br i1 %.not610, label %3978, label %3979

3978:                                             ; preds = %3974, %3968
  br label %3979

3979:                                             ; preds = %3974, %3978
  %.str.4.sink2056 = phi ptr [ @.str.4, %3978 ], [ @.str, %3974 ]
  store i32 %3969, ptr %1673, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = load i32, ptr %701, align 4, !tbaa !5
  %3983 = call ptr @s2n_strerror(i32 noundef %3982, ptr noundef nonnull @.str.3) #15
  %3984 = load i32, ptr %701, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror_debug(i32 noundef %3984, ptr noundef nonnull @.str.3) #15
  %3986 = load i32, ptr %1673, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #15
  %3988 = load i32, ptr %1673, align 4, !tbaa !5
  %3989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3980, ptr noundef nonnull %.str.4.sink2056, i32 noundef %3981, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 636, ptr noundef %3983, ptr noundef %3985, ptr noundef %3987, i32 noundef %3988) #17
  call void @exit(i32 noundef 1) #18
  unreachable

3990:                                             ; preds = %3963
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = add nsw i32 %3991, 1
  store i32 %3992, ptr @test_count, align 4, !tbaa !5
  %3993 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #15
  %3994 = icmp eq i32 %3993, -1
  br i1 %3994, label %3995, label %4017

3995:                                             ; preds = %3990
  %3996 = load i32, ptr %1673, align 4, !tbaa !5
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !11
  %3998 = call i32 @s2n_print_stacktrace(ptr noundef %3997) #15
  %3999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %4003 = call i32 @fileno(ptr noundef %4002) #15
  %4004 = call i32 @isatty(i32 noundef %4003) #15
  %.not609 = icmp eq i32 %4004, 0
  br i1 %.not609, label %4005, label %4006

4005:                                             ; preds = %4001, %3995
  br label %4006

4006:                                             ; preds = %4001, %4005
  %.str.4.sink2065 = phi ptr [ @.str.4, %4005 ], [ @.str, %4001 ]
  store i32 %3996, ptr %1673, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = load i32, ptr %701, align 4, !tbaa !5
  %4010 = call ptr @s2n_strerror(i32 noundef %4009, ptr noundef nonnull @.str.3) #15
  %4011 = load i32, ptr %701, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef nonnull @.str.3) #15
  %4013 = load i32, ptr %1673, align 4, !tbaa !5
  %4014 = call ptr @strerror(i32 noundef %4013) #15
  %4015 = load i32, ptr %1673, align 4, !tbaa !5
  %4016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4007, ptr noundef nonnull %.str.4.sink2065, i32 noundef %4008, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 637, ptr noundef %4010, ptr noundef %4012, ptr noundef %4014, i32 noundef %4015) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4017:                                             ; preds = %3990
  %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 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %3441, ptr noundef nonnull %3496, ptr noundef nonnull %11) #15
  %4021 = icmp eq i32 %4020, -1
  br i1 %4021, label %4022, label %4044

4022:                                             ; preds = %4017
  %4023 = load i32, ptr %1673, align 4, !tbaa !5
  %4024 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4025 = call i32 @s2n_print_stacktrace(ptr noundef %4024) #15
  %4026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4027 = trunc nuw i8 %4026 to i1
  br i1 %4027, label %4028, label %4032

4028:                                             ; preds = %4022
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4030 = call i32 @fileno(ptr noundef %4029) #15
  %4031 = call i32 @isatty(i32 noundef %4030) #15
  %.not608 = icmp eq i32 %4031, 0
  br i1 %.not608, label %4032, label %4033

4032:                                             ; preds = %4028, %4022
  br label %4033

4033:                                             ; preds = %4028, %4032
  %.str.4.sink2074 = phi ptr [ @.str.4, %4032 ], [ @.str, %4028 ]
  store i32 %4023, ptr %1673, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4035 = load i32, ptr @test_count, align 4, !tbaa !5
  %4036 = load i32, ptr %701, align 4, !tbaa !5
  %4037 = call ptr @s2n_strerror(i32 noundef %4036, ptr noundef nonnull @.str.3) #15
  %4038 = load i32, ptr %701, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror_debug(i32 noundef %4038, ptr noundef nonnull @.str.3) #15
  %4040 = load i32, ptr %1673, align 4, !tbaa !5
  %4041 = call ptr @strerror(i32 noundef %4040) #15
  %4042 = load i32, ptr %1673, align 4, !tbaa !5
  %4043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4034, ptr noundef nonnull %.str.4.sink2074, i32 noundef %4035, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 638, ptr noundef %4037, ptr noundef %4039, ptr noundef %4041, i32 noundef %4042) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4044:                                             ; preds = %4017
  %4045 = load i32, ptr @test_count, align 4, !tbaa !5
  %4046 = add nsw i32 %4045, 1
  store i32 %4046, ptr @test_count, align 4, !tbaa !5
  %4047 = call i32 @s2n_connection_set_session(ptr noundef nonnull %3441, ptr noundef nonnull %16, i64 noundef %3882) #15
  %4048 = icmp eq i32 %4047, -1
  br i1 %4048, label %4049, label %4071

4049:                                             ; preds = %4044
  %4050 = load i32, ptr %1673, align 4, !tbaa !5
  %4051 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4052 = call i32 @s2n_print_stacktrace(ptr noundef %4051) #15
  %4053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4054 = trunc nuw i8 %4053 to i1
  br i1 %4054, label %4055, label %4059

4055:                                             ; preds = %4049
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4057 = call i32 @fileno(ptr noundef %4056) #15
  %4058 = call i32 @isatty(i32 noundef %4057) #15
  %.not607 = icmp eq i32 %4058, 0
  br i1 %.not607, label %4059, label %4060

4059:                                             ; preds = %4055, %4049
  br label %4060

4060:                                             ; preds = %4055, %4059
  %.str.4.sink2083 = phi ptr [ @.str.4, %4059 ], [ @.str, %4055 ]
  store i32 %4050, ptr %1673, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = load i32, ptr %701, align 4, !tbaa !5
  %4064 = call ptr @s2n_strerror(i32 noundef %4063, ptr noundef nonnull @.str.3) #15
  %4065 = load i32, ptr %701, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror_debug(i32 noundef %4065, ptr noundef nonnull @.str.3) #15
  %4067 = load i32, ptr %1673, align 4, !tbaa !5
  %4068 = call ptr @strerror(i32 noundef %4067) #15
  %4069 = load i32, ptr %1673, align 4, !tbaa !5
  %4070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4061, ptr noundef nonnull %.str.4.sink2083, i32 noundef %4062, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.2, i32 noundef 641, ptr noundef %4064, ptr noundef %4066, ptr noundef %4068, i32 noundef %4069) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4071:                                             ; preds = %4044
  %4072 = load i32, ptr %3441, align 8
  %4073 = or i32 %4072, 8192
  store i32 %4073, ptr %3441, align 8
  %4074 = load i32, ptr @test_count, align 4, !tbaa !5
  %4075 = add nsw i32 %4074, 1
  store i32 %4075, ptr @test_count, align 4, !tbaa !5
  %4076 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %3496, ptr noundef nonnull %3441) #15
  %4077 = icmp eq i32 %4076, -1
  br i1 %4077, label %4100, label %4078

4078:                                             ; preds = %4071
  %4079 = load i32, ptr %1673, align 4, !tbaa !5
  %4080 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4081 = call i32 @s2n_print_stacktrace(ptr noundef %4080) #15
  %4082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4083 = trunc nuw i8 %4082 to i1
  br i1 %4083, label %4084, label %4088

4084:                                             ; preds = %4078
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4086 = call i32 @fileno(ptr noundef %4085) #15
  %4087 = call i32 @isatty(i32 noundef %4086) #15
  %.not583 = icmp eq i32 %4087, 0
  br i1 %.not583, label %4088, label %4089

4088:                                             ; preds = %4084, %4078
  br label %4089

4089:                                             ; preds = %4084, %4088
  %.str.4.sink2092 = phi ptr [ @.str.4, %4088 ], [ @.str, %4084 ]
  store i32 %4079, ptr %1673, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = load i32, ptr %701, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror(i32 noundef %4092, ptr noundef nonnull @.str.3) #15
  %4094 = load i32, ptr %701, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror_debug(i32 noundef %4094, ptr noundef nonnull @.str.3) #15
  %4096 = load i32, ptr %1673, align 4, !tbaa !5
  %4097 = call ptr @strerror(i32 noundef %4096) #15
  %4098 = load i32, ptr %1673, align 4, !tbaa !5
  %4099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4090, ptr noundef nonnull %.str.4.sink2092, i32 noundef %4091, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.2, i32 noundef 645, ptr noundef %4093, ptr noundef %4095, ptr noundef %4097, i32 noundef %4098) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4100:                                             ; preds = %4071
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = add nsw i32 %4101, 1
  store i32 %4102, ptr @test_count, align 4, !tbaa !5
  %4103 = load i32, ptr %701, align 4, !tbaa !5
  %4104 = icmp eq i32 %4103, 201326593
  br i1 %4104, label %4127, label %4105

4105:                                             ; preds = %4100
  %4106 = load i32, ptr %1673, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4108 = call i32 @s2n_print_stacktrace(ptr noundef %4107) #15
  %4109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %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 !11
  %4113 = call i32 @fileno(ptr noundef %4112) #15
  %4114 = call i32 @isatty(i32 noundef %4113) #15
  %.not584 = icmp eq i32 %4114, 0
  br i1 %.not584, label %4115, label %4116

4115:                                             ; preds = %4111, %4105
  br label %4116

4116:                                             ; preds = %4111, %4115
  %.str.4.sink2101 = phi ptr [ @.str.4, %4115 ], [ @.str, %4111 ]
  store i32 %4106, ptr %1673, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = load i32, ptr %701, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror(i32 noundef %4119, ptr noundef nonnull @.str.3) #15
  %4121 = load i32, ptr %701, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror_debug(i32 noundef %4121, ptr noundef nonnull @.str.3) #15
  %4123 = load i32, ptr %1673, align 4, !tbaa !5
  %4124 = call ptr @strerror(i32 noundef %4123) #15
  %4125 = load i32, ptr %1673, align 4, !tbaa !5
  %4126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4117, ptr noundef nonnull %.str.4.sink2101, i32 noundef %4118, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.2, i32 noundef 645, ptr noundef %4120, ptr noundef %4122, ptr noundef %4124, i32 noundef %4125) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4127:                                             ; preds = %4100
  %4128 = add nsw i32 %4101, 2
  store i32 %4128, ptr @test_count, align 4, !tbaa !5
  %4129 = call ptr @s2n_strerror_debug(i32 noundef 201326593, ptr noundef nonnull @.str.3) #15
  %4130 = icmp eq ptr %4129, null
  br i1 %4130, label %4131, label %4153

4131:                                             ; preds = %4127
  %4132 = load i32, ptr %1673, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4134 = call i32 @s2n_print_stacktrace(ptr noundef %4133) #15
  %4135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4136 = trunc nuw i8 %4135 to i1
  br i1 %4136, label %4137, label %4141

4137:                                             ; preds = %4131
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4139 = call i32 @fileno(ptr noundef %4138) #15
  %4140 = call i32 @isatty(i32 noundef %4139) #15
  %.not606 = icmp eq i32 %4140, 0
  br i1 %.not606, label %4141, label %4142

4141:                                             ; preds = %4137, %4131
  br label %4142

4142:                                             ; preds = %4137, %4141
  %.str.4.sink2110 = phi ptr [ @.str.4, %4141 ], [ @.str, %4137 ]
  store i32 %4132, ptr %1673, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = load i32, ptr %701, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror(i32 noundef %4145, ptr noundef nonnull @.str.3) #15
  %4147 = load i32, ptr %701, align 4, !tbaa !5
  %4148 = call ptr @s2n_strerror_debug(i32 noundef %4147, ptr noundef nonnull @.str.3) #15
  %4149 = load i32, ptr %1673, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #15
  %4151 = load i32, ptr %1673, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4143, ptr noundef nonnull %.str.4.sink2110, i32 noundef %4144, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 645, ptr noundef %4146, ptr noundef %4148, ptr noundef %4150, i32 noundef %4151) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4153:                                             ; preds = %4127
  store i32 0, ptr %701, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #15
  store i32 0, ptr %1673, align 4, !tbaa !5
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = add nsw i32 %4154, 1
  store i32 %4155, ptr @test_count, align 4, !tbaa !5
  %4156 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef nonnull %3496, ptr noundef nonnull %3441) #15
  %4157 = icmp eq i32 %4156, -1
  br i1 %4157, label %4158, label %4180

4158:                                             ; preds = %4153
  %4159 = load i32, ptr %1673, align 4, !tbaa !5
  %4160 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4161 = call i32 @s2n_print_stacktrace(ptr noundef %4160) #15
  %4162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4163 = trunc nuw i8 %4162 to i1
  br i1 %4163, label %4164, label %4168

4164:                                             ; preds = %4158
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4166 = call i32 @fileno(ptr noundef %4165) #15
  %4167 = call i32 @isatty(i32 noundef %4166) #15
  %.not605 = icmp eq i32 %4167, 0
  br i1 %.not605, label %4168, label %4169

4168:                                             ; preds = %4164, %4158
  br label %4169

4169:                                             ; preds = %4164, %4168
  %.str.4.sink2119 = phi ptr [ @.str.4, %4168 ], [ @.str, %4164 ]
  store i32 %4159, ptr %1673, align 4, !tbaa !5
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4171 = load i32, ptr @test_count, align 4, !tbaa !5
  %4172 = load i32, ptr %701, align 4, !tbaa !5
  %4173 = call ptr @s2n_strerror(i32 noundef %4172, ptr noundef nonnull @.str.3) #15
  %4174 = load i32, ptr %701, align 4, !tbaa !5
  %4175 = call ptr @s2n_strerror_debug(i32 noundef %4174, ptr noundef nonnull @.str.3) #15
  %4176 = load i32, ptr %1673, align 4, !tbaa !5
  %4177 = call ptr @strerror(i32 noundef %4176) #15
  %4178 = load i32, ptr %1673, align 4, !tbaa !5
  %4179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4170, ptr noundef nonnull %.str.4.sink2119, i32 noundef %4171, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.2, i32 noundef 648, ptr noundef %4173, ptr noundef %4175, ptr noundef %4177, i32 noundef %4178) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4180:                                             ; preds = %4153
  %4181 = load i32, ptr @test_count, align 4, !tbaa !5
  %4182 = add nsw i32 %4181, 1
  store i32 %4182, ptr @test_count, align 4, !tbaa !5
  %4183 = load i8, ptr %15, align 1, !tbaa !51
  %4184 = zext i8 %4183 to i32
  %4185 = lshr i32 %4184, 3
  %4186 = zext nneg i32 %4185 to i64
  %4187 = getelementptr inbounds [22 x i8], ptr %3690, i64 0, i64 %4186
  %4188 = load i8, ptr %4187, align 1, !tbaa !51
  %4189 = zext i8 %4188 to i32
  %4190 = and i32 %4184, 7
  %4191 = shl nuw nsw i32 1, %4190
  %4192 = and i32 %4191, %4189
  %.not585 = icmp eq i32 %4192, 0
  br i1 %.not585, label %4193, label %4215

4193:                                             ; preds = %4180
  %4194 = load i32, ptr %1673, align 4, !tbaa !5
  %4195 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4196 = call i32 @s2n_print_stacktrace(ptr noundef %4195) #15
  %4197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4198 = trunc nuw i8 %4197 to i1
  br i1 %4198, label %4199, label %4203

4199:                                             ; preds = %4193
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4201 = call i32 @fileno(ptr noundef %4200) #15
  %4202 = call i32 @isatty(i32 noundef %4201) #15
  %.not586 = icmp eq i32 %4202, 0
  br i1 %.not586, label %4203, label %4204

4203:                                             ; preds = %4199, %4193
  br label %4204

4204:                                             ; preds = %4199, %4203
  %.str.4.sink2128 = phi ptr [ @.str.4, %4203 ], [ @.str, %4199 ]
  store i32 %4194, ptr %1673, align 4, !tbaa !5
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4206 = load i32, ptr @test_count, align 4, !tbaa !5
  %4207 = load i32, ptr %701, align 4, !tbaa !5
  %4208 = call ptr @s2n_strerror(i32 noundef %4207, ptr noundef nonnull @.str.3) #15
  %4209 = load i32, ptr %701, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror_debug(i32 noundef %4209, ptr noundef nonnull @.str.3) #15
  %4211 = load i32, ptr %1673, align 4, !tbaa !5
  %4212 = call ptr @strerror(i32 noundef %4211) #15
  %4213 = load i32, ptr %1673, align 4, !tbaa !5
  %4214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4205, ptr noundef nonnull %.str.4.sink2128, i32 noundef %4206, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.2, i32 noundef 649, ptr noundef %4208, ptr noundef %4210, ptr noundef %4212, i32 noundef %4213) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4215:                                             ; preds = %4180
  %4216 = add nsw i32 %4181, 2
  store i32 %4216, ptr @test_count, align 4, !tbaa !5
  %4217 = load i32, ptr %3496, align 8
  %4218 = and i32 %4217, 8192
  %.not587 = icmp eq i32 %4218, 0
  br i1 %.not587, label %4219, label %4241

4219:                                             ; preds = %4215
  %4220 = load i32, ptr %1673, align 4, !tbaa !5
  %4221 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4222 = call i32 @s2n_print_stacktrace(ptr noundef %4221) #15
  %4223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4224 = trunc nuw i8 %4223 to i1
  br i1 %4224, label %4225, label %4229

4225:                                             ; preds = %4219
  %4226 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4227 = call i32 @fileno(ptr noundef %4226) #15
  %4228 = call i32 @isatty(i32 noundef %4227) #15
  %.not588 = icmp eq i32 %4228, 0
  br i1 %.not588, label %4229, label %4230

4229:                                             ; preds = %4225, %4219
  br label %4230

4230:                                             ; preds = %4225, %4229
  %.str.4.sink2137 = phi ptr [ @.str.4, %4229 ], [ @.str, %4225 ]
  store i32 %4220, ptr %1673, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4232 = load i32, ptr @test_count, align 4, !tbaa !5
  %4233 = load i32, ptr %701, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror(i32 noundef %4233, ptr noundef nonnull @.str.3) #15
  %4235 = load i32, ptr %701, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror_debug(i32 noundef %4235, ptr noundef nonnull @.str.3) #15
  %4237 = load i32, ptr %1673, align 4, !tbaa !5
  %4238 = call ptr @strerror(i32 noundef %4237) #15
  %4239 = load i32, ptr %1673, align 4, !tbaa !5
  %4240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4231, ptr noundef nonnull %.str.4.sink2137, i32 noundef %4232, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.2, i32 noundef 650, ptr noundef %4234, ptr noundef %4236, ptr noundef %4238, i32 noundef %4239) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4241:                                             ; preds = %4215
  %4242 = add nsw i32 %4181, 3
  store i32 %4242, ptr @test_count, align 4, !tbaa !5
  %4243 = load i32, ptr %3441, align 8
  %4244 = and i32 %4243, 8192
  %.not589 = icmp eq i32 %4244, 0
  br i1 %.not589, label %4245, label %4267

4245:                                             ; preds = %4241
  %4246 = load i32, ptr %1673, align 4, !tbaa !5
  %4247 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4248 = call i32 @s2n_print_stacktrace(ptr noundef %4247) #15
  %4249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4250 = trunc nuw i8 %4249 to i1
  br i1 %4250, label %4251, label %4255

4251:                                             ; preds = %4245
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4253 = call i32 @fileno(ptr noundef %4252) #15
  %4254 = call i32 @isatty(i32 noundef %4253) #15
  %.not590 = icmp eq i32 %4254, 0
  br i1 %.not590, label %4255, label %4256

4255:                                             ; preds = %4251, %4245
  br label %4256

4256:                                             ; preds = %4251, %4255
  %.str.4.sink2146 = phi ptr [ @.str.4, %4255 ], [ @.str, %4251 ]
  store i32 %4246, ptr %1673, align 4, !tbaa !5
  %4257 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4258 = load i32, ptr @test_count, align 4, !tbaa !5
  %4259 = load i32, ptr %701, align 4, !tbaa !5
  %4260 = call ptr @s2n_strerror(i32 noundef %4259, ptr noundef nonnull @.str.3) #15
  %4261 = load i32, ptr %701, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror_debug(i32 noundef %4261, ptr noundef nonnull @.str.3) #15
  %4263 = load i32, ptr %1673, align 4, !tbaa !5
  %4264 = call ptr @strerror(i32 noundef %4263) #15
  %4265 = load i32, ptr %1673, align 4, !tbaa !5
  %4266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4257, ptr noundef nonnull %.str.4.sink2146, i32 noundef %4258, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.2, i32 noundef 651, ptr noundef %4260, ptr noundef %4262, ptr noundef %4264, i32 noundef %4265) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4267:                                             ; preds = %4241
  %4268 = add nsw i32 %4181, 4
  store i32 %4268, ptr @test_count, align 4, !tbaa !5
  %4269 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %3496, i32 noundef 2) #15
  br i1 %4269, label %4292, label %4270

4270:                                             ; preds = %4267
  %4271 = load i32, ptr %1673, align 4, !tbaa !5
  %4272 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4273 = call i32 @s2n_print_stacktrace(ptr noundef %4272) #15
  %4274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4275 = trunc nuw i8 %4274 to i1
  br i1 %4275, label %4276, label %4280

4276:                                             ; preds = %4270
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4278 = call i32 @fileno(ptr noundef %4277) #15
  %4279 = call i32 @isatty(i32 noundef %4278) #15
  %.not591 = icmp eq i32 %4279, 0
  br i1 %.not591, label %4280, label %4281

4280:                                             ; preds = %4276, %4270
  br label %4281

4281:                                             ; preds = %4276, %4280
  %.str.4.sink2155 = phi ptr [ @.str.4, %4280 ], [ @.str, %4276 ]
  store i32 %4271, ptr %1673, align 4, !tbaa !5
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4283 = load i32, ptr @test_count, align 4, !tbaa !5
  %4284 = load i32, ptr %701, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror(i32 noundef %4284, ptr noundef nonnull @.str.3) #15
  %4286 = load i32, ptr %701, align 4, !tbaa !5
  %4287 = call ptr @s2n_strerror_debug(i32 noundef %4286, ptr noundef nonnull @.str.3) #15
  %4288 = load i32, ptr %1673, align 4, !tbaa !5
  %4289 = call ptr @strerror(i32 noundef %4288) #15
  %4290 = load i32, ptr %1673, align 4, !tbaa !5
  %4291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4282, ptr noundef nonnull %.str.4.sink2155, i32 noundef %4283, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.2, i32 noundef 652, ptr noundef %4285, ptr noundef %4287, ptr noundef %4289, i32 noundef %4290) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4292:                                             ; preds = %4267
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = add nsw i32 %4293, 1
  store i32 %4294, ptr @test_count, align 4, !tbaa !5
  %4295 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %3441, i32 noundef 2) #15
  br i1 %4295, label %4318, label %4296

4296:                                             ; preds = %4292
  %4297 = load i32, ptr %1673, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4299 = call i32 @s2n_print_stacktrace(ptr noundef %4298) #15
  %4300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4301 = trunc nuw i8 %4300 to i1
  br i1 %4301, label %4302, label %4306

4302:                                             ; preds = %4296
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4304 = call i32 @fileno(ptr noundef %4303) #15
  %4305 = call i32 @isatty(i32 noundef %4304) #15
  %.not592 = icmp eq i32 %4305, 0
  br i1 %.not592, label %4306, label %4307

4306:                                             ; preds = %4302, %4296
  br label %4307

4307:                                             ; preds = %4302, %4306
  %.str.4.sink2164 = phi ptr [ @.str.4, %4306 ], [ @.str, %4302 ]
  store i32 %4297, ptr %1673, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = load i32, ptr %701, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef nonnull @.str.3) #15
  %4312 = load i32, ptr %701, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror_debug(i32 noundef %4312, ptr noundef nonnull @.str.3) #15
  %4314 = load i32, ptr %1673, align 4, !tbaa !5
  %4315 = call ptr @strerror(i32 noundef %4314) #15
  %4316 = load i32, ptr %1673, align 4, !tbaa !5
  %4317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef nonnull %.str.4.sink2164, i32 noundef %4309, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.2, i32 noundef 653, ptr noundef %4311, ptr noundef %4313, ptr noundef %4315, i32 noundef %4316) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4318:                                             ; preds = %4292
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %4320 = add nsw i32 %4319, 1
  store i32 %4320, ptr @test_count, align 4, !tbaa !5
  %4321 = call i32 @s2n_connection_free(ptr noundef nonnull %3441) #15
  %4322 = icmp eq i32 %4321, -1
  br i1 %4322, label %4323, label %4345

4323:                                             ; preds = %4318
  %4324 = load i32, ptr %1673, align 4, !tbaa !5
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4326 = call i32 @s2n_print_stacktrace(ptr noundef %4325) #15
  %4327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4328 = trunc nuw i8 %4327 to i1
  br i1 %4328, label %4329, label %4333

4329:                                             ; preds = %4323
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4331 = call i32 @fileno(ptr noundef %4330) #15
  %4332 = call i32 @isatty(i32 noundef %4331) #15
  %.not604 = icmp eq i32 %4332, 0
  br i1 %.not604, label %4333, label %4334

4333:                                             ; preds = %4329, %4323
  br label %4334

4334:                                             ; preds = %4329, %4333
  %.str.4.sink2173 = phi ptr [ @.str.4, %4333 ], [ @.str, %4329 ]
  store i32 %4324, ptr %1673, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = load i32, ptr %701, align 4, !tbaa !5
  %4338 = call ptr @s2n_strerror(i32 noundef %4337, ptr noundef nonnull @.str.3) #15
  %4339 = load i32, ptr %701, align 4, !tbaa !5
  %4340 = call ptr @s2n_strerror_debug(i32 noundef %4339, ptr noundef nonnull @.str.3) #15
  %4341 = load i32, ptr %1673, align 4, !tbaa !5
  %4342 = call ptr @strerror(i32 noundef %4341) #15
  %4343 = load i32, ptr %1673, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4335, ptr noundef nonnull %.str.4.sink2173, i32 noundef %4336, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.2, i32 noundef 655, ptr noundef %4338, ptr noundef %4340, ptr noundef %4342, i32 noundef %4343) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4345:                                             ; preds = %4318
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = add nsw i32 %4346, 1
  store i32 %4347, ptr @test_count, align 4, !tbaa !5
  %4348 = call i32 @s2n_connection_free(ptr noundef nonnull %3496) #15
  %4349 = icmp eq i32 %4348, -1
  br i1 %4349, label %4350, label %4372

4350:                                             ; preds = %4345
  %4351 = load i32, ptr %1673, align 4, !tbaa !5
  %4352 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4353 = call i32 @s2n_print_stacktrace(ptr noundef %4352) #15
  %4354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4355 = trunc nuw i8 %4354 to i1
  br i1 %4355, label %4356, label %4360

4356:                                             ; preds = %4350
  %4357 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4358 = call i32 @fileno(ptr noundef %4357) #15
  %4359 = call i32 @isatty(i32 noundef %4358) #15
  %.not603 = icmp eq i32 %4359, 0
  br i1 %.not603, label %4360, label %4361

4360:                                             ; preds = %4356, %4350
  br label %4361

4361:                                             ; preds = %4356, %4360
  %.str.4.sink2182 = phi ptr [ @.str.4, %4360 ], [ @.str, %4356 ]
  store i32 %4351, ptr %1673, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4363 = load i32, ptr @test_count, align 4, !tbaa !5
  %4364 = load i32, ptr %701, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror(i32 noundef %4364, ptr noundef nonnull @.str.3) #15
  %4366 = load i32, ptr %701, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror_debug(i32 noundef %4366, ptr noundef nonnull @.str.3) #15
  %4368 = load i32, ptr %1673, align 4, !tbaa !5
  %4369 = call ptr @strerror(i32 noundef %4368) #15
  %4370 = load i32, ptr %1673, align 4, !tbaa !5
  %4371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4362, ptr noundef nonnull %.str.4.sink2182, i32 noundef %4363, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.2, i32 noundef 656, ptr noundef %4365, ptr noundef %4367, ptr noundef %4369, i32 noundef %4370) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4372:                                             ; preds = %4345
  %4373 = load i32, ptr @test_count, align 4, !tbaa !5
  %4374 = add nsw i32 %4373, 1
  store i32 %4374, ptr @test_count, align 4, !tbaa !5
  %4375 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #15
  %4376 = icmp eq i32 %4375, -1
  br i1 %4376, label %4377, label %4399

4377:                                             ; preds = %4372
  %4378 = load i32, ptr %1673, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4380 = call i32 @s2n_print_stacktrace(ptr noundef %4379) #15
  %4381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4382 = trunc nuw i8 %4381 to i1
  br i1 %4382, label %4383, label %4387

4383:                                             ; preds = %4377
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4385 = call i32 @fileno(ptr noundef %4384) #15
  %4386 = call i32 @isatty(i32 noundef %4385) #15
  %.not602 = icmp eq i32 %4386, 0
  br i1 %.not602, label %4387, label %4388

4387:                                             ; preds = %4383, %4377
  br label %4388

4388:                                             ; preds = %4383, %4387
  %.str.4.sink2191 = phi ptr [ @.str.4, %4387 ], [ @.str, %4383 ]
  store i32 %4378, ptr %1673, align 4, !tbaa !5
  %4389 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4390 = load i32, ptr @test_count, align 4, !tbaa !5
  %4391 = load i32, ptr %701, align 4, !tbaa !5
  %4392 = call ptr @s2n_strerror(i32 noundef %4391, ptr noundef nonnull @.str.3) #15
  %4393 = load i32, ptr %701, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror_debug(i32 noundef %4393, ptr noundef nonnull @.str.3) #15
  %4395 = load i32, ptr %1673, align 4, !tbaa !5
  %4396 = call ptr @strerror(i32 noundef %4395) #15
  %4397 = load i32, ptr %1673, align 4, !tbaa !5
  %4398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4389, ptr noundef nonnull %.str.4.sink2191, i32 noundef %4390, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.2, i32 noundef 657, ptr noundef %4392, ptr noundef %4394, ptr noundef %4396, i32 noundef %4397) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4399:                                             ; preds = %4372
  call void @llvm.lifetime.end.p0(i64 202, ptr nonnull %16) #15
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #15
  %4400 = load i32, ptr @test_count, align 4, !tbaa !5
  %4401 = add nsw i32 %4400, 1
  store i32 %4401, ptr @test_count, align 4, !tbaa !5
  %4402 = call i32 @s2n_config_free(ptr noundef %282) #15
  %4403 = icmp eq i32 %4402, -1
  br i1 %4403, label %4404, label %4426

4404:                                             ; preds = %4399
  %4405 = load i32, ptr %1673, align 4, !tbaa !5
  %4406 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4407 = call i32 @s2n_print_stacktrace(ptr noundef %4406) #15
  %4408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4409 = trunc nuw i8 %4408 to i1
  br i1 %4409, label %4410, label %4414

4410:                                             ; preds = %4404
  %4411 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4412 = call i32 @fileno(ptr noundef %4411) #15
  %4413 = call i32 @isatty(i32 noundef %4412) #15
  %.not601 = icmp eq i32 %4413, 0
  br i1 %.not601, label %4414, label %4415

4414:                                             ; preds = %4410, %4404
  br label %4415

4415:                                             ; preds = %4410, %4414
  %.str.4.sink2200 = phi ptr [ @.str.4, %4414 ], [ @.str, %4410 ]
  store i32 %4405, ptr %1673, align 4, !tbaa !5
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4417 = load i32, ptr @test_count, align 4, !tbaa !5
  %4418 = load i32, ptr %701, align 4, !tbaa !5
  %4419 = call ptr @s2n_strerror(i32 noundef %4418, ptr noundef nonnull @.str.3) #15
  %4420 = load i32, ptr %701, align 4, !tbaa !5
  %4421 = call ptr @s2n_strerror_debug(i32 noundef %4420, ptr noundef nonnull @.str.3) #15
  %4422 = load i32, ptr %1673, align 4, !tbaa !5
  %4423 = call ptr @strerror(i32 noundef %4422) #15
  %4424 = load i32, ptr %1673, align 4, !tbaa !5
  %4425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4416, ptr noundef nonnull %.str.4.sink2200, i32 noundef %4417, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.2, i32 noundef 661, ptr noundef %4419, ptr noundef %4421, ptr noundef %4423, i32 noundef %4424) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4426:                                             ; preds = %4399
  %4427 = load i32, ptr @test_count, align 4, !tbaa !5
  %4428 = add nsw i32 %4427, 1
  store i32 %4428, ptr @test_count, align 4, !tbaa !5
  %4429 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %4, i32 noundef 0) #15
  %4430 = icmp eq i32 %4429, %133
  br i1 %4430, label %4453, label %4431

4431:                                             ; preds = %4426
  %4432 = load i32, ptr %1673, align 4, !tbaa !5
  %4433 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4434 = call i32 @s2n_print_stacktrace(ptr noundef %4433) #15
  %4435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4436 = trunc nuw i8 %4435 to i1
  br i1 %4436, label %4437, label %4441

4437:                                             ; preds = %4431
  %4438 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4439 = call i32 @fileno(ptr noundef %4438) #15
  %4440 = call i32 @isatty(i32 noundef %4439) #15
  %.not593 = icmp eq i32 %4440, 0
  br i1 %.not593, label %4441, label %4442

4441:                                             ; preds = %4437, %4431
  br label %4442

4442:                                             ; preds = %4437, %4441
  %.str.4.sink2209 = phi ptr [ @.str.4, %4441 ], [ @.str, %4437 ]
  store i32 %4432, ptr %1673, align 4, !tbaa !5
  %4443 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = load i32, ptr %701, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror(i32 noundef %4445, ptr noundef nonnull @.str.3) #15
  %4447 = load i32, ptr %701, align 4, !tbaa !5
  %4448 = call ptr @s2n_strerror_debug(i32 noundef %4447, ptr noundef nonnull @.str.3) #15
  %4449 = load i32, ptr %1673, align 4, !tbaa !5
  %4450 = call ptr @strerror(i32 noundef %4449) #15
  %4451 = load i32, ptr %1673, align 4, !tbaa !5
  %4452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4443, ptr noundef nonnull %.str.4.sink2209, i32 noundef %4444, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.2, i32 noundef 662, ptr noundef %4446, ptr noundef %4448, ptr noundef %4450, i32 noundef %4451) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4453:                                             ; preds = %4426
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %4455 = add nsw i32 %4454, 1
  store i32 %4455, ptr @test_count, align 4, !tbaa !5
  %4456 = load i32, ptr %4, align 4, !tbaa !5
  %4457 = icmp eq i32 %4456, 0
  br i1 %4457, label %4480, label %4458

4458:                                             ; preds = %4453
  %4459 = load i32, ptr %1673, align 4, !tbaa !5
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4461 = call i32 @s2n_print_stacktrace(ptr noundef %4460) #15
  %4462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4463 = trunc nuw i8 %4462 to i1
  br i1 %4463, label %4464, label %4468

4464:                                             ; preds = %4458
  %4465 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4466 = call i32 @fileno(ptr noundef %4465) #15
  %4467 = call i32 @isatty(i32 noundef %4466) #15
  %.not594 = icmp eq i32 %4467, 0
  br i1 %.not594, label %4468, label %4469

4468:                                             ; preds = %4464, %4458
  br label %4469

4469:                                             ; preds = %4464, %4468
  %.str.4.sink2218 = phi ptr [ @.str.4, %4468 ], [ @.str, %4464 ]
  store i32 %4459, ptr %1673, align 4, !tbaa !5
  %4470 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4471 = load i32, ptr @test_count, align 4, !tbaa !5
  %4472 = load i32, ptr %701, align 4, !tbaa !5
  %4473 = call ptr @s2n_strerror(i32 noundef %4472, ptr noundef nonnull @.str.3) #15
  %4474 = load i32, ptr %701, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror_debug(i32 noundef %4474, ptr noundef nonnull @.str.3) #15
  %4476 = load i32, ptr %1673, align 4, !tbaa !5
  %4477 = call ptr @strerror(i32 noundef %4476) #15
  %4478 = load i32, ptr %1673, align 4, !tbaa !5
  %4479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4470, ptr noundef nonnull %.str.4.sink2218, i32 noundef %4471, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.2, i32 noundef 663, ptr noundef %4473, ptr noundef %4475, ptr noundef %4477, i32 noundef %4478) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4480:                                             ; preds = %4453
  %4481 = add nsw i32 %4454, 2
  store i32 %4481, ptr @test_count, align 4, !tbaa !5
  %4482 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %398) #15
  %4483 = icmp eq i32 %4482, -1
  br i1 %4483, label %4484, label %4506

4484:                                             ; preds = %4480
  %4485 = load i32, ptr %1673, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4487 = call i32 @s2n_print_stacktrace(ptr noundef %4486) #15
  %4488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4489 = trunc nuw i8 %4488 to i1
  br i1 %4489, label %4490, label %4494

4490:                                             ; preds = %4484
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4492 = call i32 @fileno(ptr noundef %4491) #15
  %4493 = call i32 @isatty(i32 noundef %4492) #15
  %.not600 = icmp eq i32 %4493, 0
  br i1 %.not600, label %4494, label %4495

4494:                                             ; preds = %4490, %4484
  br label %4495

4495:                                             ; preds = %4490, %4494
  %.str.4.sink2227 = phi ptr [ @.str.4, %4494 ], [ @.str, %4490 ]
  store i32 %4485, ptr %1673, align 4, !tbaa !5
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4497 = load i32, ptr @test_count, align 4, !tbaa !5
  %4498 = load i32, ptr %701, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror(i32 noundef %4498, ptr noundef nonnull @.str.3) #15
  %4500 = load i32, ptr %701, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror_debug(i32 noundef %4500, ptr noundef nonnull @.str.3) #15
  %4502 = load i32, ptr %1673, align 4, !tbaa !5
  %4503 = call ptr @strerror(i32 noundef %4502) #15
  %4504 = load i32, ptr %1673, align 4, !tbaa !5
  %4505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4496, ptr noundef nonnull %.str.4.sink2227, i32 noundef %4497, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.2, i32 noundef 665, ptr noundef %4499, ptr noundef %4501, ptr noundef %4503, i32 noundef %4504) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4506:                                             ; preds = %4480
  call void @free(ptr noundef %168) #15
  call void @free(ptr noundef %196) #15
  %4507 = call i32 @s2n_cleanup() #15
  %4508 = icmp eq i32 %4507, -1
  br i1 %4508, label %4509, label %4531

4509:                                             ; preds = %4506
  %4510 = load i32, ptr %1673, align 4, !tbaa !5
  %4511 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4512 = call i32 @s2n_print_stacktrace(ptr noundef %4511) #15
  %4513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4514 = trunc nuw i8 %4513 to i1
  br i1 %4514, label %4515, label %4519

4515:                                             ; preds = %4509
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4517 = call i32 @fileno(ptr noundef %4516) #15
  %4518 = call i32 @isatty(i32 noundef %4517) #15
  %.not599 = icmp eq i32 %4518, 0
  br i1 %.not599, label %4519, label %4520

4519:                                             ; preds = %4515, %4509
  br label %4520

4520:                                             ; preds = %4515, %4519
  %.str.4.sink2236 = phi ptr [ @.str.4, %4519 ], [ @.str, %4515 ]
  store i32 %4510, ptr %1673, align 4, !tbaa !5
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4522 = load i32, ptr @test_count, align 4, !tbaa !5
  %4523 = load i32, ptr %701, align 4, !tbaa !5
  %4524 = call ptr @s2n_strerror(i32 noundef %4523, ptr noundef nonnull @.str.3) #15
  %4525 = load i32, ptr %701, align 4, !tbaa !5
  %4526 = call ptr @s2n_strerror_debug(i32 noundef %4525, ptr noundef nonnull @.str.3) #15
  %4527 = load i32, ptr %1673, align 4, !tbaa !5
  %4528 = call ptr @strerror(i32 noundef %4527) #15
  %4529 = load i32, ptr %1673, align 4, !tbaa !5
  %4530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4521, ptr noundef nonnull %.str.4.sink2236, i32 noundef %4522, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.2, i32 noundef 669, ptr noundef %4524, ptr noundef %4526, ptr noundef %4528, i32 noundef %4529) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4531:                                             ; preds = %4506
  %4532 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #15
  %4533 = icmp eq i32 %4532, -1
  br i1 %4533, label %4534, label %4556

4534:                                             ; preds = %4531
  %4535 = load i32, ptr %1673, align 4, !tbaa !5
  %4536 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4537 = call i32 @s2n_print_stacktrace(ptr noundef %4536) #15
  %4538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4539 = trunc nuw i8 %4538 to i1
  br i1 %4539, label %4540, label %4544

4540:                                             ; preds = %4534
  %4541 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4542 = call i32 @fileno(ptr noundef %4541) #15
  %4543 = call i32 @isatty(i32 noundef %4542) #15
  %.not598 = icmp eq i32 %4543, 0
  br i1 %.not598, label %4544, label %4545

4544:                                             ; preds = %4540, %4534
  br label %4545

4545:                                             ; preds = %4540, %4544
  %.str.4.sink2245 = phi ptr [ @.str.4, %4544 ], [ @.str, %4540 ]
  store i32 %4535, ptr %1673, align 4, !tbaa !5
  %4546 = load ptr, ptr @stderr, align 8, !tbaa !11
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = load i32, ptr %701, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror(i32 noundef %4548, ptr noundef nonnull @.str.3) #15
  %4550 = load i32, ptr %701, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror_debug(i32 noundef %4550, ptr noundef nonnull @.str.3) #15
  %4552 = load i32, ptr %1673, align 4, !tbaa !5
  %4553 = call ptr @strerror(i32 noundef %4552) #15
  %4554 = load i32, ptr %1673, align 4, !tbaa !5
  %4555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4546, ptr noundef nonnull %.str.4.sink2245, i32 noundef %4547, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.2, i32 noundef 669, ptr noundef %4549, ptr noundef %4551, ptr noundef %4553, i32 noundef %4554) #17
  call void @exit(i32 noundef 1) #18
  unreachable

4556:                                             ; preds = %4531
  %4557 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !13, !range !15, !noundef !16
  %4558 = trunc nuw i8 %4557 to i1
  br i1 %4558, label %4559, label %4570

4559:                                             ; preds = %4556
  %4560 = load ptr, ptr @stdout, align 8, !tbaa !11
  %4561 = call i32 @fileno(ptr noundef %4560) #15
  %4562 = call i32 @isatty(i32 noundef %4561) #15
  %.not595 = icmp eq i32 %4562, 0
  br i1 %.not595, label %4570, label %4563

4563:                                             ; preds = %4559
  %4564 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not597 = icmp eq i32 %4564, 0
  %4565 = load ptr, ptr @stdout, align 8, !tbaa !11
  br i1 %.not597, label %4568, label %4566

4566:                                             ; preds = %4563
  %4567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef nonnull @.str.93, i32 noundef %4564) #15
  br label %4577

4568:                                             ; preds = %4563
  %4569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef nonnull @.str.94) #15
  br label %4577

4570:                                             ; preds = %4559, %4556
  %4571 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not596 = icmp eq i32 %4571, 0
  %4572 = load ptr, ptr @stdout, align 8, !tbaa !11
  br i1 %.not596, label %4575, label %4573

4573:                                             ; preds = %4570
  %4574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4572, ptr noundef nonnull @.str.95, i32 noundef %4571) #15
  br label %4577

4575:                                             ; preds = %4570
  %4576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4572, ptr noundef nonnull @.str.96) #15
  br label %4577

4577:                                             ; preds = %4568, %4566, %4575, %4573, %572, %569
  %.0 = phi i32 [ -1, %569 ], [ -1, %572 ], [ 0, %4573 ], [ 0, %4575 ], [ 0, %4566 ], [ 0, %4568 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #15
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #15
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #15
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #15
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #15
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #15
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %5) #15
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #15
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #15
  ret i32 %.0
}

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #3

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare i32 @s2n_io_pair_init(ptr noundef) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare i32 @fork() local_unnamed_addr #5

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_cache_store_callback(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_cache_retrieve_callback(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_cache_delete_callback(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_session_cache_onoff(ptr noundef, i8 noundef zeroext) local_unnamed_addr #3

declare i32 @s2n_config_add_ticket_crypto_key(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #11

declare i32 @s2n_error_get_type(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_get_session_id_length(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_get_session_id(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #3

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #12

declare i32 @s2n_negotiate_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #3

declare i32 @waitpid(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #13

declare i32 @s2n_cleanup() local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden void @initialize_cache() local_unnamed_addr #0

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #14

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "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 = { 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 #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { 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 #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #14 = { nofree nounwind willreturn memory(argmem: read) }
attributes #15 = { nounwind }
attributes #16 = { nounwind willreturn memory(none) }
attributes #17 = { cold nounwind }
attributes #18 = { noreturn nounwind }
attributes #19 = { nounwind allocsize(0) }
attributes #20 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_Bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !12, i64 80}
!18 = !{!"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, !12, i64 8, !12, i64 16, !19, i64 24, !20, i64 56, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !6, i64 128, !6, i64 132, !12, i64 136, !10, i64 144, !12, i64 152, !10, i64 160, !10, i64 168, !12, i64 176, !12, i64 184, !12, i64 192, !12, i64 200, !12, i64 208, !12, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !12, i64 240, !12, i64 248, !12, i64 256, !12, i64 264, !12, i64 272, !12, i64 280, !12, i64 288, !7, i64 296, !7, i64 297, !21, i64 304, !22, i64 320, !12, i64 328, !12, i64 336, !12, i64 344, !12, i64 352, !12, i64 360, !12, i64 368, !12, i64 376, !12, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !12, i64 408, !6, i64 416, !6, i64 420, !12, i64 424, !12, i64 432, !6, i64 440, !20, i64 448}
!19 = !{!"certs_by_type", !7, i64 0}
!20 = !{!"s2n_blob", !12, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!"s2n_x509_trust_store", !12, i64 0, !6, i64 8}
!22 = !{!"short", !7, i64 0}
!23 = !{!18, !12, i64 104}
!24 = !{!25, !7, i64 220}
!25 = !{!"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, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !26, i64 160, !10, i64 168, !10, 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, !12, i64 224, !12, i64 232, !27, i64 240, !12, i64 632, !12, i64 640, !28, i64 648, !33, i64 1144, !36, i64 1688, !12, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !38, i64 1776, !38, i64 1816, !38, i64 1856, !38, i64 1896, !6, i64 1936, !10, i64 1944, !7, i64 1952, !38, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !14, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !22, i64 2208, !6, i64 2212, !22, i64 2216, !10, i64 2224, !7, i64 2232, !10, i64 2240, !10, i64 2248, !10, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !42, i64 2896, !44, i64 3704, !12, i64 3760, !12, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !38, i64 3992, !20, i64 4032, !20, i64 4056, !14, i64 4080, !14, i64 4081, !14, i64 4082, !22, i64 4084, !22, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !10, i64 0}
!27 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!28 = !{!"s2n_kex_parameters", !29, i64 0, !30, i64 8, !7, i64 24, !30, i64 56, !31, i64 72, !31, i64 184, !7, i64 296, !32, i64 360, !20, i64 448, !20, i64 472}
!29 = !{!"s2n_dh_params", !12, i64 0}
!30 = !{!"s2n_ecc_evp_params", !12, i64 0, !12, i64 8}
!31 = !{!"s2n_kem_group_params", !12, i64 0, !32, i64 8, !30, i64 96}
!32 = !{!"s2n_kem_params", !12, i64 0, !20, i64 8, !20, i64 32, !20, i64 56, !14, i64 80}
!33 = !{!"s2n_handshake_parameters", !34, i64 0, !34, i64 48, !20, i64 96, !6, i64 120, !35, i64 124, !12, i64 384, !12, i64 392, !12, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!34 = !{!"s2n_pkey", !12, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40}
!35 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!36 = !{!"s2n_psk_parameters", !6, i64 0, !37, i64 8, !22, i64 40, !22, i64 42, !12, i64 48, !6, i64 56}
!37 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!38 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!39 = !{!"", !6, i64 0}
!40 = !{!"s2n_handshake", !38, i64 0, !12, 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, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !12, i64 0}
!42 = !{!"s2n_client_hello", !20, i64 0, !43, i64 24, !20, i64 728, !20, i64 752, !20, 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}
!43 = !{!"", !7, i64 0, !20, i64 672, !22, i64 696}
!44 = !{!"s2n_x509_validator", !12, i64 0, !12, i64 8, !7, i64 16, !7, i64 17, !22, i64 18, !12, i64 24, !6, i64 32, !12, i64 40, !45, i64 48, !14, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !38, i64 0, !7, i64 40}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = distinct !{!50, !49}
!51 = !{!7, !7, i64 0}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass